Documentation: https://sourceforge.net/apps/mediawiki/bdbbasic
Download: https://sourceforge.net/projects/bdbbasic/files/latest
Release 0.76 includes the following new major features:
1. A proper 'make install'
- bb and bbtcurses executables
- bb_start, bb_xterm, bb_load scripts
- $PREFIX/share/bdbbasic/* installed basic
programs.
2. bb_start now launches the interpreter in your
$HOME/.bb directory (creating if necessary).
3. bb_load will automatically load distributed source
programs into your own database.
4. After a bb_load, you can 'RUN MENU' to run a
menu driven set of diagnostics.
5. Detailed online installation guides.
New Language Features:
1. Opaque object support (handles)
2. Windows (curses panel) support
3. Password API (password handles)
4. Menus
5. SHOW CALLX command
6. Formalized database parameters
7. Login window prompt
8. GLOBAL variable support
9. Files/handles are no longer closed when
calling/returning from another basic module.
10. Attributes and colours are no longer reset
when calling/returning from basic modules.
New Features
----------------------------------------------------------------------
OPAQUE OBJECT SUPPORT
----------------------------------------------------------------------
This was a foundation necessary to refer to windows
(panels), menus, passwords and in the future many new
complex object types.
Essentially it returns a "handle" to a resource, that
can be closed with the CLOSE HANDLE(h) statement.
WINDOW SUPPORT
----------------------------------------------------------------------
The interpreter provides windowed support by means of
curses "panels". Windows can be created with and
without borders.
As you'd expect, when a window is closed, the window
beneath is automatically restored. This greatly
simplifies the application programmer's life for
creating popup prompt windows.
PASSWORD API
----------------------------------------------------------------------
A big problem with passwords is to keep it a secret. The
password API permits you to create a handle to a
password, which cannot be reversed by the basic program
(or programmer).
When a resource needs that password, the handle for it
is supplied. The interpreter knows how to unencrypt it
for passing to the database server it.
MENU API
----------------------------------------------------------------------
Menus are an extension to windows. They are popup panels
which present choices to the end user. Once the choice
is made, the menu closes and the terminal text beneath
is restored.
Like windows, this greatly simplifies application
writing and is simple for end users to use.
SHOW CALLX
----------------------------------------------------------------------
This command shows many of the CALLX routines, that are
supported (it currently excludes GSL and sort routines).
It shows argument names, types and whether they are IN,
OUT or I/O.
FORMALIZED DATABASE PARAMETERS
----------------------------------------------------------------------
The database specification has been expanded to use the
format:
<dbtype>:<dbalias> <parameters>
This continues to support the embedded Berkeley database
in files, as well as paving the way to PostgreSQL
support in the upcoming release.
LOGIN PROMPT
----------------------------------------------------------------------
By default, the interpreter now opens a window to prompt
the end user for database, userid and password inputs.
This is designed to pave the way for PostgreSQL, as
well as provide choice for the MASTER Berkeley db
name. The master database is no longer hardcoded to
the name "MASTER".
GLOBAL VARIABLE SUPPORT
----------------------------------------------------------------------
When SQL servers are used, it is clear that connection
info, userid and passwords will need to be referenced
frequently. For this reason, the GLOBAL record now
exists to carry these values to all bdbbasic programs
run in the interpreter.
The application programmer may also extend GLOBAL to
include some application focused values as well.
THE FUTURE
----------------------------------------------------------------------
The upcoming release is planned to include PostgreSQL
support. This will necessarily look and feel a bit
different from the Berkeley way of doing things.
However, it is the author's belief that this is the
only way to allow bdbbasic to operate correctly in
a multi-user application.
For those that do not need to do multi-user application
programming, you can continue to use the simplicity of
Berkeley db files. This is great for a personal
productivity tool.
THE FULL ChangeLog IS HERE:
----------------------------------------------------------------------
http://bdbbasic.wiki.sourceforge.net/ChangeLog
--
Thanks for using bdbbasic!
Warren.
There is now an important patch available at SF. patch-0.76-00.patch
corrects an issue where ON END FILE STOP was not fully canceling the
error trap. This would cause some programs to unexpectedly loop.
The patch can be downloaded from:
https://sourceforge.net/projects/bdbbasic/files/
- Patch file: patch-0.76-00.patch
- Instructions: How_to_patch.txt
Warren