Re: Announce: BDB-BASIC Release 0.60 Released
- From: Warren Gay <ve3wwg@xxxxxxxxx>
- Date: Thu, 29 May 2008 06:47:45 -0700 (PDT)
It seems that release 0.60 has busted database
functionality. To correct these issues, two
patches have been released:
Patch 1 corrects the broken PRIMARY INDEX and
SECONDARY INDEX statements due to a bug that was
introduced somewhere in recent development.
Patch 2 corrects a couple of other bugs in the
database error handling.
To apply these patches, do:
1. cd top_level_build_directory
2. patch -p0 <patch1.txt
3. patch -p0 <patch2.txt
4. make clean
Future releases will include database tests as part
of the "test suite", to ensure this type of thing
doesn't go unnoticed. But we're slowly getting there.
On May 18, 5:40 pm, Charmed Snark <sn...@xxxxxxxxx> wrote:
What is new in BDB-BASIC Snapshot Release 0.60
1. The software license has changed to the
GPL2, instead of the LGPL. I generally prefer
the less restrictive license terms but with
this project, I want to avoid commercial firms
repacking the interpreter as part of their
This change does not restrict or alter your
freedoms as a user of BDB-BASIC. There are
no restrictions placed upon the code that you
choose to create/execute in the interpreter.
2. The project now is driven by the GNU
autoconf and automake tools, so that on
supported platforms you can ./configure and
Confirmed to build on:
- Linux (tested on Dec Alpha)
- Solaris (tested on Intel Solaris 10)
- HPUX-11 (in +DA2.0W/+DD64 architecture)
Will not build on:
- MinGW (gcc limited to 32-bits)
- Native win32 (Nothing done in this area yet)
3. New statements added:
- EXIT FOR
- READ FILE / WRITE FILE (binary I/O)
- SEEK and SEEK END
- INITIALIZE (clears variables/arrays)
- INPUT and OUTPUT (for CSV format I/O)
4. New commands added:
- QUIT (was EXIT)
- SYMTAB (reorganized output)
- STATUS (program state)
- SHOW FILE (show open file units)
- SHOW STACK (show GOSUB/FOR/NEXT stack)
5. Enhanced commands
- RENUMBER (now can disable "mod100 rule")
6. New built-in variables and constants :
- SYS.LINES (screen lines)
- SYS.COLUMNS (screen columns)
- SYS.CLOCK_TICK (see UTIME/STIME funcs)
7. New general functions
- MAXLENGTH(V$) for variable length char arrays
- DLENGTH(A,D) returns the dimension length of
the array A, for dimension D. This is easier
than coding LAST(A,D)-FIRST(A,D)+1.
- FILESIZE(F) returns the byte length of the
- FPOS(F) returns the current file offset of
the opened file.
- CRTYX(P) returns Y or X cursor position.
- UTIME() and STIME() functions return the
CPU time used in user and system modes.
- FNMATCH() does simple file name gobbing
type pattern matches.
- REGEXP() does regular expression matching.
- REGEXP$(N) returns the matched substring
if () are used in the pattern.
8. New PRINT Functions
- HLINE(N) draws a line graphic line for N
chars to the right (left if negative)
- VLINE(N) draws a vertidal line for N chars
in the down direction (up if negative)
- BOX(H,W) draws a line graphic box, starting
from the current cursor position. Cursor is
left in the inside top left.
9. New/Changed Builtin-in Variables
- SYS.O_READ, SYS.O_WRITE, SYS.O_APPEND etc. added
for symbolic use with OPEN FILE.
- ERRS.ENUM changed to ERRS.ENUMC
- SYS.HOST_OS$ now identifies the host O/S
- SYS.HOST_OS_RELEASE$ provides information
about the O/S release.
- SYS.SWITCHCHAR$ is "/" or "\" depending on
10. Changed Functions
- FABS() function is now named ABS() to be more
consistent with normal use.
11. Paged LIST output
- Long displays like LIST, or SYMTAB etc. are
now stopped on page boundaries when the
interpreter is in full screen (curses) mode.
12. Numerous bug fixes.
- See the change log for the details.
A full description of the changes are found here:
What is BDB-BASIC?
BDB-BASIC is an interpreted BASIC dialect. It is
a modern dialect, which was influenced by Data
General's MICOS BASIC, which was used by small
businesses. However, BDB-BASIC also includes
modern extensions to include some features of the
ADA95 language such as array slicing and
subscripts with user selected bounds.
It is also designed to be a POSIX system friendly
shell. For example, you can read or write files
in shell I/O redirected fashion if required. For
$ bb 5<somefile1 6>somefile2
will be usable on file units 5 and 6, by the
interpreted basic program.
Shell friendliness extends to the terminal input
and output. BDB-BASIC stays in tty mode until
forced into full screen mode (using curses). This
permits BDB-BASIC to be used in place of a shell
script. A BDB-BASIC program can also be started
using the #! shell hack.
Finally, BDB-BASIC is designed to provide
database facilities using the Berkeley DB
library. Transactional I/O with primary and
secondary indexes. No knowledge of SQL is
BDB-BASIC is targeted to small businesses, SOHO
operations, engineering and scientific
applications. It is also designed to be very easy
to learn, making it a suitable environment for
- Announce: BDB-BASIC Release 0.60 Released
- From: Charmed Snark
- Announce: BDB-BASIC Release 0.60 Released
- Prev by Date: BDB-BASIC 0.60 Patch 1 Available
- Next by Date: Re: BDB-BASIC 0.60 Patch 1 Available
- Previous by thread: Announce: BDB-BASIC Release 0.60 Released
- Next by thread: BDB-BASIC 0.60 Patch 1 Available