Commit Graph

378 Commits (f140d48e24aa8ed3a1ca57798f36a542db8bcfc7)

Author SHA1 Message Date
Björn Lindqvist 22887c5816 VM: get rid of the odd RT_EXCEPTION_HANDLER relocation
The address to the win32 relocation handler can be stored in a special
object and be accessed by jit-install-seh. Doing it that way is better
because you can remove a lot of special code related to that relocation
type.
2015-09-02 21:54:30 +02:00
Björn Lindqvist cee0b19324 VM: the ffi-signal-handler and ffi-leaf-signal-handler primitives are unused 2015-09-02 21:54:15 +02:00
Björn Lindqvist 663e5e2a09 VM: fix jit-signal-handler-prolog/epilog to account for the home space
Windows 64bit abi requires callers to reserve 32 bytes of home space in
the stack frame which the callee is free to clobber. Previous versions
of VS didn't compile code to take advantage of the home space so it
worked fined. VS2015 however, is using the home space which causes
registers and flags that were supposed to be saved to be
overwritten. The fix is to put a little extra empty space at the bottom
of the stack frame.
2015-08-26 20:23:25 +02:00
Björn Lindqvist 10464e7e4e VM: LEAF_FRAME_SIZE is 16 bytes on all platforms so we can simplify it 2015-08-26 20:23:15 +02:00
Doug Coleman 886935f5d7 bootstrap.image: rename ' to prepare-object. it doesn't actually output the object, unlike what the comment said. 2015-08-15 21:21:03 -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 dbb045e2cd bootstrap.image: better to use the special-object-count constant from kernel.private 2015-08-14 20:19:53 -07:00
Björn Lindqvist 8c70f04d41 bootstrap.image: bs-special-objects -> special-objects,
bootstrap.image.syntax vocab not needed anymore
2015-08-14 20:19:53 -07:00
Björn Lindqvist 2b3989f3c9 bootstrap.assembler.*: convert the other assembly files to the new
jit-define system
2015-08-14 20:19:52 -07:00
Björn Lindqvist 9cf36e3dc2 bootstrap.image: attempt to remove the SPECIAL-OBJECT: table
Instead of using newly defined words as keys to the special-objects
hash being built, you can reuse the constants in kernel.private
2015-08-14 20:19:52 -07:00
John Benediktsson 0216f9f6d1 namespaces: rename namestack* to (get-namestack) for consistency. 2015-08-13 17:53:07 -07:00
John Benediktsson ceb75057da change ERROR: words from throw-foo back to foo. 2015-08-13 16:13:05 -07:00
Doug Coleman b6be8685c3 basis: ERROR: changes. 2015-08-13 03:20:39 -07:00
Doug Coleman 02008979d9 factor: Change ERROR: foo ; to define ``throw-foo`` instead of having ``foo`` throw implicitly. The old ``foo`` still throws implicitly because this is a big change to get right in one patch, but it should be removed soon. 2015-08-12 15:26:18 -05:00
Doug Coleman 46587f8457 factor: arch -> arch-name. fix breakage caused by other patch. 2015-08-12 11:08:24 -05:00
Doug Coleman 351f51b72e bootstrap.image: images -> image-strings 2015-08-12 08:42:58 -05:00
Doug Coleman 00338f62f3 factor: put inline on same line as ; for experimentation 2015-08-10 12:55:27 -05:00
Doug Coleman 43fb73fae6 factor: Rename I[ ]I to [I I]. Fix places where we do "string"token without whitespace. 2015-08-06 17:05:12 -05:00
Doug Coleman 1ca3a0cd0b bootstrap.image.upload: Use git id instead of build number. 2015-08-04 16:28:41 -07:00
Doug Coleman f5853c7e31 bootstrap.image.upload: Upload build images as well for posterity. 2015-08-04 15:05:38 -07:00
Björn Lindqvist 5e29aac0a6 Docs: various more compiler-related docs 2015-07-28 17:58:28 -07:00
John Benediktsson ca0f80f230 bootstrap: cleanup usings. 2015-07-26 21:20:55 -07:00
Doug Coleman 80601662a3 bootstrap.image: rename image -> bootstrapping-image 2015-07-20 01:26:44 -07:00
Doug Coleman 618330b31e factor: rename system:vm -> vm-path to differentiate it from vm:vm (which is a STRUCT:) 2015-07-20 00:10:29 -07:00
John Benediktsson 5825099745 bootstrap.image: minor cleanup. 2015-07-16 11:09:17 -07:00
John Benediktsson dc9a501040 bootstrap.image.upload: use with-resource-directory. 2015-07-16 10:39:33 -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
Doug Coleman 892c62e1dc factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test 2015-07-03 09:39:59 -07:00
Doug Coleman 59f3b1ea57 Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
Needs a bit more work.

This reverts commit 7e54cc2824.
2015-07-02 13:47:06 -07:00
Doug Coleman 7e54cc2824 factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool! 2015-07-02 11:36:08 -07:00
Doug Coleman 352e5de16a core, basis, extra: Remove DOS line endings from files.
Remove whitespace from end of lines.
Add a newline to the end of each file.
2015-06-29 17:25:40 -07:00
Doug Coleman a4c5a748ad core/basis: Rename words dealing with vocabs to loaded-vocabs or disk-vocabs because it's too confusing otherwise. 2015-06-08 12:47:35 -07:00
Björn Lindqvist c2a70d18b4 bootstrap.x86: fix assembler code bug in fixnum*
Now the operands are kept in EBP and ECX and the vm-reg (EBX) is not
used unnecessarily
2015-05-25 08:42:16 -07:00
Björn Lindqvist fa190a8329 bootstrap.ppc: untested fix for #1319 for ppc 2015-05-22 12:22:28 -07:00
Björn Lindqvist 183ec83a6d VM: possible fix for #1319.
Fix for reset_context() so that the top two stack items are never
removed from the stack so if the parent->init_context(ctx) call triggers
a GC, those items are never collected.
2015-05-22 12:22:27 -07:00
Björn Lindqvist 016614747d VM: the delete_context() and reset_context() api functions can be
simplified a bit

The functions always operates on parent->ctx, so passing a context*
parameter is redundant. This enables shorter assembly code for
the (start-context-and-delete) and (set-context-and-delete) primitives.
2015-05-22 12:22:26 -07:00
Björn Lindqvist 528e9f61f3 bootstrap.x86: new words jit-call-Xarg for calling vm functions with
arguments, simplifies some assembly code
2015-05-22 12:22:25 -07:00
Björn Lindqvist 6ca83e7588 Reorganising bootstrap files
All the bootstrap.factor scripts in cpu/ are run by the bootstrap to
make boot images, but aren't used otherwise. So I think it's cleaner to
put them in one directory inside the bootstrap hierarchy.
2015-05-22 12:22:24 -07:00
John Benediktsson b366a06c41 use reject instead of [ ... not ] filter. 2015-05-12 18:50:34 -07:00
John Benediktsson a33fc84de7 help.lint.checks: re-enable leak detection. 2015-05-12 10:46:37 -07:00
Björn Lindqvist 6215561ad4 compiler.cfg.*: more docs and removing a test that isn't relevant anymore 2015-04-29 09:31:59 -07:00
Doug Coleman 1b35e19a03 bootstrap.image.upload: Use pscp on Windows for uploading boot images
since c:\ paths are treated as hostnames and the command fails.
2015-02-05 13:43:49 -08:00
John Benediktsson c0dda5c7e9 command-line: save the executable in a variable so that people don't use (command-line) directly if possible. 2014-12-23 08:12:31 -08:00
John Benediktsson 25dd9f3abb bootstrap: fix this use of (command-line). 2014-12-22 23:14:47 -08:00
John Benediktsson 025283f252 vm: store full command-line including executable first argument. 2014-12-22 22:39:52 -08:00
John Benediktsson f9e1b7c9fb bootstrap.image.download: use my-boot-image-name. 2014-11-15 16:20:02 -08:00
John Benediktsson f3a8546b23 core: get rid of some unnecessary wrappers. 2014-11-02 20:16:22 -08:00
John Benediktsson 712be93989 http.client: remove http-get* and its friends, change http-request* and with-http-request* to not check response codes. 2014-03-12 19:39:15 -07:00
John Benediktsson 435f54cf59 http.client: use new http-get* word. 2013-10-12 10:25:42 -07:00
Doug Coleman 9af269a864 bootstrap.image: Use error syntax. 2013-03-29 09:51:26 -07:00
John Benediktsson d25fb6161e bootstrap.image: 6-7% speedup to make-image. 2013-03-25 16:59:38 -07:00
Doug Coleman 5fab749dcc words: Change word -> last-word, set-word -> set-last-word. 2013-03-23 16:12:03 -07:00
John Benediktsson a9c165db4f bootstrap.image: adding make-my-image for @erg. 2012-09-21 11:35:46 -07:00
John Benediktsson 5c76cbb421 rename some words to x>sequence and sequence>x. 2012-07-23 21:28:38 -07:00
John Benediktsson 4e72d80256 Using "same?" in more places. 2012-07-21 10:22:44 -07:00
John Benediktsson 90d0951ada more use of H{ } make. 2012-07-19 11:24:45 -07:00
John Benediktsson 04320d27f4 fixing some docs. 2012-07-19 09:47:14 -07:00
John Benediktsson cbd6f2cae1 bootstrap.image.upload: fix checksums location to use new temp dir. 2012-04-17 20:49:19 -07:00
Doug Coleman 3ba787b277 core/basis: trim down using lists 2011-11-30 23:15:42 -08:00
Joe Groff 16e510bc76 namespaces: rework so a singleton isn't necessary
Make global foldable, and make the underlying global object a hashtable wrapper. Also, use a tuple instead of a generic array for the global box type.
2011-11-28 18:25:27 -08:00
Joe Groff a1b730e867 namespaces: make set-global/get-global foldable
Store the globals hashtable as an array of boxes so that the key-to-reference mapping is constant. Use a singleton and an unfoldable "box-at" word so that get-global and set-global optimize to direct operations on the associated box when the variable name is a compile-time constant. Fixes #200.
2011-11-28 18:25:27 -08:00
Joe Groff 943596575a use radix literals 2011-11-23 19:03:40 -08:00
Joe Groff c31530caec vm: strip out call-counting profiler
This makes the separate "code" and "entry_point" fields in word and quotation redundant, so also remove them to reclaim an additional cell per word and quotation object, which should help with #318.
2011-11-10 16:01:07 -08:00
Joe Groff c8fd36bbdb kill tools.profiler.counting and ui.tools.profiler
Load tools.profiler.sampling from bootstrap/tools instead.
2011-11-10 12:33:10 -08:00
Doug Coleman c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Joe Groff 6bb46a3f1e vm: always generate safepoints in jit
Even if there's no stack frame we still need to safepoint before leaving the function. Fixes #332.
2011-11-03 11:57:43 -07:00
Joe Groff d28845a1ef vm: reserve some more special-objects
Need a jit-safepoint object to deal with #332, and ffi-signal-handler words for immediate signal handling during FFI calls
2011-11-02 22:16:08 -07:00
Joe Groff 1b38835207 remove lingering mentions of macosx-ppc 2011-11-02 18:40:27 -07:00
Doug Coleman 1eed9203bb Rename (load-vocab) to (require), add tags.txt for "p" vocab loader test. Code formatting. 2011-11-02 18:07:22 -07:00
Doug Coleman f3c8423382 Fix require-hook 2011-11-02 17:26:13 -07:00
Doug Coleman fb44adef99 Clean up formatting, rename load-vocab-hook to require-hook. Add a unit test for vocabs.loader. 2011-11-02 16:31:42 -07:00
Joe Groff eac90675c0 move counting profiler to tools.profiler.counting 2011-11-02 13:23:09 -07:00
Joe Groff 33919b2919 tools.profiler: rename to tools.counting-profiler 2011-11-02 13:23:06 -07:00
Doug Coleman 94db86a6db Make "foo.private" require load foo instead.
Move require from vocabs.loader to vocabs. Update everything.
Fixes #201.
2011-11-02 11:50:03 -07:00
Slava Pestov 136ffc0671 bootstrap-error.factor: vocab => lookup-vocab 2011-10-29 17:25:51 -07:00
Joe Groff 1386212d23 vm: dispatch signal handlers through subprimitive
We also need to save C ABI volatile registers before calling the signal handler in order to be able to reliably resume. Add signal-handler and leaf-signal-handler subprimitives to preserve volatile registers before invoking the signal handler C function.
2011-10-27 21:18:18 -07:00
Doug Coleman f9257959fd Rename class to class-of 2011-10-24 06:47:42 -05:00
Doug Coleman 26872ffe4d Rename vocab to lookup-vocab 2011-10-24 06:42:54 -05:00
John Benediktsson ed72c670b9 bootstrap.image: disable auto-use. Fixes #263. 2011-10-15 10:34:34 -07:00
John Benediktsson 6417f36397 namespaces: adding a "with-global" word to replace "global [ ] bind". 2011-10-13 17:21:59 -07:00
Slava Pestov ea73b42578 bootstrap.compiler: now that C types are named by words, we don't have to load alien.complex on bootstrap 2011-10-10 21:09:58 -07:00
Slava Pestov 05f7419f2f Rework non-optimizing compiler backend to use compiler.codegen.relocation 2011-10-03 00:26:21 -07:00
Doug Coleman 671f19d70f Remove all non-core uses of (scan-token)
Add scan-datum
Add scan-number
Document more words
Fixes #225.
2011-10-02 12:00:08 -07:00
Doug Coleman 76580da5d5 Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.
CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes #183.
Fixes #209.
2011-09-29 11:28:28 -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
Joe Groff 7f71ab3024 bootstrap.compiler: move GetLastError/FormatMessageW compilation before any other foreign words; add a similar shortlist for dlerror on unix as a safeguard 2011-09-13 13:33:07 -07:00
Joe Groff 1927cfeec1 bootstrap.compiler: add GetLastError and FormatMessageW to the compilation shortlist on Windows to avoid compilation order issues 2011-09-13 13:33:07 -07:00
Slava Pestov 7d99ff0900 Use debugger to print an error if startup hook fails; fixes #39 2011-09-11 23:38:26 -07:00
Doug Coleman f4c66e8be7 parser.notes sets parser-quiet? to t in the global namespace. stage2.factor runs its code in the global namespace, so 1) make it more clear that we're setting the global parser-quiet? and 2) change it back before finishing bootstrap to match parser.notes top-level form 2011-09-07 13:41:18 -05:00
John Benediktsson f8b4d2d2f9 bootstrap.image: use "parser-quiet? off" for consistency. 2011-09-07 10:50:54 -07:00
Doug Coleman 5fce2d0f27 Make "quiet" true by default. Disable quiet mode for listener, bootstrap, and deploy tool.
Move "quiet" to parser-quiet? in parser.notes. Change a few places where quiet was handle wrong.
2011-09-06 17:58:12 -07:00
Slava Pestov 65837e742d command-line: move some stuff to command-line.startup so that deployed images don't pull in prettyprinter and debugger 2011-09-01 22:31:44 -07:00
Joe Groff cc6ec893c5 command-line: interpret "-help" or "--help" and print a brief usage message with the most common options 2011-08-18 19:10:51 -07: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 ebce40a4c0 Fix conflict 2011-02-27 20:01:45 -06:00
Slava Pestov 609d6f9166 bootstrap.io: fix load error 2011-02-27 15:02:20 -08:00
Slava Pestov e3c08f32ce bootstrap.{io, ui}: load dependencies to make deploy tool less error-prone 2011-02-27 14:38:47 -08:00
Anton Gorenko 4e6fc292b9 Merge branch 'master' of git://factorcode.org/git/factor 2010-09-28 18:23:36 +06:00
Slava Pestov 7d6475df0b New boot image location: http://downloads.factorcode.org/images/ 2010-09-27 20:29:09 -07:00