- Fix:
NG: (defun foo) -> #<Error> <error> [#<Error> <program-error>]
Jul 29, 2024
- Fix:
(aref)
: the number and range of parameters were not checked - Fix:
(create-string)
: the range of parameter was not checked - Fix:
(string-append)
wasnil
, but should be""
- Implement
<end-of-stream>
- Fix:
(format)
paniced when base number is less than 2 or greater than 36. - Prevent signal handlers from going into infinite loop
The ISLisp verification program now runs without crashing until the final test.
The current score is TP Result: OK = 7889, NG = 8522
Jul 23, 2024
- Fix:
(equal USER-DEFINED-CLASS-OBJECT...)
was always false. - Implement
(assure)
,(the)
,(max)
,(min)
,(eval)
,(arithmetic-error-operands)
,(arithmetic-error-operation)
,<program-error>
, andarity-error
- On any built-in-class CLASS, both
(subclassp CLASS <built-in-class>)
and(subclassp CLASS <object>)
aret
- Macros within functions are now expanded when the function is defined (previously it was always done when the function was called).
- Implement
(expand-defun)
which displays the definition of the function - Fix the problem each element of array literal should not be evaluated, but it was
- Fix crashed when print cons whose car-part is nil
- Fix the result of
(for)
was sometimes nil - Remove Eval() from requirements of Node interface, and let user's program use the receiver itself instead if Eval() does not exist
- Remove PrintTo() and GoString() from the requirements of Node interface, and let user's program call String() if they do not exist
- Fix: not handled where quote(
'
) occurs immediately before unquote(,
) - Enable to call
((lambda ...) ...)
- Fix: the result to evalute
(1 2)
was<domain-error>
, now it is<undefined-function>
- Raise
<error>
when the parameters of(lambda)
are duplicated now. - Fix:
(instancep (create <domain-error>) <program-error>
was false - The word starting with
&
is treated same as:
- Fix: function defined at
(flet)
could call itself recursively (defun)
,(defgeneric)
can not re-define the special operator likeif
- Fix:
(return-from nil ...)
failes (return-from NOT-EXIST-BLOCK)
raises<control-error>
(throw NOT-EXIST-TAG)
raises<control-error>
(go)
raises<controle-error>
- When
(go)
,(throw)
or(return-from)
is called on CLEANUP-FORM of(unwind-protect FORM (go) ..)
, raise<control-error>
- Implement
<strage-exhausted>
(create <array>)
without arugments raises an error now- Fix:
(create-array ()...)
crashed (read)
can throw<parse-error>
now- Implement BigInt minimally to read integer overflow with int65
- Implement
<number>
as the base class for<integer>
and<float>
- Fix:
(create-array)
crashed when one argument
Jun 27, 2024
- Implement the type function reference
(lambda)
,(function)
and#'
return not a function itself, but a reference to a function now(funcall)
,(map*)
,(labels)
, and(flets)
require not a function but a reference, and raise an error when a function itself is given
- Split the namespace for functions and that of variables
- Implement the error class
<undefined-function>
, methods:(undefined-entity-name)
,(undefined-entity-namespace)
(function)
returns error when a macro,special form is given as a parameter (On ISO, the consequence is undefined)
Jun 25, 2024
- Fix: KEY on
(case KEYFORM ((KEY*) FORM*)*)
was evaluated though it should not - Fix:
(apply)
would double evalute the last argument
- Implement
(defgeneric)
,(defmethod)
, and(generic-function-p)
- Implement
(class-of)
,(instancep)
,(class)
,(subclassp)
, and(initialize-object
), (create)
can create the instance of not only user-defined class, but also embeded-types(defclass)
: support:boundp
for slot-definition
- A conditiones can be implemented with a class now
- Implement
(with-handler)
,(signal-condition)
,(continue-condition)
,(error)
,(cerror)
,(report-condition)
, and<simple-error>
Now, all of errors have not been changed to condition object
- Implement
(property)
,(set-property)
, and(remove-property)
- Implement
(sqrt)
and(with-standard-input)
(defconstant)
is defined as alias of(defglobal)
temporally
Jun 14, 2024
- Support exponential representation of floating point real numbers
- Add integer formats:
#b..
,#o..
, and#x..
- Implement
(ignore-errors FORMS...)
- Implement
(defclass)
and(create)
- gmnlisp.exe: go-multiline-ny v0.12.1 → v0.15.0 - improving history
Oct 01, 2023
- gmnlisp.exe: Use reverse(ESC[7m) and underline(ESC[4m) for SKK conversion
- gmnlisp.exe: Fix: SKK failed to start when user-jisyo did not exist
Sep 30, 2023
- gmnlisp.exe: support multi-line editing by go-multiline-ny
- gmnlisp.exe: support Japanese input method editor SKK by go-readline-skk
To use SKK,- (Windows):
set "GOREADLINESKK=(system-jisyo-paths..);user=(user-jisyo-path)"
for exampleset "GOREADLINESKK=~/Share/Etc/SKK-JISYO.*;user=~/.go-skk-jisyo"
- (Linux):
export "GOREADLINESKK=(system-jisyo-paths..):user=(user-jisyo-path)"
- (Windows):
Sep 11, 2023
- Add tool type and functions for golang applications
- type
Dynamics
and its methods (*World) NewDynamics
and(*World) Dynamic
- test code with
(dynamic...)
- type
Jul 29, 2023
- Support the symbol whose name is enclosed by vertical-bars (Specification of ISLisp)
- Changed display format of stack trace
- Implement
(*World) Range(Symbol,Node)
to provide an iterator of each variable. - Implement
(gmn:dump-session)
to print all variables' names and values. - Support following cases of tail recursion optimization:
(defun X () .. (X) )
(defun X () .. (progn (X)) )
(defun X () .. (if .. (X) (X)))
(defun X () .. (let (..) .. (X)))
(defun X () .. (let* (..) .. (X)))
(defun X () .. (cond ... (t (X))))
- Fix: (format): the sequence "~X" (X is an upper case letter) did not work
- Remove the sub packages: "pkg/auto" and "pkg/common"
Jan 29, 2023
- Support (format FD "~N%")
- Rename HasValue to IsSome
- Rename IsNull to IsNone
- Implement
- (char<) (char>) (char=) (char<=) (char>=) (char/=)
- (characterp)
- (create-list)
- (char-index)
- (basic-array-p) (basic-array*-p) (general-array*-p)
- Remove (arrayp)
- Fix: the problem (equal (list t nil nil) '(t nil nil)) was nil
t
was the symbol containing True.t
is now the reserved word meaning True.
Dec 29, 2022
- Some functions and macros are defined by embeded Lisp (embed.lsp and lsp2go.lsp)
- Re-implement (setf) and (set-..) by (defmacro)
- Remove <utf*string>. <string> is same as <utf8string>
- Support (setf (subseq UTF8STRING START END) NEWVALUE).
- Implement
- (dolist) by (defmacro)
- (dotimes) by (defmacro)
- (lambda-macro)
- (gensym)
- (convert SYMBOL <string>)
- (file-length)
- (probe-file)
- (backquote)
- (create-array) (arrayp) (array-dimensions) (aref)
- (abort)
- (tagbody) (go)
- Fix
- gmnlisp.exe: *posix-argv* was not be defined
- (defmacro) did not support lexical namespace
- (defun): &rest were not evaluted.
- tokenizer: could not treat " and \
- (block) now accepts nil as the first parameter
- (replica) -> (set-car) and (replid) -> (set-cdr)
- (quote X) is displayed as
'X
- (defun) and (defmacro) can now use :rest same as &rest
Oct 22, 2022
- Fix: (defmacro)'s bugs and support &rest of (defmacro) and ,@
- Remove (macroexpand)
Oct 16, 2022
Fix: gmnlpp: forgot replacing \
to \\
Oct 15, 2022
- The first release