Commit Graph

969 Commits

Author SHA1 Message Date
Abdulaziz Ghuloum 8ef5eaeca2 - better error message for using make-c-callout and make-c-callback
when ffi support is not enabled.
2009-05-20 09:58:03 +03:00
Abdulaziz Ghuloum 7002046c8e - added a way of making annotated procedures without invoking the
compiler.   (useful for a future project)
- refershed all boot files (because of added primitives)
- regenerated some autoconf files (to use newer version)
2009-05-11 01:35:38 +03:00
Abdulaziz Ghuloum 7e965758cf Added memcpy (courtesy of Andreas Rottmann).
The `memcpy' procedure allows to copy memory from bytevectors to
  unmanaged (malloc'ed) memory and vice-versa.
2009-04-30 12:35:49 +03:00
Abdulaziz Ghuloum 2f4a2f3895 The code for converting signed long long numbers to scheme bignums
was broken (on 32-bits, the 64-bit value was put in a bignum of 1
limb instead of 2).  Thanks to Andreas Rottmann for reporting it.
2009-04-30 12:25:17 +03:00
Abdulaziz Ghuloum 6bab4af5b4 Added [un]signed-long-long types as valid parameter types to
callouts and callbacks (in both 32 and 64 bit modes). (UNTESTED)
2009-04-11 02:16:00 +03:00
Abdulaziz Ghuloum a44a00b405 Applied patch that fixes bug: dirent->d_namlen not available on
linux.  Thanks Derick Eddington.
2009-04-09 23:55:44 +03:00
Abdulaziz Ghuloum d63a9c1f51 Added open-directory-steam, directory-stream?, read-directory-stream,
and close-directory-stream as per bug 315804.
2009-04-09 12:29:50 +03:00
Abdulaziz Ghuloum 56ec093e05 make distcheck now works. Many thanks to Andreas Rottmann (rotty)
for the patches.
2009-04-07 02:15:32 +03:00
Abdulaziz Ghuloum 5e1066170e changed definition of ref in order to work around a bug in gcc-4.2.2
at -O3 that was computing incorrect addresses for ref(x, -n).
2009-04-06 16:24:12 +03:00
Abdulaziz Ghuloum b97cbf1688 Fixed environ. The procedure environ takes no arguments and returns
an association list where both keys and values and strings found in
the posix environment.
2009-04-06 09:59:07 +03:00
Abdulaziz Ghuloum 2adc9cb85d Applied patch for "make-hard-link". Thanks to Andreas Rottmann. 2009-01-03 20:36:53 -05:00
Abdulaziz Ghuloum 4918b0e965 added setenv and unsetenv to (ikarus). 2008-12-23 20:58:46 -05:00
Abdulaziz Ghuloum 82b7edcf14 fixed fprintf line in scheme-script.c 2008-12-23 20:41:12 -05:00
Abdulaziz Ghuloum 818d15a080 fixed a bug in ffi callouts when the type is [un]signed-long on 32-bit. 2008-12-13 06:34:01 -05:00
Abdulaziz Ghuloum f8efdfc848 fixed buffer overrun problem when printing a char to an unbuffered
port is interrupted.
2008-12-12 16:03:10 -05:00
Abdulaziz Ghuloum aba76624b2 added set-port-position! for binary output files. 2008-12-09 03:00:44 -05:00
Abdulaziz Ghuloum 5f1a3ab765 supressed warning about "round undefined" in src/ikarus-flonums.c. 2008-12-08 03:01:18 -05:00
Abdulaziz Ghuloum 75d2756bd2 fixed serious GC bug that's exhibited when guardians have protected
objects that survive 256 collections.
2008-12-08 01:43:23 -05:00
Abdulaziz Ghuloum 1931c37f36 removed definition of inthash from ikarus-data.h. (not used anywhere) 2008-12-07 21:22:28 -05:00
Abdulaziz Ghuloum f7d1d6b6a3 unused (garbage) symbols can be reclaimed now 2008-12-06 12:40:18 -05:00
Abdulaziz Ghuloum b037b1b671 getenv now returns #f for unset environment variables. 2008-12-05 02:19:26 -05:00
Abdulaziz Ghuloum d35f039ca1 ikrt_last_errno moved to ikarus-runtime where it belongs 2008-11-26 05:03:16 -05:00
Abdulaziz Ghuloum 3049d3d22e Added errno. 2008-11-25 22:52:26 -05:00
Abdulaziz Ghuloum 6922b0d9c2 added pointer-ref-{unsigned-,}long-long 2008-11-21 05:56:51 -05:00
Abdulaziz Ghuloum c5a2026472 fixed a few compile-time warnings. 2008-11-16 04:43:30 -05:00
Abdulaziz Ghuloum abeaa5d561 fixed simple typo in ikarus-io.c 2008-11-16 04:37:17 -05:00
Abdulaziz Ghuloum e3a7a875a4 fixed build error under linux. 2008-11-16 04:22:23 -05:00
Abdulaziz Ghuloum bc11d4f44f fixed return value of file-ctime and file-mtime (were incorrect due
to truncation)
2008-11-16 03:59:30 -05:00
Abdulaziz Ghuloum d45fedb7c7 - unique name of uninterned gensyms is removed, allowing them to
get new unique names if needed (instead of having multiple gensyms
  with the same name some of which are not eq?).
2008-11-12 18:29:59 -05:00
Abdulaziz Ghuloum dc8d4b33ad - implemented $unintern-gensym 2008-11-12 18:03:14 -05:00
Abdulaziz Ghuloum 25f40fefb0 Added the following file system primitives
- file-readable? path -> boolean
 - file-writable? path -> boolean
 - file-executable? path -> boolean
 - file-size path -> integer
 - rename-file source dest -> void
(thanks to Andreas Rottmann)
2008-11-10 23:36:11 -05:00
Abdulaziz Ghuloum 069bd683cd - added file-mtime
- Ikarus fasl files and source files are not compared using 
   (< (file-mtime ikfasl) (file-mtime filename))
  instead of
   (<= (file-ctime ikfasl) (file-ctime filename))
2008-11-01 07:28:08 -04:00
Abdulaziz Ghuloum 74a1d302ec - added better hashing function for flonums and bignums. 2008-10-31 23:53:15 -04:00
Abdulaziz Ghuloum 671eba4990 added make-eqv-hashtable 2008-10-31 23:09:03 -04:00
Abdulaziz Ghuloum 8afcbbef67 - fixed function cast in ikarus-ffi.
- added "make check" rule in the scheme directory.
2008-10-31 16:55:43 -04:00
Abdulaziz Ghuloum d2022faf53 fixed a few gcc warnings as reported in bug 288824. 2008-10-29 13:54:06 -04:00
Abdulaziz Ghuloum b63055aed0 - changed argument type passed to ik_mmap* to be long int.
- mmap errors report request size (for debugging 64-bit errors)
- added a config definition for FLAT_TABLES which is not yet used
  (32-bit ikarus will use flat segment and dirty tables while 64-bit
  ikarus will use two-level tables)
2008-10-21 00:43:27 -04:00
Abdulaziz Ghuloum 8cd9d6ef16 - supplying <init-files> for --r6rs-script or --script now raises an
error (as suggested by Derick Eddington).
- The -h or [-b <bootfile>] options must now come first, so,
  the rest of the command-line arguments are not scanned: only the
  first one or two.   The docs (in ikarus -h) already suggested the
  correct invocation arguments, so, this conforms to the previously
  documented behavior.
2008-10-18 17:49:20 -04:00
Abdulaziz Ghuloum 69c62649cc - defined RTLD_LOCAL for cygwin (possibly incorrect)
- added a missing save to a callee-save register (%edi) 
  when entering/reentering to Scheme which caused Ikarus
  not to run properly depending on whether or not gcc places
  the pcb in %edi or not during Scheme execution.
- updated lab/test-ffi.ss to use the new names for foreign
  types, etc.
2008-10-07 02:46:56 -04:00
Abdulaziz Ghuloum 1e5e516b08 - added (ikarus foreign) library that should be used instead of
(ikarus system $foreign).
- changed the names of some of the pointer primitives
- changed the name of the procedure make-ffi to make-callout
- updated examples and libraries to conform with new names
- updated the users guide to provide a complete description of 
  the (ikarus foreign) library
- updated list of missing R6RS features in the users guide
2008-10-06 01:19:27 -04:00
Abdulaziz Ghuloum 997c75fabb fixed a bug that caused (- <bignum> <bignum>) to crash or yield
incorrect result if gc is triggered while allocating the resulting
bignum.
2008-10-04 01:59:34 -04:00
Abdulaziz Ghuloum 8c30f0715b Managed to a simple Ikarus -> Objective-C interface to work. Ikarus
can now open a Cocoa window under Mac OS X.   Happy Happy Joy Joy!!
2008-09-26 02:46:07 -04:00
Abdulaziz Ghuloum 61ecbe0dd1 - opengl demos from ypsilon (gears and glut-demo) now work under
ikarus's ffi using a compatibility layer.
2008-09-23 07:48:16 -04:00
Abdulaziz Ghuloum abe97b4053 - argument conversion for callbacks now work.
- added more tests in lab/test-ffi.ss
2008-09-23 03:21:41 -04:00
Abdulaziz Ghuloum 876ab09eee - gc during callbacks now works.
- system continuations are now maintained as part of the list in
  pcb->next_k.
2008-09-23 01:49:06 -04:00
Abdulaziz Ghuloum df4cb7a6ce fixed an off-by-one bug in ffi callbacks. 2008-09-23 00:24:41 -04:00
Abdulaziz Ghuloum 09657334c0 fixed autoconf so that ffi.h and libffi are checked iff ffi is
enabled.  Also made prep-callback return #f if libffi does not
support closures.
2008-09-22 21:55:05 -04:00
Abdulaziz Ghuloum e07d8f9760 ffi callbacks sorta kinda work now. 2008-09-21 04:08:54 -04:00
Abdulaziz Ghuloum 06fd988a17 C callbacks now reach the C point where they should make the call
back into Scheme land.
2008-09-20 01:58:57 -04:00
Abdulaziz Ghuloum 31f5f88889 first test of ffi works:
> (import (ikarus system $foreign))
> (((ffi-prep-cif 'void '(uint32))
    (dlsym (dlopen #f) "hello_world"))
   10)
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
>
2008-09-14 04:17:24 -07:00