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