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-entry
instead of manually starting thread controller, or if you don't read any input. write
function made r7rs-compliant, now you canread
thewrite
output 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-xxx
renamed toformat-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 smarterwait-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, newstandalone
example 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
box
andunbox
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 likeopen
orwrite
- 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 parameterhttp/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):
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-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 toexecvp
, newsystem
provided,vector-map
twice speedup,- fixed issue with port blocking after Ol closed,
parameterize
withcurrent-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
andfile->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):
Additional Changes
- feature
ol-2.4
changed 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,
,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
Major changes
- new macro system introduced (
define-macro
),- experimental
define-fast-macro
anddefine-lazy-macro
added, interaction-environment
updated,defined?
introduced,
- experimental
- 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 theless?
), <<
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!)
andsrfi-170
libraries with folder functions.- srfi libraries moved to own
srfi
folder, - vm internals: macos
memfd syscall
added - ol internals:
src-olvm
renamed 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->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
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
, andactor
functions, (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-error
is no more silent in async functions,raise
andraise-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+
andlazy*
provided,- pinned objects system became a flexible,
- ffi support vectors as ptr, not only lists,
- experimental standalone
olvm
binary- installer produces
ol
andolvm
binaries both,
- installer produces
- added
suffix
modifier 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,
exit
andemergency-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
, andcurrent-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
andwrite-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 introducebytestream->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
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?
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
). integerlog
becameilog
, andlog2
becameilog2
. - now 'sqrt' works with rational numbers
- render very small numbers as "0.000000000" not a ".SMALL".
- added
‼️ introduces R7RSwhen
andunless
macro, oldunless
deprecated and removed.- added apostrophe
'
as legal secondary character, so we can use it now as, for example, derivative symbol:f'
as derivative off
. tuple
s completely removed (usevector
s, please).begin
allows empty body (and returns #false in this particular case),- legacy
lets
changed to standardlet*
. 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 nowalist
, as noted in "mit-scheme 11.1 Association Lists".pairs->ff
renamed toalist->ff
and similar changes.
- introduced new
make-ff
function (likemake-vector
). - added
vector-for-each
for vectors. - added
vector-map
. ‼️ ff-map
order changed to be convenient with othermap
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
, andnumber->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*
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:or
renamed tovm:ior
, someone confused is OR inclusive or exclusive.letq
renamed tolet-eval
to be more clean.either
renamed 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_free
renamed toOLVM_delete
to be more intuitive- EMBEDDED_VM renamed to OLVM_NOMAIN.
ol_t
structure 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-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
andCDR
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
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.