Lisp2D
An object-oriented dialect of the Lisp language with built-in parallelism.
It is written for Linux.


Training course

The quick reference

The calculator

Practical application of multiprocessing systems

Download
The interpreter x86_64 +
calculator
v3.0.2 :

   TAR.GZ
C sources codes +
calculator
v3.0.2 :

   TAR.GZ
Git bare
v3.0.2 :

   TAR.GZ
Articles
"Parallel programming in functional style"

Ian Foster "Designing and Building Parallel Programs"
Feed-back
Feed-back
27.aug.23 Version 3.0.2
11.jul.22 Without C++ libraries. Just C. Version 3.0.0
21.jun.22 Git bare project. Version 2.9.10
5.jun.22 Version 2.9.8
8.jul.21 Version 2.9.7.1
27.nov.20 Version 2.9.6
31.may.19 Ability to static call of base class method. Not by object type, but a method name. (x number::+ y) Version 2.9.5
27.dec.18 Transfer some part of source to C. Needs GCC-5 version. Version 2.9.3
14.may.18 The division of numbers is accelerated. Version 2.9.2
19.dec.17 In the source code, the makeme macro is added. In it, you need to fix the number of processor cores used for compilation. In the Makefile file, you must manually set the C++ compiler name (g++ or g++-7). Version 2.9.1
1.aug.17 Working with I/O streams is rewritten a bit closer to Linux (file permissions, unnamed files). Version 2.9
2.may.17 The automatic history of calculations is removed. You can work with history using the log and log-list. Version 2.8
11.dec.16 Renamed function replace on the nsubstitute, replace-if on the nsubstitute-if. Added the function nsubst. Version 2.7.4
23.may.16 The function socket-select is added. Version 2.7.3
27.apr.16 Method (char code) renamed to (char number). Version 2.7.2
12.nov.15 Link of variables can be made constant. The key symbol &const. Fired characters lambdaf, macrof. Fired methods defmethodf, defmacrof. Version 2.7.1
02.nov.15 Socket nets. Type rename bytevectorbyte-vector. Version 2.7
16.nov.14 In application using windows function pending, returns the number of accumulated events. Function map-resize. Event configure-notify. Version 2.6.7
10.nov.14 In windowed application event window-close. Version 2.6.6
3.nov.14 In application using windows dismissed functions keyb-event, listen, read-char, nil::window. Reading is performed using the keyboard events. Version 2.6.5
20.oct.14 In application using windows dismissed function read-keyb, button-event. To work with the events provided the function wait-event, check-event, make-event. Version 2.6.4
07.oct.14 Program text, lines, letters, symbols, windows support universal UTF-8 encoding. Version 2.6
03.aug.14 Methods getstatic, setstatic fired. Remained defstatic. To binary tree added function erase. Version 2.5.1
13.jul.14 Improved protection of data elements of the object. Function private. Added a new class of objects: a balanced binary tree btree. Version 2.5
27.mar.14 Introduced the concept of constants for the convenience of programming. Functions: const, unconst, constp, defmethodf, defmacrof. Symbol lambdaf. Version 2.4
17.mar.14 Introduced a new type bytevector to reduce memory usage. Version 2.3
27.jun.13 New functions move, swap. Logical functions used three-valued logic: false ← nil → true. Version 2.2.3
7.oct.12 Transferring source codes on a standard C++ (2011). Version 2.2
26.feb.12 The mathematical function sqrt has the option of accuracy. A function of class lock: free was renamed → unlock. A function of class number: lg fired. Version 2.1.9
20.jul.11 The keyword &env deleted. Has functions environment, environment-external. Version 2.1.4
30.mar.11 Arg variable is associated with a list ("filename.lisp2d" [{"argument"}]). Working with windows became a little more stable. Complex numbers. Version 2.1
12.oct.10 Comma with an insertion ,@ is atomic type, but not a function. Version 2.0.4
12.sep.10 Comma , is atomic type, but not a function. Version 2.0.3
22.aug.10 Backquote ` is atomic type, but not a function. Version 2.0.2
11.jul.10 Quote ' is atomic type, but not a function. Version 2.0.1
26.jun.10 Errors of interpreter does not appear on the screen, but generate an exception. Exceptions are caused by function throw, caught by try. Version 2.0.0
25.mar.10 It is added command for compilation: ./configure. Layed out two versions: for x86-64 and i586. Version 1.6.15
5.jan.10 Function work fork is slightly corrected. Version 1.6.11
23.nov.09 Function system for convenience of use is improved. Version 1.6.10
19.nov.09 Arguments of functions have a dynamic scope. Only in a function body. Version 1.6.9
1.sep.09 Function type-of is substituted by function class-of. The version 1.6.7
1.jul.09 Returned value of function boundp has varied. Function renaming: defstatic → setstatic. Version 1.6.5
1.mar.09 New type environment. Syntax of functions eval, apply, funcall, setq has varied. Version 1.6
1.nov.08 Syntax of functions map, mapc, defvar has varied. Returned value of functions for has varied. New type signal. Version 1.5
1.oct.08 Implementation and syntax for operation with locks has varied. Environment representation has varied. Memory saving. Functions are renamed: princ → write, print → writeln, prin1 → princ. The version 1.4.4
1.sep.08 Implementation of windows has varied. Memory saving. Syntax of functions apply and funcall has varied. Function map was added. Version 1.4.3
1.aug.08 Functions for the Calc are added: gcd, lcm, degrees, radians, combin, combina, multinomial. Version 1.4.2
30.jun.08 Functions for job with lists are removed: elt, setelt, push, pop, part, resize and -. Protection of job with lists with a cycle is improved. Syntax of functions lock and trylock has varied. Locks work reliably. Version 1.4.1
1.jun.08 The type for job with directories was added (dir). Version 1.4
1.may.08 The type time was added. Version 1.3
31.mar.08 Functions make-… are removed → newobject. Function nconc is renamed → +=. Version 1.2.9
3.mar.08 The inequality function name /= has varied → <>. Version 1.2.8
19.feb.08 Function setf is added. Version 1.2.6
10.dec.07 The minimal load on the processor at windowing. The quantity of consumed memory is reduced. Version 1.2.3
5.nov.07 The minimum load on the processor at job in the console. Version 1.2.1
21.oct.07 Resettlement on the new address: lisp2d.net
19.oct.07 Improvement of job of a kernel. Double rise of productivity. Version 1.2
14.oct.07 Syntax of functions lock and trylock has varied. Version 1.1.40
28.sep.07 Syntax of function make-vector has varied. Function definition part and /= has varied. Version 1.1.33
21.sep.07 Syntax of function acons has varied. Version 1.1.30
10.sep.07 Syntax of function random is slightly corrected. Version 1.1.24
2.jul.07 Syntax of functions princ, print, prin1 has varied. Version 1.1.15
13.jan.07 The name and sense of arrays has varied, now it is a vector. Version 1.1.0
6.jan.07 Names of standard streams have varied. *in*, *out*, *err*, *syserr* → cin, cout, cerr, csyserr Version 1.0.7
23.nov.06 The principle and syntax of programming language has varied. Now it is object-oriented language with the built in parallelism. Version 1.0.0
10.sep.06 The source program on C++ is laid out. Version 0.8.9
27.jul.06 The window application the calculator. Parser and performance of mathematical operations. Version 0.8.4
13.jun.06 The first version for job with a window (only map plotting). Version 0.8
28.may.06 The heading file init.lisp2d is brought in a kernel. The version using POSIX threads (MT) is copied. Version 0.7.8
14.may.06 Space of names. Version 0.7.7
19.mar.06 Names and sense of keywords have varied: TTRUE, NIL (in logical sense) → FALSE, uncertainty UINIL. Version 0.7
12.mar.06 Job with classes, objects are brought in a kernel. Version 0.6.18
15.jan.06 Complete general cleaning. The majority of functions are transferred to a kernel. Functions not having functional style are remote. Speed above 10 times. Version 0.6.5
1.dec.05 Gift to mathematicians: fractions. Version 0.6
3.jun.05 At last! In connection with that that debugging of any programs demands a lot of time, there was a new way debuging. Without fail read "The campaign in the past". And also download fresh version 0.5
14.sep.04 Only for Linux! There was a unit using REAL MULTITASKING on threads of the standard POSIX!
29.may.04 It is possible to try version 0.4 in which job over the errors linked to real multitasking is made.
5.jan.04 Current stable version 0.3
6.dec.03 The interpreter of the Prologue with Lisp syntax is entered.
25.nov.03 Possibility of job with input/output streams is added.
19.nov.03 Stable version 0.2 with a garbage collector is laid out.
5.nov.03 The version 0.1beta is laid out.
30.oct.03 Welcome to a forum!
26.oct.03 The necessary tool for OOP is added.
20.sep.03 The first version of the interpreter is released!

P.S. The programming as a meeting of the beautiful girl:
  all life you work and you search for a mistake.