[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, wip-ffi, created. release_1-9-7-15-g51
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, wip-ffi, created. release_1-9-7-15-g516453a |
Date: |
Mon, 25 Jan 2010 17:16:18 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=516453ac3400d84936af0641d112c55b37afc8be
The branch, wip-ffi has been created
at 516453ac3400d84936af0641d112c55b37afc8be (commit)
- Log -----------------------------------------------------------------
commit 516453ac3400d84936af0641d112c55b37afc8be
Author: Andy Wingo <address@hidden>
Date: Mon Jan 25 18:04:45 2010 +0100
implement foreign-call
* libguile/foreign.h:
* libguile/foreign.c (scm_i_foreign_call): New internal function,
actually implementing foreign calls. Untested.
* libguile/vm-i-system.c (foreign-call): Wire up the call to
scm_i_foreign_call.
commit 6c5d63a7147c9af35789ab63525e4b26117e3dfd
Author: Andy Wingo <address@hidden>
Date: Mon Jan 25 18:15:35 2010 +0100
first pass at implementing low-level foreign functions
* libguile/Makefile.am (AM_CPPFLAGS): Move LIBFFI_CFLAGS here (from
AM_CFLAGS), allowing snarfing to work.
* libguile/foreign.h (scm_make_foreign_function): New public function.
* libguile/foreign.c: Flesh out an implementation of foreign functions.
(scm_take_foreign_pointer): Bugfix for the case in which we have a
finalizer.
* module/system/foreign.scm: Export `make-foreign-function'.
commit c04b4ec4db73d10724ac690b950ed80bdfdf9b14
Author: Andy Wingo <address@hidden>
Date: Sun Jan 24 18:59:19 2010 -0600
renumber VM opcodes
* libguile/vm-i-loader.c:
* libguile/vm-i-scheme.c:
* libguile/vm-i-system.c: Renumber ops. Add a foreign-call op stub.
Rearrange some ops.
* libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump
commit 96f09f68cb569e189795fa896bdc056b6dcc150a
Author: Andy Wingo <address@hidden>
Date: Mon Jan 18 14:36:23 2010 +0100
byte access to foreigns via bytevectors
* libguile/foreign.h:
* libguile/foreign.c (scm_foreign_ref, scm_foreign_set_x): Remove all
bits about offsets and aliasing; bytevectors are much better at that.
(scm_foreign_to_bytevector, scm_bytevector_to_foreign): New functions
for getting at the bytes of a memory region.
* module/system/foreign.scm (foreign->bytevector, bytevector->foreign):
Export these.
commit 3678675a8d3958179847220e641f1df75646b8de
Author: Andy Wingo <address@hidden>
Date: Mon Jan 18 12:16:13 2010 +0100
move foreign function interface to its own module
* libguile/foreign.h:
* libguile/init.c: Change so that init just registers an extension,
later called by foreign.scm.
* libguile/foreign.c (scm_init_foreign): Define constants for the
various foreign types.
* module/Makefile.am:
* module/system/foreign.scm: New module, for the foreign function
interface.
commit dcb128dd4cee97e060ca94899865b828ccea4820
Author: Andy Wingo <address@hidden>
Date: Mon Jan 18 11:42:35 2010 +0100
foreign.h presents a more pointer-centric interface
* libguile/foreign.c:
* libguile/foreign.h: Rework interface to be more pointer-centric.
Details are:
(SCM_FOREIGN_TYPE_STRUCT, SCM_FOREIGN_TYPE_POINTER): Removed; now the
pointer in a foreign is first-class. If it points to a native type
like uint32, then it still has a tag; but if it points to something
else, like a struct or a pointer or something, then its type is VOID
(i.e., void*).
(SCM_FOREIGN_POINTER): Rename from SCM_FOREIGN_OBJECT.
(SCM_FOREIGN_VALUE_REF, SCM_FOREIGN_VALUE_SET): Rename from
SCM_FOREIGN_OBJECT_REF and SCM_FOREIGN_OBJECT_SET, to indicate that
they only work with value types.
(SCM_FOREIGN_HAS_FINALIZER): Reserve a bit to indicate if the foreign
pointer in question has a finalizer registered.
(SCM_FOREIGN_LEN): For void* pointers, optionally store the length in
bytes of the associated memory region.
(SCM_FOREIGN_VALUE_P): Rename from SCM_FOREIGN_SIMPLE_P.
(SCM_VALIDATE_FOREIGN_VALUE): Rename from SCM_VALIDATE_FOREIGN_SIMPLE.
(scm_take_foreign_pointer): Rename from scm_c_take_foreign. Remove
scm_c_from_foreign.
(scm_foreign_type): New accessor.
(scm_foreign_ref, scm_foreign_set_x): Take some optional args, used
when dereferencing void pointers.
* libguile/dynl.h:
* libguile/dynl.c (scm_dynamic_pointer): New function, used by
scm_dynamic_func. Adapt code to foreign.h changes.
* libguile/goops.c (scm_enable_primitive_generic_x)
(scm_set_primitive_generic_x): Use the SCM_SET_SUBR_GENERIC macro.
* libguile/gsubr.c (create_gsubr): Adapt to API change.
* libguile/gsubr.h (SCM_SUBRF, SCM_SUBR_GENERIC): Store the pointer
directly, not indirected.
* libguile/snarf.h (SCM_DEFINE, SCM_IMMUTABLE_FOREIGN): Store subr
pointers directly. Adapt to SCM_FOREIGN_TYPE_VOID change.
* libguile/vm-i-system.c (subr-call): Access the void* directly.
commit 16814a34f3b5ce3366f470dd6e38cdfc82d204a6
Author: Andy Wingo <address@hidden>
Date: Fri Jan 15 22:55:11 2010 +0100
add libffi dependency
* configure.ac:
* libguile/Makefile.am (AM_CFLAGS, libguile_la_LDFLAGS): Add a libffi
dependency, for making a dynamic FFI.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-ffi, created. release_1-9-7-15-g516453a,
Andy Wingo <=