Joe Groff
e9309a425a
vm: handle async signals at safepoints on unix
...
Factor now supports the new 4.0BSD feature of "signals".
2011-10-27 21:14:46 -07:00
Slava Pestov
05fc6ddad6
vm: a stack underflow inside a primitive could leave a data root in an uninitialized state; if allocating the thrown underflow error triggered a GC, the GC would visit a garbage pointer
2010-09-17 19:46:57 -07:00
Slava Pestov
55ac874eb2
vm: Remove signal_callstack_top nonsense
2010-09-02 22:57:17 -05:00
Slava Pestov
6617eca683
Fix three problems discovered by running math.floats.env tests in a loop:
...
- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly
2010-09-02 22:57:14 -05:00
Slava Pestov
0abdfbfc1b
compiler.cfg: open-code parameter boxing and unboxing for certain C types
2010-07-19 10:25:13 -04:00
Slava Pestov
cea2bf4189
threads: use context-switching primitives
2010-03-29 20:40:17 -04:00
Slava Pestov
7360cccdc5
vm: callstack errors were flipped
2010-03-29 01:53:30 -04:00
Slava Pestov
09aa64baaf
vm: report callstack overflow
2010-03-27 07:45:11 -04:00
Slava Pestov
370718e9a4
vm: signal handling cleanup
2010-03-27 07:33:28 -04:00
Slava Pestov
ba61398145
vm: clean up TLS usage
2010-03-27 03:44:40 -04:00
Slava Pestov
adeb6fb68f
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
Slava Pestov
0e0b750e7d
Update Win64 support
2010-01-25 15:39:34 +13:00
Slava Pestov
d2baa6dde5
vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64
2010-01-06 15:47:36 +13:00
Slava Pestov
a942e2c34d
vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler
2009-12-19 10:59:56 +13:00
Slava Pestov
363bdf8425
vm: minor fixes after code review
2009-11-03 04:56:58 -06:00
Slava Pestov
b341527428
vm: rename gc_root to data_root, add code_root to fix a problem where code blocks would move underneath the PIC compiler if PIC compiler allocated enough
2009-11-02 18:10:34 -06:00
Slava Pestov
6c561b5c4c
vm: rename userenv to special_objects
2009-10-23 00:33:53 -05:00
Slava Pestov
b78202e816
Merge branch 'master' into new_gc
2009-10-22 05:40:57 -05:00
Joe Groff
03df7adc7b
give better error message for windows exceptions, and don't lop off the top end of the exception code when the vm throws the error
2009-10-21 23:37:51 -05:00
Slava Pestov
6ee56ca93a
vm: use iostreams instead of printf for debug messages, clean up a few things
2009-10-21 20:12:57 -05:00
Slava Pestov
f0a1a3ce5b
vm: rename F to false_object, and rename T to true_object
2009-10-18 20:26:21 -05:00
Slava Pestov
030d035e94
vm: code heap compaction at runtime using compact-gc primitive
2009-10-16 11:39:35 -05:00
Phil Dawes
0b2db4018a
Removed VM_PTR macros. All builds reentrant by default
2009-10-14 19:14:57 +01:00
Slava Pestov
8ffd538d27
vm: more code cleanups
2009-10-07 08:33:54 -05:00
Slava Pestov
d066d46c8d
vm: add a remembered set for code blocks which may reference young literals. Improves loading time
2009-10-06 04:36:34 -05:00
Phil Dawes
63266524d7
Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp
2009-09-27 19:42:18 +01:00
Phil Dawes
c495640cc5
forwarding functions replaced with PRIMITIVE_FORWARD() macro
2009-09-25 20:43:01 +01:00
Phil Dawes
1c5329cc2e
renamed factorvm to factor_vm
2009-09-24 08:16:52 +01:00
Phil Dawes
2cfb1b6f02
removed a bunch of superflous blank lines
2009-09-24 08:02:14 +01:00
Phil Dawes
3da9b64c73
renamed vmprim_ to primitive_
2009-09-24 08:02:13 +01:00
Phil Dawes
c1212b1326
Split data out into separate vm-data struct
2009-09-16 08:22:16 +01:00
Phil Dawes
a89a0826ee
Dev checkpoint
2009-09-16 08:20:51 +01:00
Phil Dawes
bd9ae0bc93
fixed stupid signal handler bug
2009-09-16 08:20:50 +01:00
Phil Dawes
898f5be1e0
quick test vocab for mt stuff
2009-09-16 08:20:50 +01:00
Phil Dawes
f60b1e1dd0
moved utility functions and fatal_error out of vm struct since doesn't need state
2009-09-16 08:20:10 +01:00
Phil Dawes
41345583a5
added lookup_vm and removed last usage of vm from windows code
2009-09-16 08:20:09 +01:00
Phil Dawes
38eb7a23f1
removed some error vm-> functions
2009-09-16 08:17:27 +01:00
Phil Dawes
53aa98902e
throw_impl now forwards the vm ptr
2009-09-16 08:16:30 +01:00
Phil Dawes
11bde92057
removed some global functions from errors.cpp
2009-09-16 08:16:29 +01:00
Phil Dawes
1db06cdf53
moved errors.cpp functions to vm
2009-09-16 08:16:18 +01:00
Joe Groff
0284a4b6f8
save the FP status out of the signal context and use it as part of the fp trap factor exception. clear the FP status before continuing after an exception
2009-09-13 23:39:12 -05:00
Slava Pestov
4c0bd2e77d
vm: fix fp_trap_error() so that it can work properly in signal handlers
2009-09-12 18:15:16 -05:00
Joe Groff
e1841cc8d4
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-08 15:37:32 -05:00
Slava Pestov
bd447dca7b
VM: use an std::vector instead of a fixed-size buffer for GC roots
2009-09-08 14:21:09 -05:00
Joe Groff
0b6f017840
Send FP trap signals to Factor as a different vm-error type
2009-09-06 08:44:25 -05:00
Philipp Brüschweiler
18240b0219
misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644
2009-08-10 21:33:07 +02:00
Slava Pestov
ec943c2299
Change (void) to ()
2009-05-05 11:33:35 -05:00
Slava Pestov
7e75312b60
Fixing some build issues on Linux with GCC 4.3
2009-05-04 08:00:06 -04:00
Slava Pestov
7c0a59f7a9
The great type renaming
2009-05-04 04:50:24 -05:00
Slava Pestov
7f48eb2b2c
Use C++ namespaces
2009-05-04 01:46:13 -05:00