Commit Graph

23182 Commits (af989f533a5edcf71c990f6f754bd9da2e6579f2)

Author SHA1 Message Date
Joe Groff af989f533a cpu.x86.*: clean up signal handler prolog code
Also bump the signal handler frame sizes up again since it looks like we shrank them too much.
2011-12-14 09:56:50 -08:00
Joe Groff 34a1257da8 vm: factor out word_stack_frame_size 2011-12-14 09:56:49 -08:00
Joe Groff 530db5fa95 vm: get rid of now-trivial innermost_stack_frame 2011-12-14 09:56:49 -08:00
Joe Groff 6dd5973bdd cpu.x86: reduce compiled frames by 2 cells too 2011-12-14 09:56:49 -08:00
Joe Groff 1c44a4e8ae simplify function prologs 2011-12-14 09:56:49 -08:00
Joe Groff c339bb9ccf vm: fix types after rebase 2011-12-14 09:56:49 -08:00
Joe Groff e56f2b5753 vm: replace remaining stack_frame-based logic 2011-12-14 09:56:49 -08:00
Joe Groff 9df2c107dc vm: remove _reversed from callstack iterator names
Now that they're the only game in town we can give them the short names
2011-12-14 09:56:49 -08:00
Joe Groff e5f591c772 vm: remove iterate_callstack_object 2011-12-14 09:56:48 -08:00
Joe Groff 1ef3454e1a vm: callstack_reversed for callstack_to_array 2011-12-14 09:56:48 -08:00
Joe Groff 099559c191 remove iterate_callstack now that it's unused 2011-12-14 09:56:48 -08:00
Joe Groff b8e80ee900 vm: callstack_reversed in call_frame_scrubber 2011-12-14 09:56:48 -08:00
Joe Groff 841600fc6e vm: stage code block map fixup properly for GC
Don't update the map until the very last thing, and pass untranslated addresses to the iterator functors. Somewhat complicated by the fact that, for startup_fixup, the map is initialized with fixed-up values, so the fixup functor needs a flag indicating whether it operates with a fixed or unfixed code heap map.
2011-12-14 09:56:48 -08:00
Joe Groff faa9b4ea3f vm: callstack_reversed in code_block_visitor 2011-12-14 09:56:48 -08:00
Joe Groff 00967b4931 vm: iterate_callstack_reversed in slot_visitor 2011-12-14 09:56:47 -08:00
Joe Groff 41f3190349 vm: reversed callstack iteration 2011-12-14 09:56:47 -08:00
Joe Groff 5926257d1e WIP verify_callstack function
dumps callstack in reverse order so i can visually inspect that it matches the old forward walking logic
2011-12-14 09:56:47 -08:00
Joe Groff f331766fc7 vm: method to calculate frame size for address
If we're before the prolog or or in a leaf procedure, the stack frame is really a leaf frame created by the signal handler, with a known fixed size, instead of the real stack frame (if any) with a different size.
2011-12-14 09:56:47 -08:00
Joe Groff 9bdeac9745 vm: don't suffer null return addresses 2011-12-14 09:56:46 -08:00
Joe Groff 5f0102fb7c cpu.*.bootstrap: return address for (set-context)
Instead of pushing zero as the fake return address for a set-context call, push an address that points back into the primitive so that callstack walking can match the frame back to the subprimitive.
2011-12-14 09:56:46 -08:00
Joe Groff 8981fccbe8 vm: frame size for signal handler code blocks 2011-12-14 09:56:46 -08:00
Joe Groff b57d3af1d5 vm: initialize all_blocks set after initial fixup 2011-12-14 09:56:46 -08:00
Joe Groff 45ed3c4a56 vm: make all_blocks a set of cells
gcc was doing bad things assuming the pointer given to upper_bound was aligned
2011-12-14 09:56:46 -08:00
Joe Groff 12c569e3a7 vm: verifier shouldn't check for leftovers
It doesn't work after things have been freed
2011-12-14 09:56:45 -08:00
Joe Groff 14e0c9f482 vm: pack frame size into code block header bits 2011-12-14 09:56:45 -08:00
Joe Groff 84e817ef95 compiler.constants: remove unused constants 2011-12-14 09:56:45 -08:00
Joe Groff 9186a1bdf3 vm: store stack frame size in code blocks
Change modify-code-heap primitive so it takes a sixth element in each array for the frame size.
2011-12-14 09:56:45 -08:00
Joe Groff 3365e1adbb math.vectors: add higher-order stack effect to vif 2011-12-13 19:46:44 -08:00
Joe Groff 06a87c41d6 vm: erase code blocks from all_blocks during sweep
Fixes #437
2011-12-13 12:28:09 -08:00
Joe Groff 8f8873c859 vm: reinitialize all_blocks from scratch after gc
Faster and more likely to be correct than trying to fixup the existing set
2011-12-12 19:05:48 -08:00
Joe Groff 857b52401c vm: only verify all_blocks set if it's invalid
Verifying on every sample is way too slow to be practical when debugging bootstrap.
2011-12-12 19:04:56 -08:00
Joe Groff f51e262e44 vm: add compact-gc command to factorbug 2011-12-12 19:03:42 -08:00
Joe Groff 819e1602be cpu.x86: enable POPCNT with a flag
If bootstrapped with '-enable-popcnt' and the host CPU supports it, enable the POPCNT-based fixnum-bit-count intrinsic. Fixes #436.
2011-12-12 16:43:49 -08:00
Joe Groff a6b4d30378 tools.deploy.shaker: more timid global stripping
Strip globals by replacing their value with "f". The list of globals to strip was written with the assumption that the stripped globals would get restored like normal hashtable keys when accessed. This isn't valid anymore with the globals optimization, since creating a new box breaks the foldable invariant between a global name and its associated box. Need to go through the list of globals to strip and find the ones that actually can be entirely removed as opposed to just reset to f. Fixes #445. Fixes #446.
2011-12-12 16:08:25 -08:00
rien f15ef329a0 added B: (break for parsing words) and appropriate documentation 2011-12-10 20:59:22 -05:00
rien 3b52a5ae6e fixed effect based on inner behavior and outer context 2011-12-10 19:47:34 -05:00
Joe Groff 30dc7d45e7 math.vectors.simd.intrinsics: fix deploy bug
If not called with a known-at-compile-time SIMD type, the intrinsic definitions were leaving behind runtime quotations that referenced the c-array words after c-type information had been stripped, causing deployed applications that used SIMD to fail.
2011-12-07 12:47:38 -08:00
Doug Coleman 5fb4b86fbf help-lint fixes for recent changes 2011-12-07 12:26:35 -08:00
Joe Groff 7dbdc54052 command-line: don't pull in tools.errors
tools.errors brings the debugger with it, which bloats deploy image size
2011-12-07 10:52:58 -08:00
Joe Groff ba860e27a9 regexp.parser: fix failing test 2011-12-06 21:11:58 -08:00
Joe Groff 881f9ba3f1 compiler: fix failing test 2011-12-06 21:11:44 -08:00
Samuel Tardieu 097016d5cb lazy.lists: lfrom-by documentation fix
Also add a unit test for lfrom-by.
2011-12-06 21:08:16 +01:00
Philipp Brüschweiler 7dded87bf1 ui.backend.gtk: don't die if the icon doesn't exist, partially fixes #369 2011-12-06 09:05:05 +01:00
Doug Coleman e884ce357e compiler: The non-optimizing compiler is too slow with smart combinators in the compiler. Speed up bootstrap by not using them. 2011-12-05 14:50:51 -08:00
Slava Pestov 91e345456e help.html: change back to the old naming scheme because we have too many links to existing doc articles all over the net 2011-12-04 13:46:13 -08:00
Doug Coleman d5ccd7605a memoize: Don't use identity hashtables for macro expansion; it uses all the memory. Fixes #439. 2011-12-01 10:14:16 -08:00
Doug Coleman 64886491e4 bootstrap/stage1: Turn off parser-quiet? flag sooner so the files loaded in the USING: list in stage2 print a loading message. 2011-11-30 23:15:43 -08:00
Doug Coleman 5a0f1904b4 basis/*: Pare down some using lists 2011-11-30 23:15:43 -08:00
Doug Coleman 77d7865cbf tools.profiler.sampling: Don't use calendar because it pulls in ratios 2011-11-30 23:15:43 -08:00
Doug Coleman 171e539b6a memoize: Use identity hashtables for macros 2011-11-30 23:15:42 -08:00