Commit Graph

1601 Commits (3515a45b848a0ff2883763f17018859a4fc3311f)

Author SHA1 Message Date
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 ()"
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 () 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
Björn Lindqvist 231f50039b VM: move next_object_after() and first_object() to aging_space (no iteration possible in nursery) 2014-11-21 02:16:04 -08:00
Björn Lindqvist 50c74fc496 VM: get rid of the duplicated nursery instance in vm->data->nursery
vm.nursery and vm->data->nursery are different objects. They get out
of sync when Factor code bumps vm.nursery but leaves vm->data->nursery
unchanged. The emptiness of vm->data->nursery meant that each_object()
never iterated it.
2014-11-21 02:16:03 -08:00
Björn Lindqvist 2a5e1e06f3 VM: each_object() can't iterate the nursery so instead we assume it's empty 2014-11-21 02:16:03 -08:00
Björn Lindqvist 2095fd57de VM: FACTOR_ASSERT so that data_root never wraps a null pointer, cause if it does, random crashes can happen 2014-11-17 17:27:36 -08:00
Björn Lindqvist 161eb0bb49 VM: fixed bignum_divide_unsigned_large_denominator so that it wont data_root-protect NULL-pointers 2014-11-17 17:27:36 -08:00
Björn Lindqvist f9869d8ad9 VM: remove bignum_roots.clear() (snuck in during rebase) 2014-11-17 17:27:36 -08:00
Björn Lindqvist 0e8e2af0a7 VM: adding a few forgotten .untagged() calls 2014-11-17 17:27:36 -08:00
Björn Lindqvist 8741dbefce VM: bignum_roots traversal code deleted! 2014-11-17 17:27:35 -08:00
Björn Lindqvist 981a02be27 VM: Erasing the last traces of GC_BIGNUM from bignum.cpp 2014-11-17 17:27:35 -08:00
Björn Lindqvist 1f6d6b9a5d VM: cell -> ret 2014-11-17 17:27:35 -08:00
Björn Lindqvist 7d6f282d91 VM: conversion of many more bignum.cpp methods to use data_roots instead
of gc_bignum
2014-11-17 17:27:35 -08:00
Björn Lindqvist 2fcea047d2 VM: bignum_new_sign, bignum_maybe_new_sign and bitnum_magnitude_ash
converted to using data_roots
2014-11-17 17:27:35 -08:00
Björn Lindqvist c6ab72effc VM: windows bignum_gcd variant fixed 2014-11-17 17:27:35 -08:00
Björn Lindqvist a4df09a34e VM: a lot of methods in bignum.cpp converted to use data_roots instead of gc_bignums 2014-11-17 17:27:35 -08:00
Björn Lindqvist 441a4595bb VM: the copy assignment operator is overloaded so you need a custom swap 2014-11-17 17:27:34 -08:00
Björn Lindqvist 8beb4e179d VM: change the BIGNUM_TO_POINTER macro so that it automatically sees through tagged pointers 2014-11-17 17:27:34 -08:00
Björn Lindqvist e862f70a16 VM: reallot_array already data_roots the array, so callers don't need to
do it too
2014-11-17 17:27:34 -08:00
Björn Lindqvist 8489dd9be6 Build: other hpp's use utilities.hpp so it must be included earlier 2014-11-12 19:41:32 -08:00
Doug Coleman 11be8734cb GNUmakefile: Remove LIBPATH from the build system since nothing needs it. Fixes . 2014-11-11 00:05:52 -08:00
Björn Lindqvist 4e63ba8dc8 VM: debug code which memsets the resetted space 2014-11-10 23:23:43 -08:00
Björn Lindqvist d63a6a20ee ffi: test functions for bug
Conflicts:
	vm/ffi_test.c
	vm/ffi_test.h

Note: Let's add tests in basis/compiler/tests/alien.factor for this.
2014-11-10 23:22:35 -08:00
Björn Lindqvist 990af22dc6 VM: renamed version and git-label to vm-version and vm-git-label. 2014-11-10 23:02:13 -08:00
Björn Lindqvist 090f4fddd5 VM: Three new special objects added to keep track of the builds version number, git label and compilation time respectively. The info is exposed in the system:version-info word and also shown in the banner during startup.
Conflicts:
	Nmakefile
	basis/ui/tools/listener/listener.factor
	core/alien/strings/strings.factor
2014-11-10 23:01:52 -08:00
Doug Coleman 53eac53626 vm: Fail with out_of_memory() if mprotect returns ENOMEM.
Add a message to out_of_memory(msg) calls so we know which call caused the OOM.
Fixes .
2014-11-11 06:26:55 +00:00
Doug Coleman 466fe4559d ffi_test: Can actually test 62 and 63 on windows. 2014-11-10 10:30:35 -08:00
Doug Coleman 1107edcc52 ffi_test: Fix compilation on Windows. 2014-11-09 10:39:50 -08:00
Doug Coleman 1b5711cc42 compiler.tests.alien: Add structs with uint and ulonglong pairs and return them from an FFI call. macosx32 seems to be working, hopefully this will break it or confirm that it's working. Linux32 is broken, hopefully this will show how. 2014-11-08 13:39:47 -08:00
Doug Coleman 0244a64d83 vm: Oops, test doesn't take a long long. 2014-11-07 15:42:25 -08:00
Doug Coleman e494e3965b compiler.tests.alien: Check in a failing unit test. Structure is getting returned improperly. 2014-11-07 15:34:10 -08:00
Björn Lindqvist e00798cd2a VM: new primitive free-callback which is able to free a callback
previously allocated using <callback>
2014-09-29 07:30:21 -07:00
Björn Lindqvist 4a96e6163b VM: new primitive (callback-room) for querying the VM about memory usage
The word works exactly like (code-room) except it looks at the memory
usage in the callback heap instead of the code heap.
2014-09-29 07:30:21 -07:00
Björn Lindqvist 85dade6914 VM: use a free_list_allocator for the callbacks, that way they can
individually be freed
2014-09-29 07:30:20 -07:00
Björn Lindqvist 4015565cf6 VM: "formalize" the callback_heaps object allocation using a
bump_allocator<code_block>

The advantage of doing it this way is that you can reuse the existing
each_object method to iterate all callbacks
2014-09-29 07:30:20 -07:00
Björn Lindqvist 4867e7bc96 VM: try and recover with a kernel error from the callback heap running out 2014-09-29 07:30:20 -07:00
Björn Lindqvist b90e52b527 VM: GC_BIGNUM must be called in the same scope as the variable declaration 2014-09-17 12:13:05 -07:00
Björn Lindqvist 237772daae VM: dont scrub and check when visiting a callstack object
callstack objects doesn't have stacks so it doesn't make sense to scrub
and check. also added the methods check_stack and scrub_stack to deal
with code duplication
2014-09-08 14:54:18 -07:00
Björn Lindqvist e3c2704986 VM: silly error: should be index * check_r_count, not index + check_r_count 2014-09-08 14:54:18 -07:00
Björn Lindqvist 9836d6a1d0 VM: move the stack scrubbing logic to call_frame_slot_visitor to avoid visiting the callstack twice
primitive_minor_gc() iterates the stack twice, first to scrub stack
locations, then to trace overinitialized ones and gc roots. By running
visit_callstack() before visit_stack_elements() you only need to do it
once.
2014-09-08 14:54:18 -07:00
Björn Lindqvist 8fb8313251 VM: use the check_d and check_r to trace the overinitialized stack locations 2014-09-08 14:54:18 -07:00