Back to index
LispMe History
V1.00 22.08.1997
initial release
V1.10 (internal version)
- enhancement:
- optimization of conditionals (if,
and, or)
- new:
- tail recursion elimination
- bugfix:
- duplicate names in lambda, let,
letrec
- new:
- added begin expression
- enhancement:
- modified samples to take advantage of
tail recursion, begin
- new:
- added execution statistics
V1.20 07.09.1997
- enhancement:
- safer memory management
- new:
- command "reset to factory settings"
- cleanup:
- moved "reset heap" to menu
- cleanup:
- minor cosmetic tweaks
- new:
- top-level define
- cleanup:
- let and letrec syntax as in Scheme
- new:
- option for auto power off
- new:
- print expression
- cleanup:
- samples modified for new syntax
- enhancement:
- all samples as .csv file for easier import
V1.30 (internal version)
- bugfix:
- (quote . any) traps
- new:
- cond special form
- new:
- functions set-car! and set-cdr!
- new:
- slashified symbols (removed in V1.50)
V1.40/28.10.1997
- new:
- PalmOS2 support
- enhancement:
- more memory
- new:
- floating point numbers
- new:
- transcendental functions using MathLib
- enhancement:
- Print depth in setup dialog
- enhancement:
- own scanning/printing routines for
floats as ROM routines are junk :-(
- enhancement:
- better error messages
- bugfix:
- check OS version
- enhancement:
- extended standard library
- new:
- memory statistics
- cleanup:
- #t and #f like in Scheme
- bonus:
- conditionally compile PalmOS1 version
V1.50/21.11.1997
- optimization/fix:
- various code size optimizations
and minor glitch fixes
- cleanup:
- internally composite objects like
procedures and continuation are no longer pairs at user level
- new:
- characters
- new:
- strings
- cleanup:
- display, write and newline
instead of print
- new:
- graphics primitives draw, rect
and text
- enhancement:
- font and pattern support for graphics
- enhancement:
- clip graphics to output area
- new:
- global vars *point*, *font*
and *pat*
- removal:
- dropped slashified symbols
- new:
- syntax for hexadecimal string constants
V1.60/21.1.1998
- cleanup:
- use machine format with object->string
- cleanup:
- escape # when outputting strings
- bugfix:
- crash with font 7
- cleanup:
- else no longer a variable
- new:
- HTML documentation
- optimization:
- load time
- bugfix:
- added missing functions in on-line help
- bugfix:
- button display in long evaluations during memo load
- new:
- procedures read, read-string,
message, and wait-pen
- new:
- Tic-Tac-Toe sample program
V1.70/8.3.1998
- enhancement:
- use DB memory for heap etc., allowing 32k
heap on any Pilot
- bugfix:
- parsing multiple SEXP after a dot
- bugfix:
- wrong error message for set-car! and
set-cdr!
- bugfix:
- a subtile bug in pointer tagging made pairs
having integer -2048 .. -1921 in their car look like
non-pairs to the VM
- enhancement:
- finally found a way to have more than 32k code
with gcc, so be prepared for a bunch of new functions/types!
- new:
- procedures random, disasm,
sound, and wait
- new:
- switching to another application no more aborts a
running evaluation. The evaluation is resumed when you restart
LispMe.
- new:
- MemoPad I/O via standard Scheme port mechanism
- change:
- former procedures read and read-string
now called input and input-string to be
compatible with ports
- new:
- procedure dir and delete-file
V1.80/19.4.1998
- bugfix:
- check frequency parameter of sound
- cleanup:
- omit trailing space in object->string
- new:
- vectors
- cleanup:
- (or e1 e2)
returns e1, if it is true
- new:
- A little theorem prover (sample program) submitted
to me by Winton Davies.
V1.90/9.5.1998
- bugfix:
- print formatting with memos
- enhancement:
- changed vector representation for faster GC
- bugfix:
- wrong masking for UID in vector access
- new:
- Parentheses Hack for easier input of programs
V2.00/4.7.1998
LispMe
- enhancement:
- single argument for /
- enhancement:
- any number of arguments for +,
*, min, max, append,
and string-append,
- enhancement:
- any number of arguments for and,
and or,
- cleanup:
- return #n for definitions and after
loading memos
- enhancement:
- optimised cond
- new:
- special form case
- new:
- complex numbers
- change:
- made expt and log10 library
procedures instead of primitives.
- bugfix:
- check recursion depth in reader and compiler
- bugfix:
- repeatedly outputting the same vector didn't unlock
its chunk when output was truncated
- bugfix:
- accented chars in string->list causes invalid
pointer error
Parentheses Hack V1.1
- bugfix:
- wrong match when overwriting selection
with closing parenthesis
- enhancement:
- much faster parentheses matching in very
long lists without line breaks
- enhancement:
- Entering 0 behaves like o and
5 like s, so position of navigation stroke
doesn't matter.
V2.10/8.8.1998
LispMe
- enhancement:
- better error message for invalid parameter
- bugfix:
- fixed numeric cancellation problem for certain
(large) complex arguments to asin, asinh,
acos and acosh
- bugfix:
- more precise recursion depth checking in compiler
- new:
- added preference setting for lefthanders
- cleanup:
- spacing in menus
- cleanup:
- renamed menu shortcuts in options menu according
to Palm UI guidelines
- bugfix:
- update scrollbar with Parentheses Hack
- PalmIII support:
- small icon
- PalmIII support:
- correct version number in info
- PalmIII support:
- support new bold large font with text
- PalmIII support:
- twice the stack space for read, compile and GC
- new:
- Edit button added in load dialog. Jumps to
offending source text on syntax errors.
- bugfix:
- applying a procedure with optional arguments
modified its argument list, now copy arg list in this case
- bugfix:
- eqv? now returns #t for two empty
strings
Parentheses Hack V1.2
- bugfix:
- send changed notification for scrolling
V2.20/25.8.1998
LispMe
- bugfix:
- GC while copying the argument list during apply
created an invalid pointer.
- bugfix:
- Leaving LispMe when output had been truncated and
restarting it overwrote one byte after the output buffer
- bugfix:
- Scanning problem when #\) was the first item
in a list.
- new:
- nested defines, i.e. whereever an expression
sequence is allowed, it may be preceded by local definitions
- enhancement:
- Hardware scroll buttons now work in Load Dialog
(PalmOS2 only)
- bugfix:
- read raised an error when only white space
was left in a memo. Now correctly returns [eof].
- new:
- quasiquote expressions
- change:
- madeappend a primitive procedure instead of
library
V2.30b/12.12.1998
LispMe
- bugfix:
- Trying to apply a closure to a vector
created an invalid pointer.
- bugfix:
- Atom sizes >4096 bytes aren't addressable and
are now disallowed.
- cleanup:
- Major code cleanup and rework
- enhancement:
- GC while parsing or compiling now allowed
- new:
- Option for printing quote, quasiquote etc.
expressions in short form.
- optimization:
- Reduced polling frequency for break button but
poll after every GC or output
- new:
- eval
- enhancement:
- Now use DB records for strings just like vectors
- bugfix:
- Treat closures etc. as valid expressions for eval
- bugfix:
- Make string-append always return a copy, even
if it's called with one argument
- enhancement:
- Increased buffer size for string->object and
object->string
- enhancement:
- Increased maximum token length
- new:
- gensym
- new:
- Popup list with all symbols in main form
- bugfix:
- handle tail recursion correctly in let and
letrec context
- new:
- none?
- new:
- Macros
- new:
- Hex syntax for character constants
- bugfix:
- A silly environment depth bug interfered with macro
invocations in recursive contexts :-(
- bugfix:
- A temporary was not properly protected against GC
when compiling letrec expressions.