Skip to content

Releases: gmpalter/cl-forth

CL-Forth 1.3.5

12 Sep 20:10
Compare
Choose a tag to compare

Release 1.3.5 of CL-Forth

Performance Improvements

  • Change the FORTH-SYSTEM class to a structure. Update WITH-FORTH-SYSTEM to arrange for inlined slot access
  • Change the WORDS, DICTIONARY, and WORD-LISTS classes to structures to get inlined slot access
  • Change how parameters are saved in words to use a structure, eliminating the use of APPLY in FORTH-CALL
  • Optimize the implementation of ACCEPT
  • Optimize the character "primitives" EXTRACT-CHAR, FORTH-CHAR, NATIVE-CHAR
  • Optimize the functions that convert between Forth strings and native strings
  • Use EQL instead of CHAR-EQUAL in places where the overhead of CHAR-EQUAL is superfluous

Bug Fixes

  • Fixes issue #1

CL-Forth 1.3

04 Sep 17:43
Compare
Choose a tag to compare

Release 1.3 of CL-Forth

FFI improvements:

  • Support [OPTIONAL] with LIBRARY
  • Change XLIBRARY to understand that, on Linux, library names frequently end with a version number (e.g., "libc.so.6", "libcurl.so.4.6.0") instead of the ".so" suffix.
  • In CCL and SBCL, CFFI ignores the :library argument to cffi:foreign-funcall and cffi:foreign-symbol-pointer. Define a "libDefault" library so FUNCTION: and GLOBAL: can be used on those platforms without first loading a library.
  • Improve the error messages when a foreign function or global is not found.
  • In CCL and SBCL, omit the library name from the output of .IMPORTS as it's not accurate.
  • In LispWorkds, suppress CFFI's created foreign funcallable announcement.
  • FFI callbacks now save and restore the data and floating-point stacks locally to allow nested and/or concurrent callbacks.
  • Add FFI.md
  • Add an example of using the FFI

Other Highlights:

  • Add BEGIN-NAMED-STRUCTURE to create a structure whose field names will include the structure's name.
  • Add LFIELD: and WFIELD: to create longword (32-bit) and word (16-bit) structure fields, respectively.
  • Add longword (nee, 32-bit) access words L@, UL@, L!, and L,.
  • Add word (nee, 16-bit) access words W@, UW@, W!, and W,.
  • Add pointer access words P@ and P!.
  • Save the docstring in define-word and display it as part of the output of SEE.
  • Allow building standalone applications with SBCL in addition to CCL.
  • Catch Ctrl-C and abort to CL-Forth top level
  • Add STATISTICS to report some usage statistics. Also, display the statistics when exiting CL-Forth.
  • Updated README.md

Full Changelog: v1.2...v1.3

CL-Forth 1.2

11 Jul 01:53
Compare
Choose a tag to compare

Release 1.2 of CL-Forth

CL-Forth 1.1.2

27 Jun 20:42
Compare
Choose a tag to compare

Release 1.1.2 of CL-Forth