2005-03-14 Harold Carr * Removed vestigial code (EngineStepImpl - it never worked). 2005-03-12 Harold Carr * Made Syntax reside at org.llava package (same place as Lambda, Pair, Procedure and Symbol) - where it should have been. 2005-02-21 Harold Carr * llava.lib: Plural to Singular: e.g., Lists -> List, Sequences -> Sequence 2005-02-07 Harold Carr * Start of interface from Java to Llava. 2005-02-06 Harold Carr * Moved PrimNewPrim core functionality into PrimNew. * Bound PrimNew to new*. * Wrote "new" macro that finds full path name from package of definition (rather than of use - which may not be in path). 2004-12-22 Harold Carr * Removed workaround and fixed bug in generic undefined id handler. The bug caused undefined variables to be SET! with an unnamed GenericProcedure. This procedure could then shadow similarly named procedures in imported packages. It also caused the undefined message to not name the variable. 2004-12-18 Harold Carr * Added I/O -flush 2004-12-14 Harold Carr * Extended equal? to handle vectors. * Fixed bug in SimpleRecord. 2004-12-12 Harold Carr * Renamed/restricted I/O procedures to: -read, eof-object?, load, -write,-writeln, set-vector-print-length!, -print, -println, -newline, 2004-12-10 Harold Carr * Extended or added: read, -read, eof-object?, write, -write, -writeln, set-vector-print-length!, display, -print, -println, newline 2004-12-08 Harold Carr * Consolidated the three factories: F (top-level), FC (compiler) and FR (runtime) into one: F * Wrote set-vector-print-length! to avoid printing large vectors during debugging. 2004-12-07 Harold Carr * Made package structure simpler (i.e., not so many and not too deep). 2004-12-05 Harold Carr * Wrote Scheme write with optional argument. * Changed ReplImpl to use write. * Added read with optional argument. * Extended newline to take optional argument. * Wrote vector-equal?. 2004-12-02 Harold Carr * Reeabled defining a constructor when importing a Java class. This is necessary because this does not work: (package test) (import java.lang.Integer) (define (f x) (new 'Integer x)) (define (g x) (Integer x)) (f 3) (g 4) (package ing) (import test) ;; (new 'Integer x) called in context of "ing" and ;; java.lang.Integer not in ing's imports (f 5) ; error ;; But constructor internally calls new with full path so it works: (g 6) ; => 6 2004-12-01 Harold Carr * Enabled -jar llava.jar startup. * Made lambda, generic and syntax print names shorter. 2004-11-30 Harold Carr * Fixed reader bug: "(" and ")". * Refactored PrimMap to support for-each. * Moved for-each to llava (instead of derived). * Documented -car and -cdr. * Enabled import of org.llava.lib.* files as resources from jar. 2004-11-29 Harold Carr * Made instanceof work with import. try/catch then works with import since it uses instanceof. 2004-11-26 Harold Carr * Added "define-d" to trace procedure entry and exit. * Added more Scheme vector procedures and made them built in. 2004-09-06 Harold Carr * Released llava version 2004-09-06-alpha * Changed top-level package from "org.llava.Llava" to "org.llava" * Changed initial REPL package from "org.llava.Repl" to "llava-" * Changed "_comment" to "-comment-" * Changed "_namespace" to "package" * Changed "_bt" and "_jbt" to "-bt" and "-jbt" * Changed all public names which start with "_" to start with "-" "-i" "-si" "-f" "-sf" "-println" "-print" "-if" "-list" * Removed require/provide system (replaced by import/package) * Changed license to Creative Common Attribution * Wrote assoc and assq in org.llava.lib.scm.List * Wrote documentation in DocBook format * Created org.llava.lib.LlavaDoc to extract and format "-doc-" from *.lva source. 2002-11-07 Harold Carr * Released llava version 2002-11-07-alpha * Changed versioning scheme. After seeing James Clark's versioning scheme for XT, XP, etc., I feel it better serves the nature of how I work on llava - whenever I can. Sometimes big changes, sometimes small - regardless, the version number just bumps to the latest date. I have added an optional field after the date to indicate things like "beta", "alpha", etc. I only include the last two digits of the year. If llava lives past the 21st century then I made a mistake. 2002-10-25 Harold Carr * Added bitwise or (Prim_BitOr, "|"). (Did not bump version.) 2002-10-20 Harold Carr * First public release on llava.org: Version 0.49.beta1. 2002-10-12 Harold Carr * Changed name to llava. * Added X11 style copyright. * Put in org.llava package. * Moved lib and impl directories. 2001-03-26 Harold Carr * Repartitioned large-grained package structure such that the core just contains interfaces (and some default implementations) while language profiles (only Llava for now, but r5rs later?) contain the actual implementation. 2001-03-14 Harold Carr * Converted libraries from provide/require to package/import. 2001-03-13 Harold Carr * Modified LambdaImpl, ActivationFrame (and Namespace) such that a lambda captures the namespace it is defined in so that when it runs it uses that namespace to resolve references. 2001-03-05 Harold Carr * Began integrating package system into Llava as a pluggable EnvironmentTopLevel. Tests work with either environment implementation. 2001-03-02 Harold Carr * Translated prototype "package" system Lisp code to Java. 2000-10-21 Harold Carr * Began prototyping "package/import" system. 2000-02-26 Harold Carr * Added PrimCurrentTimeMillis (could be derived but want direct). * Did first performance testing. - Cons up a 10000 element list. Take its length. Compare it to itself: With letrec : 18026.0 ms With aux : 17425.0 ms With non generic cons : 1352.0 ms Silk3 : 591.0 ms - Preliminary conclusions: + Heavy price to pay for making primitives generic. + Moderate price to pay for pluggability of primitives (rather than Silk3's direct primitives in switch). 2000-02-20 Harold Carr * Changed some derived to primitives (for speed): - eg: not, map, null?, pair? in primitive/java/opt and primitive/llava/opt 2000-02-10 Harold Carr * Wrote PrimNewInvocationHandler and proxy.lva to support Java 1.3 java.lang.reflect.Proxy and friends. 2000-02-03 Harold Carr * Added .list which always creates a list regardless of the first argument - so you can (list *). 2000-01-27 Harold Carr * Wrote Llava.newReplOnPort. Starts a repl on the given port. Useful for looking inside a running program (if you have provided yourself with roots). 2000-01-26 Harold Carr * Looked at startup time. On a 300Mhz/P2: - 3.9s with individual derived files. - 3.8s with derived files collected into single file. - 0.6s with no derived. 2000-01-25 Harold Carr * Added support for uninterned symbols. 2000-01-24 Harold Carr * Wrote PrimLength to handle (length '()) case. * Wrote PrimSynchronized. 2000-01-22 Harold Carr * Wrote PrimNewThread and LlavaRunnable to enable thunks to run in a new thread. 2000-01-21 Harold Carr * Work on library and test framework. 2000-01-19 Harold Carr * Wrote LlavaVersion. 2000-01-18 Harold Carr * Wrote require/provide. * Wrote .llavarc init file reading on startup. * Made primitive procedures which may be names of Java methods into generics (e.g., append, apply, cons, eval, list, load, ...). 2000-01-17 Harold Carr * Wrote PrimInvoke (e.g., so you can do (list )). * Added #t, #f, #\space, #\newliine, #\ reading. * Experimented with EngineStepImpl. * Made derived (Llava source) into resources that are loaded at init time (pluggable too). 2000-01-16 Harold Carr * Modified the "import" I wrote for kawa and then skij two years ago to work with Llava. * Wrote PrimThrow. * Wrote PrimTryCatchFinally. * Adapted my try macro I wrote for kawa and then skij two years ago to work with Llava. 2000-01-15 Harold Carr * Removed LlavaIOException. * Made LlavaReaderImpl makes all exceptions LlavaException. * Split LlavaException into abstract and impl. Needs more work since now the reader (or the llava type factory) needs knowledge of rt1. * Add Java and Llava backtrace control to Repl. * Removed PrimThisEnvironment. * Added member, do, case, etc. * Wrote PrimStringAppend. 2000-01-14 Harold Carr * Wrote PrimCallCC. 2000-01-12 Harold Carr * Wrote PrimAppend. * Wrote Prim_Plus. * Wrote Prim_Minus. * Added ` , ,@ read macros. * Added quasiquote handling. * Added let, let*, letrec. 2000-01-11 Harold Carr * Wrote PrimLoad. * Wrote LlavaEOF. * Added parsing and returning String. 2000-01-09 Harold Carr * Wrote WrapJavaPrimitive. * Wrote CodeSchemeIf. 2000-01-08 Harold Carr * Wrote PrimThisEnvironment. * Wrote PrimEval. 2000-01-07 Harold Carr * Wrote LlavaRuntime and changed compiler to take it rather than an Evaluator (which is an Engine). * Wrote Syntax, UserSyntax, SyntaxDefineSyntax. * Milestone: macros work. * Wrote PrimApply. * Added derived initializer to EnvTopLevelInit. NB: this means compiler MUST be around. * Wrote cond derived. 2000-01-04 Harold Carr * Wrote LlavaIOException. * Changed LlavaReaderImpl to throw LlavaIOException. * Removed Util (only contained error and warning used by reader). 2000-01-03 Harold Carr * Wrote PrimDefGenInternal. * Wrote language level support for (define (foo x) ...) of generic procedures. * Added arity checking. * Added support for dotted (&rest) argument lists. 2000-01-02 Harold Carr * Extended LlavaException to support backtrace. 1999-12-30 Harold Carr * Wrote PrimitiveProcedure abstract base class. * Wrote PrimStaticInvoke, PrimField, PrimStaticField. * Wrote PrimCar, PrimCdr, PrimCons, PrimList. * Wrote PrimEq, PrimEquals. 1999-12-29 Harold Carr * Wrote Repl. * Installed "'" shorthand for quote. * Give Procedures names when bound to top level variables. * Wrote EnvTopLevelInit. * Wrote Llava (i.e., main). 1999-12-28 Harold Carr * Designed language level top level definitions of values (including generic procedures and non-generic lambdas or other values). * Designed top level constant definitions. * Designed language level interface to Java field access and method invocation. * Designed language level convention for top-level built-in language specific special forms and procedures (e.g., define let cons list etc). 1999-12-27 Harold Carr * Wrote UndefinedIdHandler. * Wrote PrimNew. * Wrote GenericProcedure (using DI). * Handle (quote <*>). * MILESTONE: (doubleValue (new (quote java.lang.Integer) 123)) => 123.0 1999-12-26 Harold Carr * Wrote CodeAssignmentTopLevel. * Wrote CodeReferenceTopLevel. * Wrote LlavaException. * Wrote WrongNumberOfArgumentsException. 1999-12-25 Harold Carr * Wrote EnvironmentTopLevel. * Wrote UndefinedIdException. 1999-12-24 Harold Carr * Wrote CodeApplication*. * Wrote Symbol. * Wrote CodeReference, CodeAssignment (shallow and deep). 1999-12-23 Harold Carr * Wrote CodeLiteral. * Wrote CodeIf. * Wrote CodeSequence. * Wrote CodeLambda and Lambda. 1999-12-22 Harold Carr * Wrote Engine. * Wrote Compiler. * Wrote Code. 1999-12-21 Harold Carr * Wrote Fac (global factory). * Wrote Util (global utilities). 1999-12-20 Harold Carr * Wrote EnvironmentLexical (compiletime lexical environment). * Wrote ActivationFrame (runtime). 1999-12-17 Harold Carr * Design guidelines: - All functions generic. - Everything pluggable. - Only necessary stuff in llava.* (src: llava/llava/*) - Extras in libLlava.* (src: llava/libLlava/*) - Only Java types/operators + Pair + Procedure (i.e., Lambda) + Symbol + Macros, ...) * Wrote Pair. * Wrote LlavaReader (of lists, symbols, Integer and Double). 1999-12-15 Harold Carr * Start of scaled-down llava: no class definition. * Obtained/installed GJ. * Updated generic makes to provide GJ compiler. @;;;; 1999-11-19 Harold Carr * Converted Elisp Java class generator to Scheme/Skij. See doc/LLAVA/hcLlava.skj. 1999-06-10 Harold Carr. * Elisp code to take Llava (with class definitions) and generate Java code for class calling back into Skij code for method bodies. See doc/LLAVA/RCS/hcLlava.skj. 1999-summer Harold Carr. * Wrote DI (Dynamic Invocation) - CLOS-like interface to dynamic class creation, method invocation, and field get/set. 1998-12-13 Harold Carr * Emulation of Llava (without class definition ability) on Skij. See importJava.skj. 1998-Spring Harold Carr * Prototyping of full-featured Llava. The idea is to be able to incrementally/dynamically (re)define Java classes. See doc/LLAVA. 1997-11-17 Harold Carr * Emulation of Llava (without class definition ability) on Kawa. See k2j.kawa. Created : 1999 Dec 15 (Wed) 19:57:16 by Harold Carr. Last Modified : 2005 Mar 14 (Mon) 19:13:56 by Harold Carr. Order for presentation: - Factory - Pair - Llava (i.e., main) - Repl - LlavaException - Reader (lists, symbols (as String), Integer, Double) - Evaluator. Engine. Code. - Compiler. - CodeLiteral (handle quote). - Add null, true, false constants to Reader - CodeIf, CodeSequencee - CodeLambda, Lambda, - CodeApplication - Symbol - Compile time lexical environment and runtime activation frame. - CodeReference, Shallow/Deep - CodeAssignment, Shallow/Deep - Top level environment. Assignment. Reference. Undefined handling. - DI, PrimNew, GenericProcedure, - Undefined installs/executes GenericProcedure. EnvTopLevelInit. - Dotted. - Macros. - Environment reification. - Eval. - Quasiquote (and derived expressions supporting it). - ... - Load. - call/cc. - import. - PrimThrow, PrimTryCatchFinally. ------------------------------------------------------------------------------ Copyright (c) 1997 - 2004 Harold Carr This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. ;;; End of file.