Björn Lindqvist
|
bf7161604e
|
VM: simplified logic in data_heap_checker
|
2015-05-17 07:59:34 +02:00 |
Björn Lindqvist
|
3887b58c02
|
VM: cleanups, like removing redundant paranthesis and removing method
declarations that doesn't exist
|
2015-05-09 20:04:22 -07:00 |
Björn Lindqvist
|
a6e2834252
|
VM: refactoring to use the visit_object_array method
|
2015-05-09 20:04:21 -07:00 |
Björn Lindqvist
|
0a6486ef78
|
VM: the aging_policy and nursery_policy classes are so small that they
can be in the same cpp file with the methods that use them
|
2015-05-09 20:04:21 -07:00 |
Björn Lindqvist
|
e4bb3058e0
|
VM: the copying_collector only contained one method, so it can easily be
merged with its base class
|
2015-05-09 20:04:21 -07:00 |
Björn Lindqvist
|
685a795aa0
|
VM: to_tenured_collector isn't needed, it's just a normal collector instance
|
2015-05-09 20:04:21 -07:00 |
Björn Lindqvist
|
9bfc43144e
|
VM: debug macros FACTOR_PRINT and FACTOR_PRINT_MARK to make better debug
printing messages than just using std::cout
|
2015-05-09 20:04:21 -07:00 |
Björn Lindqvist
|
fa0ff77c45
|
VM: reset the unused parts of the data and retain stack segments with a bit pattern (good for debugging)
|
2015-04-29 09:31:54 -07:00 |
Björn Lindqvist
|
acc1bd3221
|
compiler.*: removing the check-d and check-r slots from gc-map and adjusting code that depended on those
|
2015-04-29 09:31:53 -07:00 |
Björn Lindqvist
|
2cd2aa498a
|
VM: the compiler doesn't emit any live overinitialized locations anymore
Any overinitialized location immediately becomes garbage and is not
reused again. This is very nice because then the gc maps can be
simpler again.
|
2015-04-29 09:31:53 -07:00 |
Björn Lindqvist
|
1d251f7b6a
|
VM: new function visit_object to replace trace_object
|
2015-02-28 14:14:30 -08:00 |
Björn Lindqvist
|
6b29c0ea00
|
VM: refactoring to remove redundancy in retainstack|datastack_to_array
|
2015-02-28 14:14:30 -08:00 |
Björn Lindqvist
|
0798928996
|
VM: cleanup of some infrequently used functions that can be replaced with direct code
also replacing some bitshifts with easier to understand multiplies and
divides, they are equally fast nowadays
|
2015-02-28 14:14:30 -08:00 |
Björn Lindqvist
|
ab75e3b05d
|
VM: splits out the little ugly scan_next-object + goto-loop into a function trace_card()
|
2015-02-28 14:14:30 -08:00 |
Björn Lindqvist
|
8e91ca3e31
|
VM: simplification of the trace_partial_objects function
|
2015-02-28 14:14:30 -08:00 |
Björn Lindqvist
|
a43a455990
|
VM: the unmarker classes are not needed, easier to just send the unmask pattern to the trace_cards function directly
|
2015-02-28 14:14:30 -08:00 |
Björn Lindqvist
|
b5a206c587
|
VM: new function visit_mark_stack() to factor out the mark stack iteration
|
2015-02-28 14:14:29 -08:00 |
Björn Lindqvist
|
667e5768ba
|
VM: it's confusing that slot_visitors are called "workhorse" sometimes, let's standardize the name "visitor"
|
2015-02-28 14:14:29 -08:00 |
Björn Lindqvist
|
5490c50217
|
VM: visit_roots and visit_contexts where always called in tandem, make a new method visit_all_roots that calls them both
|
2015-02-28 14:14:29 -08:00 |
Björn Lindqvist
|
f5dc4afb2e
|
VM: better error message in case factor_vm::store_external_address fails
|
2015-01-28 14:58:22 +00:00 |
Björn Lindqvist
|
434e4ef4b7
|
VM: fix the debug printing so that instead of always printing to std::cout, you supply the stream to print to
|
2015-01-28 14:58:21 +00:00 |
Björn Lindqvist
|
d18c48c75b
|
VM: possible fix for #1265. the size of the stack frame appears to have been miscalculated in iterate_callstack which this commit fixes.
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
ee5fd49b9e
|
VM: simplified fixup_gc_workhorse::fixup_data by mering lots of functions only used once
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
8ea1eea4e1
|
VM: instead of passing around the trace_contexts_p arg, just clear the contexts in primitive_save_image_and_exit() it has the same effect but is simpler
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
4d7bc4c169
|
VM: merge of slot_visitor and code_block_visitor
Looks like there is no reason for them to be separate classes and by
merging them you can simplify lots of code.
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
d2aea0f606
|
VM: replaced the reset_generation() generic method with one method for each generation
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
dc9e937beb
|
VM: vm::iterate_active_callstacks is only used once, so it's simpler if the code body is "inline"
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
b61eaa8a16
|
VM: the full_collector class isn't needed since it is only used once
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
693e8ad33a
|
VM: the clear_mark_bits methods are only called once -- make the calls inline instead
|
2015-01-15 09:29:14 +00:00 |
Björn Lindqvist
|
fb9fa12cdd
|
VM: change the definition of entry_point in word and quotation from void* to cell
this gets rid of lots of redundant casts from void* to cell
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
f0bf693beb
|
VM: free_list_allocator::first_block, last_block and next_block_after can be refactored away
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
1beac119d8
|
VM: removes the template parameter from mark_bits
since mark_bits only deals with arithmetic on memory addresses, it
doesn't need to be specialized so it can be untemplateized
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
af270cb4d8
|
VM converts the methods callstack::frame_top_at and code_block::offset to use cells instead of void*'s
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
615420fe61
|
VM: calls to visit_code_roots() replaced with visit_uninitialized_code_blocks()
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
eb7a5ab1ba
|
VM: some more fixing to make the types match better, converting void* to cell
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
e47181e87a
|
VM: change type of callstack_top and callstack_bottom from void* to cell
cell and void* is always the same size, but now you can remove lots of
redundant type casts from void* to cell.
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
a6e191a490
|
VM: the frame_return_address and set_frame_return_address functions aren't needed (clearer to read/write the pointers directly)
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
11e906139b
|
VM: code_block::scan, make it so the method always returns -1 if scan can't be determined, part of the fix for #1265
|
2015-01-15 09:29:13 +00:00 |
Björn Lindqvist
|
8ee1f890f2
|
VM: refactoring intended to remove trace_*-methods that are just
simple delegations to the data/code_visitor instances
|
2015-01-15 09:29:12 +00:00 |
John Benediktsson
|
025283f252
|
vm: store full command-line including executable first argument.
|
2014-12-22 22:39:52 -08:00 |
John Benediktsson
|
70778b89ae
|
Revert "VM: always clear the data and retainstack in general_error because they might contain uninitialized values (#1187)"
This reverts commit 378f208025 .
|
2014-12-04 11:46:28 -08:00 |
Doug Coleman
|
875d2421df
|
vm: We don't want ambiguity for which print triggered on a gc error. Differentiate the error messages.
|
2014-12-04 10:35:32 -08:00 |
Björn Lindqvist
|
378f208025
|
VM: always clear the data and retainstack in general_error because they might contain uninitialized values (#1187)
|
2014-12-04 10:26:23 -08:00 |
Björn Lindqvist
|
1cec8a7814
|
VM: modifying the uninitialized_blocks map in place instead of creating a new one is more efficient
|
2014-12-04 10:23:34 -08:00 |
Björn Lindqvist
|
451fc12411
|
VM: redundant if, trace_cards() doesnt do anything for empty generations anyway
|
2014-12-04 10:23:33 -08:00 |
Björn Lindqvist
|
93134b949f
|
VM: the aging_collector and nursery_collector classes aren't needed because they are just simple instatiations of copying_collector
|
2014-12-04 10:23:33 -08:00 |
Björn Lindqvist
|
423e983514
|
VM: refactoring to get rid of the megamorphic_call_stub and check_code_pointer() words
|
2014-12-04 10:23:33 -08:00 |
Björn Lindqvist
|
885b5c7043
|
VM: no need for a nursery_space class, it's just a bump_allocator
|
2014-12-04 10:23:33 -08:00 |
John Benediktsson
|
4837ceebb4
|
vm: fix OS X issue with using symlinks from outside $factor.
|
2014-12-03 19:19:52 -08:00 |
Doug Coleman
|
c675694619
|
vm: Annotate more places where we can gc.
Code formatting fix.
|
2014-11-29 19:25:46 -06:00 |