HotBasic™ News Continued 2003
Dec 30 HotBasic 1.12 and 1.8a replace tabs in source code with spaces without -w switch and have improved error messages. v1.8a adds TABCONTROL and TRACKBAR. HotNews #1
Dec 26 fixed DIR$ filter in .lib in all downloads. Dec 25 HotBasic 1.7 adds CANVAS, FILELISTBOX, GAUGE, GROUPBOX, PANEL and SCROLLBAR.
Dec 23 v1.6c and 1.11 fix an arcane bug in LoadFromFile and add GOTO and GOSUB label checks.
Dec 22 HotBasic 1.6b adds .Color for visual objects; .Clear and .TextLimit for EDIT, RICHEDIT and RICHEDIT2; .DelItems and .InsertItem for LISTBOX and COMBOBOX; .SelCount and .Selected for LISTBOX.
Dec 19 HotBasic 1.6 and 1.1h with multiple forms. In v1.6, added APP .Debugger and .DebugMessage. Tip: For IDE users and writers, please see hotide.bas in hotpro14.zip
Other news: HotBabe crowned Miss Compiler 2003!
Dec 15 HotBasic 1.5: (1) Added COMBOBOX, MAINMENU, MENUITEM and nCode "notify code" variable for .OnClick. (2) New GUI methods, such as .Directory for LISTBOX and .ShowAbout for FORM. Several bug fixes in v1.5 and v1.1g and now you can choose RICHEDIT or RICHEDIT2.
World: Maj. Hog denies widespread non-existing reports that he rooted out Saddam Hussein with his bare nose.
Dec 10 In HotBasxx.lib dated Dec 10, fixed read of FORM child object .width and .height
Dec 9 HotBasic 1.1f and 1.4a: (1) fixed possible error when FORM objects appear as both destination and source values, e.g., edit2.left = edit1.left. (2) LABEL text now vertically centered. New in v1.4a: Added .Focus. For FORM, .Background uses COLOR_... handles 1 - 29 and .Color now uses RGB value. For LISTBOX, added .Clear, .Indexof(), .Item(), .ItemCount, .ItemIndex, and .Sorted.
Dec 5 hot.exe dated Dec 5 fixes an error in the new working directory feature, relevant only to IDE users including a path with the main source file. There are no operators of exactly equal precedence in HotBasic! Please see update of MANUAL main page for details.
Dec 3 HotBasic 1.4: (1) App.OnFPUerror event optionally calls user-defined subroutine on FPU error. (2) For FONT and all FORM objects, .Handle will not be required for source values; e.g., MyForm.Font = MyFont or MyImage.Parent = MyForm. (3) RichEdit2 used for RICHEDIT object. (4) Fixed values read for child windows .Top and .Left. (5) FPU.error now includes all 7 error bits. (6) With reports of IDEs not properly setting the working directory, now HotBasic does so automatically. (7) .Center, .Color and .ClassStyle added to FORM. Trial v1.1e has 2 - 6 above.
Nov 29 HotBasic's six-month birthday gala celebration at the HotBasic Manor! Meanwhile, official spokespig Maj. Hog released a statement: "Contrary to persistent rumors never heard by anybody, we categorically deny that HotBabe is booked for the Howard Stern show and that spokespig Maj. Hog has ever spent the night in the NeverLand petting zoo."
Nov 28 HotBasic v1.3: Added COPY and MOVE file, FONT object and eight additional .On... Event items (in updated FORM Object help). The new download page with an authentication CGI written in HotBasic, of course, serves licensed users to download v1.3 and always get the latest updates.
Nov 22 MILESTONE: First Registered Version of HotBasic distributed! Look for lots more features in HotBasic soon! Also, CREDITS section added to the MANUAL.
Nov 21 In v1.1c: (1) Fixed failure to display "File not found" if you try to compile a non-existant file. (2) Fixed INTEGER and DWORD to string conversions for certain large values (please see HotTypes 1.3).
Nov 19 In v1.1b: (1) Fixed "path problem" in previous ALERT. So now, go ahead with your path setups as you had them! (2) Added FILEREC clear in all DIR$, DIREXISTS and FILEEXISTS calls to ensure unambiguous results. (3) RE "thread-safe" in HotBasic, of course, you can. (4) Fixed .Checked property of CHECKBOX. (5) Added NEW instruction SHOWCONSOLE used in GUI or CGI programs to launch a fully functional console window. Usage shown in new GUI Demo 1.2.
Nov 18 MILESTONE: HotBasic 1.1 finishes Trial version! Added hotform.txt help file. Aside from bug fixes for v1.1, new components -- such as more .On... events, FONT, MAINMENU, MENUITEM, TOOLBAR, and other GUI components will be developed for the Registered version. The HotBabe says, "Hope you like me and want to use HotBasic".
Nov 16 v1.0e restores ability to dimension Qcomponent objects without RapidQ source editing. Now HotBasic does the type conversions (e.g., QFileStream to File) internally.
Nov 15 For upcoming v1.1, new GUI demo (hotwin.zip) shows code and OnClick features. Can you make the images disappear and reappear?
Nov 12 NEW in v1.0d: (1) enhanced UDT functionality: dotted UDT references such as MyType.text now work with @, VARPTR and VARTYPE and can be used as SUB/FUNCTION arguments. (2) fixed certain problems with usage of MEMORY and ARRAY types, such as getting properties. (3) see Nov 16. (4) added dozens more symbols for CPU registers (e.g., ax, bx, etc) to the Rename List, so your programs will compile properly if those symbols are used.
Nov 8 v1.0b fixes problem in non-$FASTFOR FOR NEXT loops arising from a previous edit (hotarray.bas); adds RETFUNC (alias EAX) numeric function.
Nov 5 In HotBasic.lib time-stamped 11/05/2003, FIXED failure to detect EOF in RAM-mapped files. Like many fixes, thanks go to users kind enough to report defects (um, hi, Alex!).
Nov 2 MILESTONE: Compiled first GUI $APPTYPES to show the HotBabe in all her glory.
Nov 1 In v1.0a, now all columns of .RowValue and .ColumnNames show in SQLite Object. Please see new version of hotsql.bas in hotsql.txt help file.
Oct 29 HotBasic 1.0: SQLlite, EXIT IF, EXIT SELECT added. MESSAGEBOX, POSTMESSAGE and SENDMESSAGE changed from subroutines to numeric functions; CONSOLE.EVENT made non-blocking; ELSEIF and CALLFUNC fixed.
Oct 24 HotBasic 0.99 Added new Application and Console events. Changed CGI to compile under WINDOWS, not CONSOLE, subsystem; so "FreeConsole" is not used since there is no window.
Oct 22 HotBasic 0.98a: Added (1) $AppType WINCE, (2) more "intelligence" and efficiency in coding methods, (3) EXIT DO, EXIT FOR and EXIT WHILE, (4) RETVAL, SENDMESSAGE and POSTMESSAGE. Fixed: COMMANDLINE$, INPUT$, STRING$
Oct 14 HotBasic 0.97: (1) Fixed error in DIR$. (2) Declare statements can use LIB "name.obj" to call procedures in name.obj and include it in HotBasic executables. (3) PUBLIC designates user variables which code in linked .obj modules can access directly. (4) Components in v0.97 are better organized and the INC subdirectory is no longer needed. (5) Any Windows or other .dll can be called by HotBasic programs. (6) Added DEFREAL10 (7) Fixed PUSH and POP
Oct 5 HotBasic 0.96: (1) Generalized RESULT of user-defined functions so that no RESULT mixup occurs, if functions are called within functions. (2) DATA statement not "edited" in any manner. E.g., special characters like colon and single quote are not processed as statement terminators and therefore can be used in user DATA. (3) Added code to enable the \" escape sequence in quoted strings if $ESCAPECHARS ON. (4) Fixed bugs in use of array elements in expressions. E.g., previously, i=A(0)/B(1) or INC(A(i,j,k),n) failed. (5) TIMER Object (QTimer) finished with new properties .Repeated, .Resolution and .User.
Oct 4 MILESTONE: Compiled first OBJ and DLL $APPTYPES which will thereby extend usage of advantageous features of HotBasic into other development environments. $APPTYPE's OBJ and DLL compile myprog.bas to myprog.obj and myprog.dll respectively in HotBasic version code-named Penthouse.
Sep 29 In HotBasic v0.95: (1) Added .Date and .Time key properties to REGISTRY. (2) Changed FILEREC .Dates and .Times from GMT to Local. (3) Fixed a major bug where confusion re the "+" operator (numeric or string?) caused errors. (4) Fixed CGI bug. Now CGI programs run as smooth as silk. (5) Added DoEvents.
Sep 28 Setting up download page for trial of HotBasic 0.94. Sep 22 HotBasic 0.93 sent to beta testers.
Sep 10 Added PUSH and POP to allow direct interaction with the application stack. Stand-alone HotBasic-compiled .obj or .dll modules would use POP to retrieve arguments. A main program might also use POP to create custom CALLBACK procedures. PUSH is used to pass arguments to any component which might require them, such as .obj modules and .dlls. PUSH and POP are not required for ordinary user-defined API calls.
With the present focus on HotBasic compiler development, we apologize if compiler makers seeking to license the exclusive HotBasic FPU object technology experience some delay. Meanwhile, for software developers, HotBasic is the only compiler available with this technology.
Sep 5 CLIPBOARD, REGISTRY and TIMER objects added.
Aug 29 and Sep 2 HotBasic v0.91 and v0.92 with SOCKET distributed by email to beta testers.
Aug 28 Added COMMANDLINE$ so HotBasic applications can parse special situations like quoted strings in command-line parameters. Added PUBLIC and MODULES so applications can link to addresses of data and procedures in .obj modules.
Aug 27 New .ENCRYPT and .DECRYPT methods added to stream objects (FILE, MEMORY, LIST, ARRAY, STRING, etc) so that even RESOURCES can be encrypted.
Aug 26 MILESTONE: Exclusive HotBasic FPU object implemented (v0.91). Please see FPU properties and methods. Now, the theoretical maximum for optimization of compiled machine opcode sequences for the FPU hardware is available.
The Exclusive HotBasic FPU object technology clearly puts HotBasic in a class by itself. Thus, HotBasic would be the compiler of choice for software developers in science (physics, statistics, matrix algebra, etc), gaming, simulation and business -- wherever calculation-intensive work is done. When your clients ask if HotBasic technology is used in your applications, be sure the answer is "Yes".
War games, anyone? While your opponent is still calculating, your clients will be done and making their move.
This may come as a surprise since it is often thought that assembler or C language programs would be faster. Not necessarily. One assembler development environment I reviewed contains a "fpu library" which has lots of overhead and is not even close to what the HotBasic FPU object can do. Similarly, programs developed in C language environments almost certainly suffer the same defect. And guess what! There is no remedy for that except for those compiler vendors to start from scratch and write custom code for their compiler.
Software developers who are strongly bound to use of their current software development tools can link to HotBasic-compiled object modules which handle the "man's part" -- calculations where the ultimate in speed is required.
Honestly, HotBasic started as "another compiler"; it was not anticipated that it would be "the compiler".
Aug 25 HotBasic 0.90 sent to beta testers. User-declared API function calls now supported.
Aug 22-3 Added FILEREC. New HotTypes 1.2 shows clean floating number printing resulting from a new REAL10-to-str routine in upcoming ver 0.90. This will also polish work where strings from floating values are written to file. Added .Build, .IndexOf and .Exchange to the string LIST methods shown in HotList 1.1.
Aug 20 HotBasic 0.89 plus a new set of test programs sent to beta testers.
Aug 19 User-Defined Types (UDT), WITH functionality and SIZEOF added.
Aug 15 A simple forum at the beta tester private web site now enables testers to interact directly with each other and to post and view bug reports in real time.
Aug 14 Now with HotBasic 0.88 released to beta testers, all Microsoft Windows OS versions from W9x to W2K to XP can compile projects! A beta tester also discovered bugs in XP which he will report as he sees fit. 0.88 can run on XP because it contains a work around for this XP bug. So, it may be fair to say that in the process of developing HotBasic, advances are being made for the benefit of all software developers and XP users!
Aug 13 INP, INPW, OUT, OUTW added. 0.87 sent to beta testers.
Aug 12 On Windows OS from W95 to W2K, HotBasic has been tested and runs. Upcoming version 0.87 will have many improvements. A number of keywords are being reviewed and revised where malfunction is found.
Aug 10 If you are a HotBasic beta tester and are not receiving the News and updates by email, then please advise. In upcoming version 0.84, new switch -U and directive $UPPERCASE will force user symbols to upper case, as Rapidq does. Normally, HotBasic is case-sensitive.
Aug 9 The first version of the HB-compiled hot.exe compiler was very slow. Today beta testers will get HotBasic 0.82 which is more than 30 times faster than the RQ-compiled version! Also, added SETCONSOLEMODE.
Aug 7 My last dial-up internet connection lasted for 10 days! Today, the ISP seems to have problems keeping the connection alive -- the day I release HotBasic for beta testers. Such is life.
Note: Microsoft Corporation has provided a wonderful public service to the computing world by providing several utilities free, used to "put the pieces together" in HotBasic compilation.
HotBasic is now ready for beta testers, who will be notified today by email. Added RUN and SHELL1 which runs a process with a "detached console" which may be invisible (the process needs to create its own console window if it wants).
Aug 6 MILESTONE: The HotBasic-compiled HotBasic compiler correctly compiles programs. Compared to the RQ-compiled version, the HB-compiled version uses the assembler routines [HotBasic.lib] written for this project. Therefore, this is a significant passed test. It's pure HotBabe, er, I mean, HotBasic.
Aug 4 Is this something? [ref: David Letterman] The HotBasic Compiler says the source contains about 3800 basic statements in 2950 source file lines. This does not count the source code in the HotBasic.lib.
Packaging HotBasic for beta testers. Added PAUSE statement, like the batch command, useful for printing lists and debugging.
Aug 2 MILESTONE: HotBasic compiles itself.
You might wonder why a compiler is written in Basic. What other language would you use? Much of what any compiler does is parsing strings and what better language for that is there? And if you have a language compiler that compiles to machine language, what more could you ask for? :-)
Aug 1 HotMemory 1.0 is another test toy for EXTRACTRES, which was added to the FILE and MEMORY objects. [This was needed for the compiler to compile itself.] In HotBasic, use of the RESOURCE() keyword is not necessary. For example, with $RESOURCE my_wav AS "my.wav" and DIM MyFile AS FILE, one could just write MyFile.ExtractRes("my_wav"), which is more intuitive than using an index n with RESOURCE(n).
Copyright © 2003 James J Keene PhD
HotBasic™ is a trademark of James J Keene
Original Publication: May 29, 2003
Please use Back on your browser to return to HotBasic.