Skip to content

Latest commit

 

History

History
220 lines (179 loc) · 8.07 KB

release_note_en.md

File metadata and controls

220 lines (179 loc) · 8.07 KB
  • Fix: NG: (defun foo) -> #<Error> <error> [#<Error> <program-error>]

v0.7.2

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) was nil, 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

v0.7.1

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>, and arity-error
  • On any built-in-class CLASS, both (subclassp CLASS <built-in-class>) and (subclassp CLASS <object>) are t
  • 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 like if
  • 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

v0.7.0

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)

v0.6.0

Jun 25, 2024

Fixed bugs

  • Fix: KEY on (case KEYFORM ((KEY*) FORM*)*) was evaluated though it should not
  • Fix: (apply) would double evalute the last argument

Generic functions

  • Implement (defgeneric), (defmethod), and (generic-function-p)

Objects

  • 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

Condition system

  • 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

Properties operations

  • Implement (property), (set-property), and (remove-property)

Miscellaneous

  • Implement (sqrt) and (with-standard-input)
  • (defconstant) is defined as alias of (defglobal) temporally

v0.5.0

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

v0.4.1

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

v0.4.0

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 example set "GOREADLINESKK=~/Share/Etc/SKK-JISYO.*;user=~/.go-skk-jisyo"
    • (Linux): export "GOREADLINESKK=(system-jisyo-paths..):user=(user-jisyo-path)"

v0.3.1

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...)

v0.3.0

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"

V0.2.1

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.

v0.2.0

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

v0.1.2

Oct 22, 2022

  • Fix: (defmacro)'s bugs and support &rest of (defmacro) and ,@
  • Remove (macroexpand)

v0.1.1

Oct 16, 2022

Fix: gmnlpp: forgot replacing \ to \\

v0.1.0

Oct 15, 2022

  • The first release