Commit Graph

470 Commits (3bcd3eb97a802d02f8e5536ee15d6db25a20becb)

Author SHA1 Message Date
slava 531dab7806 Implemented returning values from callbacks 2006-02-15 04:23:08 +00:00
slava 827df2d5d2 Added (presently failing) test for spilled arg callback 2006-02-14 22:27:28 +00:00
slava d584e8c0bb Basic callback unit tests pass 2006-02-14 03:47:42 +00:00
slava 90b10f1cfd (Temporarily) add unnest_stacks() call 2006-02-14 03:31:50 +00:00
slava 2d1ef84911 Further work on callbacks 2006-02-14 03:20:39 +00:00
slava 1b5b692220 Fix FFI register clobberage and broken call stack semantics from recent runtime change 2006-02-13 22:57:20 +00:00
slava 8b74f721b5 Nullary callbacks are working 2006-02-13 22:16:34 +00:00
slava 3173747fb5 Various fixes for recent callback-related runtime changes 2006-02-13 21:00:21 +00:00
slava 84d24c4440 Runtime changes to support callbacks, and other cleanups 2006-02-13 07:46:07 +00:00
slava 1f153c24b2 Starting work on callbacks 2006-02-11 07:30:18 +00:00
slava dc3f4b2efb Cocoa binding improvements 2006-02-10 03:11:22 +00:00
slava 44f2cc04ef Fix compile error 2006-02-09 03:15:23 +00:00
slava 3d5e96172f Clean up out of memory handler 2006-02-09 03:12:20 +00:00
slava b861c09e9f Clean up AGL's patch 2006-02-08 00:09:46 +00:00
agl d088a97f82 Add data/return stack under/over flow checks for POSIX
This adds extra errors:
#define ERROR_STACK_UNDERFLOW (12<<3)
#define ERROR_STACK_OVERFLOW (13<<3)
#define ERROR_RETSTACK_UNDERFLOW (14<<3)
#define ERROR_RETSTACK_OVERFLOW (15<<3)

On unix the data and return stacks have poison pages above and below them in
memory. This patch adds checks to the sigv signal handler which checks to see
if the faulting address is in one of these pages and, if so, triggers the
correct error.

To see:
: data-overflow 1 2 3 data-overflow ;
: ret-underflow V{ } set-callstack r> ;
: ret-overflow 1 >r ret-overflow ;

(to test data-underflow just call + with an empty stack)


AGL
2006-02-07 22:29:36 +00:00
slava f353ea347b Minor Windows build fixes 2006-02-07 19:37:32 +00:00
slava ac68a16492 FFI now supports passing structs by value
So far, this is only supported on PowerPC.
2006-02-06 06:43:59 +00:00
slava 9e5b6424a1 Initial revision 2006-02-01 02:31:53 +00:00
Slava Pestov 2acb28ae0c Solaris/x86 support 2006-01-31 19:31:31 +00:00
Doug Coleman ace98260e3 Added a fix for sigaction(): now retries on recoverable error EINTR 2006-01-31 01:11:22 +00:00
Slava Pestov fd59c87eae AMD64 FFI fixes; httpd load fix; minor opengl optimization 2006-01-30 07:03:34 +00:00
Slava Pestov 13ef8f9412 cell fix; experimental preferred size cache; floor/ceiling/truncate/mod for floats; fix mod for ratios; fix float equality test 2006-01-27 04:01:14 +00:00
Slava Pestov 64e50829b7 double default heap sizes on amd64 2006-01-25 06:26:31 +00:00
Slava Pestov 2ee22aad49 float parameters work 2006-01-25 06:18:12 +00:00
Slava Pestov 1177038cec stub out AMD64 float parameter code 2006-01-25 01:20:20 +00:00
Slava Pestov 9ea2332a2b FFI work 2006-01-25 00:56:08 +00:00
Slava Pestov df4c2fc067 fix fixnum-shift overflow check 2006-01-21 08:23:14 +00:00
Slava Pestov f9db19f917 fixes 2006-01-21 02:37:38 +00:00
Slava Pestov b67c8ceb16 boxing a null pointer pushes f 2006-01-10 02:17:58 +00:00
Slava Pestov 53c6cb2179 make class< a bit faster, mutable strings 2005-12-26 02:05:31 +00:00
Slava Pestov 346cb9cb7d C type cleanup 2005-12-25 22:46:21 +00:00
Slava Pestov 2f73851117 fix typo 2005-12-25 06:00:10 +00:00
Slava Pestov a5e14acaa3 fix a crash 2005-12-25 04:01:49 +00:00
Slava Pestov dec98203d3 remove repetitions 2005-12-24 23:29:31 +00:00
Slava Pestov 636b46c5b9 fix compile warnings on 64-bit platforms 2005-12-21 07:47:45 +00:00
Slava Pestov 0e6236e6f6 win64 fixes in runtime 2005-12-21 02:36:52 +00:00
Slava Pestov 6c5819af56 fix missing GC check 2005-12-13 01:53:55 +00:00
Slava Pestov ff3876e221 win32 compile error fix 2005-12-13 00:36:16 +00:00
Slava Pestov 58a3e3ed16 new alien>string and string>alien primitives; powerpc backend fixes 2005-12-12 23:51:45 +00:00
Slava Pestov 3bec501259 latest fixes 2005-12-11 23:27:39 +00:00
Slava Pestov 1086f8b3e3 64-bit relocation 2005-12-11 20:14:41 +00:00
Slava Pestov b0cfcca990 fix AMD64 %fixnum* overflow 2005-12-11 03:48:09 +00:00
Slava Pestov aed2d90b30 fix 64-bit issue in runtime 2005-12-05 03:29:55 +00:00
Slava Pestov ca14fd7b1c amd64 work 2005-12-04 07:30:19 +00:00
Slava Pestov d8384c12c9 initial AMD64 porting work 2005-12-02 07:25:44 +00:00
Slava Pestov 4435110231 string hashing kludge; amd64 cpu detection 2005-12-02 04:40:44 +00:00
Slava Pestov 9ef9193308 new hashtable 2005-11-27 22:45:48 +00:00
Slava Pestov eca20beec0 about to bootstrap hashstable 2005-11-25 00:02:20 +00:00
Slava Pestov 036d1f9673 bootstrap fix 2005-11-15 17:58:44 +00:00
Slava Pestov a651cc87b1 various fixes to inference, experimenting with %char-slot vops and interruption checks 2005-11-14 03:04:14 +00:00
Slava Pestov 9440f385e5 interruption checks get compiled now, fixnum/mod fixed on powerpc 2005-11-12 05:37:24 +00:00
Slava Pestov a3687773b5 fix array size fep 2005-11-05 03:50:26 +00:00
Slava Pestov 9d2e4a77a6 fix another Mach-O FFI problem 2005-10-24 02:31:01 +00:00
Slava Pestov b15a262e54 implement mach exception handling 2005-10-24 00:50:29 +00:00
Slava Pestov 3ff1915f1a UI fixes for OS X, compiler fixes for PowerPC 2005-10-12 03:28:17 +00:00
Slava Pestov 29104bb40e fix powerpc relocation bug 2005-10-12 01:46:14 +00:00
Slava Pestov 6b8e232c63 fix bignum emission, put MT in core 2005-10-08 05:15:14 +00:00
Doug Coleman 26d0e7ede5 call get_error_message() for an F_STRING instead of char* 2005-10-07 22:50:31 +00:00
Doug Coleman 7242f38fd7 get_error_message() is for native calls in native/win32/ffi.c
error_message() is called via alien-invoke from factor code
bugfix: the last "fix" caused the factor runtime to get a char* instead of F_STRING
2005-10-06 22:10:27 +00:00
Doug Coleman fa122fd1c0 buffer_to_c_string() now uses strlen() 2005-10-05 04:24:19 +00:00
Doug Coleman 443acc846a Added buffer_to_c_string to go from a win32-api-allocated buffer to a gc-ed char*
Changed whitespace removal
2005-10-05 04:06:57 +00:00
Doug Coleman 7fc87a420b Include ctype.h for isspace() only in win32 2005-10-05 04:02:24 +00:00
Doug Coleman 62958f570e Remove implicit declaration of init_signals() on win32 2005-10-05 03:16:30 +00:00
Doug Coleman b248ab3d3b Remove "\r\n" from last_error() if it exists 2005-10-02 20:15:59 +00:00
Doug Coleman b34da424dd set dll->dll = NULL on failure in ffi_dllopen() 2005-10-02 19:47:33 +00:00
Slava Pestov b6e1569ef5 make panes a bit more flexible 2005-09-25 04:18:12 +00:00
Slava Pestov 9f0434f30f some UI tweaking 2005-09-25 03:21:09 +00:00
Slava Pestov 3c8b073be0 add more env slots 2005-09-24 21:26:04 +00:00
Slava Pestov c4cec1321c rename ifte to if 2005-09-24 19:21:17 +00:00
Slava Pestov 29190ebc3e catch change, new cleanup word, with-server combinator 2005-09-21 00:18:01 +00:00
Slava Pestov 34ff4e2c27 more preliminary work for callcc compilation 2005-09-20 05:59:38 +00:00
Slava Pestov fa1e1a4801 f throw no longer a no-op 2005-09-18 02:25:18 +00:00
Slava Pestov 7ecbfb5c98 big generic word cleanup; kill-literals optimization; continuations overhaul 2005-09-16 06:39:33 +00:00
Slava Pestov bf5d88b649 changes to continuation words 2005-09-14 04:37:50 +00:00
Slava Pestov 27439f95c9 arrays are now better supported, various cleanups 2005-09-12 00:46:55 +00:00
Slava Pestov d0312300b8 unsafe-nth unsafe-set-nth for faster inner loops 2005-09-10 22:27:31 +00:00
Slava Pestov 6952bcdda8 simple labels optimization 2005-09-10 03:40:08 +00:00
Slava Pestov 2bdd82ea53 simpler t 2005-09-09 21:32:38 +00:00
Slava Pestov 55e2a9e232 reworking simplifier and basic blocks 2005-09-09 02:23:54 +00:00
Slava Pestov 258f853911 improved literal killing optimization 2005-09-07 21:21:11 +00:00
Slava Pestov 60d78bc4f1 remove debug code 2005-09-06 00:34:04 +00:00
Slava Pestov 30f0dcf5b9 fix powerpc typo 2005-09-06 00:33:36 +00:00
Slava Pestov 7f7a0a057e working on PowerPC overflow checks 2005-09-05 07:06:47 +00:00
Slava Pestov 7711aff1a5 tweaking stack shuffle compilation 2005-09-04 21:07:59 +00:00
Slava Pestov 74430b8b18 utf16 string unboxing tweak 2005-09-03 21:59:53 +00:00
Slava Pestov b0b5f4f79d alien tweaks 2005-09-03 18:48:25 +00:00
Slava Pestov b1daea44a6 word-name, word-vocabulary are now slots in the word object 2005-08-29 06:34:04 +00:00
Slava Pestov eb16e7a699 some SDL renaming, fix a few typos 2005-08-24 04:30:07 +00:00
Slava Pestov fbd7d4fef7 inspector bug fix, sleep word 2005-08-23 19:50:32 +00:00
Slava Pestov c8eacd7b0b major bootstrap cleanup 2005-08-20 01:46:12 +00:00
Slava Pestov 7426167a5a removed obsolete file 2005-08-16 21:42:32 +00:00
Slava Pestov 9bbf30f91c typo in dll.c 2005-08-16 03:34:10 +00:00
Slava Pestov dcdedf2e90 fix image loading with missing libraries 2005-08-15 19:45:46 +00:00
Slava Pestov 979225805e images referencing libraries that could not be found no longer fail to load 2005-08-15 19:34:00 +00:00
Slava Pestov 2495ef46f3 redesigned generic arithmetic; new tag primitive 2005-08-15 07:25:39 +00:00
Slava Pestov f65aa407e9 \ foo is now a first-class type; this removes the need for inference-level partial eval, and simplifies a lot of other code 2005-08-04 03:56:28 +00:00
Slava Pestov 8c439fad23 Fix overflow in room primitive 2005-07-26 23:54:43 +00:00
Slava Pestov 2283fee960 some code cleanups, factorbot PING fix 2005-07-26 20:39:14 +00:00
Mackenzie Straight 6e51d61c33 add dllexports 2005-07-26 14:41:55 +00:00
Slava Pestov 9c5360cdba document 0.77 changes, print tuple addr in debugger 2005-07-25 03:12:34 +00:00