Commit Graph

357 Commits (36e73b8c915b3cb9fa0d7c1d28a4b091ffe33ac7)

Author SHA1 Message Date
Slava Pestov 07ec51b24a Clean up embedding API 2009-01-14 18:40:23 -06:00
Doug Coleman 585d977ed0 remove a couple comments from Config.windows files 2009-01-13 20:54:39 -06:00
Slava Pestov b2e45f199e Calling dispose on unix stdin no longer kills the VM 2008-12-20 18:02:08 -06:00
Slava Pestov 00212bb626 Save and restore r31 2008-12-16 02:06:53 -06:00
unknown b5d98e6a1e Fix warning 2008-12-15 21:19:04 -06:00
U-SLAVA-DFB8FF805\Slava f4c3bf1dd6 Fix compile warning and fix (sleep) primitive on Windows 2008-12-13 04:49:16 -06:00
Joe Groff 88856fac21 OSX VM requires function from Cocoa framework, so link against it even when building for X11 2008-12-10 12:22:17 -08:00
Slava Pestov ec23584f48 Finish up O(1) byte array allocation 2008-12-09 18:17:04 -06:00
Slava Pestov eb79c6ab71 Fix conflict 2008-12-09 17:52:45 -06:00
Slava Pestov 9ad51490af Fix GC crash with -generations=2 2008-12-09 16:26:30 -06:00
Slava Pestov 833d9f9c0b Fix quotation pooling 2008-12-08 21:24:45 -06:00
Slava Pestov e4f8448eb1 Fix some problems with arithmetic type inference, exposed by recent changes to log2 word
- declared input type for bignum-shift was stricter than the runtime behavior, leading to bad propagation of type info if shift count was a bignum
- types inferred for type functions which used number-valued/integer-valued/real-valued were not always precise, eg bignum bignum bitxor => integer
- add interval-log2, type function for (log2)
- remove math-class-min, it was useless
2008-12-07 19:44:49 -06:00
Slava Pestov 0290be6e93 Exploit the fast-path for allocation of array with initial element 0 by changing
new-sequence on arrays, the vector constructor, and resize-array, called when
growing vectors, to fill arrays with 0 instead of f. user code never observes the
initial value in these situations anyway. small speedup on bootstrap
2008-12-06 18:37:28 -06:00
Slava Pestov 908644ee7a O(1) <sbuf> and new-sequence on byte-arrays (work in progress) 2008-12-05 07:28:52 -06:00
Slava Pestov e256846acd Tweak string representation; high bit indicates if character has high bits in aux vector. Avoids memory access in common case. Split set-string-nth into two primitives; set-string-nth-fast is open-coded by optimizing compiler. 13% improvement on reverse-complement 2008-12-05 06:38:51 -06:00
Slava Pestov d59f8b10dc Fix printing of negative fixnums in FEP 2008-12-01 18:08:39 -06:00
sheeple abc486c342 Subtraction overflow was wrong way round on PowerPC 2008-11-30 06:08:16 -06:00
sheeple 2b1a90e90a Fixing PowerPC arithmetic primitives 2008-11-28 22:22:26 -06:00
Slava Pestov 68dd6cc35a Working on PowerPC overflow checks 2008-11-28 20:02:50 -06:00
Slava Pestov 2863da257b fixnum-shift didn't work with very large negative shift counts; BRANCHLESS_MAX macro was wrong 2008-11-28 08:34:30 -06:00
Slava Pestov 5634becda1 ##fixnum-add, ##fixnum-sub instructions open-code overflow check 2008-11-28 05:33:58 -06:00
Slava Pestov 6320b936ff Merge branch 'master' into faster_overflow_checks 2008-11-28 04:35:26 -06:00
Slava Pestov c8a8d69382 After merging quotations, we need to update references to the old versions' XTs in the code heap 2008-11-28 03:47:37 -06:00
Slava Pestov b3ad902208 Fix cosmetic issue 2008-11-28 00:48:20 -06:00
Slava Pestov fff10d8082 Fix for gcc 4.2 2008-11-27 23:32:17 -06:00
Slava Pestov cfbd3c679b Remove unused function from VM 2008-11-27 23:28:38 -06:00
Slava Pestov 6dfce7d4e7 load-locals is a primitive now, change semantics of get-locals to bum out 2 instructions from the sub-primitive 2008-11-27 22:30:29 -06:00
Slava Pestov e78121f38c Rewrite remaining fixnum primitives in assembly (work in progress) 2008-11-26 04:22:39 -06:00
Slava Pestov 826be7530e Check Mac OS X version on startup and give up if we're running something older than 10.5 2008-11-25 21:51:41 -06:00
Slava Pestov c7c1f3903f Fix performance problem: literals were being scanned too often 2008-11-25 21:27:07 -06:00
slava fbc0f33c86 The deploy tool would coalesce equal quotations into one. This created a problem
for the non-optimizing compiler because if the new 'leader' quotation was not
compiled but some of the ones that it replaces were, then calls to the quotation
from contexts where they have to be compiled (eg, compiled if and dip) would no
longer work. Add a `jit-compile' primitive to compile quotations, and call it
as appropriate in `compress-quotations`.
2008-11-24 15:59:27 -06:00
Slava Pestov a4282139dc Add comments explaining recent changes 2008-11-24 09:27:15 -06:00
Slava Pestov ab689c098b Clean up direct literal code and make a first attempt at PowerPC support 2008-11-24 08:16:14 -06:00
Slava Pestov 030501d6ef GC speedup 2008-11-24 06:49:14 -06:00
Slava Pestov 2aaf860f47 Experimental optimizations 2008-11-24 06:40:51 -06:00
Slava Pestov 8663ca2982 Fix VM for PowerPC 2008-11-24 02:03:01 -06:00
Slava Pestov d86524f4bc Non-optimizing compiler now compiles dip, 2dip, 3dip, if, with direct branches instead of indirect branches. 8% bootstrap time improvement on Core Duo 2 2008-11-24 00:23:17 -06:00
Slava Pestov 1d6e389d18 Fixing walker, adding traceback tests 2008-11-23 21:40:54 -06:00
Slava Pestov 65b89eea9e Fix compile error 2008-11-23 04:46:15 -06:00
Slava Pestov 7788b3e0db Merge branch 'master' into microseconds 2008-11-23 03:06:32 -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 f1b95c0038 Fix .c command in FEP 2008-11-22 19:57:06 -06:00
Slava Pestov 1b091b5a26 Reuse F_CONTEXT instances used for FFI callbacks: 60x speed improvement on benchmark.fib6 2008-11-21 23:13:14 -06:00
Slava Pestov 322d115d2e /mod didn't handle overflow correctly 2008-11-21 05:18:55 -06:00
Slava Pestov 27503bf67f Faster /mod and /i primitives 2008-11-21 01:54:45 -06:00
Doug Coleman 3ea773fa80 remove UNKNOWN test 2008-11-19 16:10:00 -06:00
Slava Pestov 8819f23312 Replace millis primitive with micros primitive
Add millis as a library word
sleep now takes either a duration or a microsecond count; code using durations doens't need to be updated, code using millisecond counts updated to use durations for the most part
2008-11-19 01:50:05 -06:00
U-SLAVA-DFB8FF805\Slava 2ffecd3acc Fix VM compile on 32-bit Windows 2008-11-18 18:51:52 -06:00
Slava Pestov 7fd0a27c0d VM no longer uses printf since format string directives are not portable between Win64 and everything else... 2008-11-18 18:21:42 -06:00
Slava Pestov d6dd9ea2a3 Add workaround for Windows bttray.exe issue 2008-11-17 21:21:57 -06:00