Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2010-07-26 | Simplify the (system foreign) API. | Ludovic Courtès | 1 | -1/+1 | |
Suggested by Neil Jerram. * libguile/foreign.h (SCM_FOREIGN_TYPE, SCM_FOREIGN_VALUE_REF, SCM_FOREIGN_VALUE_SET, SCM_FOREIGN_LEN, SCM_FOREIGN_TYPED_P, SCM_FOREIGN_VALUE_P, SCM_VALIDATE_FOREIGN_VALUE, scm_foreign_set_x, scm_foreign_type): Remove. (scm_foreign_ref): Rename to... (scm_foreign_address): ... this. (scm_take_foreign_pointer): Update. (SCM_FOREIGN_POINTER): Remove CTYPE argument. Update callers. (scm_make_pointer): New declaration. * libguile/foreign.c (scm_to_uintptr, scm_from_uintptr): New macros. (scm_make_pointer): New function. (scm_take_foreign_pointer): Remove TYPE and LEN arguments. Update callers. (scm_foreign_ref): Remove to... (scm_foreign_address): ... this. Remove type-related code. (scm_foreign_set_x): Remove. (scm_foreign_to_bytevector): Change argument order; make LEN argument compulsory. (scm_i_foreign_print): Remove type printing. (unpack): Remove foreign-type checking. * libguile/deprecated.c (scm_dynamic_args_call): Update accordingly. * libguile/dynl.c (scm_dynamic_pointer): Remove the TYPE and LEN arguments; update callers. Update to the new foreign API. * libguile/dynl.h (scm_dynamic_pointer): Update. * libguile/gsubr.c (create_gsubr): Update to the new foreign API. * libguile/gsubr.h (SCM_SUBRF, SCM_SUBR_GENERIC): Ditto. * libguile/snarf.h (SCM_IMMUTABLE_FOREIGN): Ditto. * libguile/vm-i-system.c (subr_call): Ditto. * module/system/foreign.scm (null-pointer?): New procedure. * test-suite/standalone/test-ffi: Update to the new `bytevector->foreign' signature. * test-suite/tests/foreign.test ("null pointer")["null pointer identity", "null-pointer? %null-pointer"]: New tests. ["foreign-set! other-null-pointer", "foreign->bytevector other-null-pointer"]: Remove. ("make-pointer", "foreign<->bytevector"): New test prefixes. | |||||
2010-04-02 | deprecate dynamic-args-call, and update docs some more | Andy Wingo | 1 | -1/+0 | |
* libguile/deprecated.h (scm_dynamic_args_call): Deprecate. * libguile/deprecated.c: * libguile/dynl.h: * libguile/dynl.c: * doc/ref/api-foreign.texi: More doc updates. | |||||
2010-01-26 | foreign.h presents a more pointer-centric interface | Andy Wingo | 1 | -1/+2 | |
* 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. | |||||
2009-06-17 | Change Guile license to LGPLv3+ | Neil Jerram | 1 | -6/+7 | |
(Not quite finished, the following will be done tomorrow. module/srfi/*.scm module/rnrs/*.scm module/scripts/*.scm testsuite/*.scm guile-readline/* ) | |||||
2008-05-31 | Add `SCM_INTERNAL' macro, use it. | Ludovic Courtès | 1 | -2/+2 | |
2006-04-17 | merge from 1.8 branch | Kevin Ryde | 1 | -1/+1 | |
2005-05-23 | The FSF has a new address. | Marius Vollmer | 1 | -1/+1 | |
2003-04-05 | Changed license terms to the plain LGPL thru-out. | Marius Vollmer | 1 | -35/+11 | |
2001-11-02 | Prefixed each each exported symbol with SCM_API. | Marius Vollmer | 1 | -7/+7 | |
2001-08-31 | * Removed lots of deprecated stuff. | Dirk Herrmann | 1 | -12/+11 | |
2000-06-12 | Updated copyrights | Mikael Djurfeldt | 1 | -1/+1 | |
2000-05-18 | * Unified some rest argument checking and handling. | Dirk Herrmann | 1 | -1/+1 | |
2000-03-19 | * *.[hc]: add Emacs magic at the end of file, to ensure GNU | Michael Livshin | 1 | -0/+6 | |
indentation style. | |||||
2000-03-02 | * list.c: Moved append docs to append! Thanks Dirk Hermann. Also, | Greg J. Badros | 1 | -10/+10 | |
added append docs from R4RS. * strings.c: Docstring typo fix, + eliminate unneeded IMP tests. Thanks Dirk Hermann! * chars.h: Provide SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR and deprecate SCM_ICHRP, SCM_ICHR, SCM_MAKICHR. Thanks Dirk Hermann! * *.h, *.c: Use SCM_CHARP, SCM_CHAR, SCM_MAKE_CHAR throughout. Drop use of SCM_P for function prototypes... assume an ANSI C compiler. Thanks Dirk Hermann! | |||||
1999-06-21 | * dynl.c (DYNL_GLOBAL): New. | Marius Vollmer | 1 | -1/+1 | |
(sysdep_dynl_link): Added `flags' argument. (kw_global, sym_global): New. (scm_dynamic_link): Handle keyword arguments. Pass suitable flags to sysdep_dynl_link. * dynl-dl.c (sysdep_dynl_link): Handle new `flags' argument by conditrionally adding RTLD_GLOBAL to DLOPEN_MODES. * dynl-shl.c (sysdep_dynl_link): Add and ignore new flags argument. * dynl-dld.c (sysdep_dynl_link): Add and ignore new flags argument. * dynl.h (scm_dynamic_link): Added rest argument. * dynl.c (sysdep_dynl_unlink, sysdep_dynl_func): Use const qualifier for char* argument, to match prototypes. Thanks to Mark Elbrecht. | |||||
1998-10-19 | * __scm.h, alist.c, async.c, async.h, backtrace.h, chars.c, | Jim Blandy | 1 | -1/+1 | |
continuations.c, debug.c, debug.h, dynl-dl.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, error.c, error.h, eval.c, eval.h, feature.c, filesys.c, filesys.h, fports.c, fports.h, gc.c, gc.h, genio.c, genio.h, gh.h, gh_data.c, gsubr.c, gsubr.h, hash.c, hashtab.c, init.c, init.h, ioext.c, ioext.h, kw.c, libguile.h, list.c, list.h, load.c, load.h, mallocs.c, markers.c, mit-pthreads.c, net_db.c, numbers.c, numbers.h, options.c, ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c, procprop.h, procs.c, procs.h, ramap.c, ramap.h, regex-posix.c, regex-posix.h, root.c, root.h, scmsigs.c, scmsigs.h, script.c, script.h, simpos.c, simpos.h, smob.c, smob.h, snarf.h, socket.c, srcprop.c, stackchk.c, stackchk.h, stacks.c, stime.c, stime.h, strings.c, strings.h, strports.c, struct.c, struct.h, symbols.c, symbols.h, tags.h, threads.c, throw.h, unif.c, variable.c, vectors.c, vectors.h, version.h, vports.c, weaks.c: Update copyright years. | |||||
1998-07-30 | * dynl.h (scm_registered_modules, scm_clear_registered_modules): | Jim Blandy | 1 | -2/+2 | |
Make these prototype declarations, not K&R-style. | |||||
1997-05-26 | * Lots of files: New address for FSF. | Jim Blandy | 1 | -3/+3 | |
1997-01-18 | * dynl.c (scm_dynamic_func): New function to get the address of a | Marius Vollmer | 1 | -3/+9 | |
function in a dynamic object. (scm_dynamic_call, scm_dynamic_args_call): Accept the values produced by scm_dynamic_func as the thing to call. * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c: Restructured. (scm_register_module_xxx, scm_registered_modules, scm_clear_registered_modules): New functions. | |||||
1996-12-08 | Initial revision | Marius Vollmer | 1 | -0/+57 | |