We compiled ScriptBasic using gcc version 2.95.2 20000313 (Debian GNU/Linux) with no problem. However some users using RedHat Linux reported
compilation problem. This is most probably caused by the fact that some of the C programs contain CR/LF line separators. Convert them to normal
UNIX LF characters and try to compile again. We try to locate the issue and release a new build soon.
- CONFIGURATION FILE
The major change from buil18 to 19 is the configuration file format. The old configuration file is very simple and the new features could not fit into the structure. The new configuration file handling module handles structured configuration keys that will result higher freedom for module developers and also will reduce key name conflicts.
The bad news is that you have to upgrade your old configuration file manually.
The module handles binary configuration files. This is good and bad at the same time. On one hand the configuration file processing taking place before starting the ScriptBasic interpreter is much faster. This is a great speed-up for CGI programs. On the other hand you have to compile your configuration file using the configuration file compiler (delivered with ScriptBasic). We are sure that many time you will just edit the text file and forget to recompile it. Sorry. We are sure that the compiled binary format fast loading pays back.
- PACK and UNPACK
There is a function PACK and a command UNPACK implemented. These command implements a functionality similar to Perl pack and unpack although much simpler. If you have special requests these commands can be extended with further formatting characters.
- ASSOCIATIVE ARRAYS
The next build will let you write:
a{"help"} = 123
or
a{143.12} = 123
or even
a{undef} =66
This is a simple implementation of associative array handling. Note that the implementation is simple, and is not a high performance hash handling mechanism. For large hashes you still have to use the hash module. But it eases life in case you need something like an array.
We further work on issues that are not implemented in the current version like a[13]{"key"} constructs.
- Berkeley DB new version
The new Berkeley DB released by Sleepy Cat is incorporated into the DB module of ScriptBasic. Older builds of ScriptBasic will not support this or later version of Berkeley DB and this and later builds of ScriptBasic will not support older Berkeley DB versions.
- BUG FIXES
There are some bugs in build18. For example:
sub q(f)
for f=1 to 10
' do nothing
next f
end sub
t=100
q(t)
will just print 100 in build18, because the implicit assignment in the "for" loop did not care the variable as passed by reference.
- CODE DEVELOPMENT
There are some developments in some modules that have no effect in ScriptBasic. This is the memory handling module that can now be used in a multi-thread program where the same memory segment is used for allocation concurrently. ScriptBasic does not use this feature.
- KNOWN BUGS
The myalloc.c module has a bug that prevents its usage in a real multithread environment. It does
not effect ScriptBasic.
Report of any other bug is appreciated.