Commit Graph

137 Commits (3e839405f8fe14cf72601d1282467d3a7d6c5453)

Author SHA1 Message Date
Slava Pestov 44c78493bf vm: misc cleanups 2009-10-09 03:20:50 -05:00
Slava Pestov b2cae0b6d8 vm: more efficient code heap remembered set 2009-10-08 23:10:32 -05:00
Slava Pestov 6582cba945 vm: split off parts of data_gc into sub-files and clean up logic 2009-10-08 02:10:28 -05:00
Slava Pestov b9f386c693 vm: make a new old_space type to encapsulate a few things, split up generations array somewhat 2009-10-07 14:05:09 -05:00
Slava Pestov bc691eb198 vm: replace generations array with individual instance variables referencing zone objects 2009-10-07 11:59:59 -05:00
Slava Pestov 2c527982fe vm: rename a few things 2009-10-07 08:40:28 -05:00
Slava Pestov 8ffd538d27 vm: more code cleanups 2009-10-07 08:33:54 -05:00
Slava Pestov eaf1afb156 vm: more refactoring 2009-10-06 20:45:47 -05:00
Slava Pestov 40fd28e0a3 vm: refactor forwarding pointer logic 2009-10-06 19:15:54 -05:00
Slava Pestov 8109e7376c vm: simplify some code 2009-10-06 08:55:42 -05:00
Slava Pestov 4d0ec09d9c vm: put code block owner directly in the header, instead of as the first entry in the literal table. Reduces x86-64 image size by ~700kb, also eliminates separate 'strip' set of staging images from deploy tool 2009-10-06 06:25:07 -05:00
Slava Pestov fa2ee8ee7a vm: free up a cell in compiled code block headers 2009-10-06 05:52:45 -05:00
Slava Pestov 326952e919 vm: number of generations is not configurable anymore, split up begin_gc() and end_gc() into collect_{nursery,aging,aging_again,tenured}() 2009-10-06 02:39:12 -05:00
Slava Pestov 1bfa4ef5ca vm: cleanup 2009-10-06 01:42:17 -05:00
Slava Pestov 9ccec33321 vm: more GC refactoring 2009-10-06 00:13:54 -05:00
Slava Pestov d5be02d48f vm: refactoring garbage collector 2009-10-05 22:16:08 -05:00
Slava Pestov 83d21310f2 Change C++ exception usage back into a longjmp() due to GCC bugs 2009-10-05 03:27:28 -05:00
Doug Coleman 8907addf3b Merge branch 'master' of git://factorcode.org/git/factor 2009-10-03 18:27:38 -05:00
Doug Coleman 6d451ac9d8 add ftell primitive 2009-10-03 18:20:35 -05:00
Slava Pestov d30ebc6213 vm.hpp: fix typo 2009-10-03 09:47:06 -05:00
Slava Pestov 3887292543 Big VM cleanup
- Move forward declarations of 'struct factor_vm' to one place
- Rename template parameters from T and TYPE to descriptive names. New convention: CamelCase for template parameters
- Change some higher-order functions taking function pointers into templates, and define classes overriding operator(). There's a bit of new boilerplate here but its more consistent than the old mish-mash approaches
- Put GC state into a gc_state struct
- Use exceptions instead of longjmp for non-local control transfer in GC
- In code GC, instead of interleaving code block tracing with copying, add code blocks which need to be revisited to an std::set stored in the gc_state
2009-10-03 08:47:05 -05:00
Joe Groff 8edde0ffeb 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
Phil Dawes a45ccd1a72 calls dispatched as per multithreaded, but checked against singleton 2009-09-30 21:25:50 +01:00
Phil Dawes a514f79d3c inlineimpl.hpp is toast 2009-09-29 19:53:10 +01:00
Phil Dawes 0ca2b9b3b2 Converted some callback fns to use member-fn pointers 2009-09-28 19:45:10 +01:00
Phil Dawes 49df5b1078 moved local_roots and write_barrier stuff out of inlineimpls.hpp 2009-09-28 19:02:51 +01:00
Phil Dawes 132628985c removed vm-data.hpp 2009-09-27 20:09:09 +01:00
Phil Dawes 63266524d7 Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp 2009-09-27 19:42:18 +01:00
Slava Pestov 3024810dfa 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
Slava Pestov 3c38656fd2 vm: fix windows compilation (untested) 2009-09-26 02:41:01 -05:00
Slava Pestov 3d196110b7 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 5195fdaeaa vm: make heap data-type object-oriented 2009-09-25 20:32:00 -05: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 8662e9e9e4 put mach call_fault_handler in the vm 2009-09-16 08:22:18 +01:00
Phil Dawes 82f0c90719 fpe signals working on unix again 2009-09-16 08:22:18 +01:00
Phil Dawes 3db680547a Added -DREENTRANT option to Makefile
Also renamed FACTOR_MULTITHREADED to FACTOR_REENTRANT
2009-09-16 08:22:18 +01:00
Phil Dawes 57ffdae57f asm math functions pass vm ptr to overflow function in 3rd arg (X86.32) 2009-09-16 08:22:17 +01:00
Phil Dawes 897288123b Added data constructor to initialize bools in factorvmdata struct 2009-09-16 08:22:17 +01:00
Phil Dawes 442f6ef3f1 moved signal handlers into vm object 2009-09-16 08:22:16 +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 277186ea62 Switched on singleton flag 2009-09-16 08:20:51 +01:00
Phil Dawes 1f4abd57b8 added FACTOR_MULTITHREADED_TLS option 2009-09-16 08:20:51 +01:00
Phil Dawes a8f233c055 thread_id is a pthread_t on unix 2009-09-16 08:20:51 +01:00
Phil Dawes c623658aa2 added vm-ptr primitive 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 05d17492ed cleaned up code a bit, added multithreaded mode flags 2009-09-16 08:20:50 +01:00
Phil Dawes 9b013faed4 removed vm singleton usage from unix stuff 2009-09-16 08:20:49 +01:00