Commit Graph

1708 Commits (eb21e05fef1814c0f980b080c3f8244ca7d9de8f)

Author SHA1 Message Date
Björn Lindqvist 883f65d0e4 VM: fix one callstack overflow problem by "unlocking" the callstacks
border pages

Also a new vocab compiler.tests.callstack-overflow which is supposed to
contain all tests for callstack overflow-related problems.
2015-08-14 20:19:58 -07:00
Björn Lindqvist 59762009f1 VM: simplified logic for allot_object() 2015-08-14 20:19:57 -07:00
Björn Lindqvist 1b1b275a1a VM: simplifies the dispatch_resumable_signal() method 2015-08-14 20:19:57 -07:00
Björn Lindqvist b8aef640f9 VM: new method set_border_locked() in segment, so that you can remove
the protection of the guard pages
2015-08-14 20:19:56 -07:00
Björn Lindqvist 5d7fb5da60 VM: smaller style-fixes, like removing redundant else clauses and this prefixes 2015-08-14 20:19:55 -07:00
Björn Lindqvist e14d820138 VM: move trace_partial_objects to visit_partial_objects since it is a
kind of visitation function
2015-08-14 20:19:55 -07:00
Björn Lindqvist df669298ce VM: split dispatch_signal_handler into two methods, one for resumable
and one for non-resumable signals
2015-08-14 20:19:55 -07:00
Björn Lindqvist 2b1c6ca11a VM: move the frame_predecessor() method to the code_heap class 2015-08-14 20:19:54 -07:00
Björn Lindqvist f3c34e44d4 VM: FRAME_RETURN_ADDRESS define unused 2015-08-14 20:19:54 -07:00
Björn Lindqvist 9413f711b9 VM: the JIT_PROFILING special object is never used, so rename it to
JIT_UNUSED (removing it breaks boot images)
2015-08-14 20:19:53 -07:00
Björn Lindqvist 3f9fa7e39e VM: emit_prolog/emit_epilog can be simplified because stack frame and
safe point is always emitted together
2015-08-14 20:19:51 -07:00
Björn Lindqvist 358fae93c9 VM: the stack_frame_p() and safepoint_p() functions appear to be
semantically identical, let's merge them into a
no_non_safepoint_words_p() function
2015-08-14 20:19:50 -07:00
Björn Lindqvist 510193f012 VM: an unused #define we can eliminate 2015-08-14 20:19:50 -07:00
Björn Lindqvist 81057c4108 VM: the context_object_count must be wrong, there are only 4 of them 2015-08-14 20:19:50 -07:00
Doug Coleman 9f43820076 Revert "vm: don't use implicit this. thanks to Jon Harper for the report."
My bad. A buggy compiler is a buggy compiler. Not a good workaround.

This reverts commit 1602e5094c.
2015-08-14 11:15:55 -07:00
Doug Coleman 1602e5094c vm: don't use implicit this. thanks to Jon Harper for the report. 2015-08-14 10:16:53 -07:00
Doug Coleman dcc1e7773f contexts.hpp: Increase callstack reserve space to 16k for Mac64. Fixes issue #1419. 2015-08-04 12:43:24 -07:00
John Benediktsson 5c0d8c7e4f vm: minor fixes. 2015-08-04 07:49:50 -07:00
Björn Lindqvist 22bd11c4a4 VM: fix silly compile error 2015-08-04 16:02:10 +02:00
Björn Lindqvist 6fedb79c73 VM: bump stack_reserved from 1kb to 4kb
The added test case fails with a doulbe fault, which appears to be
caused by a stack overflow in the code that tries to handle the stack
overflow. So bumping it to 4096 bytes should give the code enough stack
space to play with.
2015-08-04 16:02:10 +02:00
Björn Lindqvist beb71ce49b VM: merge full_collector.hpp into full_collector.cpp 2015-08-04 16:02:10 +02:00
Björn Lindqvist a7757eed41 VM: new method context::address_to_error 2015-08-04 16:02:10 +02:00
Björn Lindqvist 504be0c7cb VM: signal_error and fp_trap_error not needed, call general_error directly 2015-08-04 16:02:10 +02:00
Björn Lindqvist 73956db33a VM: a bunch of methods on factor_vm that can be converted into free
functions

I think that makes it easier to see whats going on than having
everything added to factor_vm
2015-08-04 16:02:09 +02:00
Björn Lindqvist ae725b737a VM: lets merge entry_points.hpp with vm.hpp, so you have one less header
file to worry about
2015-08-04 16:02:09 +02:00
Björn Lindqvist 282c52b872 VM: you can insert the write_barrier() the first time you interate the
blocks, so you don't need to do it twice
2015-08-04 16:02:09 +02:00
Björn Lindqvist 03d861976c VM: new method visit_instruction_operands(), it replaces the instruction
operand iteration code in compaction.cpp and image.cpp
2015-08-04 16:02:09 +02:00
Björn Lindqvist e565b0291f VM: refactors slot_visitor by removing a lot of one-use methods
I think it's easier to see the code flow if small method bodies that are
only called once are inlined into visit_all_roots() instead
2015-08-04 16:02:09 +02:00
Björn Lindqvist f5f8ce1501 VM: word_stack_frame_p() is not used and find_all_quotations() is
trivial so those methods can be removed
2015-08-04 16:02:09 +02:00
Björn Lindqvist 49a406d880 VM: using compute_external_address everywhere instead of store_external_address 2015-08-04 16:02:09 +02:00
Björn Lindqvist 50318a6f77 VM: new method compute_external_address 2015-08-04 16:02:08 +02:00
Björn Lindqvist 718ea51d8a VM: remove the collect_compact_code_impl(), collect_compact_impl() can
be used instead

this might slow down collect_growing_heap(), but heap growth happens so
rarely that it shouldn't matter
2015-08-04 16:02:08 +02:00
Björn Lindqvist b44db91f65 VM: init_code_heap is trivial and only used once, so let's remove it 2015-08-04 16:02:08 +02:00
Björn Lindqvist 18ab09e493 VM: object_compaction_updater -> lambda func 2015-08-04 16:02:08 +02:00
Björn Lindqvist 9049aa1f65 VM: another opportunity to use a lambda function over a struct 2015-08-04 16:02:08 +02:00
Björn Lindqvist a5a7232b8f VM: use a function update_relocation to replace the
code_block_compaction_relocation_visitor struct
2015-08-04 16:02:08 +02:00
John Benediktsson b065d6172d vm: rename emit_quot to emit_quotation. 2015-07-15 11:21:20 -07:00
John Benediktsson 4c2c8f133f vm: rename some primitives, and some cleanup.
* quot-compiled? => quotation-compiled?
* optimized? => word-optimized?
2015-07-15 11:13:52 -07:00
Björn Lindqvist b9b75c272b VM: let's merge (save-image) and (save-image-and-exit) into one 3
arg (save-image). it's good not to have to many similar primitives
2015-07-12 22:36:59 +02:00
Björn Lindqvist d608f3377b VM: get_entry_point is unused 2015-07-12 22:36:59 +02:00
Björn Lindqvist c69e1a6e93 VM: move the paths out of gc memory so that they arent unnecessarily
added to the image
2015-07-12 22:36:59 +02:00
John Benediktsson 801fdebde2 vm: bring back FACTOR_ASSERT. 2015-07-06 15:18:09 -07:00
Björn Lindqvist 4bc0720e51 VM: more changes of structs to lambda functions 2015-07-06 22:49:38 +02:00
Björn Lindqvist 4dfac78fc1 VM: move changes of structs to lambda functions 2015-07-06 22:49:38 +02:00
Björn Lindqvist 365b39e0cc VM: change lot of visitation objects to use cool lambda functions instead 2015-07-06 22:49:38 +02:00
Björn Lindqvist fce5d4353a VM: replace binary_payload_start() with slot_count()
This should simplify a little the address calculations when visiting
slots of an object
2015-07-06 22:49:38 +02:00
Björn Lindqvist 46423dfebf VM: merge strings.hpp and tuples.hpp into layouts.hpp, because those
header files were so tiny
2015-07-06 22:49:38 +02:00
Björn Lindqvist 66eb9f1fe5 VM: split the size() method into base_size() and aligned_size() 2015-07-06 22:49:38 +02:00
Björn Lindqvist ed702209ce VM: fix bignum>fixnum-strict conversion, previously most-negative-fixnum
>bignum bignum>fixnum-strict didn't work
2015-06-29 08:19:42 +02:00
Björn Lindqvist 35b04f8ec1 VM: fixes a bug with the handling of 0 bignums, and declares bignum/mod
to maybe output fixnums
2015-06-27 16:14:58 +02:00