nuBASIC ChangeLog Please send nuBASIC bug reports to . 2018-11-10 - Improvements and bug-fixing - Allow to overwrite an existing vector with the content using a simple assign operation - Add support for function that retunrs vector of elements - Add function Conv() which computes a 1D-convolution of two vectors 2017-07-3 - Change license into MIT - Add GTK+2 version of nuBASIC IDE - Add SetTopmost API - Add Zoom in/out to IDE - Add scripts for creating Debian/RPM packages - Update documentation 2017-05-14 - Update scintilla to 3.74 - Add text zoom in/out (F3/CTRL+F3) to IDE (Windows) 2017-01-22 - Add format function for floating point representation (StrP, StrP$) - Add Hash-table support: HSet(), HGet(), HCnt(), HChk(), HDel() - Add Any type: type deduction - Add GetAppPath() API - Add Quit() API - Improvements and bug-fixes 2016-01-22 - Add StrP function for a better floating point representation 2015-12-16 - Changed icons layout and commands order of the toolbar - Bug-fix: IDE (Windows) did not execute old-style programs if first line is special comment "!#" - Bug-fix: IDE (Windows) did not clean "Go to procedures" submenu before build new programs 2015-12-15 - User can now open a file dropping it into nuBASIC IDE Window (for Windows) - Added GetPixel function - Changed behaviour of DbgWindow in running mode - Improvements and bug-fixes 2015-12-01 - Support for Linux executable .bas program: Your program must begin with #!//nubasic (You may use make_bas_exec.sh script in order to make a file .bas executable) - Windows installer associates automatically .bas to nuBASIC. If you click on one of these file, it will run automatically - Improvements and bug-fixes 2015-11-30 - Added Info Message Window to IDE (Windows) - Added context help (pressing F1); from now on-line help is mapped on Ctrl+F1 - Improvements and bug-fixes 2014-11-25 - Explicit type definition extended to function return type - Extended function syntax in order to pass return struct objects - Improvements and bug-fixes 2014-11-24 - Const statement syntax extended in order to support explicit type declaration - New toolbar buttons related to Top/No-top most debug window selectors - New sample code: clock.bas - Improvements and bug-fixes 2015-11-21 - Add explicit type declaration (Example: Dim aString as String) - Add structures support: Struct AStructType element as String element2 as Integer element3(4) as Double End Struct Dim a as AStructType a.element = "Hello World" a.element2 = 3 a.element3(0) = 1.5768 a.element3(1) = 2.5868 a.element3(2) = 3.14 - Improvements and bug-fixes 2015-10-20 - Improvements and bug-fixes 2015-10-14 - Improvements and bug-fixes - Win32/64 rebuilt with VS2015 It needs "Visual C++ Redistributable Packages for Visual Studio 2015" https://www.microsoft.com/en-us/download/details.aspx?id=48145 - Added Debug Window top-most / no-top-most commands 2015-06-09 * Improve Randomize implementation 2015-05-23 * Fixes a regression added in 1.28 on Delay/MDelay functions * Fixes bugs on long64 formatting and handling * Added the function SetPixel * Code refactoring 2015-05-13 * Performance enhancements and Bug fixes 2015-04-17 * Fixed a bug into 64bit version of IDE for Windows: cast to long of LPARAM argument of SendMessage to scintilla could truncate 64bit pointers 2015-04-09 * Added debugging commands to Editor (for Windows) * Added cli commands "ston" and "stoff" to enable/disable step-mode execution * Fix "cont" command bug 2015-03-29 * Added "Elseif" alis of "Elif" 2015-03-26 * Added new statement "Elif" 2015-03-02 * Added boolean ('#' postfix) and long64 ('&' postfix) types support * Added true and false literal constants 2015-02-23 * Added unary operator supports (added C-like ++ and -- prefix operators) 2014-12-20 * Fixed random number generation issue * Added escape sequences (\n, \r, \a, \t, ...) support to strings 2014-11-17 * Fixed quoted-string bug when renumering code lines * Fixed a bug: core-dump when some construct was incomplete 2014-11-12 * Fix a bug on sub/function definition 2014-10-27 * calc.bas: Resized and cleaned calc window * Added some comment to the code and change README 2014-10-17 * Added constant (CONST) support 2014-10-01 * Fixed a bug of Print statement implementation (on print exception cursor remained hidden) * Added double-precision floating-point number support 2014-09-27 * Fixed GetWindowDx function bug for Windows platform (it always returned zero) 2014-09-24 * Updated website url (http://www.nubasic.eu/) 2014-09-14 * Reimplemented PlotImage for Windows using GDI+ (excluding MinGW version) this allows to extend image formats support to jpg, tiff, ... 2014-09-09 * Added Rgb function 2014-08-27 * Fixed Exponential Notation Bug (number like 123E-10 was not recognized as single floating number...) * Fixed a bug of a configure.ac script (it failed using --enable-tinyver option) 2014-08-23 * Removed dependencies from SDL2 library for Linux platform * Added MkDir, RmDir, Erase functions 2014-08-21 * Added GetEnv, SetEnv, UnsetEnv functions 2014-08-20 * Added --enable-tinyver flag to enable/disable tiny version compiling 2014-08-16 * Implemented PlotImage function for Linux platform 2014-07-22 * Added PlaySound function for Linux platform 2014-07-14 * Implemented MoveWindow for Linux platform * Implemented GetWindowX, GetWindowY, GetWindowDx, GetWindowDy, MsgBox for Linux platform 2014-07-13 * Updated built-in help content including new functions 2014-07-06 * Added GetPlatId function. * Added PlaySound, MsgBox, GetWindowX, GetWindowY, MoveWindow, GetWindowDx, GetWindowDy, (Windows platform only) * Extended to built-in function call-sub syntax (ignoring return code) 2014-06-27 * Added "-h" option to support nuBasicEditor "help queries" * Fixed a bug adding 'FOR-loop dynamic data clean-up' when procedure ends * Removed a resource leak if a function was called as procedure (ignoring return value) 2014-06-25 * Fixed a bug of the expression parser * Modified release string to 1.10 * Added EVAL function 2014-06-17 * Set "nuBASIC" title to nuBASIC console window * Modified release string to 1.09 2014-06-16 * Added assignment by value of array objects (including procedure parameter passing) * Fixed a bug on procedure parameter passing * Modified release string to 1.08 2014-06-14 * Added command apropos * Updated built-in help content * Added RANDOMIZE instruction * Added RANDOMIZE info into built-in help content * Modified release string to 1.07 2014-06-10 * Fixed a bug on recursive call stack * Added GetMouseX, GetMouseY, GetMouseBtn, pStr, SubStr functions * Modified release to 1.06 2014-06-04 * Fixed an issue on Textout (for Windows) background trasparency * Fixed a bug on runtime-error (generated by variant exception) line number notification 2014-05-31 * Fixed a bug on inkey$() (if no key pressed the returned string contained non printable single char) * Released ray.bas - An interactive demo based on a simple 3D raycast engine 2014-05-26 * Added CTRL+C handling also for delay and mdelay instructions * Fixed a bug on "exec" (missing an implicit NEW before load a program file) * Added a notification message on CTRL+C event * Removed old stuff from for-stmt implementation * New version number (1.03) 2014-05-24 * Fixed a bug in for-to-next loop 2014-05-23 * Added -nx option (Linux): "executes nubasic in current terminal session" * Fixed a regression in bounds checking of arrays 2014-05-16 * Bug-fixing (function call and end-flag propagation issue solved) * Added systime functions such as systime$, time, sysday, sysmonth, sysyear, ... * Added ON-GOTO statement 2014-05-15 * Fix function call-stack bug 2014-05-14 * Added DO ... LOOP WHILE statement * Added UCASE, LCASE functions 2014-05-13 * Added conditional and unconditional breakpoints 2014-05-09 * Added support for FUNCTION / END FUNCTION / EXIT FUNCTION * INPUT statement parsing bug-fixed 2014-05-05 * Added support for SUB / END SUB / EXIT SUB * Fixed a bug related EXIT IF / EXIT WHILE statements 2014-04-25 * Added CD and PWD cli commands * Added CHDIR statement * Added PWD$() function 2014-04-24 * Added chdir statement * Added cd and pwd cli commands * Added PWD$() function 2014-04-18 * Extended file operations support adding FOPEN, FTELL, FSIZE, SEEK, READ * Added support for array of bytes (example: dim x@(1000)... x@(0)=3... ) * Added HEX, HEX$, SIZEOF@, SIZEOF, REDIM functions * Fixed issue in RENUM and LOAD commands 2014-04-11 * Refactoring of prog_ctx_t * Added support for labels with goto / gosub * Added command vars to print out the execution context * Fixed bug about line erasing/renumering (code-rebuild was implemented) * Implemented double support either for the old style file (with line numbers) or new one 2014-04-10 * Added EXIT FOR statement * Added signal handling to manage "CTRL+C/CTRL+BREAK" to stop running programs * Implemented command line parameters (-e can be used to load and run a program via command line) * Fixed Linux installation issue * Added terminal frame for Linux 2014-04-09 * Added InStr/InStrSc function * Fixed and update built-in help database 2014-04-06 * Implemented instruction SHELL and command "!" * Replaced "new" with make_shared for creating handles * Added autotool support * Created installation package (based on configure) for linux (make dist) 2014-04-05 * Added TextOut instruction * Added new version of breakout based on graphic statement * Implemented GETSCREENWIDTH(), GETSCREENHEIGHT() functions for linux platform 2014-04-01 * Added PI(), GETSCREENWIDTH(), GETSCREENHEIGHT() functions * Added graphics functions LINE, RECT, FILLRECT, ELLIPSE, FILLELLIPSE (for Linux/X11) 2014-03-31 * Added file handling support (OPEN, CLOSE, INPUT#, PRINT#, FERROR, ERRNO, ERRNO$) * Added RENUM command * Added GREP command * Extended on-line help to all keywords * Bug-finxing for floating-to-string conversion (MinGW) * Added graphics functions LINE, RECT, FILLRECT, ELLIPSE, FILLELLIPSE (Windows/MinGW) * Implemented line.bas and graph.bas demos 2014-03-24 * Extended math and string built-in functions * Added support for array (DIM) 2014-03-21 * Added support for MinGW 4.8.1 * Refactoring and bug-fixing * Added help on commands * Implemented breakout game-clone in ascii graphics (breakout.bas) 2014-03-17 * Implemented GOSUB-RETURN (call-stack), nested FOR loop * Added BEEP, CLS, LOCATE, DELAUY and MDELAY instructions * Tracing and debugging facility * Refactoring and bug-fixing 2014-03-10 * Implemented main BASIC statement LET, PRINT, INPUT, GOTO, IF-THEN-ELSE, FOR-TO-STEP * Implemented main commands such as RUN, LIST, NEW, CLR, ... * Implemented I/O console support for Windows & Linux 2014-03-13 * Expression interpreter and support for variables * Main math functions (SIN, COS, ASIN, ACOS, ...)