guile-commits
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]