# 27dec20 Software Lab. Alexander Burger

   Differences to Pil64
   ====================

+ PilSrc ("PicoLisp Source") instead of PilAsm
+ No pre-installed PicoLisp required for bootstrapping
+ '*Run' not limited to 1024 FDs / 500 children
+ Shared libraries have ".so" extension
+ 'with' accepts 'var' instead of 'sym'
+ Map functions accept atomic arguments
+ Standard readline(3) library in REPL
+ 'history' function for readline
+ 'mix' accepts also negative arguments
+ 'native'
   * 'W', 'P' and 'T' result specifications
   * (T . any) direct Lisp argument
   * Number of fixpoint arguments not limited
+ '%@' function
+ 'struct'
   * Useful atomic result specifications
+ 'adr' returns a pointer usable by 'native' and 'struct'
+ 'info' returns the file argument in '@@'
+ '\~' marker in namespaces
+ Special 'priv' namespace
+ '%~' namespace search modification
+ 'intern' accepts namespace argument
+ 'plio' function
+ 'buf' function
+ 'tty' function
+ Various runtime checks
+ Lists of symbols as function parameters (destructuring, one-dimensional)
+ '*Winch' global SIGWINCH handler
+ Path names expand "~" for the HOME directory

- '====' is not supported
- 'lines' is not supported
- 'tick' is not supported
- 'arg' without arguments is not supported
- 'tzo' is not supported
- 'case' is more strict in expecting atomic keys
- Second argument to 'name' (i.e. renaming) is not supported
- Lambda-binding environment offset for 'eval' and 'run' only for '@'
- 'T' argument to 'native' changed: No skipped call
- 'pil' is not needed

% '*Run' cleared in children: 'forked' is not needed
% Main coroutine has a tag 'T'
% 'file' returns NIL instead of "./"
% 'edit' functionality is handled by 'vi' (Vip)
% 'flood' moved from "@lib.l" to "@lib/simul.l"
