Commit Graph

60 Commits (1818bcb78042d91cadb7cd24d6362bf5a266c1a7)

Author SHA1 Message Date
Slava Pestov 1818bcb780 Fix three problems discovered by running math.floats.env tests in a loop:
- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly
2010-09-02 22:57:14 -05:00
Doug Coleman e8d528ad93 Remove system_micros from vm, implement gmt hook on windows 2010-06-16 23:39:16 -05:00
Slava Pestov eaccd0b56a vm: speed up nano-count primitive on Windows 2010-04-11 22:27:49 -05:00
Slava Pestov e5e51c40a1 vm: implement frame-based SEH for 64-bit Windows 2010-04-08 10:32:14 -07:00
Slava Pestov c931870cd7 vm: fix compile error under Cygwin 2010-04-06 16:30:41 -05:00
Slava Pestov ff0e084f94 vm: dllexport exception_handler for great justice 2010-04-05 15:48:09 -05:00
Slava Pestov 9b44451682 Safe SEH is better than abstinence 2010-04-05 15:02:32 -05:00
Slava Pestov 74640b7f71 Get green threads working on Windows
- store stack base and limit in TIB
- set up a frame-based structured exception handler in each context's callstack
- boot.x86.32.image has now been replaced by boot.winnt-x86.32.image and boot.unix-x86.32.image
2010-04-03 20:24:33 -04:00
Slava Pestov 43b2e02534 vm: split up TLS code and add a dummy implementation for a dummy OS known as NetBSD 2010-03-29 02:23:21 -04:00
Slava Pestov 46ec4ff093 vm: fix SEH on Windows 2010-03-28 17:57:47 -05:00
Slava Pestov 11ddbc03a4 vm: signal handling cleanup 2010-03-27 07:33:28 -04:00
Slava Pestov 69bb81dab8 vm: clean up TLS usage 2010-03-27 03:44:40 -04:00
Doug Coleman d22eb40360 Fix spaces that crept into vm/ cpp files 2010-02-06 01:06:26 -06:00
Slava Pestov c08fa9cb6e vm: disable silly nano-count workaround on Win64, fix some indentation issues 2010-02-06 00:45:29 -06:00
Slava Pestov 942f6e0943 Update Win64 support 2010-01-25 15:39:34 +13:00
Slava Pestov e4da687413 vm: Tweak Factor VM to compile with Microsoft Visual Studio on Windows, in addition to Mingw. Add an Nmakefile which can be used for this purpose. Rename Makefile to GNUmakefile. 2010-01-17 03:43:22 +13:00
Slava Pestov 36d2ac8921 vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64 2010-01-06 15:47:36 +13:00
Doug Coleman eae646bfa0 remove warning 2009-12-28 10:02:36 -06:00
Doug Coleman 964dbfe72d avoid integer division in nano_count on windows 2009-12-28 09:56:10 -06:00
Doug Coleman 7fa3b71c07 Add 0xe06d7363 to debugger.windows. Remove case 0xe06d7363 from SEH. 2009-12-23 14:04:52 -06:00
Doug Coleman ab7792f25c remove debug output 2009-12-22 14:39:30 -06:00
Doug Coleman 7077cb4bfb try a different approach to fix the windows monotonic counter 2009-12-22 14:36:33 -06:00
Doug Coleman c84f46fe8b Ignore yet another undocumented exception. Tricks of the trade, I guess. 2009-12-22 13:33:39 -06:00
Doug Coleman b0b1da0923 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	vm/os-windows-nt.cpp
2009-12-13 20:45:40 -06:00
Doug Coleman 0eccec2133 workaround for QueryPerformanceCounter: if the high part of the count doesn't increment when the low part overflows, keep track of this and add the correction on future calls to nano_count 2009-12-13 20:42:51 -06:00
Slava Pestov 62e7aed2d3 vm/os-windows-nt.cpp: fix formatting 2009-12-13 16:52:59 -06:00
Doug Coleman bce084ac12 fix windows compile error 2009-11-20 04:21:21 -06:00
Doug Coleman 6f7ec206a1 rename millis to system-millis, micros to system-micros, add nano-count 2009-11-18 15:58:48 -06:00
Doug Coleman 60d8ef22b8 fix current_nanos on windows 2009-11-18 11:04:46 -06:00
Doug Coleman b4206f5252 initial commit to nanos branch to replace micros 2009-11-18 04:20:05 -06:00
Phil Dawes 7fef05fd76 Removed VM_PTR macros. All builds reentrant by default 2009-10-14 19:14:57 +01:00
Slava Pestov 6c047127ee Change C++ exception usage back into a longjmp() due to GCC bugs 2009-10-05 03:27:28 -05:00
Slava Pestov 96df486753 vm: add assertions to tls_vm() 2009-10-02 09:37:04 -05:00
Phil Dawes 83b0769eef renamed factorvm to factor_vm 2009-09-24 08:16:52 +01:00
Phil Dawes 46bab62689 misc cleanup 2009-09-24 08:02:14 +01:00
Phil Dawes e8d1612e8e Split data out into separate vm-data struct 2009-09-16 08:22:16 +01:00
Phil Dawes f4af39b60e thread_id is a pthread_t on unix 2009-09-16 08:20:51 +01:00
Phil Dawes 3c139593c5 moved the thread stuff around a bit 2009-09-16 08:20:49 +01:00
Phil Dawes 1456fb3c97 removed vm ptrs from unix code (still in signal handlers tho) 2009-09-16 08:20:10 +01:00
Phil Dawes 6ddd3c654e fixed up linux64 bootstrap (single threaded) 2009-09-16 08:20:09 +01:00
Phil Dawes aa005c948f win32 main starts factorvm in new thread 2009-09-16 08:20:09 +01:00
Phil Dawes 5c2a28173a Start windows factor in a spawned thread (for testing) 2009-09-16 08:20:09 +01:00
Phil Dawes 9cac5e8aa9 added lookup_vm and removed last usage of vm from windows code 2009-09-16 08:20:09 +01:00
Phil Dawes 700e03a6a6 removed some vm-> forwarding functions 2009-09-16 08:17:26 +01:00
Phil Dawes 0a15e20e12 Added basic win32 start-thread support 2009-09-16 08:17:26 +01:00
Phil Dawes 4afc16e95b passing vm ptr to lazy_jit_compile mostly working 2009-09-16 08:16:30 +01:00
Phil Dawes d48dffcfa0 moved os-windows-nt functions into the vm 2009-09-16 08:16:30 +01:00
Phil Dawes 01ecb11635 Dev checkpoint 2009-09-16 08:16:29 +01:00
Joe Groff c1bc5f22e4 use secret sauce to clear MXCSR in win32 context, and handle secret STATUS_FLOAT_MULTIPLE_* SEH codes raised by SSE traps 2009-09-14 12:02:02 -05:00
Slava Pestov 83c992173e vm: fix indentation in Joe's changes 2009-09-14 03:09:03 -05:00