Commit Graph

4033 Commits (7c2e8d0fad3a62e69c5cdbb5965dcc7266b9a230)

Author SHA1 Message Date
Björn Lindqvist 5e29aac0a6 Docs: various more compiler-related docs 2015-07-28 17:58:28 -07:00
Doug Coleman 3d4bc1de1a core: rename parse-call( to parse-call-paren 2015-07-27 09:54:08 -07:00
Jon Harper 53efceb0ad math.integers, comment and simplify bignum/f
change the "while" that could only execute once to "when"
change the f/loop word name to "mantissa-and-guard" since it's what it
computes
change the check against 2^53 to be explicit
2015-07-26 12:33:56 -07:00
Jon Harper 5424ad5586 math.integers, bignum/f, improve performance.
This changes avoids looping many times if the denominator is a power of
2. After this change, the implementation matches the linked sbcl
algorithm.  This was probably a mistake done when porting the algorithm.
Basically, as an optimization, all trailing zeros are removed from the
base2 representation of the denominator to have smaller bignums to
divide. But the previous factor implementation didn't take this into
account when making the initial guess of the shift of the numerator to
obtain a result in the range [2^54-1,2^53]. The loop would then correct
the initial guess by a factor of 2 at each iteration, so it would run as
many iteration as the denominator base2 power reduction, instead of only
a few times. For pathological cases, the speed up is huge (10^4):
1 1000 2^ bignum/f
2015-07-26 12:33:55 -07:00
Jon Harper cc6d90a096 math.integers, fix bignum/f for results in ]0x1.0p-1022,0x0.4p-1022] 2015-07-26 12:33:55 -07:00
Doug Coleman 1fcf96cada factor: remove """ string syntax for now. there are HEREDOC:, STRING:, escaping \", and something else soon. 2015-07-25 22:59:56 -07:00
Doug Coleman 117727d444 parser, source-files: you need to bootstrap after this patch.
cleans up some file vs path naming.

file -> current-source-file
file -> current-test-file somewhere else
source-file -> path>source-file
source-file-tuple -> source-file
2015-07-23 22:03:43 -07:00
John Benediktsson 5eec781b40 use ``if*`` instead of ``dup [ ] [ drop ] if``. 2015-07-20 22:24:30 -07:00
John Benediktsson bbde85f56b vocabs.loader: fix tests. 2015-07-20 21:11:16 -07:00
John Benediktsson 7327b8bdd4 vocabs.loader: make require-all throw restarts.
We only want to catch the restarts in mason, so make a special
load-no-restarts that will catch the failures and print them out
the same way it worked before.
2015-07-20 17:35:22 -07:00
John Benediktsson b82d866340 sequences: bring back check-length. 2015-07-20 09:58:12 -07:00
John Benediktsson 3ea9f09f6a fix some sets:members. 2015-07-20 09:32:31 -07:00
Doug Coleman 2f6548d6d2 factor: fix breakage with word renamings. 2015-07-20 05:51:16 -07:00
Doug Coleman eca8b7e49c core: fix docs 2015-07-20 01:01:31 -07:00
Doug Coleman e4c39bcf3c factor: superclass -> superclass-of, superclasses -> superclasses-of 2015-07-20 00:46:33 -07:00
Doug Coleman 2adeed9cb3 factor: rename classes:members to class-members so it doesn't conflict with sets:members. ugh. 2015-07-20 00:32:42 -07:00
Doug Coleman fbbd09f3c5 factor: system:image -> image-path, like vm-path. image is all over the place png, jpg etc 2015-07-20 00:17:09 -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 296974a057 math.parser: remove digits>integer. 2015-07-19 19:18:47 -07:00
John Benediktsson 16c93c7874 math.parser: simplify fix-float. 2015-07-19 17:20:37 -07:00
John Benediktsson 0dbc5e7d67 math.parser: simplify { integer ratio } >base. 2015-07-19 16:57:45 -07:00
John Benediktsson 89e3cc511e math: moving >fraction to math. 2015-07-19 16:57:45 -07:00
Doug Coleman 5f8426cfbe factor: rename files that are not loadable on mac, too 2015-07-19 16:55:36 -07:00
John Benediktsson 4cda3fe7c4 math.parser: re-use number-parse and float-parse objects. 2015-07-19 09:58:17 -07:00
Doug Coleman a66cf55e8e hashtables: Don't test word's hashcode as a bignum after all. It's not allowed. 2015-07-18 09:17:34 -07:00
Doug Coleman 6415684f8d word hashcodes: Don't unsafely set the hashcode for a word to be a bignum. Revert foldable, type declaration for word hashcode*. 2015-07-18 08:55:38 -07:00
Doug Coleman bc0c02acdf core: declare word's hashcode an integer. Make word not flushable since it's mutable. Add a test case for #1392.
Fixes #1392. @bjourne found this.
2015-07-18 00:27:12 -07:00
John Benediktsson fb688cc08b sequences: integer length for repetition, use English. 2015-07-17 17:42:41 -07:00
John Benediktsson 17386d0608 Revert "sequences: simplify find-from and find-last-from."
This reverts commit 903b8eec0b.
2015-07-17 16:41:56 -07:00
Doug Coleman d2ab2e6dd1 math.parser.tests: Fix whitespace. 2015-07-17 15:19:39 -07:00
John Benediktsson 743928ae7d sequences: use check-length to force integer partial dispatch in iteration. 2015-07-17 13:59:33 -07:00
John Benediktsson 9c4b3e7e43 sequences: define a 2each-from, use each-from more. 2015-07-17 13:40:01 -07:00
John Benediktsson 903b8eec0b sequences: simplify find-from and find-last-from. 2015-07-17 13:26:43 -07:00
John Benediktsson 573ac9c9e9 splitting: use unsafe in split-when, simplify split-indices. 2015-07-17 12:14:33 -07:00
John Benediktsson 9fad4187f3 sequences: adding a subseq-unsafe that doesn't check slice bounds. 2015-07-17 12:14:33 -07:00
John Benediktsson 8e8b15c515 sequences: fix help-lint. 2015-07-16 17:18:14 -07:00
John Benediktsson 94cddbe927 sequences: integer slots in slice, don't store reason in slice-error. 2015-07-16 15:35:03 -07:00
John Benediktsson c7868226d0 math.parser: simplify using member-eq?. 2015-07-16 09:55:33 -07:00
John Benediktsson 6cded6437f combinators: fix linear-case-quot to order the comparisons properly.
I noticed that member? optimized comparisons in the wrong order, this
was because it calls into linear-case-quot.  The reason case was working
find is because it reversed before calling linear-case-quot.  The fix
was to move the reverse into linear-case-quot.
2015-07-16 09:55:19 -07:00
John Benediktsson 33a62c7f9d math.parser: with-radix-char quot shouldn't get called with ``f``. 2015-07-16 08:51:58 -07:00
John Benediktsson e280bafabe math.parser: remove unnecessary with-no-radix, thanks @jonenst! 2015-07-16 07:35:51 -07:00
John Benediktsson 8a3c5c2634 Fix some tests broken by optimized? rename. 2015-07-15 11:47:03 -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
John Benediktsson f6f596f40f math.parser: okay time for sleep, maybe this works, sorry git history. 2015-07-14 22:48:08 -07:00
John Benediktsson 86639b9df0 io.encodings.ascii: make sure encode-string gets a string. 2015-07-14 22:18:12 -07:00
John Benediktsson 5b58e1d3e8 math.parser: fix a regression. 2015-07-14 22:05:25 -07:00
John Benediktsson d6d69952e5 hashtables: fix docs differently. 2015-07-14 21:51:02 -07:00
John Benediktsson 41629dce2f Fix some things broken by hashtable capacity changes. 2015-07-14 21:45:39 -07:00
John Benediktsson 94bb834eae math.parser: fix ``"-.5" dec>``. 2015-07-14 20:16:34 -07:00
John Benediktsson 866b40271d math.parser: fix "most-negative-fixnum number>string string>number fixnum?". 2015-07-14 20:03:33 -07:00
John Benediktsson 1a48f1d229 hash-sets: make sure capacity and growth use same load factor. 2015-07-14 18:35:14 -07:00
John Benediktsson 6127bb8548 hashtables: make sure capacity and growth use same load factor. 2015-07-14 18:32:40 -07:00
John Benediktsson 3265f33b6b vocabs: fix help lint error. 2015-07-14 18:17:28 -07:00
John Benediktsson 94ed98e78c Use $sequence in a few places. 2015-07-14 15:57:18 -07:00
Björn Lindqvist b9b75c272b VM: let's merge (save-image) and (save-image-and-exit) into one 3
arg (save-image). it's good not to have to many similar primitives
2015-07-12 22:36:59 +02:00
John Benediktsson 4bdeaad112 init: cleaner using "initialize" instead of "global [ ... ] cache". 2015-07-09 19:06:19 -07:00
John Benediktsson e1e8383322 hash-sets: need to define M\ hash-set hashcode*. 2015-07-09 08:35:43 -07:00
Doug Coleman 43d6f1d3e2 factor: Retrying on the unit tests. Also normalize some syntax with FUNCTION:. 2015-07-02 17:28:17 -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 999aa7c897 factor: clean up spaces in -tests files 2015-07-02 10:34:01 -07:00
Doug Coleman e3cb325040 factor: clean up whitespace in -docs files 2015-07-02 10:31:22 -07:00
Doug Coleman d47f9447c3 kernel-docs: Fix link from class to class-of. 2015-06-30 21:43:56 -07:00
Doug Coleman 00059f9ec5 classes.tuple: Add a note about "defining-class" 2015-06-30 21:20:20 -07:00
Doug Coleman 0e0646c752 syntax-docs: Revert documentation for IN: foo.private 2015-06-30 21:20:20 -07:00
Doug Coleman 69ee8b9190 core, basis: Don't use the IN: foo.private feature and undocument it.
It only works well when you are loading code dynamically.
2015-06-30 08:51:07 -07:00
John Benediktsson 527c4ea2f8 lexer: change with-lexer to use with-variable. 2015-06-29 19:31:24 -07:00
Doug Coleman 0a7bfd3635 syntax: Add a "syntax" word property for tracking which words are defined with SYNTAX: as opposed to generated syntax words. 2015-06-29 18:45:16 -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
Björn Lindqvist ed702209ce VM: fix bignum>fixnum-strict conversion, previously most-negative-fixnum
>bignum bignum>fixnum-strict didn't work
2015-06-29 08:19:42 +02:00
Doug Coleman 44e8e7b344 primitives: Change PRIMITIVE: to check that the word is in that vocabulary and the stack effect is correct.
Use PRIMITIVE: in core/ and basis/
2015-06-25 18:02:03 -07:00
John Benediktsson 7ffd9db9c9 vocabs.parser: adding back unuse-words. 2015-06-22 16:32:22 -07:00
Björn Lindqvist d32b9f9c90 locals.parser: docs for with-lambda-scope and some random doc additions 2015-06-22 11:15:48 +02:00
Björn Lindqvist 976961bfbd locals.parser: new word with-lambda-scope to handle lexical variables
better, fixes #1338

By cloning the relevant parts of the manifest, you ensure that the
quotation with-lambda-scope runs can't "leak" local names in case of
restartable errors.
2015-06-22 11:15:47 +02:00
John Benediktsson 7dfe023854 math.integers: add some more tests for bit?. 2015-06-17 20:23:21 -07:00
John Benediktsson 621b50a8e5 cpu: enable bit-test intrinsic for fixnum-bit?. 2015-06-17 19:11:10 -07:00
John Benediktsson db9cfeeae2 math.integers: simplify fixnum-bit?. 2015-06-17 18:42:11 -07:00
John Benediktsson ed786070e2 math.integers: fixnum-bit? should not use fixnum-shift-fast. 2015-06-17 08:22:00 -07:00
John Benediktsson 24953512a7 generic.parser: fix unbalanced-private-declaration. 2015-06-16 18:58:54 -07:00
John Benediktsson 8744d66467 vocabs.parser: error on unbalanced private declarations. 2015-06-16 18:47:57 -07:00
John Benediktsson 01e210346e continuations: make with-return use with-variable instead of with-scope. 2015-06-15 09:11:35 -07:00
John Benediktsson 5083bdad33 Revert "hashtables: make hash-combine use fixnum primitives."
This reverts commit 390dd23261.
2015-06-11 20:33:47 -07:00
John Benediktsson 54c4388a68 vocabs: remove little used words.
vocabs:vocab-name* => editors.private:public-vocab-name.
2015-06-11 20:04:44 -07:00
John Benediktsson ccddbebf94 math.parser: slightly faster ((pow)). 2015-06-11 20:04:44 -07:00
John Benediktsson dfa763434e Fix tests broken by word hashcode change. 2015-06-09 20:37:55 -07:00
John Benediktsson 1dab2ae6ca io.streams.sequence: use stream-exempler here. 2015-06-09 20:24:42 -07:00
John Benediktsson 95c34c41b7 hashtables: remove the 2hashcode word for now. 2015-06-09 16:46:02 -07:00
John Benediktsson 390dd23261 hashtables: make hash-combine use fixnum primitives. 2015-06-09 16:30:04 -07:00
John Benediktsson 6210edf76e words: change word hash to do less work. 2015-06-09 16:08:48 -07:00
John Benediktsson aa00d59d59 words: rename reset-props to remove-word-props. 2015-06-09 11:53:46 -07:00
John Benediktsson 77f980881b compiler.units: simplify remember-class. 2015-06-09 11:04:11 -07:00
John Benediktsson b3aeb94020 compiler.units: add typedef for new-words. 2015-06-09 10:30:05 -07:00
John Benediktsson f00c90bb63 vocabs.parser: cleanup update-manifest, make update-search-vocabs a little faster. 2015-06-09 10:29:44 -07:00
John Benediktsson d2716bbe6b vocabs.parser: make a "qualified-vocabs" word for re-use. 2015-06-09 09:58:49 -07:00
Björn Lindqvist 4d47b826bf parser: added helper word use-first-word? to simplify no-word 2015-06-09 13:02:03 +02:00
Doug Coleman f0799a7bc3 core: fix word link.
extra: fix word
2015-06-08 16:53:54 -07:00
Doug Coleman 6e60c811ac core: Rename create to create-word, create-in to create-word-in. 2015-06-08 12:47:35 -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
John Benediktsson d60d098c11 math.integers: speedup to fixnum-bit?. 2015-06-07 11:08:57 -07:00
John Benediktsson 02b7022390 bootstrap.primitives: fix stack effect names for bignum-bit?. 2015-06-07 11:08:57 -07:00
John Benediktsson d07564532d sequences: make concat-as inline and don't special-case empty. 2015-06-06 09:28:00 -07:00
John Benediktsson e04dc6db29 io.binary: adding some tests for signed>. 2015-05-31 08:44:39 -07:00
Björn Lindqvist 5dcaf2553f bootstrap.primitives: shorter code for mapping architecture to assembly file 2015-05-22 12:22:30 -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 2c3492a916 minor cleanup to some docs. 2015-05-13 16:09:14 -07:00
John Benediktsson 296968580a use assoc-reject instead of [ ... not ] assoc-filter. 2015-05-12 19:08:42 -07:00
John Benediktsson 55122d9141 sequences: adding related-words for filter and reject. 2015-05-12 19:08:21 -07:00
John Benediktsson 016e03410d assocs: adding assoc-reject, assoc-reject-as, assoc-reject!. 2015-05-12 19:07:00 -07:00
John Benediktsson b366a06c41 use reject instead of [ ... not ] filter. 2015-05-12 18:50:34 -07:00
John Benediktsson 6071ea98f7 sequences: adding reject/reject-as/reject!. 2015-05-12 18:39:19 -07:00
Björn Lindqvist 36bfd0f105 memory.tests: a full test against #1289, it shouldn't crash 2015-05-09 20:04:23 -07:00
Björn Lindqvist 8f02cad9c5 compiler.cfg.*: a bunch of new tests 2015-05-09 20:04:22 -07:00
Björn Lindqvist 92165e4ee7 Docs: bunch of smaller documentation fixes for various vocabs 2015-04-29 09:31:54 -07:00
John Benediktsson c0c54d8919 alien.strings: simpler fast-string? check. 2015-04-20 10:38:36 -07:00
Doug Coleman 0fda669750 growable: Multiply growable size by 2 instead of 3 when growing.
http://stackoverflow.com/questions/1100311/what-is-the-ideal-growth-rate-for-a-dynamically-allocated-array
Fixes #1284.
2015-03-11 16:53:20 -07:00
Benjamin Pollack 1eda99257d Fix typo in hash-set documentation 2015-02-11 17:38:44 -08:00
John Benediktsson a85543a42f combinators: fix broken optimization that made floats work for integer keys. 2015-01-17 15:46:04 -08:00
Björn Lindqvist 11e906139b VM: code_block::scan, make it so the method always returns -1 if scan can't be determined, part of the fix for #1265 2015-01-15 09:29:13 +00:00
Doug Coleman 2dc5590966 sequences: Add some examples of head and tail with short. 2014-12-17 17:43:18 -08:00
John Benediktsson b76503a718 use ">>foo" instead of "over foo<<". 2014-12-11 20:55:04 -08:00
John Benediktsson e7bb1a43df sorting: faster sort-keys and sort-values for hashtables. 2014-12-05 10:50:22 -08:00
John Benediktsson 7023cff14b sorting: inline check-bounds. 2014-12-05 09:49:55 -08:00
John Benediktsson b102f138b3 Revert "continuations.tests: test case for #1187"
This reverts commit 5dc7cce253.
2014-12-04 11:46:28 -08:00
Björn Lindqvist 5dc7cce253 continuations.tests: test case for #1187 2014-12-04 10:26:24 -08:00
John Benediktsson 6fd908da40 use suffix! and append!. 2014-12-03 11:37:34 -08:00
John Benediktsson ab3f3173af change errors to use "object" instead of "obj". 2014-12-01 08:04:49 -08:00
John Benediktsson 818f337b02 cleanup "over push" is "suffix!". 2014-11-30 08:38:59 -08:00
John Benediktsson 380c0099e8 system: better key-for-value. 2014-11-30 08:28:18 -08:00
John Benediktsson c2261c05fd definitions: removing unused "new-word?" word. 2014-11-29 21:46:26 -08:00
John Benediktsson c0d6fdedd1 classes.tuple: use slots>tuple when possible. 2014-11-29 16:54:50 -08:00
John Benediktsson a65a293896 core: use if* in a couple places. 2014-11-29 16:03:50 -08:00
John Benediktsson 9033a28c09 math.parser: simplify store-exponent. 2014-11-29 14:31:23 -08:00
John Benediktsson 38bc43b968 math.parser: whoops, this part shouldn't have been committed. 2014-11-29 12:54:48 -08:00
John Benediktsson cbba812d7e math.parser: remove float>string, speedup format-float. 2014-11-29 12:47:57 -08:00
Doug Coleman 401b57c6b9 Revert "parser: Print "Loading" message as a comment for homoiconicity. See #1221."
This reverts commit 10cf6e3dd2.
2014-11-23 22:41:15 -08:00
Doug Coleman 10cf6e3dd2 parser: Print "Loading" message as a comment for homoiconicity. See #1221. 2014-11-23 16:56:49 -08:00
Doug Coleman d23ab51ce8 io.files: Move with-cd to the tests file so that nobody uses it. My bad. Basically nobody should ever use cd or cwd for anything. Fixes #1214. 2014-11-23 01:39:36 -08:00
Doug Coleman aff0150a8c io.files: add with-cd. Related to #1214. 2014-11-22 22:21:35 -08:00
John Benediktsson 7a35da738f io: aesthetics matter. 2014-11-22 20:33:53 -08:00
Björn Lindqvist 422c4b2051 splitting: new word split-indices, it's useful compiler.cfg.scheduling so let's add it to the splitting vocab too 2014-11-22 17:31:38 -08:00
John Benediktsson 3f362dfc99 destructors: change check-disposed not to drop the disposable. 2014-11-21 08:19:05 -08:00
Björn Lindqvist 2a5e1e06f3 VM: each_object() can't iterate the nursery so instead we assume it's empty 2014-11-21 02:16:03 -08:00
John Benediktsson c36a9193ae io.streams.c: use binary-object. 2014-11-20 18:40:48 -08:00
John Benediktsson 86cff7b921 io.streams.c: faster M\ c-reader stream-read-until. 2014-11-16 07:07:41 -08:00
John Benediktsson 64b88158bd system: separate version-info to two lines. 2014-11-13 09:58:20 -08:00
Doug Coleman 0f59f314f5 system: Move cpu string to Factor area so it's more obvious that it applies to Factor and not to the C++ compiler. 2014-11-12 03:33:19 -08:00
John Benediktsson b377ea313c assocs: moving map-index back to sequences, change zip and zip-index to make alists. 2014-11-11 18:13:01 -08:00
Doug Coleman 9a3a533712 system: Add cell-bits (32/64 bit) and build number to version-info string. 2014-11-11 16:44:00 -08:00
Doug Coleman 7a9843ec5c system: Remove bogus word added during merge commit. 2014-11-11 08:50:32 -08:00
Björn Lindqvist f32131698a system: dont let any errors interfere with the shutdown process and just
ignore them

Conflicts:
	core/system/system.factor
2014-11-10 23:30:03 -08:00