Commit Graph

1229 Commits (1dc31d133b3fa58fafeb01a8e3649ba7525fd506)

Author SHA1 Message Date
Joe Groff 1dc31d133b vm: clean up signal handler dispatch
Remove the weird and broken functions fix_callstack_top and scrub_return_address. Instead, simply decrement the SP and store the PC from the front end of the signal handler so that the back end can return back into the original context normally. Currently aborts for leaf procedure frames pending a more robust solution.
2011-10-27 21:14:48 -07:00
Joe Groff 92a5b7c300 vm: don't mix iostream and stdio 2011-10-27 21:14:48 -07:00
Joe Groff 3726f61c70 vm: fatal_error if VM-less thread gets a signal 2011-10-27 21:14:48 -07:00
Joe Groff 7f3d70f97f vm: fix windows compile errors 2011-10-27 21:14:47 -07:00
Joe Groff d6a06cf5dc vm: remove unguard-safepoint primitive 2011-10-27 21:14:47 -07:00
Joe Groff 552711e903 vm: block all signals from unix stdin_loop thread 2011-10-27 21:14:47 -07:00
Joe Groff 9865417149 vm: SetConsoleCtrlHandler on windows 2011-10-27 21:14:47 -07:00
Joe Groff b3e5f75c9e vm: handle async signals at safepoints on unix
Factor now supports the new 4.0BSD feature of "signals".
2011-10-27 21:14:46 -07:00
Joe Groff 9b575730bb vm: add RT_SAFEPOINT to number_of_parameters() 2011-10-27 21:14:45 -07:00
Joe Groff e1465308cd vm: add RT_SAFEPOINT relocation type 2011-10-27 21:14:44 -07:00
Joe Groff 99804d5e3f vm: code_heap::(un)guard_safepoint methods 2011-10-27 21:14:44 -07:00
Joe Groff 4c8dec1e98 vm: take a page from code_heap for safepoints 2011-10-27 21:14:44 -07:00
Doug Coleman 432927fe5f Move --no-as-needed to Config.linux since it breaks compilation on mac 2011-10-19 12:09:43 -07:00
Philipp Brüschweiler c83d6ac411 Config.unix: don't hardcode ui libs, use pkg-config instead 2011-10-19 11:37:21 -07:00
Joe Groff 92d24b0a8f vm: no-op reallot_array with same size, for real 2011-10-17 21:23:01 -07:00
Joe Groff 59f0b93290 vm: make reallot_array for same size a no-op 2011-10-17 21:23:01 -07:00
Joe Groff fde782cff6 vm: non-copying primitive_fread
primitive_fread now takes a buffer pointer argument and returns a count of bytes read instead of allocating a byte array.
2011-10-17 21:22:57 -07:00
John Benediktsson 4653df21cb vm: remove math::bignum_producer. 2011-10-11 21:24:38 -07:00
John Benediktsson afc07c0e05 io.binary: make le> and be> faster (20% and 75%, respectively).
Removed primitive byte-array>bignum and digit_stream_to_bignum from vm/.
2011-10-11 21:13:30 -07:00
Slava Pestov f8e475485a Add RT_INLINE_CACHE_MISS relocation type to avoid frequent dlsym lookups when compiling PICs. Fixes #123 2011-10-03 00:26:21 -07:00
Slava Pestov 05f7419f2f Rework non-optimizing compiler backend to use compiler.codegen.relocation 2011-10-03 00:26:21 -07:00
Slava Pestov daf40ea0c6 Fix infinite loop and empty-dlist error when an error is thrown from a callback running in a thread other than the initial thread. This addresses part of issue #92 2011-10-02 21:59:09 -07:00
Doug Coleman bf2a96e9e0 Remove Windows CE from core/ basis/ and build-support/
Rename the winnt singleton to windows in core/ basis/ extra/
Rename boot images winnt -> windows
Fixes #84.
2011-09-18 23:19:06 -05:00
Slava Pestov bbe369ebfa Fix undefined-symbol reporting on 32-bit architectures; the return address is exactly at the relocation point in this case 2011-09-13 20:43:07 -07:00
Slava Pestov 10845ebfb9 callstack.cpp: fix fat-fingered typo from undefined-symbol change 2011-09-12 23:15:09 -07:00
Slava Pestov 7c3827190b Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93 2011-09-12 00:56:24 -07:00
Slava Pestov 104583f888 Remove inotify system call wrappers. Hopefully everyone is using a recent glibc now. Fixes #86 2011-09-08 22:03:56 -07:00
Slava Pestov 0f5e0eada5 vm: fix high_fragmentation_p assertion 2011-09-05 23:30:28 -07:00
Slava Pestov 83b8717bad Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily 2011-09-05 16:28:00 -07:00
Erik Charlebois 679b03f8db Remove unnecessary -std=gnu99
Flag isn't needed anymore with g++ and it causes warnings with clang.
2011-06-23 01:17:24 -04:00
Erik Charlebois 64252dbdbc 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Slava Pestov c36d73e242 Change do-callback to register the current thread with the callback, instead of busy waiting for the current callback to become the right one before returning. Fixes 100% CPU usage issue with system-alert. Thanks to Blei and ex-rzr for doing preliminary analysis of the issue 2011-04-12 21:48:54 -04:00
Slava Pestov d6fe7f4c28 On Unix, link VM with GTK libraries instead of loading them dynamically 2011-02-27 20:01:54 -06:00
Slava Pestov f27080498d Remove bignum>float VM primitive, and use bignum/f to implement >float on bignums instead, for a slight accuracy gain. Also, bignum/f now has a more efficient post-scaling algorithm to break the circular dependency on bignum>float 2010-11-24 22:41:15 -08:00
Slava Pestov 813e13140a vm: fix 64-bit regression 2010-10-09 15:14:14 -07:00
Slava Pestov 0fc8ee8250 Fix win64 compile error 2010-10-09 16:03:46 -05:00
Slava Pestov f7bc78c9f7 vm: fix Config.windows 2010-10-02 23:50:48 -05:00
Doug Coleman 8a0d0fca83 Revert previous patch; not simply a typo. Still broken on win64. 2010-09-29 20:49:37 -05:00
Doug Coleman 466e630dc9 Win64 Windows SDK hates int/cell type errors 2010-09-29 17:43:27 -05:00
Slava Pestov 794d371444 vm: fix compiler warning 2010-09-27 20:37:37 -07:00
Slava Pestov 6b5fffc026 compiler: preliminary implementation of tracking derived pointers in GC maps 2010-09-27 20:12:44 -07:00
Slava Pestov 8ccaa417ab vm/os-unix.cpp: remove dead code 2010-09-20 21:36:19 -07:00
Doug Coleman f791c8c5d2 Squashed commit of the following:
commit 197dbe9a6733775ac0ea19b3da4bd4dc3c85418c
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 19:01:38 2010 -0500

    Fix bootstrap, move privileges to windows.privileges

commit 521c622f8afb15bf42d263c738cb990560dc29cb
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 18:26:30 2010 -0500

    Hopefully fix bootstrap

commit eb3f22928b59758b9505430034044b5b94705da2
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 18:19:05 2010 -0500

    Remove wince from factor codebase

commit 619d6c99415f46208a7ede6a04b0ccda46b15360
Author: Doug Coleman <doug.coleman@gmail.com>
Date:   Sat Sep 18 16:07:46 2010 -0500

    Remove Windows CE from vm/
2010-09-19 19:13:25 -05:00
Slava Pestov a36bd7fbaf vm: don't keep more than 10 unused contexts around to prevent address space wastage on low-budget operating systems like OpenBSD 2010-09-17 20:52:27 -07:00
Slava Pestov e8b1a06dad vm: a stack underflow inside a primitive could leave a data root in an uninitialized state; if allocating the thrown underflow error triggered a GC, the GC would visit a garbage pointer 2010-09-17 19:46:57 -07:00
Slava Pestov 5378f2a0c7 vm/os-unix.cpp: set pipe file descriptors to close on exec 2010-09-15 22:20:24 -07:00
Slava Pestov c4fa0c2507 vm: fep g command prints addresses in h hex for readability 2010-09-09 20:36:50 -07:00
Slava Pestov ecb9ce4fc9 vm: don't need to save/restore FPU state when doing GC anymore, since we don't call nano_count() unless GC events are being recorded. If you want to record GC events with FP traps on, you're out of luck 2010-09-04 16:16:22 -05:00
Slava Pestov 2498a4d881 vm: don't call nano_count() from the GC at all, unless GC event recording is on 2010-09-04 13:21:45 -07:00
Slava Pestov 230064af3a vm: increase default code heap size 2010-09-04 12:05:23 -07:00