[Gambas-user] gambas2 1.9.7

Benoit Minisini gambas at ...1...
Wed May 4 18:02:49 CEST 2005


I have just uploaded a new snapshot of the development version.

The main changes are:

- The interpreter can call functions in extern shared libraries now. You get 
new subroutines for dealing with memory and pointers. The READ and WRITE 
instructions can read from and write to memory. 
- The SHELL and EXEC instructions can run their process in a virtual terminal. 
- Deleted records are hidden from the database Result objects now. I hope this 
way Daniel will be happy :-)
- Of course, the bug fixes of the 1.0.6 version have been merged.

The current support for extern shared libraries is not as complete as what 
Daniel did in its gb.api component. The following is missing:

- Support for alias (i.e. library function name different from the Gambas 
function name)
- Support for callbacks.
- Support for C-like structures. You can emulate them with the new memory 
allocation subroutines (Alloc, Free and Realloc) and the READ/WRITE 
instructions applied to the pointer returned by Alloc().

And I'm not sure that this support shouldn't go to a component like Daniel 
did. The interpreter is growing... :-(

Here is the complete ChangeLog:


* Symbolic link to gambas IDE does not have the '.gambas' extension anymore.
* 'gbi' was rewritten so that it can take a component name as argument, and
  create the information files only for this component.


* Support for declaring functions in extern shared libraries. The syntax is:
  EXTERN <function name>(args...) IN <library name>
* New datatype named 'Pointer' that is a synonymous for 'Integer'.


* BUG: OPEN ... DIRECT now correctly works.
* BUG: Opening a file with CREATE flag now always implies READ flag.
* BUG: SEEK and READ now always work on files opened in DIRECT mode.
* Support for calling functions in extern shared libraries.
* If the startup class declares a public method named 'Application_Read', then
  the standard input is watched by the event loop.
* New subroutines, Alloc(), Free() and Realloc() for allocating and freeing
  memory fragments.
* A new subroutine, StrPtr(), that returns the null-terminated string located
  at the specified address.
* You can use READ and WRITE to read from or write to memory, by using an
  integer as stream. The interpreter should raise an error and not crash if
  you supply an invalid memory address.
* Now, if you use FOR INPUT/OUTPUT instead of FOR READ/WRITE with the EXEC or
  SHELL instruction, the executed process is plugged to a pseudo-terminal.
  This way, you can easily pilot a program that needs to be run in a terminal.
* BUG: '_call' special method management has been fixed.


* Support for the Pointer datatype.


* BUG: I finally got rid of the spurious warning generated by the TableView


* BUG: Result methods now always return an error when the result is not
* BUG: Now tables whose primary key fields are not necessarily the first ones
* BUG: The PostgreSQL driver has been fixed. Now it works for any version
  greater or equal than 7.3.
* Now deleted records are removed from the Result object.


Note that I'm going to Palerma tomorrow for a talk about Gambas 
(http://linux-meeting.org), and I won't come back to my computer until next 

Enjoy this new break-everything version! :-)

Benoit Minisini
mailto:gambas at ...1...

More information about the User mailing list