# joycub - an interpeter for the programming language Joy
# 
# (c) 2004-2006 Sergey Zubkov 
# $Id: Changelog,v 1.15 2006/03/02 17:24:50 cubbi Exp cubbi $

03/02/06 (0.5h) Rolled out version 2.0 and made it available online
03/01/06 (0.5h) fixed a bug in infra to execute new F2A correctly
02/27/06 (4.0h) implemented primrec, case, argv, argc, app1, app11, app12, condnestrec, help, helpdetail, manual
reimplemented has and fixed = to let mthlib.joy's calc to work
fraclib runs (very slow!)
02/26/06 (0.5h) implemented opcase
02/25/06 (0.5h) Implemented quit, abort, getenv, system, gc, name
02/24/06 (4.0h) Implemented filter, split, take, cond, compare, construct,
unary, unary2, unary3, unary4, treestep, treerec, treegenrec
Defined has, in, genrec
02/23/06 (3.0h) marked up as non-implemented: conts, autoput, setautoput,
undeferror, setundeferror, undefs
Implemented mktime, strftime, strtol, strtod, formatf, fclose, feof, ferror,
fflush fgetch fgets fopen fread fwrite fremove frename fput fputch fseek ftell
Defined fputchars fputstring app2 app3 app4 ifinteger---iffile, all
02/21/06 (0.5h) Implemented file type, stdin, stdout, stderr.
Added JC_Stack::push()
02/20/06 (0.5h) Defined min, max
02/08/06 (1.0h) Defined neg, abs
Implemented asin, acos, atan, atan2, ceil, exp, floor, frexp, ldexp, log, log10, modf, gmtime
02/07/06 (1.0h) implemented stack, echo, clock, rand, choice, sign, ord
02/06/06 (1.5h) fixed string to handle \".
Implemented setecho sin sinh tan tanh cos cosh
Executed mtrtst.joy, laztst.joy
02/03/06 (0.5h) implemented sqrt pow trunc, Executed f3c
02/01/06 (3.0h) implemented uncons chr linrec or and xor not infra setsize
Defined first, unswons, cleave, some. Make true and false insert booleans rather
than execute as operators.
Executed f3a.
Fixed div, fixed rem to properly handle float
01/29/06 (1.0h) implemented maxint intern body null
defined enconcat
01/28/06 (2.0h) implemented put get unstack logical integer char set string list leaf user float file time localtime rest fold drop
defined swons
01/27/06 (3.0h) rewrote parser to fix LIBRA implementation. implemented putch, include. Fixed char literal parsing to support '\n, made string inherit from list and operator - from string.
01/26/06 (2.0h) made bool and char inherit from int. implemented LIBRA,
Implemented step, map
01/25/06 (3.0h) implemented format, div, rem, condlinrec, i, x, branch, nullary
defined popd, rollupd, rolldownd, rotated, ifte, unary, binary, ternary
Executed f3b and new f2c
01/23/06 (1.0h) implemented comments
01/21/06 (0.5h) fixed multi-line input to look for dot at tokenization time
01/19/06 (2.0h) multi-line input, the operator dot, DEFINE ==, putchars
01/17/05 (6.0h) implemented composite words.
Defined dupd, swapd, pred, succ, of
Implemented at cons concat while times tailrec
Executed f2a f2b f2c
Made stack and program subclasses of list
(25th f1a increased to 9.50 sec with a user-defined pred)
01/16/06 (7.0h) finished list type
implemented + - * / pred succ dip small binrec size true false >= > <= < != = dupd
Executed 25th f1a at 8.05 sec.
Fixed programs to not self-destuct when executing - improved to 7.53.
Fixed operators to use symtab only at compile time - improved to 6.50.
Fixed ints to calculate their keys at creation time - improved to 5.03.
01/15/06 {0.5h} finished set type
01/14/06 (0.5h) implemented set type
01/13/06 (2.0h) Fixed id, implemented pop swap dup rollup rolldown rotate, Started JC_list
03/29/05 (0.5h) Implemented execution. operator id
03/04/05 (2.0h) Implemented JC_Program, JC_op, JC_char, JC_float, JC_string
12/05/04 (1.0h) Added new parser states
10/28/04 (4.0h) Started writing version 2: implemented base classes and copied over the tokenizer
08/09/04 (1.5h) Wrote design considerations for Version 2. 
05/19/04 (1.0h) implemented rollup, rolldown, rotate, popd, dupd, swapd. Wrote down some better design ideas.
03/01/04 (1.0h) wrote COMPLETENESS.txt, implemented set type, maxint, setsize, stack, rand
02/29/04 (1.5h) implemented true, false, file type, stdin, stdout, stderr
02/26/04 (1.0h) RCSed the source tree, some code beautification, implemented succ
02/25/04 (1.0h) profiling: changed symtab to an int-indexed array of functions. Took 25th f1a from 7.57 to 1.59 sec.
02/24/04 (0.5h) profiling: made get_map return reference. Took 25th f1a from 12.49 to 7.57 sec)
02/23/04 (4.0h) implemented J_string, J_list, pred, small, dip, times, binrec
02/20/04 (0.2h) fixed j_char to handle octal unix extensions
02/19/04 (1.0h) implemented new lexer
02/13/04 (1.5h) design for new lexer
02/12/04 (2.0h) implemented bool type, float type, renamed J_literal to J_word
02/10/04 (1.0h) implemented char type, id dup
02/10/04 (4.0h) implemented int type, + - * / pop swap 
02/06/04 (1.0h) design
02/05/04 (1.5h) design, first prototype
