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
larger package.
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
sup****ted platforms you can ./configure and
build.
Confirmed to build on:
- CYGWIN
- 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
- UNLINK
- 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
opened file.
- 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
host os.
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:
http://bdbbasic.wiki.sourceforge.net/ChangeLog
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 fa****on if required. For
example:
$ 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
required.
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
students.
Warren.
** Posted from http://www.teranews.com
**


|