Releases: yuriy-chumak/ol
2.6
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 usemake-entryinstead of manually starting thread controller, or if you don't read any input. writefunction made r7rs-compliant, now you canreadthewriteoutput and have same result.- note: this can be used for libraries code minification (the
(write (read))removes comments and extra spaces)
- note: this can be used for libraries code minification (the
(owl format)moved to(otus format), because rewritten. this is for internal usage, but you must be warnedrender-xxxrenamed toformat-xxxfor 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 smarterwait-mail(part of new i/o scheduler) mailnow 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
olptarget added, newstandaloneexample added)
- the ol binary can now be standalone and include all required libraries along with the "autorun" script (new
- 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
boxandunboxmoved 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
socketsyscall upgraded (now with protocol selection)(file xml),(file json) updated- build process updated (no more xxd required, for example)
statsyscall can be overriden likeopenorwrite- new
eachfunction - 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-errornow can have only 1 parameterhttp/server: added mime types, unicode fix, etc.writespeedup- 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):
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
Major changes
- FFI structures-by-value in parameters,
- FFI structures writeback,
- new
infix-notationmacro, \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-refdramatically optimized,- inexact numbers printing updated,
- decimal fractions (1.1, 2.0, etc.) in library names,
systemrenamed toexecvp, newsystemprovided,vector-maptwice speedup,- fixed issue with port blocking after Ol closed,
parameterizewithcurrent-xx-portupgraded,- new
WebKitGTKlibrary(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-stringenabled for macos and win32,- pipes is no more optional, because definitely multiplatform,
port->stringandfile->stringnew 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):
Additional Changes
- feature
ol-2.4changed tool-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,
,expandupdated (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-copymade r7rs-compliant,file-infoaccepts both port and filename,- ceiling/truncate/round updated (added inexact numbers, fixed bug),
sqrtextended 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
Major changes
- new macro system introduced (
define-macro),- experimental
define-fast-macroanddefine-lazy-macroadded, interaction-environmentupdated,defined?introduced,
- experimental
- unicode bumped to the version 15.0.0,
--helpoption added- deprecated
tupleremoved, libol.soshared library added,- "virtual environment" support,
- new
greater?predicate (opposite to theless?), <<and>>added to the(scheme base),- lua support library,
- ffi:
fft-boolbool 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
rationalizefunction, rationalpublicly available- new
(lib gl)feature - prerenderer, (lib c!)andsrfi-170libraries with folder functions.- srfi libraries moved to own
srfifolder, - vm internals: macos
memfd syscalladded - ol internals:
src-olvmrenamed tootus-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 withfold,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->int16helper 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
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, andactorfunctions, (interact ...)is deprecated, use(await (mail ...))instead,
- new
- new r7rs
cons*introduced instead of deprecatedilist, - 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-erroris no more silent in async functions,raiseandraise-continuableintroduced,with-exception-handlerimplementation,- ff's
(get ...)speedup, - linux/x64 ffi vararg support,
- new function
idf(IDentity Function), #iand#er7rs numeric prefixes added,(owl parse)upgrade:lazy+andlazy*provided,- pinned objects system became a flexible,
- ffi support vectors as ptr, not only lists,
- experimental standalone
olvmbinary- installer produces
olandolvmbinaries both,
- installer produces
- added
suffixmodifier to thedefine-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,
exitandemergency-exitfixed 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, andcurrent-error-port, (owl interop)->(owl async),vector-foldadded,- 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-bytevectorandwrite-bytestreamfunctions, - sockets async by default,
- new
3d-game-shaders-for-beginnersexamples, - 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,libsoilupdate,- fix
bytestream->fileand introducebytestream->port, - new datum #vptr,
- M1 support added,
- new
vptr->stringfunction, - 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-promiseadded,case-applydraft 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-foldradded,- 8bit cpu (LogicWire) example,
- empty symbol ('||) is allowed,
- scheme
digit-valuefunction, - async-linked now can be anonymous
- ’(owl lazy)’: new
lfindfunction, verbose-ol-errormoved to the own library (lang error),- parser update:
rest-of-linefunction available publicly, - NeXTSTEP
.plistparser added, - added
(deserialize-parser file)function, - fix:
absaccepts inexact numbers, - new function
ff-for-each. just it. - macOS
sendfilefix, - reduced gc start count by 1 (important spedup),
- fix for macOS crash (invalid IP after GC for some rare conditions),
- etc.
2.2
Major changes
- {} and [] stabilized.
- New experimental human readable if statement extension.
+nan.0,-inf.0, and+inf.0as 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.0and-nan.0is a valid numbers now. - math updates:
- added
finite?andinfinite?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). integerlogbecameilog, andlog2becameilog2. - now 'sqrt' works with rational numbers
- render very small numbers as "0.000000000" not a ".SMALL".
- added
‼️ introduces R7RSwhenandunlessmacro, oldunlessdeprecated and removed.- added apostrophe
'as legal secondary character, so we can use it now as, for example, derivative symbol:f'as derivative off. tuples completely removed (usevectors, please).beginallows empty body (and returns #false in this particular case),- legacy
letschanged to standardlet*. for-each,mapsupports more than one list (with more than one argument lambdas) which os R7RS compliant.- added
lfor-eachfor lazy lists. pairsin nowalist, as noted in "mit-scheme 11.1 Association Lists".pairs->ffrenamed toalist->ffand similar changes.
- introduced new
make-fffunction (likemake-vector). - added
vector-for-eachfor vectors. - added
vector-map. ‼️ ff-maporder changed to be convenient with othermapfunctions.for-eachbecame universal for lists, vectors and strings.- rebalanced
(scheme core)and(scheme base). srfi-16changed to(scheme case-lambda).- exposed
string->symbol,symbol->string,string->number, andnumber->stringas 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*andprint*-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:orrenamed tovm:ior, someone confused is OR inclusive or exclusive.letqrenamed tolet-evalto be more clean.eitherrenamed tobrae.- 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_\*toOLVM_\*, OLVM_freerenamed toOLVM_deleteto be more intuitive- EMBEDDED_VM renamed to OLVM_NOMAIN.
ol_tstructure renamed toolvm_t.- OLVM_continue function removed, OLVM_evaluate added instead
- functions prefix changed from
- 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-stringis no more needed for FFI (still required for syscalls).- ❗
execveas 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-parsesimplified and will not try to load a next symbols after end of successful parsing.
- introduced Otus Lisp Packages Repository (based on KISS pm).
- internal
CARandCDRconstants 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
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
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
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
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
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.