Joe Groff
2eba1b5449
cpu.x86: reduce compiled frames by 2 cells too
2011-12-14 09:56:49 -08:00
Joe Groff
079025559d
simplify function prologs
2011-12-14 09:56:49 -08:00
Joe Groff
2f20ee6fb0
vm: fix types after rebase
2011-12-14 09:56:49 -08:00
Joe Groff
604ceb957c
vm: replace remaining stack_frame-based logic
2011-12-14 09:56:49 -08:00
Joe Groff
d74f194b07
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
f6a5f48da0
vm: remove iterate_callstack_object
2011-12-14 09:56:48 -08:00
Joe Groff
a1958c67bd
vm: callstack_reversed for callstack_to_array
2011-12-14 09:56:48 -08:00
Joe Groff
0af5fff27c
remove iterate_callstack now that it's unused
2011-12-14 09:56:48 -08:00
Joe Groff
822a658cc3
vm: callstack_reversed in call_frame_scrubber
2011-12-14 09:56:48 -08:00
Joe Groff
9236c05e60
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
e6a80aa9aa
vm: callstack_reversed in code_block_visitor
2011-12-14 09:56:48 -08:00
Joe Groff
d12b6e375b
vm: iterate_callstack_reversed in slot_visitor
2011-12-14 09:56:47 -08:00
Joe Groff
e116bc497b
vm: reversed callstack iteration
2011-12-14 09:56:47 -08:00
Joe Groff
e2fafaed9c
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
ef38688e87
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
5b9aee2c91
vm: don't suffer null return addresses
2011-12-14 09:56:46 -08:00
Joe Groff
ee656387ea
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
1911905c6b
vm: frame size for signal handler code blocks
2011-12-14 09:56:46 -08:00
Joe Groff
0b94018d9f
vm: initialize all_blocks set after initial fixup
2011-12-14 09:56:46 -08:00
Joe Groff
3868895b56
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
36d1e0a78c
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
d6227c182b
vm: pack frame size into code block header bits
2011-12-14 09:56:45 -08:00
Joe Groff
c9cc98d124
compiler.constants: remove unused constants
2011-12-14 09:56:45 -08:00
Joe Groff
e21f316583
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
fe767253a1
math.vectors: add higher-order stack effect to vif
2011-12-13 19:46:44 -08:00
Joe Groff
bd7e6b33f8
vm: erase code blocks from all_blocks during sweep
...
Fixes #437
2011-12-13 12:28:09 -08:00
Joe Groff
083b856604
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
4bbb2f5b72
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
4870ac8f1d
vm: add compact-gc command to factorbug
2011-12-12 19:03:42 -08:00
Joe Groff
d927a070ed
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
ff50cc6f0f
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
6e141b8f6e
added B: (break for parsing words) and appropriate documentation
2011-12-10 20:59:22 -05:00
rien
b3747936b9
fixed effect based on inner behavior and outer context
2011-12-10 19:47:34 -05:00
Joe Groff
3deae96995
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
abc953ecea
help-lint fixes for recent changes
2011-12-07 12:26:35 -08:00
Joe Groff
47fc91e948
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
df19e2ee01
regexp.parser: fix failing test
2011-12-06 21:11:58 -08:00
Joe Groff
2e4d6f724b
compiler: fix failing test
2011-12-06 21:11:44 -08:00
Samuel Tardieu
83d8569197
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
b667e4ff7e
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
80385770ef
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
72fdb8c5fb
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
e75a4c13b4
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
ad8a1c3905
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
e9809a67e8
basis/*: Pare down some using lists
2011-11-30 23:15:43 -08:00
Doug Coleman
cab4dc6ba3
tools.profiler.sampling: Don't use calendar because it pulls in ratios
2011-11-30 23:15:43 -08:00
Doug Coleman
ab41dd556f
memoize: Use identity hashtables for macros
2011-11-30 23:15:42 -08:00
Doug Coleman
d283eac921
combinators.smart: Tell the stack checker that the return values from inputs/ouputs are input-parameters
...
Fixes #435
2011-11-30 23:15:42 -08:00
Doug Coleman
3ba787b277
core/basis: trim down using lists
2011-11-30 23:15:42 -08:00
Joe Groff
4552caf489
furnace.auth.providers.couchdb: fix manifest
2011-11-30 17:58:52 -08:00