InteLib logo InteLib home page

January 17, 2016 The hardware node that hosted our site and repositories crashed at Jan 12, 2016 due to HDD failure, and the HDD was found to be totally unrecoverable. The latest archive copy of the VPS container that could be found appeared to be dated as long as more than a year ago, October 2014. As we are using git, there's a hope nothing really serious was lost. InteLib team members: if you can't login to, please contact Andrey Stolyarov to get your accounts back!

December 15, 2015 InteLib 0.6.50 is released. The most notable change is the lexical binding implementation. In this version, lexical values are no longer stored in single-linked lists called 'contexts'; instead, all but dynamically-bound symbols are replaced with special tokens called 'positional parameters'; the replacement is done upon creation of a closure. This gains 15 to 30% of speed. The change is so significant that the version gets another 'semi-major' number 0.6.50 instead of 0.6.36. Thanks go to Catherine Galkina for most of the actual code; also thanks to Daria Kislykh who started the work but unfortunately didn't complete it, nevertheless contributed a lot to the project.

October 29, 2013 InteLib 0.6.35 is released. This is the first release after a three-year long pause, so it contains a lot of changes and fixes; the reason for the release is simply to break the pause.

November 12, 2010 InteLib 0.6.32 is made available. The primary reason for this release is the bug reported by Ivan Beloborodov (thanks Ivan!), but the release contains a lot of relatively minor reworkings and fixes done since the previous release.

October 02, 2010 We are moving the site to a new environment, which allows more options. As of now, we run new Wiki, based on DokuWiki. The old Wiki is still available here: /cgi-bin/wiki/awki.cgi, but it is now read-only. Everyone is welcome to fill the new wiki with useful content, including perhaps migration of older content from the old wiki.

March 14, 2010 Relatively major changes are made to the library, so today's release gets the name InteLib 0.6.30. The build system (that is, Makefiles) got reworked, and the package now (hopefully) builds natively under Windows (errr... well, honestly speaking I didn't check this as I've got no Windows machines at home, so please try it if you've got time for it). Thanks go to Vasiliy Kulikov and Denis Klychkov for their work included into the release. Also the release is notable as the first one made using git instead of cvs; Vasiliy Kulikov did a great job managing the project to switch to it. Thanks guys!

January 09, 2010 InteLib 0.6.22 released. Some minor changes to the code, and a major change of the attribution style. Please see the docs/attribution.txt file for details.

October 17, 2009 InteLib 0.6.21 is available. In this version, some nasty bugs got fixed (e.g., NILL now has working TRACE feature again; ILS and ILL translate single chars to chars not strings of on char; all the samples under samples/ directory now compile, etc.) Thanks go to Ina Vasilevskaya for reporting some of the bugs and continuously pinging me to fix them :-) Igor Bronstein reworked his Refal part, so the release contains the new version (thanks Igor!). Some minor renamings done (e.g. the ugly word changeable replaced with the correct word mutable); this can potentially affect the existing code, but the probability of this is very low. Enjoy!

Besides that, the example on the introduction page reworked so that it now compiles with the present version of InteLib, and there's now the sample function main with which the sample can be run.

September 30, 2009 Another two papers related to InteLib (and published in 2009) are available from the papers section of the site.

March 04, 2009 A new version, 0.6.20, is now available for download. The version includes an implementation of the Refal computation model significantly reworked by Igor Bronstein (thanks Igor!). This implementation seems to be notably faster than the previously-existing one.

October 12, 2008 The papers section of the site has been updated to contain all the InteLib-related papers published since 2005. The papers are mostly in Russian; if you really wish them to be translated, please let us know.

October 04, 2008 InteLib 0.6.18 is available. Only minor internal changes are made, related to the SExpressionSpecialToken and its usage. Ignore this release if you don't know what is all this about (and, of course, you've got the 0.6.17, because all the past releases contain really nasty bugs).

July 19, 2008 Released InteLib 0.6.17. This release contains fixes for serious bugs that shown up during the ICFP Contest 2008.

July 02, 2008 Released InteLib 0.6.15. Only some internal architecture changes are included into it in order to make it possible to have atomic tokens that evaluate on their own manner (that is, the concept of a symbol is generalized). Just ignore this version if you doubt wheter it is useful for you.

May 20, 2008 Released InteLib 0.6.14, in which the bug reported by Ivan Beloborodov is fixed. Thanks Ivan!

May 18, 2008 The InteLib 0.6.13 is available. The changes mostly affect the (experimental) Refal part, so you might want to pay no attention to this release :-)

May 10, 2008 The InteLib 0.6.12 released. The most notable change (although user-invisible) is that there's now the $intelib/genlisp/library directory in which now reside these library functions that are common for Lisp and Scheme. A lot of copipasted code is eliminated. Several bugs are fixed, thanks Maxim Byshevsky-Kanopko and Galya Tchlenova for the reports. Please be warned that the function SUBSTRING now interpretes its arguments as start/end instead of index/length, as to comply r5rs.

March 28, 2008 The InteLib 0.6.11 is available. This release includes the following changes. First of all, another two classes got renamed to conform the rules: former LPackage and SchPackage are now LPackageRef and SchPackageRef so that it is clear they are just smart pointers and not master pointers. The second change is that the method Apply() is added to both LReference and SchReference classes. The method is finally found useful :) Actually the 0.5.* series supported such a method, so this is a kind of regression fix. The last change is a minor fix which lets InteLib build on 64-bit platforms; thanks go to Maxim Byshevsky-Kanopko for both the report of the problem and the shell access to his 64-bit system.

December 18, 2007 Another release, due to notable interface changes, has been given the number 0.6.10, and is now available at the download page. The main difference is that now all classes of the library are documented with Doxygen-style comments; this is a major improvement to Doxygen-generated documentation. Please note that classes SStream, LContext and SchContext are renamed to SStreamRef, LContextRef and SchContextRef, respectively, which might require certain changes within your code. This change is done for the sake of consistency; smart pointers now have that 'Ref' suffix in their names, and only container-like classes, such as SHashTable or SString are named without it, to show the difference between just a reference and an object which creates its driven object right within its constructor.

November 19, 2007 InteLib 0.6.03 released. The reader generalized so that it can now be reprogrammed not only for Lisp-like, but also for more complicated languages, such as Planner. It still can not be tuned for Prolog because the reader uses whitespace to separate list elements, while Prolog uses comma. This is subject for further work. There are also some minor fixes.

November 12, 2007 Igor Elman reported that Win32 port of NILL and NILS, updated to the version 0.6.02, is available at the InteLib Win32 port page.

November 09, 2007 InteLib 0.6.02 released. The most visible change is that theres now a separate class to represent chars, named SExpressionChar, which is a replacement for old trick with representing of single chars by strings of one char.

October 29, 2007 The InteLib 0.6.01 is available for downloading. The only change against the 0.6.00 is that there was a bug with dynamic binding (the variables defined with DEFVAR), and that bug is fixed now. This only affects InteLib Lisp, and only in case the dynamic variables are used.

October 23, 2007 After a long and deep reworking, another version of InteLib is finally made available. The changes since the previous public version are major; so, the new version gets a number from the next major series. It is now InteLib 0.6.00; BTW, that '6' means that, roughly speaking, the library was rewritten from scratch (or the like) six times. There are too much difference to describe it here, so I'll make a Wiki page for this purpose, here: InteLibZeroSixChanges. The 3+ years history of InteLib 0.5.* is thus over. Enjoy the new library and PLEASE share your experience!

July 29, 2007 I'm glad to introduce the InteLib Scheme, which is included into the release 0.5.83. The library now contains the scheme/ directory and is accompanied with interactive interpreter nils as well as a Scheme->C++ translator named ils. Traditionally, the translator is written in Scheme and is self-applied to get a binary. And yes, it supports call/cc :-) The implementation in its present version misses lots of functions mentioned in R5RS, but, I'm specially pleased to say, it can become R5RS-compliant one day (the most difficult thing to do is Scheme macros a.k.a. syntax definitions, but there's nothing impossible). From the other hand, it supports some features unusual for Scheme, such as SETF (named setf! in the dialect supported by nils). Unfortunately, R5RS can become obsoleted in several weeks as R6RS is to be accepted; I'm in serious doubt whether the InteLib implementation could ever get compliant with all the madness from the new standard. However, to be even r5rs-compliant is good enough to be done. Any feedback is warmly welcome!

June 15, 2007 Uploaded InteLib 0.5.82. Fixed the bug with the previous release which didn't let NILL to have its reader reprogrammed. Some Lisp library functions added.

April 03, 2007 InteLib 0.5.81 is available. IntelibReader reimplemented so that it is now flexibly reprogrammable. READ and company now recognizes a global variable pointing to a customized reader object. Method is added to LExpressionLispForm to get the lambda list of the function. Several minor fixes.

March 13, 2007 InteLib 0.5.80 is available. Some fixes; NILL internals got reworked.

February 02, 2007 InteLib 0.5.79 has been uploaded. This version includes many fixes made to the code since May 2006.

May 09, 2006 InteLib 0.5.78 has been uploaded. Several bugs fixed, including the one in the top-level make install (it didn't correctly replace the /usr/local/intelib symlink). ASSERT_PARAMC changed so that the exception now contains the function in which incorrect parameters number was detected. The function REVERSE added (for those who're lazy :)

April 23, 2006 The version 0.5.77 is available. Some new package-related features added; fixed the Gnu Readline autodetection (thanks Igor Elman for reporting the bug).

April 18, 2006 InteLib 0.5.76 is available. Bugs reported by Alexander Potapenko a.k.a. Ramosian Glider, Olga Shtefan and Galya Tchlenova a.k.a. GenShen fixed (thanks folks!). Makefile is changed to autodetect when we're building without Gnu Readline suggesting to use USE_READLINE=no for this case.

March 29, 2006 We're pleased to present the release 0.5.75, which is notable for two things. First, the release contains some contributed code: thanks go to Olga Shtefan a.k.a. Intafy for coding trace support for NILL. It is for the first time in the history that someone's code is included into the project. Second thing is that makefiles made packager-friendly, and even an SRPM file is made available along with the traditional tarball. Some minor fixes also made to this release. Welcome to our download page!

March 23, 2006 The version 0.5.74 is made available. The most visible change is that the stand-alone version of IntelibDynamicCastP eliminated. From now on, SReference::DynamicCastGetPtr<T>() must be used instead. Besides this, there are some bugfixes, some minor interface changes, and a few doxygen-oriented comments added to the headers so that doxygen now produces better documentation.

March 15, 2006 Igor Elman volunteered to maintain a kind of win32 port of InteLib. For more details, see Igor's InteLib Win32 port page. Thanks Igor for your effort!

March 13, 2006 InteLib 0.5.73 released. There are two major changes in this release. First, the toplevel Makefile now contains the target install which is able to install InteLib both into a separate directory (such as /usr/local/intelib-0.5.73, with a symlink /usr/local/intelib) and into a 'native' tree, such as to /usr/local/{include,lib,bin}. InteLib's header files should from now on be included like <intelib/sexpress/sexpress.hpp> instead of "sexpress/sexpress.hpp". The second change is that Refal part is included into the tarball. PLEASE PLEASE PLEASE read the REFAL.README file included into the tarball before you try it out! In fact, it might be too early even to take a single look at the Refal part, I just include it because some people on the project need it.

March 07, 2006 InteLib 0.5.72 released. The main reason to release now was a serious bug in IntelibReader found by Zarina Asenova (thanks Zarina!). However, there are some useful enchancements as well. NILL now supports two new commandline flags, -q (quiet) and -b (preload a plugin). GNU readline history manipulation improved a bit: in case of a multy-line expressions, the entire expression is now added to the history. Completion mechanics improved as well: within doublequotes, NILL now performs a filename completion, which is useful when invoking functions such as LOAD or DLOAD. Single char tokens (the tokens beginning from #\, such as #\Newline) are now completed as well. Traditional Lisp i/o functions (princ, print, prin1, terpri and read) are now able to work with stdin/stdout if no stream is specified -- just like the same functions in Common Lisp.

March 03, 2006 InteLib 0.5.71 released. NILL now handles Ctrl-C (SIGINT) to stop execution of a Lisp expression (while it is executed) and to cancel user input (in the line edit mode). Built-in function DLOAD added to NILL. The function allows to load a 'NILL plugin' which effectively is a shared object (.so) file containing C++-implemented Lisp functions and (possibly) symbols for other purposes, such as constants and variables. See the samples/permut/ directory for an example on how to create such a plugin.

February 25, 2006 InteLib 0.5.70 released, in which NILL is able to use GNU readline library, including completion of existing symbols' names

February 23, 2006 InteLib 0.5.69 released. ILL now prints better diagnostic messages, including file names and line numbers (so that vim positions the cursor to errors in your lisp files correctly). It also made quiet by default (you can make it verbose again using -v at the command line). The whole thing now compiles with gcc 3.4 and hopefully with gcc 4.x as well (not tested yet). Lots of minor bugfixes, as usual.

February 04, 2006 InteLib 0.5.68 has been uploaded. Besides usual minor fixes, this version contains completely reimplemented Lisp Reader (class IntelibReader). New implementation is accurate at line counting (so that diagnostics is more helpful) and allows to feed the reader with partial strings or even chars, one by one, instead of providing a stream object. It is planned to add readline support or something similar to it to the NILL interpreter at the next release. Enjoy the first release of the year 2006 :)

December 18, 2005 The version 0.5.67 released. Several math-related Lisp functions added. Some minor reworking in the ill/ subdir also done.

October 24, 2005 The version 0.5.66 is available. The doubly linked lists subsystem reworked. Lots of bugfixes and some minor additional features.

July 02, 2005 The version 0.5.65 is available. It is now possible to access global C++ variables (of integer types, float, double, SString and LReference) right from within the Lisp code (both for the value and for modification with SETF). It is done using F& in the Lisp-like C++ code, and the same thing is done with #& in InteLib Lisp (compiler only; won't work in the interpreter, sorry). Several new Lisp library functions are implemented, including NTH, RANDOM, MAKEARRAY, AREF, REMOVE, RREDUCE and LREDUCE.

June 26, 2005 During participation in the ICFP 2005 programming contest, a feature of soft interruption of the Lisp evaluation process was needed. It is now available in the newly-released version 0.5.63. Wish good luck to participants!

June 14, 2005 The version 0.5.62 released. Debugger assistant improved so that when you call BREAK function from within your Lisp code, the interpreter makes available all the lexically-bound symbols. Math functions (such as sin, cos, tan etc.) are implemented. Several bugfixes.

April 15, 2005 The version 0.5.60 released. The package now includes interactive InteLib Lisp interpreter named NILL. Bootstrap process is now significantly simplified. The interpreter is implemented as a class so it can be embedded into your C++ program to assist debugging of the Lisp part of your code.

March 22, 2005 The version 0.5.56 released. Several useful methods added to the SReference class. The squeue module, which was included unimplemented in some past releases, is now implemented. Also some serious bugs fixed, specially in hash tables. Several tests added to the testsuite.

March 10, 2005 The version 0.5.55 released. The notion of 'ReferenceReturn' replaced with the notion of 'EvaluateAndSetf'. LFrom et al renamed to LExpressionForm et al. Numerous bugfixes, specially in the sexpress/ part.

December 14, 2004 The version 0.5.54 released. C++ abbreviation for the CL's #' added (see the class LFunctionConstructor). The Lisp SORT function now uses the Sort-Merge algorythm. The Lisp Reader moved to the sexpress/ part. Packages subsystem reimplemented. Besides that, Makefiles now accept the TARGETDIR value both as a relative and an absolute path. Some minor fixes are also made.

November 20, 2004 The version 0.5.53 released. Fixed some annoying problems with INTELIB_VERSION macro. The function MEMBER had been upgraded to accept the optional parameter. Some other minor changes and fixes.

November 06, 2004 The version 0.5.52 released. Several minor fixes.

October 06, 2004 The version 0.5.51 released. sexpress/ now includes the sbacklnk.* module to work with doubly-linked lists; the SWrapper template is also available. Besides that, there's a sample program in InteLib Lisp which searches for prime numbers using Eratosfen't algorythm.

September 19, 2004 The version 0.5.50 released. The process of Lisp evaluation simplified. LLispThread class eliminated since it was finally found stupid to hold a stand-alone stack of dynamic binding informaiton. So, the library now becomes simpler. Also the ILL translator is now able to build under GNU CLISP, making the old-fashioned CL2CPP completely obsoleted. CL2CPP is excluded from this and all the further releases. And one more thing: due to popular demand, the library part of the package is now available under GNU LGPL v.2.1 rather than GNU GPL.

September 14, 2004 Coming soon: version 0.5.50. Stay tuned!

August 27, 2004 The paper presented at 6th JCKBSE is now available in the papers section of the site.

August 13, 2004 Another paper on InteLib, "A Framework of Heterogenous Dynamic Data Structures for Object-Oriented Environment: the S-expression model" by Andrey V. Stolyarov is to be presented at 6th Joint Conference for Knowledge-Based Software Engineering August 25, 2004. The conference will be held at the town of Protvino, Moscow region, Russia.

June 26, 2004 We now run InteLib Wiki. Everyone is invited to leave us a note there.

June 17, 2004 Version 0.5.00 is now available for downloading. The main difference with the previous versions is that the notion of S-expression is now separated from the Lisp evaluator, so it is possible to use them for building heterogenous data structures without using Lisp evaluations.

June 15, 2004 Coming soon: version 0.5.0. Please check back a bit later... may be in several days.

Last updated January 17, 2016

Powered with Openwall/*/Linux Valid HTML 4.01!