Commit Graph

  • caf7f15f44 porting over some small changes from julia's flisp JeffBezanson 2010-05-05 00:00:37 +0000
  • 3bac64cbd7 print improvements JeffBezanson 2010-05-04 23:54:07 +0000
  • 271cf34e99 some critical bug fixes JeffBezanson 2010-05-04 18:17:55 +0000
  • 6bf5aa0c72 fixes for boehm compatibility JeffBezanson 2010-05-03 05:07:22 +0000
  • 23b728155f some boehm gc tweaks JeffBezanson 2010-05-02 23:23:00 +0000
  • a2b57453cb adding interoperability with boehm gc if BOEHM_GC is defined JeffBezanson 2010-05-02 20:36:39 +0000
  • 8d7576250d porting over some minor changes to LLT JeffBezanson 2010-05-02 18:28:53 +0000
  • b7f08e854f fully separating femtolisp into library core and main program JeffBezanson 2010-05-02 18:17:47 +0000
  • 1dcc71ec82 factoring out startup routine for embedded use JeffBezanson 2010-04-29 18:39:17 +0000
  • eec95c17b8 adding fl_ prefix to some functions JeffBezanson 2010-04-29 18:01:26 +0000
  • 45c11c944b porting over some small LLT fixes JeffBezanson 2010-04-10 04:25:59 +0000
  • 731e41cdb6 adding 2 more aliases needed for gambit JeffBezanson 2010-03-12 06:19:01 +0000
  • 716a6447f9 adding arraylist to LLT JeffBezanson 2010-03-05 18:08:31 +0000
  • 7d652f9c5a some LLT cleanup: making allocation functions customizable adding ios_vprintf simplifying config variables for mac JeffBezanson 2010-02-25 04:37:33 +0000
  • 2e99f52b29 adding dependency on equal.c in makefiles adding a missing va_end minor change to hash function JeffBezanson 2010-02-05 19:56:10 +0000
  • 1649e64ad3 putting llt_init in a separate file JeffBezanson 2010-01-06 20:27:04 +0000
  • 219ffb7e63 clarifying which values are unspecified, and making the unspecified value true, since only #f should be false. removing not-really-used definitions of true and false, which just seem to be asking for conflicts JeffBezanson 2010-01-06 18:27:28 +0000
  • f33ad9348d fixing some numeric typedefs to avoid conflicts in some environments JeffBezanson 2009-12-11 19:12:10 +0000
  • 8eb100a3cf simplifying copy-list improving the gambit-like read-line function adding with-output-to-string JeffBezanson 2009-12-03 20:12:06 +0000
  • 222eead750 fixing char comparison bug accepting more numeric types in vector.alloc adding more aliases JeffBezanson 2009-11-18 17:38:16 +0000
  • 3dc2275a07 making os name symbols non-constant, so they aren't evaluated at compile time more aliases JeffBezanson 2009-10-22 03:32:12 +0000
  • be453f2ed5 improving portability to Mac OS fixes for big endian architectures (PowerPC) renaming exported symbol raise to fl_raise fixing some bugs and oversights discovered in the process JeffBezanson 2009-08-29 00:54:51 +0000
  • 12b9013744 changes to support mac compilation better. patches from Stefan. JeffBezanson 2009-08-24 01:11:36 +0000
  • be0d4d0d47 renaming - adding fl_ prefix to some more functions JeffBezanson 2009-08-23 07:06:57 +0000
  • 37a23afb3c adding io.peekc, top-level-bound? (alias) fixing behavior of number? fixing bugs in get-output-string, setting eof JeffBezanson 2009-08-23 05:07:46 +0000
  • 0cc3595e80 renaming backquote-related symbols to scheme style adding multi-arg for-each now R6RS psyntax can be fully bootstrapped interpreter maintenance JeffBezanson 2009-08-18 03:46:09 +0000
  • 626801fd1f adding => form of cond clauses adding path.exists? R6RS psyntax simple example now works JeffBezanson 2009-08-14 03:17:21 +0000
  • 9ed9a51786 adding *print-level* and *print-length* fixing open-string-output-port (R6RS) making io.tostring! more consistent adding newlines to boot file; wastes space but will allow more efficient diffing JeffBezanson 2009-08-13 04:09:35 +0000
  • 43b6029727 allowing form (define x) error checking define a bit better fixing a small bug in expand-lambda JeffBezanson 2009-08-12 05:15:21 +0000
  • 332235231c changing semantics to respect lexical scope more strictly; now anything can be shadowed by closer nested variables fixing bugs in let-syntax and expanding optional arg default values improving expansion algorithm on internal define some small optimizations to the compiler maintaining interpreter for bootstrapping JeffBezanson 2009-08-12 04:56:32 +0000
  • 97c05e8eb4 a couple bug fixes some small performance tweaks moving some test files around JeffBezanson 2009-08-09 20:34:07 +0000
  • b59dcdc877 fixing bug in with-input-from-file JeffBezanson 2009-08-09 18:27:05 +0000
  • 929ec92a65 adding support for eof-object renaming exported symbol NIL to FL_NIL making default vector fill #f some misc. cleanup JeffBezanson 2009-08-09 18:04:03 +0000
  • 51f645a916 adding gensym?, fixing keyword? checking in psyntax library, and more scheme aliases to make it work JeffBezanson 2009-08-09 17:05:40 +0000
  • db94d6ef1f adding offset and count arguments to io.write making io.write output chars as utf8; suddenly switching to UTF32 was not intuitive adding stream argument to newline (R6RS) adding several more scheme compatibility procedures JeffBezanson 2009-08-09 04:04:31 +0000
  • 3fbd5e7da6 adding functions io.copy, io.readall, time.fromstring adding srfi-6 (string ports) functions removing unnecessary behavior of sometimes printing int32s and int64s in hexadecimal JeffBezanson 2009-08-08 23:43:12 +0000
  • 302ddec770 adding read and print support for named characters, e.g. #\space printing infs and nans in R6RS format making closure print syntax more compact; fn instead of function adding more c[ad]+r functions JeffBezanson 2009-08-08 21:44:14 +0000
  • 1a6d9d391f adding with-bindings, with-output-to-file, with-output-to simplifying printing. now based on standard function write, removing io.print and io.princ using same top level exception handler for scripts as repl JeffBezanson 2009-08-08 00:29:55 +0000
  • c6a977063e better error checking for formal argument lists some cosmetic error improvements adding more tests JeffBezanson 2009-08-03 05:00:44 +0000
  • 15c8cb327d finishing initial implementation of keyword arguments fixing up interpreter so it can be used for bootstrapping again removing let/copyenv optimization because it really didn't seem to help much JeffBezanson 2009-08-02 04:06:07 +0000
  • adb702cdf8 fixing a bug in optional args + rest args with no required arguments adding some code for keyword argument processing JeffBezanson 2009-07-29 04:20:28 +0000
  • 08787a01cd fixing use of an undefined behavior that was breaking compiles occasionally JeffBezanson 2009-07-29 02:32:23 +0000
  • ecfd81148f changing optional args to allow default values to be computed from preceding arguments tidying some stuff with keywords JeffBezanson 2009-07-28 04:16:20 +0000
  • eceeddf6d2 adding support for optional arguments error checking formal argument lists making filter preserve the order of elements in the input list JeffBezanson 2009-07-27 03:34:33 +0000
  • c61dc10002 adding some combined instructions and teaching the compiler to emit them: brn, brnn, brne, cadr JeffBezanson 2009-07-24 04:20:09 +0000
  • 88d08edecc adding io.pos, io.readlines, read-all fixing a small ios bug JeffBezanson 2009-07-22 03:50:57 +0000
  • 66c671bfee making long argument lists more efficient JeffBezanson 2009-07-22 02:10:20 +0000
  • 0278b152b8 fixing a case where tail position was not properly observed JeffBezanson 2009-07-21 03:42:15 +0000
  • 57c066fcdf simplifying code by eliminating the hybrid stack/heap calling convention other misc. cleanup JeffBezanson 2009-07-20 04:57:17 +0000
  • 642d1e1bd4 rewriting some primitives to take advantage of the full language; they do not need to be written in terms of the base language any more moving handling of internal define and multiple-body-lambda to the compiler where it belongs. macroexpand now only handles syntax. JeffBezanson 2009-07-18 02:16:18 +0000
  • 2c304edf42 changing boot file format; the old one did not preserve sharing between top-level functions making colon at the end also valid for keywords adding keyword? predicate fixing bug in map adding functions to emulate values and call-with-values adding receive macro improving equal? on closures adding lambda-lifting optimization to the compiler JeffBezanson 2009-07-17 01:30:26 +0000
  • c19aaeabd6 keeping track of function names, printing nice stack traces changing default bootstrap process to use VM instead of interpreter fixing bug where only a fixnum could index a vector merging equal.c into the main compilation unit JeffBezanson 2009-07-10 04:17:39 +0000
  • 2d4a0ae30e adding functions max and min fixing make-system-image to save aliases of builtins JeffBezanson 2009-07-08 19:07:56 +0000
  • e4e8d4dfdb supporting multi-arg map fixing branch destination display in disassemble JeffBezanson 2009-07-08 05:53:29 +0000
  • 3793cf676c implementing stack traces some cleanup JeffBezanson 2009-07-06 03:56:48 +0000
  • 494e439510 using lisp value stack for call frames instead of the C stack adding the ability to grow the value stack as needed JeffBezanson 2009-07-03 18:43:15 +0000
  • 2f78b407ea some renaming (intern is now symbol) and moving stuff around adding scheme aliases JeffBezanson 2009-06-30 03:21:41 +0000
  • 3844191d70 adding the ability for the VM to use computed goto where available with gcc v4.3.2 I found the combination of -O2 and computed goto to give the best performance; with -O3 performance was a little worse and computed goto was a wash. JeffBezanson 2009-06-28 19:47:11 +0000
  • b5897e0ad1 adding maxstack calculation and stack overflow protection making append benchmark more useful by measuring interpreter speed instead of the builtin JeffBezanson 2009-06-27 23:07:22 +0000
  • 8decdc4ae4 making append a builtin making branch destinations relative so we can access the code using *ip instead of code[ip] doing the same to bp (argument access) small improvement to map, builtin->instruction better profiling JeffBezanson 2009-06-15 02:25:21 +0000
  • 6ec69f5375 optimizations to map and case several optimizations to the compiler itself, mostly involving emit and encode-byte-code experimental, very basic profiling utility JeffBezanson 2009-06-11 00:34:50 +0000
  • 943c0d71d1 tiny performance tweaks: removing some variables, making some static JeffBezanson 2009-06-09 18:46:02 +0000
  • 27a3e413d3 adding opcodes loada0, loada1, loadc00, loadc01 adding offset and count arguments to dump JeffBezanson 2009-06-08 03:22:32 +0000
  • 17752decf4 implementing support for lambdas with up to 2^32-1 required arguments using copy-list to implement append2 fixing bug in op_vargc when nrequired==MAX_ARGS making fetching of multibyte numbers from bytecode portable some cleanup in compiler JeffBezanson 2009-06-06 21:15:54 +0000
  • 7e59898778 updating doc JeffBezanson 2009-05-31 22:27:37 +0000
  • 91a6ae6490 adding string.width JeffBezanson 2009-05-31 22:09:26 +0000
  • 7c48f6ae53 some renaming and reorganizing using more scheme-like names append! and reverse! JeffBezanson 2009-05-31 21:06:04 +0000
  • ba32e4b0e9 simplifying the whole list* situation, taking better advantage of existing builtin functionality JeffBezanson 2009-05-31 18:58:09 +0000
  • 7e65db3e74 faster append removing 'equal' alias removing some top level bindings JeffBezanson 2009-05-30 21:13:13 +0000
  • bbcc68cfdf making copy-list a builtin, since the functionality was there anyway. adding builtin primitive apply-nlist*, to speed up list* and nlist* JeffBezanson 2009-05-30 17:54:27 +0000
  • a23bee041f fixing bug in cond when condition wasn't followed by any forms fixing typo in cps.lsp optimizing constant conditions in if JeffBezanson 2009-05-30 17:04:34 +0000
  • e2c1d2ae9e some cleanup JeffBezanson 2009-05-30 02:52:22 +0000
  • c42ee12d4c allowing multiple expressions in lambda making cond a macro increasing size limit for cvalues on the managed heap, and inline allocated hashtables JeffBezanson 2009-05-29 04:38:50 +0000
  • 1ee81e2625 fixing bug printing functions involved in cycles JeffBezanson 2009-05-21 00:56:25 +0000
  • 99c17feac1 made cons hashing tail recursive on cdrs plus one more test JeffBezanson 2009-05-20 18:52:09 +0000
  • ff650e3049 fixing hash function to do a better job on long lists. JeffBezanson 2009-05-20 04:30:00 +0000
  • bfbbf051c9 doing a better job hashing circular structure. the hash function is now always fast and gives conservative correct answers, at the expense of fidelity on medium and large size structures. for example (hash (iota 15)) gives the same result as (hash (iota 14)). JeffBezanson 2009-05-20 03:39:20 +0000
  • c2026ba77c adding gc handles, making evaluator stack static this provides a better interface and could only help performance starting to add some useful library code JeffBezanson 2009-05-19 02:54:56 +0000
  • c38c47d264 adding R6RS div, mod, div0, mod0 small improvement to cmp_eq explicit -fomit-frame-pointer was causing test failures with gcc4.3.2 JeffBezanson 2009-05-14 17:54:59 +0000
  • e365cb1d33 adding divide by 0 check in div JeffBezanson 2009-05-14 02:53:04 +0000
  • ae2a4dd156 adding integer division function div changing / to do real division always fixing equal? to distinguish -0.0 and 0.0 making equal? and eqv? false on numbers of different exactness JeffBezanson 2009-05-14 01:30:25 +0000
  • 6c549f0399 fixing hash of circular structure to avoid tree recursion (very important!!) simplifying vector_grow JeffBezanson 2009-05-13 04:03:13 +0000
  • 77e37368c9 fixing trace and untrace replacing function->vector with function:code, function:vals, and function:env JeffBezanson 2009-05-13 01:13:40 +0000
  • a7a31cf53a fixing vararg apply to work properly JeffBezanson 2009-05-11 23:55:40 +0000
  • afa77a8c5f adding array? adding vararg apply JeffBezanson 2009-05-08 04:08:31 +0000
  • af72c4f5bd putting the saved environment in the order that matches the current boot file JeffBezanson 2009-05-08 03:00:40 +0000
  • 2c212fbcf7 adding random function fixing bug in integer? sorting environment in make-system-image for more stable diffs JeffBezanson 2009-05-08 02:52:25 +0000
  • 3dbaa358f9 making 3rd argument to string.sub optional some renaming removing 1/Instructions table JeffBezanson 2009-05-07 02:10:52 +0000
  • c94774a5df adding *error-stream* variable removing unnecessary byte after :let in bytecode encoding adding script for easy bootstrapping JeffBezanson 2009-05-05 23:51:13 +0000
  • 63edc82ba4 using global variables uniformly for print settings instead of passing around one of them fixing unwind-protect not to duplicate code JeffBezanson 2009-05-05 04:01:06 +0000
  • 264df1f90b improving closure representation some performance tweaks JeffBezanson 2009-04-28 04:10:18 +0000
  • 14d625bd83 some performance tweaks JeffBezanson 2009-04-27 03:21:53 +0000
  • de19e4f401 adding return special form eliminating some unnecessary top-level bindings adding opcodes add2, sub2, neg JeffBezanson 2009-04-26 22:19:32 +0000
  • 0dc4c16276 making procedure? a builtin fixing type error trying to apply #t, #f, nil JeffBezanson 2009-04-24 20:43:56 +0000
  • 1259c17837 updating interpreter to work better for bootstrapping adding program mkboot0, which can be run in the interpreter to compile source files into a stage-0 boot image. JeffBezanson 2009-04-23 00:55:03 +0000
  • 909b91ffcc fixing printing of invalid UTF-8 JeffBezanson 2009-04-23 00:22:03 +0000
  • e4488bb065 some tweaks to the vm JeffBezanson 2009-04-22 23:00:13 +0000
  • 27120b0ce4 fixing bug in truncate simplifying nconc loop JeffBezanson 2009-04-22 15:02:49 +0000
  • 291b5f86e0 fixing nconc on long argument lists JeffBezanson 2009-04-22 01:40:10 +0000
  • 2bf87ede4f fixing !print_pretty on vectors JeffBezanson 2009-04-21 21:41:32 +0000