Skip to content

Releases: yuriy-chumak/ol

2.6

30 Oct 00:10
Compare
Choose a tag to compare

Release 2.6

Breaking changes

  • removed deprecated libraries (scheme srfi-Nnn), use (srfi Nnn) instead,
  • i/o scheduler enabled by default for reads, so manual embed code needs to do (start-io-scheduler) before (fork-symbol-interner ...). nothing changed if you use make-entry instead of manually starting thread controller, or if you don't read any input.
  • write function made r7rs-compliant, now you can read the write output and have same result.
    • note: this can be used for libraries code minification (the (write (read)) removes comments and extra spaces)
  • (owl format) moved to (otus format), because rewritten. this is for internal usage, but you must be warned
    • render-xxx renamed to format-xxx for symbols, strings, numbers, etc.

Just a reminder: in 2.4 -> 2.5 the system was renamed to execvp, and new system was introduced.

Major changes

  • new i/o scheduler backported from owl-lisp (thx to Aki Helin).
  • new functions wait, wait-read, bell, call, and smarter wait-mail (part of new i/o scheduler)
  • mail now returns #false if mail is not delivered
  • printing regex is printing regex now (instead of #)
  • tarvenv and tarfolders introduced (will be enabled by default in next ol version)
    • the ol binary can now be standalone and include all required libraries along with the "autorun" script (new olp target added, new standalone example added)
  • Unicode support updated to v.16.0.0
  • "no more zombies" (c)
  • ol (but not olvm) can handle pipes now
  • win32 stdin goes really asynchronous (do not block background threads once user started typing in the windows terminal, grrrrr, i hate ms devs)
  • regex library updated (added /|/ symbol, \\, g// returns string for strings, etc.)
  • = goes universal: can compare strings, vectors, etc.
  • new #\comma, #\backslash, #\semicolon, #\formfeed, #\vtab, etc. constants
  • #ff(...) notation added
  • #u8(...) notation added
  • new function write-simple

Minor changes

  • box and unbox moved to language core
  • 32-bit linux fix for large files
  • new OLVM_OWNLOGGER config define
  • wine HAS_ -> HAVE_ vars update
  • win32 waitpid, execvp, http/server, makefile fixes
  • socket syscall upgraded (now with protocol selection)
  • (file xml), (file json) updated
  • build process updated (no more xxd required, for example)
  • stat syscall can be overriden like open or write
  • new each function
  • olvm internal: IHALT -> IEXIT
  • fix for long port numbers
  • write strings fixed (for "\")
  • write and write-simple updated with proper #ff()
  • new (file html) library
  • runtime-error now can have only 1 parameter
  • http/server: added mime types, unicode fix, etc.
  • write speedup
  • dlopen/dlsym moved to base library
  • http library support websockets now (usage example)
  • ... fixes, cleanups, notes, etc.

Complete log can be found in commit history.

Precompiled Binaries and Installation Packages

Repos packaging status (I'm working with updates):

Packaging status Packaging status latest packaged version(s)

PPA for the Ubuntu family (Mint, Pop!_OS, Xubuntu, etc.)

$ sudo add-apt-repository ppa:yuriy-chumak/ol
$ sudo apt update
$ sudo apt install ol

RH

CentOS 6

cd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:yuriy-chumak/CentOS_6/home:yuriy-chumak.repo
yum install ol

CentOS 7

cd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:yuriy-chumak/CentOS_7/home:yuriy-chumak.repo
yum install ol

RHEL

cd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/home:yuriy-chumak/RHEL_7/home:yuriy-chumak.repo
yum install ol

Windows

32-bit and 64-bit portable binaries are attached below as ol.win32.portable.zip and ol.win64.portable.zip.
These are standalone executables with the ol libraries integrated. Just extract it to the any PATH-accessible folder and use freely.

The usual installation wizard is also present below in Assets.

Additional Changes

  • ...

2.5.1

31 Jan 20:19
Compare
Choose a tag to compare

Major changes

  • FFI structures-by-value in parameters,
  • FFI structures writeback,
  • new infix-notation macro,
  • \ became a usual character, so can be used as part of symbol names,
  • GC speedup (growing strategy updated),
  • PVENV (PriVate ENVironment) or portable version added (as "tar" extensions, something like flatpak or appimage),
  • string-ref dramatically optimized,
  • inexact numbers printing updated,
  • decimal fractions (1.1, 2.0, etc.) in library names,
  • system renamed to execvp, new system provided,
  • vector-map twice speedup,
  • fixed issue with port blocking after Ol closed,
  • parameterize with current-xx-port upgraded,
  • new WebKitGTK library (webkit2gtk-4),
  • new (file glTF) library,
  • (OpenGL version-X-X) changed to (OpenGL X.X),
  • base64 decode fixed,
  • ffi sizeof reworked (now support structures, became native),
  • ffi speedup - type-vptr accept (pair bytevector . offset),
  • '~' as a "default" path in "--home=" command option,
  • removed 'xxd' from the build requirements,
  • repl is no more an actor, but just a coroutine,
  • (lib json) returns inexact number if number with decimal dot,
  • HAS_XXX -> HAVE_XXX build variables renames,
  • default ffi values (#f -> 0),
  • floating-point ffi storing refactored,
  • open-output-string enabled for macos and win32,
  • pipes is no more optional, because definitely multiplatform,
  • port->string and file->string new functions,

Precompiled Binaries and Installation Packages

  • Portable binaries for Windows (32- and 64-bit) can be found in section "Assets".
  • Other options on the way...
  • Current packaging status (I'm working with updates):
    Packaging status Packaging status latest packaged version(s)

Additional Changes

  • feature ol-2.4 changed to ol-2.5,
  • basic WebSocket support in http library,
  • fft-any for all strings sends as utf-8 char*,
  • win32 compat updates,
  • macos compat updates,
  • regression tests updated,
  • deprecated fft-size-t changed to actual fft-size_t,
  • glib/gtk update with gettext,
  • ffi bool fix,
  • seccomp and sandbox definitions updated,
  • "system" now supports #f instead of port (as "no port provided"),
  • json "stringify" added,
  • ,expand updated (better output),
  • M1 ffi updated (very much arguments support),
  • aarch64 ffi fix for more than 8 integer arguments,
  • internal change for 'crashed -> 'crash,
  • new public function (divide a b) = a/b,
  • list-copy made r7rs-compliant,
  • file-info accepts both port and filename,
  • ceiling/truncate/round updated (added inexact numbers, fixed bug),
  • sqrt extended to the complex argument,
  • sqlite inexact numbers support,
  • EGL 1.1-1.5 added,
  • not getting stuck when trying to include invalid library (owl backport),
  • bugs and issues fixes,
  • more samples, more tests, more docs.

2.4

09 Mar 20:11
Compare
Choose a tag to compare
2.4

Major changes

  • new macro system introduced (define-macro),
    • experimental define-fast-macro and define-lazy-macro added,
    • interaction-environment updated, defined? introduced,
  • unicode bumped to the version 15.0.0,
  • --help option added
  • deprecated tuple removed,
  • libol.so shared library added,
  • "virtual environment" support,
  • new greater? predicate (opposite to the less?),
  • << and >> added to the (scheme base),
  • lua support library,
  • ffi: fft-bool bool type added,
  • ffi: vectors in char*, short*, int*, long long*, double*
  • substring updated (now accepts negative numbers),
  • repl decompiler added,
  • vm internals: registers and pins splitted, reduced count of possible mallocs
  • (scheme read) simplified
  • 0 is no more a positive number (in sense of positive?)
  • r7rs rationalize function,
  • rational publicly available
  • new (lib gl) feature - prerenderer,
  • (lib c!) and srfi-170 libraries with folder functions.
  • srfi libraries moved to own srfi folder,
  • vm internals: macos memfd syscall added
  • ol internals: src-olvm renamed to otus-core

Release Notes

  • has? became a real predicate,
  • small CG improve,
  • arm64, x86_64 callback fixes,
  • better FreeBSD support,
  • better macOS support,
  • new (scheme list) library with fold, map, etc.
  • owl backward compatibility null (owl name for #null) added.
  • (file json) fix: unicode support
  • ffi structures support updated,
  • android support updated (gl2es stub library, oculus go code),
  • GL platform update,
  • ffi type-port convertion fix,
  • ffi: corner integer numbers case fix
  • new makefile target perf and stat tool
  • new experimental hack - function arity
  • scheme-compliant last
  • wasm update
  • emscripten build now includes ffi
  • tcc compatibility changes
  • (file json) unicode support updated,
  • glib2 and gtk-3 updated
  • math update (infinite?, natural?, iroot, etc.)
  • new library (lib joystick)
  • (lib keyboard) updated
  • new ffi bytevector->int16 helper function
  • wavefront obj file parser update (inexact coordinates)
  • new debug variable DEBUG_COUNT_OPS
  • gtk comboboxtext
  • regex test update, regex parser fix
  • eval-string fixed and operands order reversed
  • mnist file format parser added

2.3.7

22 Aug 17:32
Compare
Choose a tag to compare

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.

2.2

02 May 15:44
Compare
Choose a tag to compare
2.2

Major changes

  • {} and [] stabilized.
  • New experimental human readable if statement extension.
  • +nan.0, -inf.0, and +inf.0 as legal inexact numbers and more built-in inexact math functions provided.
  • Unicode support updated to the version 12.1.0.
  • A lot of FFI updates and changes.
  • Introduced Otus Lisp Packages Repository (based on KISS pm).

Precompiled Binaries and Installation Packages

Installation package for Windows binaries can be found soon in section "Assets".
Precompiled Android (arm64-v8a, armeabi, armeabi-v7a, mips, mips64, x86, x86_64) binaries can be found soon 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)
    already available at openSUSE Build Service

Installation packages for

  • Windows: attached below.

Release Notes

  • now Ol can be compiled into WASM.
  • {} syntax is simplified and stabilized.
  • [] syntax is simplified and stabilized.
  • New experimental if syntax (if then ... else ...).
  • +nan.0, +nan.0 and -nan.0 is a valid numbers now.
  • math updates:
    • added finite? and infinite? functions from (scheme inexact).
    • OLVM_BUILTIN_FMATH became ENABLED by default.
    • added more inexact functions (ftan, fasin, facos, fatan, fatan2, flog, flog2, fexp, fexpt, ffloor). integer log became ilog, and log2 became ilog2.
    • now 'sqrt' works with rational numbers
    • render very small numbers as "0.000000000" not a ".SMALL".
  • ‼️ introduces R7RS when and unless macro, old unless deprecated and removed.
  • added apostrophe ' as legal secondary character, so we can use it now as, for example, derivative symbol: f' as derivative of f.
  • tuples completely removed (use vectors, please).
  • begin allows empty body (and returns #false in this particular case),
  • legacy lets changed to standard let*.
  • for-each, map supports more than one list (with more than one argument lambdas) which os R7RS compliant.
  • added lfor-each for lazy lists.
  • pairs in now alist, as noted in "mit-scheme 11.1 Association Lists".
    • pairs->ff renamed to alist->ff and similar changes.
  • introduced new make-ff function (like make-vector).
  • added vector-for-each for vectors.
  • added vector-map.
  • ‼️ ff-map order changed to be convenient with other map functions.
  • for-each became universal for lists, vectors and strings.
  • rebalanced (scheme core) and (scheme base).
  • srfi-16 changed to (scheme case-lambda).
  • exposed string->symbol, symbol->string, string->number, and number->string as public functions.
  • added boolean=? R7RS function.
  • added #n and #N for #null (seen in owl-lisp), added #E as alternative for #e.
  • (scheme characters) integrated into (scheme base).
  • (scheme vectors) became R7RS (scheme vector).
  • ❗ removed print* and print*-to.
  • ❗ removed 'owl-lisp from features. In fact we are incompatible to years, so it's just cleanup.
  • ❗ internal variable include-dirs renamed to the path
  • internal ol changes:
    • vm:or renamed to vm:ior, someone confused is OR inclusive or exclusive.
    • letq renamed to let-eval to be more clean.
    • either renamed to brae.
    • i hope this is last change.
    • type-proc -> type-procedure, type-clos -> type-closure.
    • ugly |+1| and |-1| changed to more appropriate ++ and -- (this is very fast but very simple functions that works only with enums!).
  • ❗ Native API functions changed:
    • functions prefix changed from OL_\* to OLVM_\*,
    • OLVM_free renamed to OLVM_delete to be more intuitive
    • EMBEDDED_VM renamed to OLVM_NOMAIN.
    • ol_t structure renamed to olvm_t.
    • OLVM_continue function removed, OLVM_evaluate added instead
  • changes in FFI:
    • ❗ strings (all of them including wides) is correctly marshaled as utf-8 to and from native code.
    • ❗ use bytevectors instead of strings if you want to not transcode data.
    • added support of returning structures by value.
    • new sample of embedding ol with three different levels of usage (as pacman sample part).
    • better memory management while marshaling large portion of data.
    • c-string is no more needed for FFI (still required for syscalls).
    • execve as ffi is deprecatged and removed.
    • proper handling of special numbers case: -2147483648 and -9223372036854775808 numbers (depends on OLVM_ANSI_INT_LIMITS definition).
    • ‼️ now callbacks require to describe returning type.
  • unicode support updated to the released 12.1.0 version.
  • parsers moved to new fully functional behavior.
    • try-parse simplified and will not try to load a next symbols after end of successful parsing.
  • introduced Otus Lisp Packages Repository (based on KISS pm).
  • internal CAR and CDR constants removed from visible namespace.
  • more error messages.
  • ",load" now supports *path* builtin variable.
  • (system) syscall simplified.
  • syscalls arguments became os independent.
  • more auto tests in build process (and rosettacode examples).
  • improved CI as github actions additionally to travis-ci.
  • new library (lib keyboard).
  • json parser updated
    • now supports rational numbers and numbers with exponent.
    • rfc4627 compliant json strings
  • removed (lib freetype) - too complex to support with no real benefits.
  • now Ol can return value to OS by (halt n) or just last one value (returns proper code 0 if result is #true, and -1 if result is #false).
  • introduced gnu99 instead of c99 (required by mmap and MAP_ANONYMOUS).
  • (assert) macro now supports just an expression (without "===> #true").
  • fixes, fixes, fixes...
    ...

2.1

02 Jan 16:23
Compare
Choose a tag to compare
2.1

News, notes and project information can be found on the official Project Page.

Precompiled Binaries and Installation Packages

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

Installation packages for CentOS 6 (x86, amd64), CentOS 7 (amd64),
Debian 7 (x86, amd64), Debian 8 (x86, amd64), Fedora 22 (x86, amd64),
Fedora 23 (x86, amd64), RHEL 5 (x86, amd64), RHEL 6 (x86, amd64),
RHEL 7 (amd64), SLE 10 (x86, amd64), SLE 11 (x86, amd64), SLE 12 (amd64),
ScientificLinux 6 (x86, amd64), ScientificLinux 7 (amd64),
Univention 3.2 (x86, amd64), Univention 4.0 (x86, amd64),
openSUSE 13.1 (x86, amd64), openSUSE 13.2 (x86, amd64), openSUSE Factory
(aarch64, armv7l), openSUSE Leap 42.1 (amd64), openSUSE Tumbleweed (x86, amd64),
Ubuntu 12.04 (x86, amd64), Ubuntu 14.04 (x86, amd64, aarch64, armv7l),
Ubuntu 16.04 (x86, amd64) already available at
openSUSE Build Service

Major Release Notes

  • changed command line - now we can define arguments for ol scripts (accessible using *vm-args* global symbol)
  • added nice {} ('{} and `{} allowed too) syntax for ff's (dictionaries)
  • added nice [] ('[] and `[] allowed too) syntax for vectors
  • added new math constants - +inf.0, -inf.0 and +nan.0, division by 0 now returns +inf, -inf or nan, respectively to
  • updated syscalls - no more fixed agruments count, added error text "too few" or "too much" arguments count
  • let*-values returned
  • math function sqrt now returns complex number if argument negative arguments.
  • dramatically increased embed and web versions speed (no more asyncify and two working threads)
  • callbacks in embed version now supports coroutines
  • removed tuples (changed to r7rs compliant vectors)
  • tuple-case integrated into case, no more tuple-case required
  • updated unicode from 8.0.0 to 12.1.0 standard
  • ports now can be large numbers, not only values (for extended system handles)
  • added "else" in if, now we can use (if a then b else c) like (if a then b c), but more readable
  • removed deprecated "lets" syntax
  • more samples in tests/rosettacode and in samples
  • web version updated
  • ,load now uses include-dirs
  • more r7rs compliance
  • added new "\0" as 0 in strings
  • added "else in var" in case, now we can receive "else" value in variable
  • inexact numbers update
  • type-string-wide code changed from 22 to 5, that brokes binary backward compatibility
  • new function 'read' implementation
  • vm:makeb accepts new parameter - maximal size of newly created object.
  • new ff's put! mutator, works like set-ref!
  • more descriptive errors
  • a lot of fixes in ffi
  • a lot of ol libraries updates
  • a lot of small internal changes, cleanups, notes and bugfixes

2.0

27 Dec 16:44
Compare
Choose a tag to compare
2.0

For news, notes and project information please visit official Project Page.

Precompiled Binaries and Installation Packages

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

Installation packages for CentOS 6 (x86, amd64), CentOS 7 (amd64),
Debian 7 (x86, amd64), Debian 8 (x86, amd64), Fedora 22 (x86, amd64),
Fedora 23 (x86, amd64), RHEL 5 (x86, amd64), RHEL 6 (x86, amd64),
RHEL 7 (amd64), SLE 10 (x86, amd64), SLE 11 (x86, amd64), SLE 12 (amd64),
ScientificLinux 6 (x86, amd64), ScientificLinux 7 (amd64),
Univention 3.2 (x86, amd64), Univention 4.0 (x86, amd64),
openSUSE 13.1 (x86, amd64), openSUSE 13.2 (x86, amd64), openSUSE Factory
(aarch64, armv7l), openSUSE Leap 42.1 (amd64), openSUSE Tumbleweed (x86, amd64),
Ubuntu 12.04 (x86, amd64), Ubuntu 14.04 (x86, amd64, aarch64, armv7l),
Ubuntu 16.04 (x86, amd64) available at
openSUSE Build Service

Major Release Notes

  • language core moved to r7rs
  • finalized FFI type system (with simplification)
  • reduced libc dependencies
  • reworked embed model (no more threads is required, dramatically increased interop speed) - please, look at the pacman sample
  • GC improvements and speedup (again)
  • reworked ffi callbacks subsystem (added pinnable objects)
  • reworked floating point math (btw, added +inf.0, -inf.0, +nan.0 constants with proper math and fully integrate inexact math in the core)
  • proper FFI for arm (added android sample with egl and freetype2)
  • more automation tests (added rosettacode samples as part of tests, added ffi tests)
  • improved cond-expand (added OS to the features that simplified writing the OS-dependent external libraries support); set-ref!, now this mutator allows symbols (with limitations), no speed degradation sure; bunch of other functions (will describe in the documentation)
  • bugfixes, lot of library updates, virtual machine speedup, ol specific language changes, and more, and more (this year was very productive, 509!! commits).

1.2

29 Dec 13:43
Compare
Choose a tag to compare
1.2

For news, notes and project information please visit official Project Page.

Installation packages

Installation packages for CentOS 6 (x86, amd64), CentOS 7 (amd64),
Debian 7 (x86, amd64), Debian 8 (x86, amd64), Fedora 22 (x86, amd64),
Fedora 23 (x86, amd64), RHEL 5 (x86, amd64), RHEL 6 (x86, amd64),
RHEL 7 (amd64), SLE 10 (x86, amd64), SLE 11 (x86, amd64), SLE 12 (amd64),
ScientificLinux 6 (x86, amd64), ScientificLinux 7 (amd64),
Univention 3.2 (x86, amd64), Univention 4.0 (x86, amd64),
openSUSE 13.1 (x86, amd64), openSUSE 13.2 (x86, amd64), openSUSE Factory
(aarch64, armv7l), openSUSE Leap 42.1 (amd64), openSUSE Tumbleweed (x86, amd64),
Ubuntu 12.04 (x86, amd64), Ubuntu 14.04 (x86, amd64, aarch64, armv7l),
Ubuntu 16.04 (x86, amd64) available at
openSUSE Build Service

Precompiled binaries

Precompiled binaries for Android, Windows can be found in section "Assets". Precompiled binaries for NetBSD, FreeBSD, OpenBSD, Odroid will be available soon.

Release notes

  • ol moved to LGPL v3 license (MIT applicable too)
  • virtual machine speed increased approx about 5%
  • fixed console interactive mode bug (with memory consumption)
  • welcome message now shows the ol version
  • large math fix - now math works fine
  • updated talkback interface, it's asynchronous and looks final
  • primops ifary and ol:let changed to either and letq respectively
  • more primops changes: apply-values changed to values-apply, vm:raw changed to vm:new-raw-object, unreel changed to vm:new-object, raw? changed to vm:raw?
  • fixed OL_HOME system variable support
  • ffi moved to new foreign types system (now it's more close to native platform types)
  • ffi can return pointed values from foreign function using "ffi&" type modifier,
  • added basic inexact numbers support (can be controlled by OLVM_INEXACTS compilation variable)
  • sqlite library interface reworked, added constraints support
  • libraries moved to new ffi type system
  • updated opengl support libraries (libs are more compliand to opengl standards)
  • added sdl2 support library (with samples)
  • code fixes, code cleanups
  • a bit decresed size of interpreter
  • reworked android support
  • updated r5rs/core library, included some of srfi's into core
  • updated GC to clean-up more unused memory (up to 1,5% of freed amount)
  • added pipe system call
  • updated tcl/tk bindings
  • added sqlite extensions support (now it can be written in ol directly)
  • ol tested under aarch64 and arm versatile
  • large http library update
  • changed json printer
  • added internal vm unit tests
  • made map and fold more r5rs compliant
  • etc., etc., etc.

1.1

30 Dec 14:46
Compare
Choose a tag to compare
1.1

For news, notes and project information please visit official Project Page.

Installation packages

Installation packages for CentOS 6 (x86, amd64), CentOS 7 (amd64),
Debian 7 (x86, amd64), Debian 8 (x86, amd64), Fedora 22 (x86, amd64),
Fedora 23 (x86, amd64), RHEL 5 (x86, amd64), RHEL 6 (x86, amd64),
RHEL 7 (amd64), SLE 10 (x86, amd64), SLE 11 (x86, amd64), SLE 12 (amd64),
ScientificLinux 6 (x86, amd64), ScientificLinux 7 (amd64),
Univention 3.2 (x86, amd64), Univention 4.0 (x86, amd64),
openSUSE 13.1 (x86, amd64), openSUSE 13.2 (x86, amd64), openSUSE Factory
(aarch64, armv7l), openSUSE Leap 42.1 (amd64), openSUSE Tumbleweed (x86, amd64),
Ubuntu 12.04 (x86, amd64), Ubuntu 14.04 (x86, amd64, aarch64, armv7l),
Ubuntu 16.04 (x86, amd64) available at
openSUSE Build Service

Precompiled binaries

Precompiled binaries for Android, Windows can be found in section "Downloads". Precompiled binaries for NetBSD, FreeBSD, OpenBSD, Odroid will be available soon.

Release notes

  • added callbacks support to the PInvoke mechanism, added basic JIT for linux and windows
  • added floating point results of called native functions for PInvoke
  • reduced memory usage
  • reduced code size (mainly for PInvoke)
  • internal code optimizations,
  • changed part of primops names to more convenient,
  • overed all possible native function arguments combinations
  • added new vm command
  • reduced count of primops
  • changed olvm state machine implementation
  • new #eof legal language constant
  • internal syscall changes (stat, sendfile, etc.)
  • more samples, samples cleanup
  • changed heap size growing strategy
  • covered Android (arm64-v8a, armeabi, armeabi-v7a, mips, mips64, x86, x86_64)
  • covered CentOS (i586, x86_64), Debian (i586, x86_64), Fedora (i586, x86_64), RHEL (i586, x86_64), SLE (i586, x86_64), ScientificLinux (i586, x86_64), Univention (i586, x86_64), OpenSUSE (i586, x86_64, aarch64, armv7l), Ubuntu (i586, x86_64, aarch64, armv7l)
  • fixed math for x64
  • and more.

1.0

30 Dec 14:49
Compare
Choose a tag to compare
1.0

For news, notes and project information please visit official Project Page.

Installation packages

No installation packages available yet.

Release notes

Initial release. After 2 years of development project ready to run.