GS9 version v3.0b 100410 by Alexandru Simion Version history: v3.0b - 100410 "3D" . single numeric type (float); integer no longer supported; readonly flag for globals was introduced in compiler to compensate for NIL predeclarations . removed NIL type; numeric zero is used instead . ptr type accepts operations with num type (+/-); position parameter associated with pointers was removed from libs (memory, files) . plus operator on tables add elements to support vectors math . two operators tables (unary and binary) . renamed to gs_ (no more gse, gso, gsc, etc) and to gs_type_ . fixed grammar for am_debug flags (flags const not exported) .upd gs9.chm help with index and stuff :) v1.0 - 050419 First official version (used in Saboteur95) .gs_dostring bug fixed .gs_recover will clear script callstack up to code level .gs_ckparams fixed .gso_tabs removed .file functions are over-writable .gserrorexit is over-writable; better errorexit .gsVM::Done clear callstack (recover) .libs are in the same directory v0.6 - 050129 .grammar: allow empty expressions, used in calls .fixed vm bug: objects leaks when comparing strings .libs: gs_rand, gs_frand, gs_srand .fixed nametype bug (non-static was returned) .implicit creation for STR and TAB; GSOP_NEW, GSNODE_NEW added .gserrorexit function .fixed decfn bug ( if params declaration failed, the error was not returned ) .defines with values for INT,FLT,STR; grammar: defobj .obj values; NUL allowed; changed tokens to TOK_NULVAL, TOK_INTVAL, ... .table cookie indexing (tab.member) throught variable value; string indexing eliminated; GSOP_IDX; varidd .better error handeling: gsErrInfo, gsErrorHandler, error codes changed, etc. .debug local vars in vm for current line, file, func (only on _DEBUG) .less parameters in function call allowed (NULs are pushed) v0.5 - 050112 .gs_reglib and lib register function changed to use vm insteed of env .GSFN_SCRIPTED flag .bug in compiler (node - n) .restrict locals again (must have different names than globals or fn) .restrict defines .remove @ and IDI .DECEXP become IFEXP .remove VARCK node (simplified) .hash for fn, var, sym v0.4 - 050111 .explicit declarations for globals and functions ( int i; var i; func fn; func fn(){} ) .implicit declarations for locals .allow local names to be the same as globals or functions .no more $ for globals (var: find local; else find global; else add local) .sizeof, typeof operators .@idd insteed of #idd .?var to test if not NUL (return 0 if NUL else 1) .exp ? exp : exp (GSNODE_SELEXP) .deny redeclarations (no change of global types, or change of non-empty or exported functions) .compare (==,!=) strings v0.3 - 050110 .no more explicit declarations (except extern globals for clarity) .cast operators work on expressions .call function use fid as last param .bug gs_type fixed .grammar change for simplicity (decidd_list) v0.2 - 050107 fixed some bugs $ globals etc v0.1 - 050103 first release If you want to ask questions or write your opinion, visit GS9 web site: http://www.simion.co.uk/gs9