Changelog for
bacon-4.4-3.43.x86_64.rpm :
* Tue Jun 28 2022 Boris Manojlovic
- updated to latest release 4.4 + New: PARSE statement to parse parts from delimited strings based on pattern (all versions) + New: COLLAPSE$ to remove empty items from delimited string (all versions) + Imp: overall code improvements and cleaning (all versions) + Imp: allow C assignment operators like += and -= (all versions) + Imp: the APPEND statement now can concatenate strings as well (all versions) + Imp: pattern string in MATCH now accepts wildcards (all versions) + Imp: made second argument in LEFT$ and RIGHT$ optional (all versions) + Fix: fixed tokenization issue with the VERIFY keyword (all versions) + Fix: fixed crash in CIPHER$ when using WolfSSL (all versions) + Fix: GnuTLS could not handle some TLS connections properly (all versions) + Fix: memory leaks in CA$ and CN$ (all versions) + Fix: string concatenation failed for string members of RECORD (all versions) + Fix: memory leak in OPEN FOR SERVER when using SSL mode (all versions) + Fix: assignments to pointer members of RECORD caused erroneous variable declaration (all versions) + Fix: statement assignments to numeric associative variables did not work (all versions) + Fix: the \'\\\' symbol in a comment is not ignored in all circumstances (BaCon version) * Sat Jul 10 2021 Boris Manojlovic - updated to latest release 4.3.2 + New: commands TREE, FIND and COLLECT to define binary trees (all versions) + Imp: code cleaning for all implicit variable declarations (all versions) + Imp: if no TYPE is defined in GUI definition then use GTK_TYPE (BaCon version) + Imp: improvements in stability and performance for recursive WALK$ (all versions) + Imp: improved tokenization for statements in Shell version (Shell version) + Imp: added support for GTK4 (BaCon version) + Fix: the PRINT..FORMAT..TO statement spoiled internal variable damaging other parts of generated code (all versions - kudos rikky) + Fix: RESTORE did not work in SUB or FUNCTION when DATA is global (all versions) + Fix: the FUNC keyword was not recognized by indentation functions (GTK and FLTK version) + Fix: tracing facility could not handle various IF/ELIF/ELSE constructs properly (all versions) + Fix: LAST$ and FIRST$ should return empty string in case of one token and argument=1 (all versions) + Fix: string equations did not allow surrounding brackets (all versions - kudos vovchik) + New: MATCH to compare elements in delimited strings (all versions) + New: ESCAPE$ and UNESCAPE$ to translate bytecodes to escape sequences and vv (all versions) + Imp: the length argument in EXPLODE$ is optional (all versions) + Imp: made the last argument in IIF and IIF$ optional (all versions) + Imp: sorted OBTAIN$ and sorted LOOKUP now also sort keys based on duplicate value (all versions) + Imp: allow FUNC keyword for functions (all versions) + Fix: memory leak in VAR statement (all versions) + Fix: the DOWNTO argument in FOR was broken (all versions) + Fix: dynamic arrays declared STATIC could not be returned from function (BaCon version) + Fix: UNIQ$ did not use original delimiter in output (all versions - kudos rikky) + Fix: string arrays passed to functions could not be compiled properly (all versions) + Fix: GUI could crash when directory exists with target binary name (GTK and FLTK version) + New: OPTION ESC to define escaping character (all versions) + Imp: replaced M4 for LEX to analyze used functions (all versions) + Imp: performance improvements in UNIQ$, ISTOKEN, SORT$, DELIM$, ALIGN$, REV$, ROTATE$, PROPER$, LOOKUP, OBTAIN$ (all versions) + Imp: SIZE argument is optional in LOOKUP and MAP (all versions) + Imp: cleaned up memory allocation for intermediate string results (all versions) + Fix: returning error code to Shell did not work (all versions - kudos rikky) + Fix: converting small letter code using \'-z\' option was broken (BaCon version) + Fix: FREE of assoc array could cause crash afterwards (all versions) + Fix: COIL$ and LOOP$ could not be converted correctly in all circumstances (Shell version) + Fix: IMPORT did not use symbol name in NULL check (Shell version) + Fix: JOIN did not work with dynamic arrays (all versions) + Fix: PRINT FORMAT TO did not work in all circumstances (BaCon version - kudos rikky) + New: TLS for OPEN FOR SERVER, introducing ACCEPT and CERTIFICATE (all versions) + Imp: made generated code C89 compliant (all versions) + Imp: simplified PUSH/PULL stack, added SP reserved variable (all versions) + Imp: code cleaning and simplification in statement assignments and core string engine (all versions) + Imp: improved JOIN, READLN, INPUT, READ, NETWORK, SERVER statements, also improved SOURCE$, FILETYPE functions (all versions) + Fix: LOOKUP and OBTAIN$ did not recognize NUMBER type when sorting (all versions) + Fix: string array assignments did not take OPTION BASE into account (all versions) + Fix: APPEND$ mixed up empty tokens at start of delimited string (all versions) + Fix: FREE of associative array did not retain base (all versions - kudos rikky) + Fix: ARGUMENT$ did not handle delimiter grouping symbol correctly (all versions - kudos rikky) + New: UBOUND to get the upper bound of a one-dimensional array (all versions) + Imp: OBTAIN$ allows 3rd argument to sort assoc array before fetching indexes (all versions) + Imp: replaced inet_aton for POSIX compliant inet_pton (all versions) + Fix: string initialization during declaration went wrong in some circumstances (all versions - kudos rikky) + Fix: LOOKUP did not fetch correct key in case of sorted duplicates (all versions) + Fix: WALK$ did not accept value higher than 7 (all versions) + Fix: B64DEC$ did not set correct length in case of binary data (all versions) + Fix: dynamic arrays were declared without noticing scope of declaration (BaCon version) + Fix: fixed bug in declaring string arrays while initializing them (Shell version) + Fix: the OPEN FOR DEVICE statement needs mode argument in some circumstances (all versions) + New: added new GUI functions, backends XAW toolkit, Motif, GTK2/GTK3 or CDK (BaCon version) + Imp: COIL$ allows 4th argument to define delimiter (all versions) + Imp: put consistency in adding linker flags (all versions) + Imp: the DEC function should be able to convert long type values (all versions) + Imp: the HASH function now also can create hashes of memory areas (all versions) + Imp: SELECT/CASE evaluation allows function arguments, improving performance (all versions) + Imp: replaced hash table implementation reducing code and memory footprint (all versions) + Imp: replaced EVAL code because of license issue, using optional libmatheval (all versions) + Fix: improved argument handling for ALIGN$ thereby eliminating casting bug (all versions) + Fix: could not assign return value from a function to assoc string (all versions - kudos rikky) + Fix: could not assign return value from a function to RECORD type (all versions - kudos bigbass) + Fix: tokenizer should not be active in commented lines of text (all versions - kudos rikky) + Fix: INBETWEEN/OUTBETWEEN mangled up the OPTION COLLAPSE setting (all versions) + Fix: RETURN could leak memory in certain circumstances (all versions) + Fix: BaConGUI crashed when source file was not saved (BaConGUI GTK version - kudos alex) + Fix: assoc array elements could not be assigned to each other (all versions - kudos rikky) + Fix: assigning a string in DECLARE/GLOBAL/LOCAL did not work (BaCon version - kudos rikky) + Fix: regression: RETURN could not handle composed string returns (all versions) + Fix: ISTOKEN skipped whole string when first token is empty (all versions - kudos rikky) + Fix: regression: functions using C++ class names could not be compiled (all versions) + New: compile scheme for dependent functions has improved, starting 4.0 (all versions) + New: LOOP as inline loop to perform mathematical functions (all versions) + Imp: optimized INTL$ and NNTL$ (all versions) + Imp: many small performance tweaks (all versions) + Imp: install process BaCon now allows specifying external library in LDFLAGS variable (all versions) + Imp: simplified handling of displaying error messages (all versions) + Imp: optional STEP in FOR/NEXT should take OPTION DELIM as default delimiter (all versions - kudos pebau) + Imp: SIZE in SPLIT should be optional (all versions) + Imp: WALK$ should allow binary mask to accept multiple filetypes (all versions) + Fix: core delimited string engine crashed when passing NULL variable (all versions) + Fix: compile warning in TermUX for ARM 64bit (all versions) + Fix: string concatenation would stop at uninitialized string variable (all versions - kudos rikky) + Fix: ALIGN$ referred to illegal memory (all versions - kudos vovchik) * Wed Dec 25 2019 Boris Manojlovic - updated to latest release stable 3.9.3 + New: RIP$ to take out part of string, as complement of MID$ (all versions) + New: LOOP$/COIL$ as inline loops to perform (delimited) string functions (all versions) + Imp: INBETWEEN$/OUTBETWEEN$ should skip delimiters within double quotes (all versions) + Imp: INBETWEEN$/OUTBETWEEN$ now also can return balanced substrings (all versions) + Imp: DOTIMES can use anonymous variable to obtain current loopnr (all versions) + Imp: performance improvements in the core delimited string engine and many delimited string functions (all versions) + Imp: set color selection to CSS approach for GTK3 (BaConGUI-GTK version) + Fix: cursor keeps selecting text in editor field (BaConGUI-GTK version) + Fix: EXPLODE$ should not affect embedded strings (all versions) + Fix: memory leak when associative arrays are declared globally within a function (all versions) + Fix: INCLUDED code did not set internal index for DATA statement (all versions kudos felixp7) + Fix: array of RECORDS did not obey OPTION BASE (all versions kudos felixp7) + Fix: internal variable administration lacked correct RECORD types (all versions kudos felixp7) + Fix: multiple issues in FOR..IN were fixed by using core delimiter engine (all version kudos felixp7) + Fix: SPLIT statement should be using core delimiter engine as well (all versions) + Fix: again LET did not preserve spaces when assigning strings (Shell version) + New: WALK$ to retrieve information from filesystem into delimited string (all versions) + New: HASDELIM to check if a string contains a delimiter (all versions) + Imp: fixed various compile warnings and errors in GCC 8 (all versions) + Imp: BaConGUI recognizes webkit2 to display documentation (BaConGUI-GTK version) + Imp: associative arrays can be assigned to each other (all versions) + Imp: performance improvements in LAST$ and FIRST$ (all versions) + Imp: optimized RETURN statement by eliminating superfluous reallocs (all versions) + Fix: erroneous linking order prevented use of external regex library (all versions) + Fix: BASENAME$/DIRNAME$/REALPATH$ crashed with NULL argument (all versions) + Fix: BASENAME$/DIRNAME$/REALPATH$ returned \".\" in case argument length is 0 (all versions) + Fix: repeatedly creating string buffer did not clear previous contents (all versions) + Fix: comparison of strings failed in some circumstances (all versions) + Fix: regression - RELATE failed assignments (BaCon version) + Fix: GUI versions could not use other compiler than GCC (GTK and FLTK version) + Fix: IF/THEN did not allow left side concatenation (all versions) + Fix: LINENO did not behave as a standalone token (all versions) + Fix: Raspberry Pi showed several compile errors (all versions) + Fix: More structural fix in nested concatenations, restoring original performance (build2 - all versions) + Fix: Optimized nested concatenations further (build3 - all versions) + New: TOASCII$ to convert string data to ASCII format (all versions) + Imp: improved ISUTF8 function (all versions) + Imp: download documentation at first run of GUI (GTK and FLTK versions) + Fix: FOR..IN did not fetch last element correctly in escaped delimited string (all versions) + Fix: REM should not mix up with same letter function names (all versions) + Fix: RECEIVE and SEND could not process calculated memory address (all versions) + Fix: Set correct data length in TLS mode for RECEIVE and SEND (all versions) + New: added CLASS keyword to allow embedding C++ classes in BaCon code (all versions) + New: added TLS for network connections using optional external library (all versions) + New: added CN$ and CA$ to obtain certificate info on TLS connection (all versions) + New: added CIPHER$ obtain encryption info on TLS connection (all versions) + New: added VERIFY to verify validity of certificate in TLS connection (all versions) + New: added ISUTF8 to verify if a string has consistent UTF8 encoding (all versions) + Fix: associative arrays crash when index is not initialized (all versions) + Fix: OPTION BREAK would fail in case of TRUE/FALSE pair (BaCon version) + Fix: PRAGMA RE did not handle multiple library entries correctly (all versions) + Fix: do not generate protoypes for C++ class member functions (all versions) + Fix: do not declare variables which refer to C++ class (all versions) + Fix: B64DEC$ should only accept one argument and set calculated length (all versions) + Imp: possibility to link with a static library (all versions) + Imp: RESET now also resets terminal (all versions) + Imp: SAVE and APPEND allow comma separated arguments (all versions) + Imp: added suport for HTTP proxy (BaCon, all GUI versions) + Imp: improvements in the embedded ASCII editor (BaCon version) + Imp: made semantic checking more flexible (BaCon version) + Imp: aligned installation scripts for Debian based systems and RH systems + Fix: REDIM could not process records (all versions thanks vovchik) + Fix: falling back to GTK3 still downloads syntax file for GTK2 (BaConGUI-GTK version) + Fix: issue in PRAGMA LDFLAGS when checking for library config script (BaCon version) + Fix: CASE did not handle binary operand priority correctly (all versions) + Fix: issue in record member assignments (BaCon version) + Fix: POKE could not parse argument containing comma\'s correctly (BaCon version) + Fix: dynamic array dimension check choke on argument comma\'s (all versions) + Fix: DECLARE did not force dynamic array to be global (all versions) + New: EVAL to evaluate mathematical expressions during runtime (all versions) + New: B64ENC$, B64DEC$ to base64 encode/decode (binary) data (all versions) + New: ATN2 for the arctangens of y/x (all versions) + New: MERGE$ to extract delimiter from delimited string (all versions) + New: HASH to calculate 64bit hash number out of a string (all versions) + New: CL$ to clear current text line (all versions) + New: embedded ASCII editor with syntax highlighting (all versions) + New: runtime error checking allows callback definition (all versions) + Imp: POKE accepts optional SIZE keyword for a range of memory addresses (all versions) + Imp: PROPER$ follows OPTION PROPER to enable/disable lowercase of remaining token (all versions) + Imp: OPTION ERROR to set behavior of functions generating error (all versions) + Fix: internal variable registration could block conversion (Shell version) + Fix: some compile errors could not be displayed by GUI (all versions) + Fix: EXIT FUNCTION generated compilation error (all versions) + Fix: typo in configure script could cause header file not to be detected (kudos bigbass) + Fix: CHANGE$ could not change empty token (all versions) + Fix: BaConGUI hung when opening help in a browser (GUI GTK version thanks Peter Bauer) + Fix: improvements in temporary directory handling (all GUI versions) + Fix: END statement could not return calculated return code (BaCon version thanks Peter Bauer) * Thu Jun 21 2018 borisAATTsteki.net- update to release 3.7.3 + New: OPTION INPUT to define symbol to break input stream from stdin (all versions) + Imp: type of result array in MAP should depend on applied function (all versions) + Imp: improved API in CUT$ (all versions) + Imp: BETWEEN comparison keyword now also accepts AND for range specification (all versions) + Fix: shared objects created by BaCon would crash when opening (all versions) + Fix: REDIM did not accept compound types (BaCon version) + Fix: string invalidation did not check literals causing segfault (all versions) + Fix: numeric array using VAL\'ed string in index generated error (all versions) + Fix: GTK version of BaConGUI should select GTK version based on sourceview (GTK editor) + Fix: INPUT needs clean buffer before executing (all versions) + Fix: increased internal FNV1a hash to 64bit to better avoid collisions in assoc arrays (all versions) + Fix: INPUT did not construct result correctly in case of multiple buffer excess (all versions) + Fix: high performance string creation could cause memory error (all versions) + Fix: optimized internal hash tables further to avoid collisions in assoc arrays (all versions) + Fix: internal string detection only checked variables, not functions (all versions) * Sat Apr 22 2017 borisAATTsteki.net- New: UTF8$ to print character from Unicode value, UCS to get code, ISASCII to detect ascii (all versions) + New: ULEN/BYTELEN to determine length of UTF8 string and substring (all versions) + Imp: string comparison should treat NULL and empty string as the same thing (all versions) + Imp: added check for Windows file type, now also in INCLUDE statement (all versions) + Fix: long standing issue with floating expressions sometimes producing integer (all versions) + Fix: DELIM$ could crash in case new delimiter has bigger size (all versions) + Fix: regression in JOIN (all versions) + Imp: small improvement in the autoconf macros (all versions) + Imp: SAVE/APPEND should read / execute string only once (all versions) + Imp: adapted BaConGUI help to new framed format (BaConGUI version) + Imp: changed the name of the temporary Makefile to avoid conflict with other Makefiles (all versions) + Imp: added \'-q\' command line option to suppress line counting during conversion (Shell and BaCon version) + Imp: code cleaning related to internal string checking as consequence of CASE bug (all versions) + Imp: SPLIT should return 0 elements with numeric argument 0 (all versions) + Fix: GUI version exits unexpectedly when canceling save action (BaConGUI version) + Fix: adapt to newer GCC versions which generate more elaborate error logging (all versions) + Fix: JOIN did not calculate size of resulting string correctly (all versions) + Fix: strndup is not recognized by certain platforms, replaced with propriety (all versions) + Fix: nested functions in RETURN statement could crash (all versions) + Fix: CASE did not detect string members in RECORDS correctly (all versions) + Fix: SORT worked partially in case OPTION BASE was set (all versions) + Fix: TOKEN$ returned last token instead of empty string in case index > total (all versions) + Fix: SPLIT crashed with numeric argument and string length 1 (all versions) + Fix: implementation of TYPEOF$ calculated wrong offset after occurrence (BaCon and BaConGUI version) + Fix: COPY and BSAVE needed proper cast for memory address (all versions) + Imp: two-side alignment in ALIGN$ (all versions) + Imp: ALIGN$ allows optional argument to define indentation (all versions - vovchik) + Imp: error reporting provides hint in case of missing function names (all versions) + Imp: APPEND$ will take position = 0 as appending, improved situation where target string was empty (all versions) + Imp: Semantic checking: duplicate IMPORT, MEMORY/BLOAD vs FREE, OPEN vs. CLOSE, function without END (all versions) + Fix: outlining in ALIGN$ was not correct when ASCII lines are separated by newline (all versions) + Fix: keyword ENDRECORD was missing (all versions) + Fix: error reporting would fail when library in PRAGMA does not exist (all versions) + Fix: ALIGN$ did not handle multiple empty lines correctly (all versions) + Fix: DEL$ crashed in case there was only 1 element (all versions) + Fix: core delimiter engine returned wrong value in case of empty strings (all versions) + Fix: memory leak of one byte in INPUT statement (all versions) + Fix: INPUT should not consider EOF as an error (all versions) + Fix: TALLY never returned when search string was empty (all versions) + Fix: INSTR/INSTRREV should return 0 in case of empty string argument (all versions) + Fix: the WAIT function showed initialization warnings in Valgrind (all versions) + Fix: compiler error warning syntax causes strange behavior for duplicate ENDSUB/ENDFUNCTION (all versions) + New: INBETWEEN$/OUTBETWEEN$ to get string in between/outside two delimiters (all versions - vovchik) + New: TOKEN$ to select member of tokenized series based on delimiter (all versions - vovchik) + New: LOAD$/SAVE/APPEND to load/save/append a file in one step to and from a variable (all versions - vovchik) + New: TALLY to count the amount of times a string occurs (all versions - vovchik) + New: INSERT$ to insert a string into another at specified position (all versions - vovchik) + New: FLATTEN$/UNFLATTEN$ to flatten out/unflatten escaped grouping characters (all versions) + New: BIN$ to convert number to string representing binary format (all versions) + New: EXCHANGE$ to swap 2 tokens in a series based on delimiter (all versions - vovchik) + New: CHANGE$ to change a token in a series based on delimiter (all versions) + New: AMOUNT to count the amount of tokens in a series based on delimiter (all versions - vovchik) + New: OPTION QUOTED to enable/disable skipping of delimiters when appearing in a string (all versions) + New: DOTIMES/DONE for anonymous loops (all versions) + New: ROL, ROR and BIT binary functions (all versions) + New: MAP to perform math on numeric arrays (all versions) + New: ISTOKEN to check if a string occurs in a delimited string (all versions) + New: UNIQ$, SORT$, REV$ and DELIM$ to manipulate delimited strings (all versions - vovchik) + New: HEAD$, TAIL$, CUT$ to obtain head, tail, part from delimited string (all versions) + New: APPEND$ and DEL$ to add/delete members from delimited string (all versions) + New: ALIGN$ to align pieces of ASCII text (all versions - vovchik) + Imp: SIGNAL does not need callback function with argument (all versions) + Imp: FREE now can delete all members of an associative array at once (all versions) + Imp: additional brackets when binary operator is used in IF/WHILE/REPEAT (all versions) + Imp: LEN now always uses the string optimized length calculation (all versions) + Imp: SPLIT to honor double quotes to skip the delimiter (all versions) + Imp: use math.h for MIN/MAX functions (all versions) + Imp: use actual BaCon icon for GUI when available (all versions) + Imp: SPLIT can perform numerical splitting of string (all versions) + Imp: BASENAME$ can accept optional argument to sepcify name or extension (all versions - vovchik) + Imp: REPLACE$ and EXTRACT$ should return haystack when needle is empty (all versions) + Imp: REPLACE$ should behave as EXTRACT$ when replacing string is empty (all versions) + Imp: statusbar of BaConGUI should indicate file size (BaConGUI version) + Imp: FOR..IN..STEP to honor double quotes to skip the delimiter (all versions) + Imp: string comparison now allows < and > symbols as well (all versions) + Imp: preliminary support for dynamic RECORD arrays (all versions) + Fix: fixed regression in EXIT (all versions) + Fix: comparison in IF/WHILE/REPEAT did not handle binary shift operators correctly (all versions) + Fix: potential bug when handling escaped escape sign in mini parsing (all versions) + Fix: JOIN statement crashed when target string was declared (all versions - vovchik) + Fix: fixed long standing issue where BaCon file needs newline at the end (all versions) + Fix: memory leak when using string members in arrays of RECORDS (all versions) + Fix: PRINT did not work with string arrays in RECORDS (all versions) + Fix: context info did not show some string functions properly (BaConGUI version) * Wed Nov 23 2016 borisAATTsteki.net- updated to latest release 3.4 + New: RUN/RUN$ to transfer control to a program thereby replacing current process (all versions) + New: SIGNAL to connect SUB/FUNCTION to Unix signal (all versions) + New: SOURCE$ containing the original source code of the current program (all versions) + New: LINENO contains current linenumber in source code (all versions) + New: CLOSE LIBRARY to drop libraries from previous IMPORT statement(s) (all versions) + New: ON..GOTO statement for compatibility with old basics (all versions) + New: END FORK to exit forked child gracefully (all versions) + Imp: optional parameter for EXEC$ to specify stdout/stderr (all versions) + Imp: improved ALARM so it can resume interrupted task (all versions) + Fix: GUI should try to find library sequences up to 9999 for OpenBSD (BaConGUI version) + Fix: error reporting could not find source file in some circumstances (all versions) + Fix: improved error reporting in case of nesting errors (all versions) + Fix: memory leak when passing string arguments to functions/subs (all versions) + Fix: BaConGUI did not set theme on first startup (BaConGUI version) + Fix: EXEC$ could wait forever when using optional stdin argument (all versions) + Fix: the Enscript syntax file should always be installed in /usr/share prefix (BaConGUI version) + Fix: IMPORT could not handle function name in a string variable (all versions) + Fix: EXEC$ did not exit child process correctly (all versions) * Sun Jul 03 2016 borisAATTsteki.net- updated to latest release 3.3.1 * Mon Jan 11 2016 borisAATTsteki.net- initial packaging of bacon 3.2.2