Slava Pestov
962d039852
Rename specific-method to method-for-class, rename (effective-method) to method-for-object, and make both much faster
2009-09-21 17:42:20 -05:00
Slava Pestov
fd3a568191
Fix GENERIC# with out of bounds dispatch position
2009-05-12 20:47:20 -05:00
Slava Pestov
581d017b46
Working on inline caching for tail call sites
2009-05-06 19:22:22 -05:00
Slava Pestov
84fe4a7d67
generic.standard: remove bogus error check
2009-05-05 09:12:49 -05:00
Slava Pestov
b4088373b7
Merge branch 'master' of git://factorcode.org/git/factor
2009-05-04 05:16:47 -05:00
Slava Pestov
58512cbbdb
Cleaning up VM code
2009-05-02 09:19:09 -05:00
Doug Coleman
0ad6d1fb7b
add a few usages of iota, remove most 1+ and 1- from core
2009-05-01 19:58:24 -05:00
Slava Pestov
59d6131c7c
Bum 3 instructions out of megamorphic fast path by switching to fixed-size caches
2009-04-30 04:14:14 -05:00
Slava Pestov
515c619202
Non-optimizing compiler now open-codes megamorphic dispatch fast path
2009-04-30 03:37:07 -05:00
Slava Pestov
bd186b6320
Eliminate 3 instructions from PIC fast path
2009-04-29 21:32:05 -05:00
Slava Pestov
02bd4f3f00
PICs now pass the method table around instead of extracting it from the generic word body. This gels better with how compilation units are supposed to work
2009-04-29 19:39:43 -05:00
Slava Pestov
dbc1a8e1a3
Only generate cold call entry points for standard generics and not hooks
2009-04-28 18:17:28 -05:00
Slava Pestov
5b53562c7b
Add better error checking for INSTANCE: and GENERIC#, and remove unnecessary word props when generic word's combination changes
2009-04-28 17:56:15 -05:00
Slava Pestov
7aa65b5b5f
Fixing new method dispatch implementation
2009-04-25 19:41:27 -05:00
Slava Pestov
3dc9fdf9db
Fleshed out new dispatch code
2009-04-24 20:43:01 -05:00
Slava Pestov
8c5b0373a8
Working on new method dispatch system
2009-04-24 15:31:06 -05:00
Slava Pestov
48e70b65fa
Move cross-referencing stuff to tools.crossref since compiler doesn't depend on it anymore, and compute cross-referencing index as needed; reduces image size by ~4Mb
2009-04-22 04:20:38 -05:00
Slava Pestov
a3c0dd44a1
Revert "Remove method-declaration stuff from generic.standard since hints accomplishes the same thing"
...
This reverts commit 487b92074c
.
2009-04-22 00:15:48 -05:00
Slava Pestov
487b92074c
Remove method-declaration stuff from generic.standard since hints accomplishes the same thing
2009-04-21 23:19:13 -05:00
Doug Coleman
aad6a3d504
fixing compiler error in core
2009-04-17 12:45:57 -05:00
Slava Pestov
fd5ab25a09
Better handling of errors without file/line info
2009-04-13 17:19:32 -05:00
Slava Pestov
4fc2182ac8
define-generic and define-simple-generic now take stack effect parameters; math-combination is a singleton instead of a tuple
2009-03-22 18:00:26 -05:00
Slava Pestov
667eca9410
Fix unit tests and help lint for 'see' move
2009-03-11 17:33:54 -05:00
Slava Pestov
03cb32ad9c
Make execute( faster, add execute-unsafe( and make effect tuple slots read only
2009-03-01 20:12:35 -06:00
Slava Pestov
1951d739a0
Stack effect declarations are mandatory on all words now
...
define-temp now takes an effect parameter
Fix compiler bug that Dan found
Stricter enforcement of * effects
Move compile-call from compiler.units to compiler
2009-02-23 20:27:05 -06:00
Slava Pestov
6b25e99470
Add summary for heaps more vocabs
2009-02-16 21:05:13 -06:00
Slava Pestov
ca2f01e0d0
Updating non-core libraries for monotonic? change
2009-01-16 17:02:54 -06:00
Slava Pestov
de3a4f5462
Change some dup ... swap to bi and keep
2008-12-15 21:20:32 -06:00
Slava Pestov
a56d480aa6
Various optimizations leading to a 10% speedup on compiling empty EBNF parser:
...
- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables
2008-12-06 09:16:29 -06:00
Slava Pestov
0ba5304ee3
Fix assocs, generic.standard tests
2008-12-03 03:44:08 -06:00
Slava Pestov
92cc760070
Fixes
2008-11-28 01:11:03 -06:00
Slava Pestov
817510cdb9
Another attempt at size reduction
2008-11-28 01:08:16 -06:00
Slava Pestov
c8f227ccf7
Tweak standard-next-method-quot to produce smaller quotations
2008-11-28 00:56:54 -06:00
Slava Pestov
a4d9cdfeb3
Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
...
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -06:00
Slava Pestov
4858a2ea74
Simplify inline? now that generic words can't be inline anymore
2008-11-13 09:33:18 -06:00
Slava Pestov
ef6206d4bb
Try to optimize generic dispatch to speed up + on fixnums, nth on arrays for example
2008-11-13 03:51:04 -06:00
Slava Pestov
33a082c361
Fix reference to obsolete G: word
2008-11-10 02:43:16 -06:00
Slava Pestov
d2b2cda596
Sort methods by tag, this speeds up >fixnum in the common case where the input is a fixnum
2008-11-06 10:44:06 -06:00
Slava Pestov
a95bb533b5
Remove more redundant branches from tuple type predicates and generic words with methods on tuple classes
2008-11-06 09:08:17 -06:00
Slava Pestov
aac256324f
lo-tag-dispatch-engine now sorts tags, this ensures that >fixnum compiles more efficiently
2008-11-06 00:02:10 -06:00
Slava Pestov
cc879fa9b7
Tuple layouts are now arrays, instead of built-in types. The superclass
...
array is now part of the tuple layout object itself, and class hashcodes
are stored alongside class words there. This removes 2 indirections when
reading a superclass, and 3 when reading a superclass hashcode.
2008-11-05 22:20:29 -06:00
Slava Pestov
4e98751ce0
Remove a conditional branch from all tuple dispatches, since we don't have to check if the class height is at least 1; and remove memory accesses from tuple dispatch where all tuples are height 1
2008-11-05 20:23:38 -06:00
Slava Pestov
2fb17458e3
Fix duplication
2008-10-28 16:22:54 -07:00
Slava Pestov
95eb0f696b
Rice
2008-10-23 05:28:04 -05:00
Slava Pestov
c54668596d
More efficient hi-tag accessor
2008-10-11 13:58:41 -05:00
Slava Pestov
0c8e2584b4
Fixing unit tests for make, fry changes
2008-09-11 00:20:06 -05:00
Slava Pestov
44f53de164
Move make to its own vocabulary, remove fry _ feature
2008-09-10 20:07:00 -05:00
Slava Pestov
110a5e5162
Change equality semantics
2008-09-02 02:02:05 -05:00
Slava Pestov
3b24b52673
Omit default method from usage lists
2008-09-01 04:32:26 -05:00
Slava Pestov
c9df16e931
Tweak XML-RPC
2008-08-29 04:33:05 -05:00