Commit Graph

1080 Commits (758a99dbfac6debd3077d3dd5e9c5d5e1fa0f2cb)

Author SHA1 Message Date
Joe Groff 50b6e6f352 yay C89 2010-03-01 17:56:17 -08:00
Joe Groff 3db1955a93 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 584879fde7 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 c1e7a3ffc2 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 a98853ccdb vm: change id of windows app icon resource to more standard "APPICON" 2010-02-15 11:26:56 -08:00
Slava Pestov 18ed2d8c69 vm: nuke unused (string>float) primitive 2010-02-08 08:16:56 +13:00
Doug Coleman 8c492088a2 Fix spaces that crept into vm/ cpp files 2010-02-06 01:06:26 -06:00
Slava Pestov e481d5e71c vm: disable silly nano-count workaround on Win64, fix some indentation issues 2010-02-06 00:45:29 -06:00
Doug Coleman dad0599fbe reorder functions in header file 2010-02-04 23:55:17 -06:00
Doug Coleman 813928dd40 Refactor error handling in io.cpp. Update image.cpp and header files for changes. 2010-02-04 23:53:54 -06:00
Doug Coleman e6491d11ca Allow setting errno instead of just clearing it 2010-02-03 17:20:24 -06:00
Doug Coleman eb468d89aa fix typo in os-windows.cpp 2010-02-03 16:03:22 -06:00
Doug Coleman f6002e6c78 Change the MOVE_FILE macro to a function named move_file 2010-02-03 15:12:13 -06:00
Slava Pestov af47e5e8d8 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 dd0f2102ea 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 310399995e 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 d19709c188 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 7fa61addcd words: undefined error now contains the word in question 2010-02-03 23:11:23 +13:00
Slava Pestov ef61bcad77 vm: fix ffi_test.h 2010-02-02 05:15:42 -05:00
Slava Pestov 83a2de6565 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 4506512a16 Merge up 2010-01-30 20:39:43 -08:00
Slava Pestov 6889b0b7f9 vm: 'become' primitive needs to update literal references in code blocks 2010-01-27 18:42:31 +13:00
Slava Pestov 0e0b750e7d Update Win64 support 2010-01-25 15:39:34 +13:00
Doug Coleman 6bc071bfc1 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 5bb6cc9471 Fix image save on Windows 2010-01-22 12:59:36 -06:00
Doug Coleman 9502f6f091 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 cf25ef8432 Tighten up libc file io code to avoid EINTR problems 2010-01-22 12:59:14 -06:00
Slava Pestov 952a0784a7 vm: remove vm-ptr primitive 2010-01-20 17:06:49 +13:00
Slava Pestov 711d78f511 vm: don't recompile lazy-jit-compile more than once 2010-01-20 02:48:31 +13:00
Slava Pestov 88004434ec vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym() 2010-01-19 20:00:33 +13:00
Slava Pestov 0c8dc1f00b Use ParseCommandLineArgvw() on Windows again, instead of hand-rolled parser. Update Nmakefile to link in shell32.dll, where this function is defined 2010-01-18 06:12:04 -06:00
Slava Pestov 0165daf56c Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types 2010-01-18 20:54:00 +13:00
Slava Pestov a3c7f1001d vm: fix command line parsing on Windows 2010-01-17 00:05:52 -06:00
Doug Coleman 3f124ad6a6 Work around gcc bug on openbsd 2010-01-16 23:59:16 -06:00
Slava Pestov 402b096f5a Remove generated file factor.res added by mistake 2010-01-17 18:00:26 +13:00
Slava Pestov bdaccd75c6 Nmakefile: build factor.dll and link in resource file 2010-01-16 22:41:17 -06:00
Slava Pestov edb1346239 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 7290d8cc1c vm: fix compilation on 64-bit platforms 2010-01-14 02:18:49 +13:00
Slava Pestov 9f6f9966e8 vm: rework platform.hpp so that it is no longer necessary to pass -DFACTOR_64 and -DWINDOWS when compiling VM 2010-01-13 23:06:45 +13:00
Slava Pestov cfadb5994a PowerPC optimizing compiler backend fixes 2010-01-12 08:02:10 -06:00
Slava Pestov 80e64b8379 Store VM object in a register on x86-64 2010-01-11 01:20:32 +13:00
Slava Pestov b7f4447723 Starting to update PowerPC backend for recent VM changes (untested) 2010-01-08 19:46:27 +13:00
Slava Pestov 7977905fa6 vm: remove some unused #defines 2010-01-07 21:33:19 +13:00
Slava Pestov d7a8016776 Merge branch 'master' of git://factorcode.org/git/factor 2010-01-07 01:40:39 -05:00
Slava Pestov f038f8eef8 vm: add VM_C_API declaration for factor_memcpy function 2010-01-07 01:40:20 -05:00
Slava Pestov 85432e99c3 Fix set-callstack primitive on Windows 2010-01-07 19:31:15 +13:00
Slava Pestov e1125485fc Remove .S support from Makefile 2010-01-07 18:12:33 +13:00
Slava Pestov 37643eb084 vm: remove asm.h 2010-01-07 18:05:31 +13:00
Slava Pestov 1e2c0327ee Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S 2010-01-07 17:39:22 +13:00
Slava Pestov caca156c31 vm: Remove some dead code 2010-01-07 13:54:22 +13:00