Doug Coleman
1ad2e058d1
alien.cpp: Add comment about allocation.
2013-11-28 10:59:45 -06:00
Doug Coleman
268fa0225d
os-windows: Remove FACTOR_DLL which is NULL and only used in one place.
2013-11-24 22:06:57 -06:00
Doug Coleman
0a5cdfa3e6
vm: init_parameters_from_args calls default_parameters already.
2013-11-24 22:06:57 -06:00
Erik Charlebois
40fcee3f16
VM: Fix Windows 64-bit build on Visual Studio 2012
...
The UNW_FLAG_EHANDLER #define is now visible in VS2012, causing
a conflict with the definition in os-windows-x86.64.cpp. Added
a #ifndef to only include the definition if it hasn't already
been defined.
2013-05-13 18:19:52 -04:00
Erik Charlebois
5027f75d79
VM: Fix Windows VM build following type renaming
...
Making cell be a typedef of uintptr_t broke a spot assigning
cell* was unsigned long*. Added an explicit cast.
2013-05-13 18:18:48 -04:00
Erik Charlebois
ffe41b3d7f
VM: Fixup cast formatting after clang-format
...
clang-format doesn't recognize casts to non-pointer/non-template types
so it winds up adding a space between the right paren and the expression
and then failing to recognize prefix operators in the process
(e.g. foo = (cell) & bar; should be foo = (cell)&bar;). This commit
manually fixes up the major cases (fixnum, cell, all types ending in _t).
2013-05-13 14:59:24 -04:00
Erik Charlebois
88d7c10d03
VM: Replace u8-64, s8-64, cell, fixnum with stdint.h equivalents
2013-05-13 00:28:25 -04:00
Erik Charlebois
7ea2150c39
VM: Remove WINCE #ifndef; fold wince? words
2013-05-13 00:01:46 -04:00
Erik Charlebois
b918c3e646
VM: Remove redundant #ifdef FACTOR_DEBUGs
...
FACTOR_DEBUG checks around asserts aren't needed, since FACTOR_ASSERT is
already conditionally defined by FACTOR_DEBUG.
2013-05-12 23:44:32 -04:00
Erik Charlebois
7b1b1eef23
VM: Remove unnecessary _ suffix in constructors
2013-05-12 23:20:43 -04:00
Erik Charlebois
26ff071205
VM: Remove unnecessary explicit keywords
2013-05-12 21:48:38 -04:00
Erik Charlebois
d44127b543
VM: Refactor write_barrier.hpp to Factor style
2013-05-12 13:24:48 -04:00
Erik Charlebois
38c9db88e2
VM: Refactor words.cpp to Factor style
2013-05-12 13:24:48 -04:00
Erik Charlebois
5614985c3d
VM: Refactor vm.cpp/hpp to Factor style
2013-05-12 13:24:48 -04:00
Erik Charlebois
8522265169
VM: Refactor utilities.cpp/hpp to Factor style
2013-05-12 13:24:48 -04:00
Erik Charlebois
5b1a9d753e
VM: Refactor tuples.cpp/hpp to Factor style
2013-05-12 13:24:48 -04:00
Erik Charlebois
93b586da31
VM: Refactor to_tenured_collector.cpp/hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
bd66094e1b
VM: Refactor tenured_space.hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
238e9d9810
VM: Refactor tagged.hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
2e058e99c1
VM: Refactor strings.cpp/hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
6d5197923c
VM: Refactor slot_visitor.hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
b1ccfa2194
VM: Refactor segments.hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
b2929acff6
VM: Refactor sampling_profiler.cpp/hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
2af4b6a7e6
VM: Refactor safepoints.cpp/hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
debdb11538
VM: Refactor run.cpp/hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
435ac636c6
VM: Refactor quotations.cpp/hpp to Factor style
2013-05-12 13:24:47 -04:00
Erik Charlebois
4dffb25fe6
VM: Refactor primitives.cpp/hpp to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
5e7792e9b9
VM: Refactor platform.hpp to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
37b15012e6
VM: Refactor os-* to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
228d813a7d
VM: Refactor objects* to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
56ceeb582a
VM: Refactor object_start_map* to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
bac6919705
VM: Refactor nursery_* to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
d57c1cc579
VM: Refactor mvm* to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
d9e225e1dc
VM: Refactor math.hpp/cpp to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
38802ce173
VM: Refactor master.hpp to Factor style
2013-05-12 13:24:46 -04:00
Erik Charlebois
ce6ffe91dd
VM: Refactor mark_bits.hpp to Factor style
2013-05-12 13:24:45 -04:00
Erik Charlebois
d20bf1e213
VM: Refactor main-* to Factor style
2013-05-12 13:24:45 -04:00
Erik Charlebois
302826c7be
VM: Refactor mach_signal to Factor style
2013-05-12 13:24:45 -04:00
Erik Charlebois
0b5a12fdea
VM: Refactor layouts/hpp to Factor style
2013-05-12 13:24:45 -04:00
Erik Charlebois
1eaddb0068
VM: Refactor jit.cpp/hpp to Factor style
2013-05-12 13:24:45 -04:00
Erik Charlebois
894e181f31
VM: Refactor io.cpp/hpp to Factor style
2013-05-12 13:24:45 -04:00
Erik Charlebois
d3d1d3bb7a
VM: Refactor instruction_operands.cpp/hpp to Factor style
2013-05-12 13:24:45 -04:00
Erik Charlebois
f6047832cb
VM: Refactor inline_cache.cpp/hpp to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
cae6a5e855
VM: Refactor image.cpp/hpp to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
4ea2e9ed06
VM: Refactor generic_arrays.hpp to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
34d04b9306
VM: Refactor gc* to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
9e2d775095
VM: Refactor full_collector to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
f40718dfab
VM: Refactor free_list_allocator to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
c0aa1c7b3e
VM: Refactor free_list to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
83b69d45f8
VM: Refactor float_bits.hpp to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
95d34e8ee7
VM: Refactor fixup.hpp to Factor style
2013-05-12 13:24:44 -04:00
Erik Charlebois
04d655310f
VM: Refactor ffi_test to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
d92617dda7
VM: Refactor factor.cpp/hpp to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
e9c0476f15
VM: Refactor errors to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
d6bc190f51
VM: Refactor entry_points to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
d5f66d9561
VM: Refactor dispatch to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
6955dd8565
VM: Refactor debug.cpp to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
7a05bf1993
VM: Refactor data_roots.hpp to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
75e6c88534
VM: Refactor data_heap* to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
fb34be6fa7
VM: Refactor cpu-* to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
0cf7feba0b
VM: Refactor copying_collector.hpp to Factor style
2013-05-12 13:24:43 -04:00
Erik Charlebois
2a5126e49a
VM: Refactor contexts to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
2bed6f6a25
VM: Refactor compaction.cpp to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
66976a12bf
VM: Refactor collector.hpp to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
ef7c009d2a
VM: Refactor code_roots to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
7f56458820
VM: Refactor code_heap to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
d2fe86eb7e
VM: Refactor code_blocks to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
2e20733ade
VM: Refactor callstack to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
7aae3c04ce
VM: Refactor callbacks to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
22eed89484
VM: Refactor byte_arrays to Factor style
2013-05-12 13:24:42 -04:00
Erik Charlebois
1e618e16ee
VM: Refactor bump_allocator.hpp to Factor style
2013-05-12 13:24:41 -04:00
Erik Charlebois
774326b2dc
VM: Refactor booleans.hpp to Factor style
2013-05-12 13:24:41 -04:00
Erik Charlebois
ad41d8773d
VM: Refactor bitwise_hacks to Factor style
2013-05-12 13:24:41 -04:00
Erik Charlebois
a80271c79c
VM: Refactor bignum to Factor style
2013-05-12 13:24:41 -04:00
Erik Charlebois
6dacc44029
VM: Refactor atomic.hpp to Factor style
2013-05-12 13:24:41 -04:00
Erik Charlebois
ca1276841d
VM: Refactor atomic-* to Factor style
2013-05-12 13:24:40 -04:00
Erik Charlebois
9ef732743d
VM: Refactor assert.hpp to Factor style
2013-05-12 13:24:40 -04:00
Erik Charlebois
76375afd1c
VM: Refactor arrays.cpp/hpp to Factor style
2013-05-12 13:24:40 -04:00
Erik Charlebois
a437576dc9
VM: Refactor allot.hpp to Factor style
2013-05-12 13:24:40 -04:00
Erik Charlebois
22014f092e
VM: Refactor alien.cpp to Factor style
2013-05-12 13:24:40 -04:00
Erik Charlebois
6c919e7d72
VM: Refactor aging_space to Factor style
2013-05-12 13:24:40 -04:00
Erik Charlebois
ee9fd64b69
VM: Refactor aging_collector to Factor style
2013-05-12 13:24:40 -04:00
Erik Charlebois
a42ba561d2
VM: Remove empty source files
2013-05-12 13:24:40 -04:00
Erik Charlebois
ca2ea548be
VM: Remove exec bit from VM source files
2013-05-11 17:04:23 -04:00
Doug Coleman
a1ef43a42f
layours.hpp: Don't need RETAG here. Found by @mrjbq7. Fixes #637 .
2013-03-29 17:20:08 -07:00
Doug Coleman
71558515cb
Config.macosx: Try to support 10.5.
2013-03-29 14:36:11 -07:00
Doug Coleman
0d72e25365
Config.linux: Clean up warnings when compiling with clang on Linux. make CC=clang CPP=clang++
2013-03-29 10:25:14 -07:00
John Benediktsson
411306c0b8
vm: adding bignum_gcd note.
2013-03-27 14:53:56 -07:00
Doug Coleman
08715bae04
os-macosx.mm: Use uname() instead of Gestalt for version check. Allow 10.5 and over still. Fixes #585 . Fixes #815 . Thanks @erikcharlebois and @jckarter for the motivation and the fix.
2013-03-26 16:53:09 -07:00
Doug Coleman
891f6fef36
Config.macosx: Unleash the hounds! Enable 10.6 compatibility as an experiment. Not sure the downside to always leaving it enabled...
2013-03-26 13:39:05 -07:00
Doug Coleman
2b33dde782
vm: Add more Allocates memory comments.
2013-03-25 17:52:30 -07:00
Doug Coleman
86649ce1c0
vm: More allocates comments.
2013-03-25 14:05:05 -07:00
Doug Coleman
dbfa185eef
vm: Standardize /* Allocates memory */ comments so you can grep -A1
...
and see if a function allocates for easier debugging of the gc.
A couple of the functions were not yet annotated.
2013-03-25 12:00:18 -07:00
Doug Coleman
e68f41041f
Config.macosx: Add commented-out compiler flag to use 10.6.
...
See http://developer.apple.com/library/mac/#technotes/tn2064/_index.html
2013-03-23 12:11:26 -07:00
Doug Coleman
6d19db3efd
Configs: CFLAGS isn't used by the GNUMakefile, change it to SITE_CFLAGS.
2013-03-23 12:10:37 -07:00
John Benediktsson
17945addfe
vm: use ctx->push since unbox_array_size needs to peek at the stack.
2013-03-22 09:19:36 -07:00
John Benediktsson
5be15d7e3f
vm: more use of ctx->replace().
2013-03-22 09:17:02 -07:00
John Benediktsson
49a7d37dcd
vm: don't ctx-pop() in bignum_divmod.
2013-03-22 08:26:01 -07:00
John Benediktsson
9c025abc67
vm: use ctx->replace() with bignum and float operations.
2013-03-22 08:00:13 -07:00
Doug Coleman
1cdd080445
os-unix: Actually call pthread_join() to avoid an infinite loop and 100% cpu usage. It happens randomly. Fixes #738 . Thanks to kkrev or frankfranks.
2012-10-26 10:36:01 -07:00
John Benediktsson
afdaff3059
vm: make bignum-bitnot faster.
2012-08-31 15:22:07 -07:00
John Benediktsson
42f4193939
vm: simplify a bit the fixnum_divmod code.
2012-08-23 08:38:18 -07:00
John Benediktsson
ed8496b583
vm: speed up primitive_fixnum_divmod by 10-12%.
2012-08-22 21:46:59 -07:00
John Benediktsson
b541986b4e
vm: use tabs instead of spaces in bignum_gcd.
2012-08-22 21:31:27 -07:00
Doug Coleman
aad70160f0
vm: Add more comments about functions that allocate.
2012-08-15 22:00:08 -07:00
Doug Coleman
000efd9bbb
vm: Add messages about things that can allocate. Fix a gc bug in the primitive for quotation-code.
2012-08-15 21:30:55 -07:00
Doug Coleman
66de3a85dd
errors.cpp: Previous fix was correct, except we shouldn't clear the data_roots before gc'ing. Laugh out loud. Fixes #615 .
2012-08-15 19:49:04 -07:00
Doug Coleman
7e39d7ef30
errors.cpp: Patch looked like it would work. It either exposes more gc bugs or is incorrect.
...
Revert "errors.cpp: general_error() throws away its args when it calls compact_gc() when compiled with DEBUG=1. Save the args as data_roots instead. Fixes #615 . See #620."
This reverts commit dc46297050
.
2012-08-15 17:25:14 -07:00
Doug Coleman
beb202b3de
errors.cpp: general_error() throws away its args when it calls compact_gc() when compiled with DEBUG=1. Save the args as data_roots instead. Fixes #615 . See #620 .
2012-08-15 16:36:36 -07:00
Doug Coleman
47b4ebc80d
bignum.cpp: Fix calls to reallot_array() -- bignums can get new addresses if they are not in the nursery or are somehow larger. Fix a couple more correctness issues.
2012-08-15 01:51:58 -07:00
Doug Coleman
91d8326b77
math.cpp: Fix theoretical gc bug.
2012-08-15 01:51:58 -07:00
John Benediktsson
39c3f10138
bignum: incorporate some fixes from @slavapestov.
2012-08-10 14:28:44 -07:00
John Benediktsson
c4f85efc9d
vm: make sure we zero out the end of the bignums.
2012-08-04 18:02:27 -07:00
John Benediktsson
61a6b5692f
vm: a bit faster not to trim on each iteration...
2012-08-04 09:13:05 -07:00
John Benediktsson
f7bb7c6a32
vm: additional fix in bignum_gcd.
2012-08-03 21:50:48 -07:00
John Benediktsson
37001708cd
vm: some fixes to fast bignum gcd.
2012-08-03 12:13:46 -07:00
John Benediktsson
5c8a2a4057
vm: fix updating size inside bignum_gcd loop.
2012-08-02 17:36:07 -07:00
Doug Coleman
30e34ca616
bignum: Fix bignum_gcd algorithm from overwriting the wrong bignum memory. Add GC_BIGNUM to prevent gc crashes. Fixes #599 .
2012-08-02 17:16:03 -07:00
John Benediktsson
426c449ee1
vm: adding more GC_BIGNUM to WIN64 path. See #599 .
2012-08-02 17:04:22 -07:00
Doug Coleman
106ecdb6dd
compaction: Less than is the new greater than. Fixes #558 .
2012-07-25 17:57:50 -07:00
Doug Coleman
1a9caec368
Config.macosx: first two digits of 'xcodebuild -version' number is enough; throw away rest of version number.
...
$ xcodebuild -version
Xcode 4.3.3
Build version 4E3002
Fixes #543 .
2012-06-22 15:23:07 -07:00
Doug Coleman
e9ec95ad4f
compaction: Inifnite headaches--cured! Two compact functions, one was not like the other.
2012-05-27 18:26:03 -07:00
Doug Coleman
c577a5468e
vm: Typo for SITE_CFLAGS. Fixes #491 .
2012-04-10 16:28:04 -07:00
John Benediktsson
5794ab46a0
vm: use euclid gcd on win64 until we find a better way to do the 128-bit math.
2012-04-06 11:42:59 -07:00
John Benediktsson
eb556bfb06
vm: use twodigit type for all variables (fixes 32-bit warning).
2012-04-06 09:36:25 -07:00
Doug Coleman
4a29dafcdf
vm/Config: GNUMakefile doesn't actually put the CFLAGS on the command, so use SITE_CFLAGS instead. Put -m32 in Config.x86.32, -m64 in Config.x86.64. Fixes #488 .
2012-04-05 10:26:50 -07:00
John Benediktsson
22c26ff3f5
vm: adding bignum_gcd primitive.
2012-04-05 09:17:35 -07:00
Joe Groff
3f9b2ef47a
use clang when building w/ xcode >4.3; it's faster
2012-02-18 23:40:38 -08:00
Joe Groff
b094d4d0ec
vm: actually code_block_pic is a fine frame type
2011-12-21 21:12:54 -08:00
Joe Groff
7121e0d598
vm: also smoke-check callstack after pic update
2011-12-21 18:31:37 -08:00
Joe Groff
0b72b811fc
vm: flush after print_obj so it's usable from gdb
2011-12-21 13:25:28 -08:00
Joe Groff
9f137c66d4
vm: fashion brigade
2011-12-21 13:25:05 -08:00
Joe Groff
442923b561
vm: walk stack on inline_cache_miss if PIC_DEBUG=1
...
Reveals inline cache stack coherency bug behind #460
2011-12-21 13:24:35 -08:00
Joe Groff
b6f323450f
vm: load mega cache object before popping frame
...
Fixes #457 harder
2011-12-20 14:38:01 -08:00
Joe Groff
f513894435
vm: unwind-native-frames is special
...
Fixes #457
2011-12-19 16:54:25 -08:00
Joe Groff
842eb27785
vm: cleanups
2011-12-14 09:56:50 -08:00
Joe Groff
1c7bd9a7b4
vm: don't scribble memory handling leaf signals
2011-12-14 09:56:50 -08:00
Joe Groff
7c9332e966
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
7844c66d6e
vm: factor out word_stack_frame_size
2011-12-14 09:56:49 -08:00
Joe Groff
a1ee881435
vm: get rid of now-trivial innermost_stack_frame
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
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
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
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
dea0bedb99
vm: fix msvc warning
2011-11-29 12:19:17 -08:00
Joe Groff
26226d460e
vm: factor out embedded image detection code
2011-11-27 14:39:21 -08:00
Joe Groff
cca526df73
vm: support self-executing image file
2011-11-27 12:37:54 -08:00
Joe Groff
88d31b166b
vm: don't die if foreign thread gets async signal
...
Fixes #425
2011-11-23 11:26:42 -08:00
Joe Groff
065a4d4353
vm: remove useless forward declare
2011-11-23 11:11:28 -08:00
Joe Groff
b6246f2c00
vm: quell warnings from vars only used by asserts
2011-11-23 11:11:28 -08:00
Joe Groff
4df56f31f2
vm: clean up baroque jit safepoint logic
2011-11-23 11:11:27 -08:00
Joe Groff
15c4b7aa57
vm: verify code heap's all_blocks set when DEBUG
2011-11-23 11:11:27 -08:00
Joe Groff
c2c2023e34
vm: FACTOR_ASSERT only if FACTOR_DEBUG
2011-11-23 11:11:27 -08:00
Joe Groff
0a1a252cdb
vm: replace assert with FACTOR_ASSERT
...
Factor is finally a real C++ project and has a custom assert macro. Assertion failures were still getting caught as exceptions and causing failure loops. Write our own macro that calls factor::abort on failure.
2011-11-23 11:11:26 -08:00
Joe Groff
6c0ecf631a
vm: charge samples collected in prolog to parent
...
Fixes #379
2011-11-23 11:11:26 -08:00
Joe Groff
81911b9f87
vm: initialize all_blocks map from image
...
um, code blocks from the image need to go in the set too
2011-11-23 11:11:26 -08:00
Joe Groff
2705fc67cb
vm: keep a set of all code_blocks in the code_heap
...
This way looking up code blocks by return address is an O(log n) set lookup rather than an O(n) linear scan.
2011-11-23 11:11:26 -08:00
Joe Groff
44b608bb22
vm: emit safepoints before VM compiler prologs
...
For #379
2011-11-23 11:11:25 -08:00
Joe Groff
5e99a7bbbf
vm: disable SIGINT handler while in factorbug
...
Fixes #410
2011-11-15 18:50:42 -08:00
Joe Groff
c4885ac082
vm: fashion police
2011-11-12 23:05:44 -08:00
Joe Groff
c0a44000cc
vm: set stdin_loop cancellation state
...
Make it asynchronous so it doesn't wait till the next syscall to cancel.
2011-11-12 23:05:44 -08:00
Joe Groff
3fc82282f7
vm: close_console before exiting anywhere
...
Add a factor_vm::exit function that does close_console() before ::exit-ing
2011-11-12 23:05:44 -08:00
Philipp Brüschweiler
db19efe1b3
vm: close the console when exiting
...
This prevents an endless loop caused by the nvidia drivers on linux.
See http://www.nvnews.net/vbulletin/showthread.php?t=164619
2011-11-12 23:05:43 -08:00
Joe Groff
8e7baef1a0
vm: typo in os-windows.hpp
2011-11-12 19:23:44 -08:00
Joe Groff
e0dc236725
cpu.*.bootstrap: clear faulting flag directly
...
No reason to go through a safepoint in unwind-native-frames really.
2011-11-12 13:02:57 -08:00
Joe Groff
e24400679f
vm: more defense against multi-faulting
...
* Clear faulting_p from a safepoint rather than inside general_error, because jumping into unwind-native-frames could blow up.
* Handle multiple faults from fatal_error by breakpointing. Is there anything else we can safely do at that point?
* Verify memory protection faults in the top half of the signal handlers because signal dispatch could fault. Treat memory faults during gc or fep as fatal errors.
* Add a function factor_vm::abort() that restores the default SIGABRT handler and ::abort()s. Use it from fatal_error() so we get useful context from gdb and so the user gets feedback from the system crash reporter that Factor blew up and didn't just disappear.
* In factorbug(), don't proceed with .s .r .c if it would be unsafe to do so.
* Don't pile on signals if we've already called fatal_error().
2011-11-12 13:02:57 -08:00
Joe Groff
2c5014e74e
vm: "edges" command for factorbug
2011-11-11 10:12:36 -08:00
Joe Groff
c31530caec
vm: strip out call-counting profiler
...
This makes the separate "code" and "entry_point" fields in word and quotation redundant, so also remove them to reclaim an additional cell per word and quotation object, which should help with #318 .
2011-11-10 16:01:07 -08:00
Joe Groff
139c9ca38c
init signals or console after stage2 init
...
A signal during early bootstrap is certainly an error, and the environment isn't there yet for Factor's signal handlers to work, so it makes no sense to install Factor's signal handlers beforehand. They'll just crash.
2011-11-10 16:01:07 -08:00
Joe Groff
9e4a51c55f
vm: don't SIGQUIT on unix or Ctrl-Break on windows
...
This gives us an escape hatch for when things go way south and ^C can't be handled. Also unmask SIGQUIT and SIGTERM from the stdin_loop thread so the thread doesn't keep the process alive after those signals.
2011-11-10 16:01:07 -08:00
Joe Groff
2e9552d98a
vm: hand SIGALRM to signal pipe if not sampling
2011-11-08 23:37:22 -08:00
Joe Groff
c0094186a1
vm: fix build on windows
2011-11-08 23:17:51 -08:00
Joe Groff
5f3cd4079c
vm: make signal pipe nonblocking
...
On the off chance the Factor end of the signal handler mechanism isn't listening, we don't want to tie up the VM because the pipe's buffer got full.
2011-11-08 22:07:22 -08:00
Joe Groff
820fd6417d
vm: don't send foreign samples to outer space
2011-11-08 14:00:33 -08:00
Joe Groff
90609cc5d8
vm: don't pass this to safepoint constructor
...
It's bad juju and MSVC calls us out on it.
2011-11-08 11:06:00 -08:00
Joe Groff
fc7c175c9f
new module unix.signals: app-level signal handlers
...
example:
IN: scratchpad USING: unix.ffi unix.signals ;
Loading resource:basis/unix/signals/signals.factor
IN: scratchpad [ V{ "Me not that kind of orc!" "Me busy, leave me alone!" "Work work" "Zug zug" } pop print flush ] SIGINFO add-signal-handler
IN: scratchpad load: 0.60 cmd: factor 41541 running 0.28u 0.16s
Zug zug
load: 0.71 cmd: factor 41541 running 0.28u 0.16s
Work work
load: 0.71 cmd: factor 41541 running 0.28u 0.16s
Me busy, leave me alone!
load: 0.73 cmd: factor 41541 running 0.28u 0.16s
Me not that kind of orc!
2011-11-08 10:21:49 -08:00
Joe Groff
0c58fd5c26
vm: more commentary on lock_console() stuff
2011-11-08 08:52:52 -08:00
Joe Groff
5f811c0573
vm: don't mask SIGTTIN from stdin_loop
...
Fixes #360
2011-11-08 08:42:48 -08:00
Joe Groff
f9aa0419c4
vm: interrupt stdin_loop when entering fep
...
The stdin_loop thread will keep trying to consume input unless we stop it by sending it a signal. Use SIGUSR2 to stop the read syscall and a mutex to hold up the loop while the fep is active.
2011-11-08 08:42:48 -08:00