LB Booster
General >> Announcements >> LB Booster version 2.80 released
http://lbb.conforums.com/index.cgi?board=announcements&action=display&num=1417430769

LB Booster version 2.80 released
Post by Richard Russell on Dec 1st, 2014, 09:46am

I am pleased to announce the release of LB Booster version 2.80. It may be downloaded from here:

http://lbbooster.com/LBB.exe (IDE/compiler)
http://lbbooster.com/LBBRUN.exe (optional runtime engine)

You will need administrative privileges when running the program for the first time after upgrading (in Windows Vista, 7 and 8/8.1, with UAC enabled, use 'Run as administrator').

Changes in this version include:

  1. Right-clicking (or Shift-F10) on a label, FUNCTION name or SUB name adds a Jump to option to the context menu. To return whence you came right-click and select Go back.

  2. Added !forecolor and !backcolor commands for TEXT windows and TEXTEDITOR controls, for compatibility with LB 4.5. Note that the parameter may be a colour name or an RGB triplet.

  3. Added !find, !findback and !resetfind commands for TEXT windows and TEXTEDITOR controls, for compatibility with LB 4.5.

  4. Boolean expressions are truncated to an integer value, so for example 'if 0.5' evaluates to false, for compatibility with LB 4.5.

  5. Changed the behaviour of the graphics print command, without a parameter, to be compatible with LB 4.04 (but it is better not to use this feature).

  6. The !copy and !cut commands now empty the clipboard if nothing is selected, for compatibility with LB 4.04 (my thanks to Gordon for alerting me to the issue).

  7. The KILL statement now works correctly if the file has no extension (my thanks to Frédéric for alerting me to the issue).

  8. The RUN statement (with no mode qualifier) now activates the UAC prompt, if appropriate (my thanks to Jim for alerting me to the issue).

  9. Fixed a minor incompatibility with Hans' 'Coupled graphic boxes' program.
Richard.
Re: LB Booster version 2.80 released
Post by Richard Russell on Dec 1st, 2014, 10:31pm

on Dec 1st, 2014, 09:46am, Richard Russell wrote:
4. Boolean expressions are truncated to an integer value, so for example 'if 0.5' evaluates to false, for compatibility with LB 4.5.

A comment has appeared on the Liberty BASIC forum querying the reasoning behind this decision, and noting that QuickBASIC behaves differently. I didn't know that, but the 'truncation to an integer' is exactly what BBC BASIC does, so to me it's entirely natural (and of course suits LBB rather well!).

It would be somewhat annoying if Carl is persuaded to modify the release version of LB 4.5 to work differently; I hope that doesn't happen.

Richard.
Re: LB Booster version 2.80 released
Post by tsh73 on Dec 2nd, 2014, 07:03am

Well, I found it weird and so I posted about it.
If you find it natural - post about it
(especially as why it's better).
Re: LB Booster version 2.80 released
Post by Richard Russell on Dec 2nd, 2014, 7:17pm

on Dec 2nd, 2014, 07:03am, tsh73 wrote:
If you find it natural - post about it

Well, as I said, I find it "natural" because it's what BBC BASIC has always done (for the last 33 years!) so it's the behaviour I'm most familiar with.

As to whether it is "better", I expect that depends on the internal architecture of the interpreter. Considering that all boolean and bitwise operators (AND, OR, XOR, NOT) work only with integers, converting the components of a conditional expression to integers is surely reasonable.

That being the case it comes down to what is the best way of converting a floating-point value to an integer; in BBC BASIC truncation is the fastest and most straightforward way.

Richard.
Re: LB Booster version 2.80 released
Post by Richard Russell on Dec 3rd, 2014, 01:47am

on Dec 2nd, 2014, 07:03am, tsh73 wrote:
I found it weird

As a counter-argument I find this (from QBASIC/QuickBASIC) rather weird:

Code:
IF .5 THEN PRINT "True" ELSE PRINT "False"
IF .5 OR .5 THEN PRINT "True" ELSE PRINT "False" 

This prints "True" for the first statement and "False" for the second statement. It seems to me that if 0.5 is 'true' then 0.5 OR 0.5 (or for that matter 0.5 AND 0.5) ought to be true too, but it isn't.

Of course I understand why they are different, but it's an anomaly that is avoided by truncation to an integer. BBC BASIC, LBB 2.80 and LB 4.5 beta 3 all print "False" for both statements.

Richard.
Re: LB Booster version 2.80 released
Post by Richard Russell on Dec 27th, 2014, 09:39am

For your interest, here is Virus Total's report on LBB v2.80. You can see that all 56 tests say that it is clean, and the digital signature is also verified.

It astonishes me that Just BASIC and Liberty BASIC are, it seems, still distributed as unsigned installers. sad

Richard.
Re: LB Booster version 2.80 released
Post by Rod on Dec 31st, 2014, 07:01am

Perhaps you could assist Carl through this process and so benefit the whole community.
Re: LB Booster version 2.80 released
Post by Richard Russell on Dec 31st, 2014, 09:22am

on Dec 31st, 2014, 07:01am, Rod wrote:
Perhaps you could assist Carl through this process and so benefit the whole community.

What kind of "assistance" do you think he requires? Signing an executable is a process which any developer of commercial software should be familiar with. It requires two components: a code-signing software tool (most people use Microsoft's signtool.exe, I think, which is available free) and a code-signing certificate (which must be paid for, but there are some bargains to be found if you shop around). You also need a 'permanently on' internet connection so that the signing tool can communicate with a timestamp server when required.

Some development tools and installer-creators can be configured to sign every generated executable automatically - heck even BBC BASIC for Windows can, which is how LBB gets signed! The installer I use - Inno Setup - also has that capability and I have it configured to sign every setup file.

Richard.
Re: LB Booster version 2.80 released
Post by Richard Russell on Jan 11th, 2015, 10:01am

I was initially of the opinion that the 'opening the same RANDOM file twice' issue was insufficiently important to warrant a special release. However, as it could result in data loss, and since the fix is trivial, I have decided to update LBB to v2.82; it can be downloaded from the usual place:

http://lbbooster.com/LBB.exe (IDE/compiler)
http://lbbooster.com/LBBRUN.exe (optional runtime engine)

In this version, if you open the same file FOR RANDOM twice, or more times, (on different handles) all the opens will succeed, but only the first will open the file for update. The second and subsequent OPENs will open the file for input (read-only); attempting to PUT a record will result in an 'Access denied' error.

As a bonus feature, version 2.82 has the enhanced debugger with the heap and stack usage reported. This should be useful in diagnosing memory leaks.

Richard.
Re: LB Booster version 2.80 released
Post by Richard Russell on Jan 19th, 2015, 4:53pm

on Jan 11th, 2015, 10:01am, Richard Russell wrote:
As a bonus feature, version 2.82 has the enhanced debugger with the heap and stack usage reported.

It had slipped my mind, but executables created by LBB 2.82 also have a Windows 10 compatibility manifest (v2.80 EXEs only claim compatibility up to Windows 8.1). I am - like everybody else - assuming that Microsoft won't change the GUID when Windows 10 is officially released.

Of course there's a risk in claiming compatibility with an OS that doesn't yet formally exist, but development tools like LBB need to be 'ahead of the curve' so that people can test that their own executables work properly on the next version of Windows.

Richard.