GNU bug report logs - #27579
[patch] add intptr uintptr to (system foreign)

Previous Next

Package: guile;

Reported by: Matt Wette <matt.wette <at> gmail.com>

Date: Tue, 4 Jul 2017 23:39:02 UTC

Severity: normal

Tags: patch

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Matt Wette <matt.wette <at> gmail.com>
Subject: bug#27579: closed (Re: bug#27579: intptr_t and uintptr_t)
Date: Wed, 22 Nov 2017 15:36:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#27579: [patch] add intptr uintptr to (system foreign)

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 27579 <at> debbugs.gnu.org.

-- 
27579: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=27579
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: ludo <at> gnu.org (Ludovic Courtès)
To: Matt Wette <matt.wette <at> gmail.com>
Cc: 27579-done <at> debbugs.gnu.org
Subject: Re: bug#27579: intptr_t and uintptr_t
Date: Wed, 22 Nov 2017 16:35:25 +0100
Hi Matt,

Matt Wette <matt.wette <at> gmail.com> skribis:

> I found the issue.   I called the symbol intptr_t in foreign.c and intptr in foreign.scm
>
> Now both use intptr_t and uintptr_t, with patch below.

I updated api-foreign.texi accordingly, added a commit log, and
committed to the ‘stable-2.2’ branch.

Thank you!

Ludo’.

[Message part 3 (message/rfc822, inline)]
From: Matt Wette <matt.wette <at> gmail.com>
To: bug-guile <at> gnu.org
Subject: [patch] add intptr uintptr to (system foreign)
Date: Tue, 4 Jul 2017 16:38:37 -0700
I submit this patch for adding intptr and uintptr to (system foreign).
This is with reference to guile-2.2.2 and changes libguile/foreign.c and module/system/foreign.scm.
After application, I was albe to get guile-2.2.2 to complete “make” and “make check”. 
No specific tests for this patch have been performed.

Rationale: I am working on a FFI helper which uses scheme-bytestructure (see GitHub.com) and that package includes these types.

Matt

--- libguile/foreign.c-orig	2017-07-04 15:57:55.000000000 -0700
+++ libguile/foreign.c	2017-07-04 16:02:45.000000000 -0700
@@ -56,6 +56,8 @@
 SCM_SYMBOL (sym_size_t, "size_t");
 SCM_SYMBOL (sym_ssize_t, "ssize_t");
 SCM_SYMBOL (sym_ptrdiff_t, "ptrdiff_t");
+SCM_SYMBOL (sym_intptr_t, "intptr_t");
+SCM_SYMBOL (sym_uintptr_t, "uintptr_t");
 
 /* that's for pointers, you know. */
 SCM_SYMBOL (sym_asterisk, "*");
@@ -1248,6 +1250,26 @@
 #endif
 	      );
 
+  scm_define (sym_intptr_t,
+#if SCM_SIZEOF_INTPTR_T == 8
+	      scm_from_uint8 (SCM_FOREIGN_TYPE_INT64)
+#elif SCM_SIZEOF_INTPTR_T == 4
+	      scm_from_uint8 (SCM_FOREIGN_TYPE_INT32)
+#else
+# error unsupported sizeof (scm_t_intptr)
+#endif
+	      );
+
+  scm_define (sym_uintptr_t,
+#if SCM_SIZEOF_UINTPTR_T == 8
+	      scm_from_uint8 (SCM_FOREIGN_TYPE_UINT64)
+#elif SCM_SIZEOF_UINTPTR_T == 4
+	      scm_from_uint8 (SCM_FOREIGN_TYPE_UINT32)
+#else
+# error unsupported sizeof (scm_t_uintptr)
+#endif
+	      );
+
   null_pointer = scm_cell (scm_tc7_pointer, 0);
   scm_define (sym_null, null_pointer);
 }
--- module/system/foreign.scm-orig	2017-07-04 16:06:15.000000000 -0700
+++ module/system/foreign.scm	2017-07-04 16:06:51.000000000 -0700
@@ -30,6 +30,7 @@
             uint16 int16
             uint32 int32
             uint64 int64
+            intptr uintptr
 
             sizeof alignof
 




This bug report was last modified 7 years and 243 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.