Commit Graph

831 Commits (e81e07693571535076e7adbe4fa74153cfb6d1ae)

Author SHA1 Message Date
Joe Groff 435cd02200 keep a map of thread ids to vm pointers. use this to look up the correct VM to handle mach exceptions on os x 2009-10-02 12:03:05 -05:00
Joe Groff f867a776d9 import std::tr1/boost ::unordered_map into the factor namespace instead of using #define 2009-10-02 11:13:27 -05:00
Joe Groff b4ae77764c don't leak startargs in start_standalone_factor_in_new_thread 2009-10-02 11:11:17 -05:00
Slava Pestov 96df486753 vm: add assertions to tls_vm() 2009-10-02 09:37:04 -05:00
Slava Pestov 805fea33cb vm: fix register clobberage in PowerPC c_to_factor (untested) 2009-10-02 09:19:31 -05:00
Slava Pestov 512bf8befa vm: fix register clobberage in x86 c_to_factor 2009-10-02 09:12:09 -05:00
Slava Pestov d86ba27577 vm: fix compile error with DEBUG=1 2009-10-02 03:30:02 -05:00
Slava Pestov 2c136d6536 Merge branch 'reentrantvm' of git://github.com/phildawes/factor 2009-10-02 03:28:21 -05:00
Slava Pestov 913408c2a3 vm: fix stack alignment in primitive_inline_cache_miss 2009-10-02 03:25:18 -05:00
Phil Dawes ded33eda87 removed some superflous newlines 2009-10-01 07:33:16 +01:00
Phil Dawes 70f25c71b9 calls dispatched as per multithreaded, but checked against singleton 2009-09-30 21:25:50 +01:00
Phil Dawes 65bcd86c10 ppc asm to pass vm pointer: inline_cache_miss, set_callstack 2009-09-30 19:43:36 +01:00
Phil Dawes a73e6f20d4 ppc asm to pass vm pointer: overflow fns 2009-09-30 07:59:36 +01:00
Phil Dawes 6fa0a93498 ppc asm to pass vm pointer: initial bootstrap 2009-09-28 07:48:37 +01:00
Phil Dawes 3a88d8c49e inlineimpl.hpp is toast 2009-09-29 19:53:10 +01:00
Phil Dawes b6718641dc Converted some callback fns to use member-fn pointers 2009-09-28 19:45:10 +01:00
Phil Dawes 791d654f92 moved local_roots and write_barrier stuff out of inlineimpls.hpp 2009-09-28 19:02:51 +01:00
Slava Pestov ab8c6e9978 Word hashcodes are now computed from the word's name/vocabulary, removing a source of non-determinism 2009-09-27 21:09:11 -05:00
Phil Dawes dbc1411a6a removed vm-data.hpp 2009-09-27 20:09:09 +01:00
Phil Dawes 9b7412b8f8 Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp 2009-09-27 19:42:18 +01:00
U-SLAVA-DFB8FF805\Slava 57b98e2c55 vm: fix compilation on Windows 2009-09-26 02:56:55 -05:00
Slava Pestov 6578bd0533 vm: fix windows compilation (untested) 2009-09-26 02:41:01 -05:00
Slava Pestov fa598be667 Fix GC root safety in word-xt primitive 2009-09-25 21:42:21 -05:00
Slava Pestov f846afd661 vm: remove safe_malloc now that everything uses constructors instead 2009-09-25 21:22:05 -05:00
Slava Pestov f81c8549f4 Make segment, context, data_heap, zone more object-oriented, and fix crash when calling undefined symbols 2009-09-25 21:17:20 -05:00
Slava Pestov c046ff4b23 vm: make heap data-type object-oriented 2009-09-25 20:32:00 -05:00
Slava Pestov d017a53227 Merge branch 'vm_cleanup' of git://github.com/phildawes/factor 2009-09-25 19:04:19 -05:00
Slava Pestov 11d716e8f7 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-25 18:23:36 -05:00
Slava Pestov b14c683b32 vm: ignore 'declare' calls in non-optimizing compiler 2009-09-25 18:08:21 -05:00
Slava Pestov 602776c885 vm: clean up os-unix.cpp 2009-09-25 18:08:00 -05:00
Phil Dawes 6b7717bf37 forwarding functions replaced with PRIMITIVE_FORWARD() macro 2009-09-25 20:43:01 +01:00
Phil Dawes e26bbbe9a0 removed VM_ASM_API_OVERFLOW (VM_ASM_API now regparm(3)) 2009-09-25 20:33:38 +01:00
Phil Dawes 4552e02624 made inline_gc a VM_C_API function 2009-09-25 18:29:07 +01:00
Phil Dawes f5c70d4ad7 make inline_gc regparm(3) and cleaned up %call-gc stack alignment 2009-09-24 21:45:56 +01:00
Phil Dawes 8173ef4710 fix c_to_factor stack alignment 2009-09-24 20:18:42 +01:00
Phil Dawes 6bb647d308 fix lazy_jit_compile to not abuse stack on x86.32 2009-09-24 19:59:37 +01:00
Slava Pestov 67a8bb7370 vm/cpu-x86.32.S: formatting fix 2009-09-24 06:25:01 -05:00
Slava Pestov cb497f009b Merge branch 'vm_cleanup' of git://github.com/phildawes/factor 2009-09-24 04:31:55 -05:00
Slava Pestov 576e725662 vm: Fix potential crash in <word> primitive if profiling is enabled 2009-09-24 04:31:11 -05:00
Phil Dawes 57840562f5 renamed myvm member variable to parent_vm 2009-09-24 08:16:57 +01:00
Phil Dawes 83b0769eef renamed factorvm to factor_vm 2009-09-24 08:16:52 +01:00
Phil Dawes 3b8292db8e bignum indentation and macro cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes 35b2657f53 bignum indentation cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes e566656e46 removed a bunch of superflous blank lines 2009-09-24 08:02:14 +01:00
Phil Dawes 46bab62689 misc cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes d25fe552ab removed superflous whitspace lines 2009-09-24 08:02:14 +01:00
Phil Dawes e3ac531fdb renamed vmprim_ to primitive_ 2009-09-24 08:02:13 +01:00
Slava Pestov 9d90bdd439 Fix conflict 2009-09-20 23:18:07 -05:00
Slava Pestov ea44ea3522 math.vectors.simd: add saturated arithmetic operations 2009-09-20 23:16:02 -05:00
Phil Dawes d2afb4b344 put mach call_fault_handler in the vm 2009-09-16 08:22:18 +01:00
Phil Dawes 2cf2dab48e fpe signals working on unix again 2009-09-16 08:22:18 +01:00
Phil Dawes 8049b441c2 imul clobbers arg2 on x86.64, so stashing vm ptr on the stack 2009-09-16 08:22:18 +01:00
Phil Dawes a8d1e5187d Added -DREENTRANT option to Makefile
Also renamed FACTOR_MULTITHREADED to FACTOR_REENTRANT
2009-09-16 08:22:18 +01:00
Phil Dawes 617a7cbd65 Added more init code to vm constructor.
Also removed dummy variables file as have fixed that problem now
2009-09-16 08:22:18 +01:00
Phil Dawes c7b7517f36 small x86 asm cleanup 2009-09-16 08:22:17 +01:00
Phil Dawes 8a65f35c31 vm passed in primitives as arg0 for x86.64 2009-09-16 08:22:17 +01:00
Phil Dawes 480a15c2c3 Added vm passing to inline_cache_miss x86.32 asm 2009-09-16 08:22:17 +01:00
Phil Dawes 3343723ee3 Don't return functions returning void. -O3 seems to optimize them out! 2009-09-16 08:22:17 +01:00
Phil Dawes deb7af70bb asm math functions pass vm ptr to overflow function in 3rd arg (X86.32) 2009-09-16 08:22:17 +01:00
Phil Dawes 3ecff2c0eb fixed bug where vm_char being treated as 1byte type 2009-09-16 08:22:17 +01:00
Phil Dawes 34ce334317 Added data constructor to initialize bools in factorvmdata struct 2009-09-16 08:22:17 +01:00
Phil Dawes 67ac514a3b Added vm ptr to math overflow functions 2009-09-16 08:22:17 +01:00
Phil Dawes b02944c6d5 moved signal handlers into vm object 2009-09-16 08:22:16 +01:00
Phil Dawes eee1de23c8 removed debugging 2009-09-16 08:22:16 +01:00
Phil Dawes e8d1612e8e Split data out into separate vm-data struct 2009-09-16 08:22:16 +01:00
Phil Dawes b07550620f Dev checkpoint 2009-09-16 08:20:51 +01:00
Phil Dawes 9bf6f97e35 Switched on singleton flag 2009-09-16 08:20:51 +01:00
Phil Dawes 9e460f6dec removed vm ptr from mach_signal and some other places 2009-09-16 08:20:51 +01:00
Phil Dawes 544bc3cd33 removed vm ptr from os-macosx.mm 2009-09-16 08:20:51 +01:00
Phil Dawes e49fa4109d added FACTOR_MULTITHREADED_TLS option 2009-09-16 08:20:51 +01:00
Phil Dawes f4af39b60e thread_id is a pthread_t on unix 2009-09-16 08:20:51 +01:00
Phil Dawes b1c68d92b7 added threadsafe defines. Dunno if they do much 2009-09-16 08:20:51 +01:00
Phil Dawes 3a3154797c fixed stupid signal handler bug 2009-09-16 08:20:50 +01:00
Phil Dawes 2e50da6beb added vm-ptr primitive 2009-09-16 08:20:50 +01:00
Phil Dawes 3345922330 quick test vocab for mt stuff 2009-09-16 08:20:50 +01:00
Phil Dawes ca16daa4b2 cleaned up code a bit, added multithreaded mode flags 2009-09-16 08:20:50 +01:00
Phil Dawes fa6d8d239b removed vm singleton usage from unix stuff 2009-09-16 08:20:49 +01:00
Phil Dawes 3c139593c5 moved the thread stuff around a bit 2009-09-16 08:20:49 +01:00
Phil Dawes 1456fb3c97 removed vm ptrs from unix code (still in signal handlers tho) 2009-09-16 08:20:10 +01:00
Phil Dawes 784b8d16ae 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 b02c602a89 added vm passing to some alien/boxing functions and added some vm asserts 2009-09-16 08:20:10 +01:00
Phil Dawes 5cd2fbb564 vm ptr passed to lazy_jit_compile on x86.64 2009-09-16 08:20:10 +01:00
Phil Dawes 334f4c3455 overflow functions now retrieving their vm ptr from above ds stack 2009-09-16 08:20:09 +01:00
Phil Dawes be1b079eb5 Primitives now pass vm ptr on 64bit x86 2009-09-16 08:20:09 +01:00
Phil Dawes 6ddd3c654e fixed up linux64 bootstrap (single threaded) 2009-09-16 08:20:09 +01:00
Phil Dawes aa005c948f win32 main starts factorvm in new thread 2009-09-16 08:20:09 +01:00
Phil Dawes 5c2a28173a Start windows factor in a spawned thread (for testing) 2009-09-16 08:20:09 +01:00
Phil Dawes 9cac5e8aa9 added lookup_vm and removed last usage of vm from windows code 2009-09-16 08:20:09 +01:00
Phil Dawes 12ca7bdc57 added factorvm ptrs to the rest of alien functions.
(Left commented debug lines to remind me that these haven't been tested yet, and some are osx specific)
2009-09-16 08:17:27 +01:00
Phil Dawes e98f168a11 print_native_string doesn't need singleton ptr 2009-09-16 08:17:27 +01:00
Phil Dawes e05f91f3a8 cleaning up stray vm singleton usage 2009-09-16 08:17:27 +01:00
Phil Dawes e2d246f371 removed most global functions from factor.cpp 2009-09-16 08:17:27 +01:00
Phil Dawes 20ef4200fb removed some error vm-> functions 2009-09-16 08:17:27 +01:00
Phil Dawes 700e03a6a6 removed some vm-> forwarding functions 2009-09-16 08:17:26 +01:00
Phil Dawes 2f3cd4d23d removed some vm-> pointers 2009-09-16 08:17:26 +01:00
Phil Dawes 005549ba43 vm pointer passed to nest_stacks and unnest_stacks (win32) 2009-09-16 08:17:26 +01:00
Phil Dawes cdb6304fef Dev checkpoint 2009-09-16 08:17:26 +01:00
Phil Dawes 58190c06dc passing ptr in boolean boxing and save_callstack_bottom 2009-09-16 08:17:26 +01:00
Phil Dawes 0a15e20e12 Added basic win32 start-thread support 2009-09-16 08:17:26 +01:00
Phil Dawes fa2dccd6d3 vm passed in box_alien and alien_offset (win32) 2009-09-16 08:16:33 +01:00