logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

oaklisp - An implementation of the Oaklisp object-oriented Scheme dialect

Author

       Oaklisp was originally designed, implemented, and documented by Barak A. Pearlmutter and Kevin J. Lang.

                                                                                                      OAKLISP(1)

Bugs

       Floating point numbers are not implemented.  Rationals can be used to  make  up  for  this  lack  because
       rationals  can  be  told to print in floating point format and floating point format input can be made to
       read as rational numbers.  (There are a couple floating point implementations, but they  are  not  merged
       into the distributed release.)

       In  contrast  to  the  error  handling  system,  which  is Industrial Strength, the debugger is virtually
       nonexistent.

       There is no foreign function interface for loading  and  calling  C  routines  from  a  running  Oaklisp.
       (Again, there are a couple implementations of foreign function interfaces which are not merged in.)

       The memory format does not support uninterpreted "blobs".

       Porting the system to 64-bit machines has not been done, and would be quite difficult.

       POSIX threads in the emulator never got quite finished.

       Bug reports and enhancements can be filed on the github issue tracker ⟨https://github.com/barak/oaklisp⟩.

Description

Oaklisp  is  an object-oriented dialect of Scheme.  This implementation is quite portable, compiling to a
       virtual machine which is emulated by a C program.  Nevertheless, reasonable speed is achieved  through  a
       variety of sophisticated techniques.

Distribution

       The  Oaklisp copyright belongs to its authors.  It is distributed under the GNUGeneralPublicLicense, a
       copy of which is included in the source distribution in the file COPYING.  For further information or  to
       make alternate arrangements please contact the authors, who are surprisingly reasonable people.

Environment

       The  environment variable OAKWORLD will override the default compiled into the executable, but itself can
       be overridden on the command line.

Examples

       This will compile the file myfile.oak in the scheme locale and then leave the user in  a  read-eval-print
       loop in the scheme locale.

       oaklisp----localescheme-locale--compilemyfile

Files

       /usr/lib/x86_64-linux-gnu/oaklisp/oakworld.bin holds the world image.  It is portable between machines of
       the same endianity.  The location can vary depending upon installation-time decisions.

Name

       oaklisp - An implementation of the Oaklisp object-oriented Scheme dialect

Options

       Options  are  all  long,  and it makes no difference if you start them with one or two dashes (`-').  All
       options can be abbreviated to a unique prefix.   There  are  two  sorts  of  options:  for  the  bytecode
       emulator, and for the Oaklisp world.  You must use a -- to separate them.

   EMULATOROPTIONS--help Show summary of emulator options and exit

       --version
              Print version of emulator and exit

       --worldfile
              file is world to load

       --dumpfile
              dump world to file upon exit

       --dfile
              synonym for --dump

       --dump-baseb
              0=ascii, 2=binary; default=2

       --predump-gcb
              0=no, 1=yes; default=1

       --size-heapn
              n is in kilo-refs, default 128

       --size-val-stkn
              value stack buffer, n is in refs

       --size-cxt-stkn
              context stack buffer, n is in refs

       --size-seg-maxn
              maximum flushed segment len, n is in refs

       --trace-gcv
              0=quiet, 3=very detailed; default=0

       --verbose-gcv
              synonym for --trace-gc

       --trace-traps--trace-files
              trace filesystem operations

   UNOPTIMIZEDEMULATOROPTIONS--trace-segs
              trace stack segment writes/reads

       --trace-valcon
              print entire value stack at each instr

       --trace-cxtcon
              print entire context stack at each instr

       --trace-stks
              print the size of the stacks at each instr

       --trace-instructions
              trace each bytecode executed

       --trace-methods
              trace each method lookup

       --trace-mcache
              trace method cache

   OAKLISPOPTIONS--help Show summary of Oaklisp options

       --evalexpr
              Evaluate Oaklisp expression, which is one arg so be sure to quote for shell.

       --loadfile
              Load a file.

       --compilefile
              Compile file.oak yielding file.oa

       --localex
              Switch  to  locale  x,  eg  system-locale  (default),  compiler-locale,  scheme-locale  (for  RnRS
              compatibility).

       --exit Exit upon processing this option.

References

       The  programs  are documented more fully in the language and implementation manuals lang.pdf and lim.pdf,
       along with OaklispSummary.pdf,  whose  source  is  included  with  the  distribution,  and  installed  in
       /usr/share/doc/oaklisp/.

       The Oaklisp home page is old location ⟨http://barak.pearlmutter.net/oaklisp/⟩ to github ⟨https://
       github.com/barak/oaklisp⟩.

       TheImplementationofOaklisp is a chapter in TopicsinAdvancedLanguageImplementation edited by Peter
       Lee, pp 189-215, MIT Press, 1991.

       Oaklisp:anObject-OrientedDialectofScheme appears  in  the  journal  LispandSymbolicComputation1(1):39-51, published by Klewer Associates, May 1988.

       Oaklisp:anObject-OrientedSchemewithFirstClassTypes appeared in proceedings of the ACM conference
       OOPSLA-86, pp30-37, published as a special issue of SIGPLANNotices.Garbagecollectionwithpointerstosinglecells, an article on the Oaklisp garbage  collector,  appeared
       in CommunicationsoftheACM,39(12):202-206 (online edition), December 1996.

       TheRevised^nReportonScheme is a useful piece of documentation, and is widely available online.

Synopsis

oaklisp [ emulator-options ... [ -- oaklisp-options ... ]]

See Also