libfawk 1.3.0 (r948) ~~~~~~~~~~~~~~~~~~~~ [libfawk] -Fix: NIL is not equal to 0 - in fact is not equal to anything else but another NIL -Fix: nil != nil is false, but nil != anything-else is true -Fix: assume enum is passed as int in vararg -Fix: missing parenthesis in stack addressing macro caused invalid memroy addressing on large stacks -Fix: unambigous cast in goto label administration -Fix: C API implementation: call2() should allow more arguments passed to a function if it is a vararg function -Add: package infrastructure [fawk] -Fix: return statement in the middle of a vararg func shouldn't mess up the stack pointer on the RET instruction [regexp] -Add: self contained regex package: match(), split(), sub() and gsub() [stdio] -Add: package with minimal implementation with fgetline and fclose, fprintf() for %s, %d and %f [sym] -Add: sym package for resolving globals by name libfawk 1.2.0 (r895) ~~~~~~~~~~~~~~~~~~~~ [doc] -Fix: typo: example for <= and >= had the wrong operator -Fix: missing -Add: text block does not accept empty expression -Add: document the no-array-in-array limitation of [] [fawk] -Fix: expect stack to be empty only if there was no runtime error; indicate runtime error [libfawk] -Change: API CHANGE: fawk_error() gets location information in separate arguments so the error print function does not have to figure it from the context -Optimize: remove code duplications to reduce code size -Fix: compiling instruction .line field from the wrong context field -Fix: libfawk_error() needs to get line number of column number location info as long (because int may be as small as 16 bits) -Fix: ABORT uses libfawk_error for announcing the message instead of fprintf to stderr -Fix: uninitialized var on array index conversion -Fix: low level numeric conversion in the parser doesn't depend on double but uses fawk_num_t since strtod is also virtualized -Fix: textblock expression may contain spaces before the escape-back-to-text character -Fix: ungetch returning to previous line restores previous max col value too instead of reporting 1000 -Fix: for(in) shouldn't crash for non-existing arrays (e.g. A.X where A[] is empty) -Fix: create local var array on first symref -Fix: textblk accepts [] in expression -Fix: don't abort after failed to-string cast -Fix: do not assert but return runtime error for FOO[1][] -Fix: accept STRNUM for STR for succesful cast in concat -Fix: typo in cast-to-str: fallback result should be NIL or STR -Cleanup: namespace pollution: CURR_IP and PUSH_IP are now FAWK_ prefixed -Add: centralzie fawk_assert(), stop using assert() directly -Add: virtualize strtod() to fawk_strtod() so caller has a chance to replace the numeric type without having to convert doubles -Add: virtualize fmod() into fawk_fmod() so execute.c doesn't depend on math.h -Add: do not hardwire %f and %g in numeric printf, because the numeric type is user defined; use a printf format string define in the config [sc] -Add: make fawk_assert() redefinable -Add: make math.h optional