Skip to content

2.3.7

Compare
Choose a tag to compare
@yuriy-chumak yuriy-chumak released this 22 Aug 17:32
· 825 commits to master since this release

Major changes

  • fasl format made 32-/64-bit cross-independent,
  • unicode support updated to the 14.0.0.
  • new language entity type constructor,
    • constructors run by fasl decoder automatically, you don't need to run them by yourself,
  • new async/await interface: (otus async),
    • new async, await, and actor functions,
    • (interact ...) is deprecated, use (await (mail ...)) instead,
  • new r7rs cons* introduced instead of deprecated ilist,
  • command line updated:
    • 'version' option update,
    • OL_HOME and --home= supports ':' as path delimiter,
  • ",save" repl command added
    • no ffi restoration supported, use with care!,
  • new experimental vm:set! virtual machine command,
  • (define-values) inside lambda, begin, etc.,
  • GC improvements,
  • new REPL ",disassembly" command,
  • new simple http server: echo ,load "http/server"| ol,
  • runtime-error is no more silent in async functions,
  • raise and raise-continuable introduced,
  • with-exception-handler implementation,
  • ff's (get ...) speedup,
  • linux/x64 ffi vararg support,
  • new function idf (IDentity Function),
  • #i and #e r7rs numeric prefixes added,
  • (owl parse) upgrade: lazy+ and lazy* provided,
  • pinned objects system became a flexible,
  • ffi support vectors as ptr, not only lists,
  • experimental standalone olvm binary
    • installer produces ol and olvm binaries both,
  • added suffix modifier to the define-library,
  • s-exp parser update, 10% speedup,
  • new (file sexp) library added
  • etc.

Precompiled Binaries and Installation Packages

Installation package for Windows binaries can be found in section "Assets".
Precompiled Android (arm64-v8a, armeabi-v7a, x86, x86_64) binaries can be found in section "Assets".

Installation packages for

  • CentOS: 7 (i686, x86_64), 6 (x86_64),
  • Debian: 8.0 (i386, amd64), 7.0 (i386, amd64)
  • openSUSE: Tumbleweed (i586), Factory PowerPC (ppc64), 13.2 (i586, x86_64), 31.1 (i586, x86_64)
  • RHEL: 7 (ppc64, x86_64), 6 (i686, x86_64), 5 (i386, x86_64)
  • ScientificLinux: 7 (x86_64), 6 (i386, x86_64)
  • SLE: 11 SP4 (i586), 10 SDK (i586, x86_64)
  • Ubuntu: 16.04 (i386, amd64), 14.04 (i386, arm64, amd64), 12.04 (i386, amd64)
  • Univention: 4.0 (i386, amd64)
  • PowerKVM: 3.1 (ppc64le)
    available at openSUSE Build Service

Installation packages for

  • Windows: attached below.
  • Android: attached below.

Release Notes

  • math improvements,
    • inexact numbers made endiannes independent,
    • etc.
  • fasl decoder updated,
    • (owl fasl) -> (otus fasl),
    • fasl ignores data after the end of decoded stream,
  • a lot of new autotests,
  • some olvm codes changed,
  • big-/little- endian works,
  • lot of libraries updates,
  • more scheme compliance,
  • exit and emergency-exit fixed and added as part of (scheme base) library,
  • (get-environment-variables) is workable now,
  • added (scheme srfi-27), nice interface to sources of random bits,
  • r7rs current-input-port, current-output-port, and current-error-port,
  • (owl interop) -> (owl async),
  • vector-fold added,
  • more rosettacode examples,
  • more gtk+ samples,
  • added negation of complex numbers
  • deprecated (gl:get-/set-userdata) cleanup,
  • ffi: fft-any type processing improved,
  • new write-bytevector and write-bytestream functions,
  • sockets async by default,
  • new 3d-game-shaders-for-beginners examples,
  • utf8-decode became a lazy,
  • more deprecations: CLOS1, CLOC1, OCLOSE, CLOSE1,
  • wasm build update
  • (lib gl1) -> (lib gl-1), (lib gl2) -> (lib gl-2), (lib gl3) -> (lib gl-3),
  • (lib gl-2) supports geometry shaders,
  • libsoil update,
  • fix bytestream->file and introduce bytestream->port,
  • new datum #vptr,
  • M1 support added,
  • new vptr->string function,
  • new (lib kore) library with samples,
  • new library (lang embed),
  • ffi test output makes 32- and 64-bit equal,
  • flexible void** marshaling (supported strings as part of void** array),
  • new string chars: \v (11, vertical tab), \f (12, line feed),
  • (ff-union a b collide) -> (ff-union collide a b ...),
  • string-ci* functions moved to (scheme char), REPL size reduced,
  • unicode update: char-alphabetic?, char-numeric?, char-whitespace?,
  • (string-copy) added,
  • (lib leveldb) draft,
  • set-ref! opcode changed from 10 to 109 (part of set-ref), code cleanup,
  • vm:makeb -> vm:alloc,
  • make-promise added,
  • case-apply draft function,
  • vm:maxvalue -> vm:vmax, vm:valuewidth -> vm:vsize,
  • added srfi-11,
  • new function ff-replace,
  • OpenGL 1.0 interface update,
  • fix: (vm-cast 'any-number' type-rational) is working for any number,
  • vector-foldr added,
  • 8bit cpu (LogicWire) example,
  • empty symbol ('||) is allowed,
  • scheme digit-value function,
  • async-linked now can be anonymous
  • ’(owl lazy)’: new lfind function,
  • verbose-ol-error moved to the own library (lang error),
  • parser update: rest-of-line function available publicly,
  • NeXTSTEP .plist parser added,
  • added (deserialize-parser file) function,
  • fix: abs accepts inexact numbers,
  • new function ff-for-each. just it.
  • macOS sendfile fix,
  • reduced gc start count by 1 (important spedup),
  • fix for macOS crash (invalid IP after GC for some rare conditions),
  • etc.