Slava Pestov
4b1361833e
cpu.ppc: updating non-optimizing compiler backend for green threads (untested)
2010-03-31 15:19:14 -04:00
Slava Pestov
fb2ecab614
threads: delete old contexts immediately instead of handing them off to a 'context recycler' thread
2010-03-30 21:47:48 -04:00
Slava Pestov
c7142e4281
threads: use context-switching primitives
2010-03-29 20:40:17 -04:00
Slava Pestov
946b7415e0
vm: fix typos
2010-03-29 02:27:45 -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
8ab0d12e8d
vm: callstack errors were flipped
2010-03-29 01:53:30 -04:00
Doug Coleman
b40382f412
vm: don't use sigaltstack() on OpenBSD because OpenBSD sucks
2010-03-28 18:26:39 -05:00
Slava Pestov
46ec4ff093
vm: fix SEH on Windows
2010-03-28 17:57:47 -05:00
Slava Pestov
bddbcd24cd
vm: fix OpenBSD compilation
2010-03-28 12:53:01 -04:00
Slava Pestov
84c01e1ab3
vm: fix compilation on FreeBSD
2010-03-28 12:52:16 -04:00
Slava Pestov
9ffe0a69d1
vm: use sigaltstack to handle callstack overflow properly
2010-03-28 11:37:28 -04:00
Slava Pestov
031ea6c39c
vm: fix factor_vm::dispatch_signal()
2010-03-28 08:29:10 -04:00
Slava Pestov
19aef06741
vm: fix compilation on various Unices
2010-03-27 09:44:20 -04:00
Slava Pestov
b5f7e91bdc
vm: report callstack overflow
2010-03-27 07:45:11 -04: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
Slava Pestov
fa08afdde8
vm: fix ridiculous default callstack size
2010-03-27 03:35:10 -04:00
Slava Pestov
1717b8d0f7
Implement start-context and set-context primitives
2010-03-27 02:56:11 -04:00
Slava Pestov
560c119cd2
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
Slava Pestov
1e4e66d6a2
vm: another fix
2010-03-23 04:17:39 -04:00
Slava Pestov
ffafafd951
vm/mach_signal.c: work around Mac OS X 10.6 API change (or bug?)
2010-03-23 04:04:08 -04:00
Daniel Ehrenberg
930b0d931b
Using a higher-order C macro to clean up duplication in declaring/defining VM primitives
2010-03-19 14:05:14 -04:00
Slava Pestov
6aee6b3adc
Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct
2010-03-18 22:06:00 +13:00
Joe Groff
1c08fde381
yay C89
2010-03-01 17:56:17 -08:00
Joe Groff
ac979619e6
record the C++ compiler version in the VM, and expose it with a vm-compiler word
2010-03-01 13:32:07 -08:00
Doug Coleman
dad3870abd
Use for(;;) instead of do/while in a few places, fix safe_fread's error handling
2010-02-24 02:50:41 -06:00
Slava Pestov
af0ddd5985
Specialized arrays, structs and other objects responding to the >c-ptr / byte-length protocol can now be written to binary streams
2010-02-24 20:18:41 +13:00
Joe Groff
c3e60fc9c3
vm: change id of windows app icon resource to more standard "APPICON"
2010-02-15 11:26:56 -08:00
Slava Pestov
747974f4ae
vm: nuke unused (string>float) primitive
2010-02-08 08:16:56 +13: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
Doug Coleman
f72bcd3346
reorder functions in header file
2010-02-04 23:55:17 -06:00
Doug Coleman
06f02d1314
Refactor error handling in io.cpp. Update image.cpp and header files for changes.
2010-02-04 23:53:54 -06:00
Doug Coleman
a2ce57d856
Allow setting errno instead of just clearing it
2010-02-03 17:20:24 -06:00
Doug Coleman
7447fc1073
fix typo in os-windows.cpp
2010-02-03 16:03:22 -06:00
Doug Coleman
950eaed73a
Change the MOVE_FILE macro to a function named move_file
2010-02-03 15:12:13 -06:00
Slava Pestov
22fbe01c17
Compiled code size optimizations for x86-64 resulting in development image size reduction of about 350kb
...
- RIP-relative LEA is now used to load program counter in prolog and tail calls; saves 3 bytes of code and 4 bytes of relocation information over an immediate MOV
- VM field accesses no longer involve a redundant addition
2010-02-03 23:11:35 +13:00
Slava Pestov
bf40237a17
vm: always check call sites when installing PICs, not just when FACTOR_DEBUG is on, since the check is cheap and saves debugging time when compiler is changed
2010-02-03 23:11:34 +13:00
Slava Pestov
26cae00eeb
Add code heap introspection primitive to VM, and make a code-blocks word in tools.memory that wraps a useful interface around this. Add a lookup-return-address word and use this in tools.disassembler.utils
2010-02-03 23:11:32 +13:00
Slava Pestov
3259ef4bec
vm: modify-code-heap primitive now takes a pair of parameters, update-existing? and reset-pics?. If no generic words were changed, PICs do not need to be reset. If no existing words were redefined, the code heap doesn't have to be traced at all. Speeds up compilation of PEGs since those create lots of compilation units
2010-02-03 23:11:28 +13:00
Slava Pestov
fbf078d4b3
words: undefined error now contains the word in question
2010-02-03 23:11:23 +13:00
Slava Pestov
7d9628a6ae
vm: fix ffi_test.h
2010-02-02 05:15:42 -05:00
Slava Pestov
bf05a901c4
Fix ffi-test library to work with Windows SDK. Turns out MINGW has a different ABI for struct returns than MS's compiler; make the MS ABI the default for cdecl on Windows, and add mingw ABI for libraries that use the MINGW ABI
2010-02-02 04:01:12 -06:00
erikc
f33c73bf94
Merge up
2010-01-30 20:39:43 -08:00
Slava Pestov
94c93f0bc7
vm: 'become' primitive needs to update literal references in code blocks
2010-01-27 18:42:31 +13:00
Slava Pestov
942f6e0943
Update Win64 support
2010-01-25 15:39:34 +13:00
Doug Coleman
7c40fc1a36
unix-system-call io-error -> unix-system-call drop
...
make unix.ffi, unix.ffi.linux unportable
fix spacing in io.cpp before refactoring
2010-01-23 09:07:35 -06:00
Doug Coleman
40cf302d2d
Fix image save on Windows
2010-01-22 12:59:36 -06:00
Doug Coleman
bb2f455747
Save images to a temporary file first, then call MOVE_FILE to avoid writing incomplete and truncated images.
2010-01-22 12:59:20 -06:00
Doug Coleman
bbd4e27275
Tighten up libc file io code to avoid EINTR problems
2010-01-22 12:59:14 -06:00