Commit graph

379 commits

Author SHA1 Message Date
Benoît Minisini
677321df65 [INTERPRETER]
* BUG: Handle too long path checks against archives without crashing.


git-svn-id: svn://localhost/gambas/trunk@3242 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-25 18:18:48 +00:00
Benoît Minisini
95b95fa8cc [CONFIGURATION]
* NEW: Start trying to display a resume at the end of installation.

[INTERPRETER]
* BUG: Extern functions now can handle up to 16 pointer or string 
  arguments.

[GB.GTK]
* BUG: Fix a infinite recursion in drag and drop management when draging
  TextBox or TextArea contents inside the same application.

[GB.QT]
* BUG: Do not propagate Drop events when there is a drop event handler.


git-svn-id: svn://localhost/gambas/trunk@3237 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-24 09:32:46 +00:00
Benoît Minisini
7b99389464 [INTERPRETER]
* BUG: Fix a possible crash in Val().
* BUG: Fix a possible crash when reading a non-existing key in a 
  Collection.


git-svn-id: svn://localhost/gambas/trunk@3234 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-23 01:34:15 +00:00
Benoît Minisini
c662af4ee8 [INTERPRETER]
* BUG: Format() with a void format string does not crash anymore.

[GB.IMAGE]
* BUG: Image.Colorize() does not invert red and blue anymore.


git-svn-id: svn://localhost/gambas/trunk@3232 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-21 23:49:32 +00:00
Benoît Minisini
c0f29f9f90 [DEVELOPMENT ENVIRONMENT]
* NEW: "Save project as" now uses a dialog box that allows to choose the 
  project new name.
* NEW: CSV file import dialog now can ignore the file first lines.
* NEW: CSN file import dialog now saves its contents in the setting file.

[INTERPRETER]
* BUG: Correctly remove '\t' from error messages, as that character is used
  by the debugger as separator.
* BUG: Release invalid automatic instances again.

[GB.DB.FORM]
* OPT: Use a transaction when deleting many rows in DataView.

[GB.DB.POSTGRESQL]
* BUG: Remove a debugging message.

[GB.GTK]
* BUG: Changing the stack order of a control now correctly triggers a
  parent arrangement.

[GB.QT4]
* BUG: Changing the stack order of a control now always triggers a parent 
  arrangement.


git-svn-id: svn://localhost/gambas/trunk@3225 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-16 11:27:51 +00:00
Benoît Minisini
0bec0b25cf [DEVELOPMENT ENVIRONMENT]
* NEW: The search window now can browse in all source files only.
* BUG: The search list is correctly refreshed for project text files.
* NEW: The debug panel has been slightly redesigned. Local and global
  variables lists are always sorted now.

[INTERPRETER]
* BUG: Do not try to run the "_exit" special method if the class load
  has previously failed.
* BUG: Do not release the automatic instance when is it invalid.
* BUG: Check that the automatic instance is valid before using it.


git-svn-id: svn://localhost/gambas/trunk@3215 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-14 13:01:47 +00:00
Benoît Minisini
210a396888 [DEVELOPMENT ENVIRONMENT]
* NEW: Do not store the svn revision in the .project file.
* NEW: Create a clever menu hierarchy when sorting recent files by path.

[INTERPRETER]
* BUG: Replace() correctly returns its first argument when its second
  argument is a void string.

[COMPILER]
* BUG: Remove a useless test.

[GB.FORM]
* NEW: Add a svg version of the GNU logo.
* BUG: Fix some stock icons in the Gnome map.

[GB.GTK]
* BUG: Fix possible crashes in three utility routines.
* BUG: Fix a crash in GridView.Rows[].Text property.

[GB.NET.SMTP]
* BUG: Fix an always true test.


git-svn-id: svn://localhost/gambas/trunk@3206 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-11 10:23:36 +00:00
Benoît Minisini
850d9febf9 [INTERPRETER]
* BUG: The Object[].Add() method signature is now correctly declared.


git-svn-id: svn://localhost/gambas/trunk@3190 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-07 01:18:04 +00:00
Benoît Minisini
0a659f3a9d [DEVELOPMENT ENVIRONMENT]
* BUG: Fix the help browser for classes whose name begins with an 
  underscore.
* BUG: Fix project loading when there are breakpoints set on non-existing 
  classes.

[INTERPRETER]
* BUG: Fix the behaviour of Eval() when the expression cannot be compiled.
* BUG: Error.Text does not crash anymore when the error message is void.

[COMPILER]
* BUG: Fix the parser behaviour when a non-terminated string is located at 
  the end of the file.

[GB.EVAL]
* BUG: Fix the parser behaviour when a non-terminated string is located at 
  the end of the expression.

[GB.GTK]
* BUG: Fix the behaviour of Label with AutoResize set.

[GB.QT4]
* BUG: Fix the behaviour of Label with AutoResize set.


git-svn-id: svn://localhost/gambas/trunk@3178 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-04 13:21:11 +00:00
Benoît Minisini
de73b5ff5c [GB.FORM]
* BUG: TableView keyboard navigation behave better with gb.gtk.

[GB.GTK]
* BUG: Read-only ComboBox controls do not lost focus events anymore.


git-svn-id: svn://localhost/gambas/trunk@3175 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-09-01 20:46:09 +00:00
Benoît Minisini
2a60608474 [WIKI CGI SCRIPT]
* BUg: Fix the handle of formatting characters.

[INTERPRETER]
* NEW: Sizeof() now takes a datatype constant (like gb.Integer) as 
  argument, and not an expression anymore.
* NEW: Object.Sizeof() returns the memory used by an object in bytes.


git-svn-id: svn://localhost/gambas/trunk@3170 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-31 12:02:08 +00:00
Benoît Minisini
3fbd60c233 [CONFIGURATION]
* NEW: Check for missing mathematical function directly instead of relying 
  on operating system detection.


git-svn-id: svn://localhost/gambas/trunk@3166 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-31 08:54:51 +00:00
Benoît Minisini
9a265c4201 [INTERPRETER]
* BUG: Last optimization was a bad idea.


git-svn-id: svn://localhost/gambas/trunk@3159 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-29 21:35:34 +00:00
Benoît Minisini
db20edec3e [INTERPRETER]
* OPT: Do not reset the native method error flag before calling a native 
  method, as it is reset just after. Maybe it works, maybe not...


git-svn-id: svn://localhost/gambas/trunk@3157 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-29 20:53:23 +00:00
Benoît Minisini
62c381c2f6 [DEVELOPMENT ENVIRONMENT]
* NEW: Handle compiler errors having column information.

[INTERPRETER]
* BUG: Manage errors from native methods differently.

[COMPILER]
* NEW: Return the column in error messages generated by the parser.

[GB.GTK]
* BUG: Make TabStrip behave like in gb.qt when inserting a new tab.


git-svn-id: svn://localhost/gambas/trunk@3156 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-29 20:51:10 +00:00
Benoît Minisini
df9646d42a [INTERPRETER]
* BUG: Remove file descriptor watch optimization, it does not work.


git-svn-id: svn://localhost/gambas/trunk@3152 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-28 15:00:39 +00:00
Benoît Minisini
84aa516fa4 [INTERPRETER]
* NEW: System.FirstDayOfWeek is a new property that allows to define the 
  first day of the week if the default is not accurate. The default value
  is gb.Sunday for english countries and gb.Monday otherwise.
* NEW: The Week() function now use the default first day of the week.

[GB.FORM]
* NEW: DateChooser now takes System.FirstDayOfWeek into account.


git-svn-id: svn://localhost/gambas/trunk@3151 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-28 12:33:05 +00:00
Benoît Minisini
6db743fc12 [GB.FORM]
* NEW: Polish the DirChooser/FileChooser bookmark button.

[GB.QT4]
* BUG: Send expected Leave and Enter events when a popup is closed.


git-svn-id: svn://localhost/gambas/trunk@3146 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-27 21:09:34 +00:00
Benoît Minisini
b61b4a108b [INTERPRETER]
* BUG: Prevent Process objects to try to raise their Read event when 
  they were killed.


git-svn-id: svn://localhost/gambas/trunk@3139 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-26 14:45:10 +00:00
Benoît Minisini
c1a2603c70 [INTERPRETER]
* BUG: Remove debugging message.


git-svn-id: svn://localhost/gambas/trunk@3133 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-25 11:35:34 +00:00
Benoît Minisini
19a21789e6 [INTERPRETER]
* OPT: Association between file descriptors and callbacks use a direct 
  index now.


git-svn-id: svn://localhost/gambas/trunk@3132 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-25 11:23:19 +00:00
Benoît Minisini
85b08d28ba [INTERPRETER]
* BUG: ARRAY_add_void() function now correctly adds a void element in the 
  array after an element has been previously removed. That bug made the 
  event loop mad in some cases!


git-svn-id: svn://localhost/gambas/trunk@3131 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-25 09:18:33 +00:00
Benoît Minisini
9b7aa9c650 [INTERPRETER]
* BUG: Fix an unitialized structure field in extern functions management.


git-svn-id: svn://localhost/gambas/trunk@3119 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-15 14:47:18 +00:00
Benoît Minisini
abffa75889 [INTERPRETER]
* BUG: Fix many array methods that crashed when taking abnormal 'start' or 
  'length' arguments. Now they raise errors.


git-svn-id: svn://localhost/gambas/trunk@3110 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-14 20:51:42 +00:00
Benoît Minisini
13c7314713 [GB.GTK]
* BUG: Correctly release Menu tags.


git-svn-id: svn://localhost/gambas/trunk@3109 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-14 16:04:58 +00:00
Benoît Minisini
4f574b001e [INTERPRETER]
* BUG: The debugger does not crash anymore when activated at startup.

[GB.FORM]
* BUG: The MenuButton now only reacts to the left mouse button.

[GB.GTK]
* BUG: Remove some debugging messages from ColumnView.Settings property.
* BUG: Do not try to get informations about a widget when a window is 
  needed and the widget is not yet realized.
* BUG: Fix the Control.Cursor property.
* BUG: Control.Hovered now returns FALSE when the control is not visible.
* BUG: Creating the menubar does not make all window children visible 
  anymore.

[GB.QT4]
* BUG: Control.Hovered now returns FALSE when the control is not visible.


git-svn-id: svn://localhost/gambas/trunk@3107 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-14 13:28:27 +00:00
Benoît Minisini
60ea7ae855 [INTERPRETER]
* BUG: Fix some crashes in error management. Maybe...
* BUG: Sorting with natural string comparison understands gb.Descent 
  correctly now.

[GB.WEB]
* BUG: CGI.Error() method should be more reliable now.


git-svn-id: svn://localhost/gambas/trunk@3091 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-03 11:00:42 +00:00
Benoît Minisini
68e1ec7d00 [GB.FORM]
* NEW: DateBox is a new control that can edit a date with a calendar popup.
  It aims at replacing the DatePicker, and the ValueBox with date type.
* NEW: DateChooser layout is better with small sizes.
* NEW: DateChooser raises a Cancel event when you hit the Escape key.

[GB.GTK]
* BUG: Better management of window grabs.
* NEW: Window.ShowPupup() is a new method that shows a window as a popup.
  It takes an optional X,Y screen position as arguments. If not specified, 
  the window is shown at the current cursor position.
* BUG: Now all controls catch basic events.
* BUG: Fix a crash when destroying controls.

[GB.QT4]
* NEW: Window.ShowPupup() is a new method that shows a window as a popup.
  It takes an optional X,Y screen position as arguments. If not specified, 
  the window is shown at the current cursor position.
* NEW: TrayIcon got a PopupMenu property, like the Control class. But it 
  works only if the TrayIcon observer is a Window. The property has bot
  been implemented in gb.gtk yet.


git-svn-id: svn://localhost/gambas/trunk@3088 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-08-02 19:36:37 +00:00
Benoît Minisini
8871738fb6 [INTERPRETER]
* BUG: READ and WRITE now correctly handle Pointer datatype.
* BUG: Classes inheriting an array class now work correctly.

[GB.FORM]
* NEW: FileChooser and DirChooser have a new ShowButton property that shows 
  OK and Cancel buttons inside the control. Clicking on the Cancel button
  raises a new Cancel event.
* NEW: Bookmark management has been redesigned in file controls.
* NEW: MenuButton got an AutoResize property.

[GB.FORM.DIALOG]
* NEW: File dialogs now remember their geometry.

[GB.GTK]
* BUG: Fix duplicate Click event in CheckBox control.
* BUG: Correctly handle tristate Checkbox controls.


git-svn-id: svn://localhost/gambas/trunk@3076 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-29 10:19:10 +00:00
Benoît Minisini
c994a602df [INTERPRETER]
* BUG: The interpreter compiles now when extern functions are disabled.


git-svn-id: svn://localhost/gambas/trunk@3072 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-26 18:10:51 +00:00
Benoît Minisini
dbf5d2237a [INTERPRETER]
* BUG: Fix the Pi() function when it takes an argument.


git-svn-id: svn://localhost/gambas/trunk@3070 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-26 00:07:47 +00:00
Benoît Minisini
9824b4bfce [DEVELOPMENT ENVIRONMENT]
* BUG: Searching spaces now works in highlighted files.
* OPT: The result of grep has been cached, so that successive searches are 
  faster.

[GB.QT4.EXT]
* NEW: The Editor[].Purge() method replacing character can be passed as an 
  argument.



git-svn-id: svn://localhost/gambas/trunk@3069 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-25 23:19:35 +00:00
Benoît Minisini
40263e9bd7 [INTERPRETER]
* BUG: Correctly fix the management of return value in native function 
  calls.


git-svn-id: svn://localhost/gambas/trunk@3063 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-21 11:45:28 +00:00
Benoît Minisini
7f88b776ab [INTERPRETER]
* BUG: Do not crash anymore when a native function returns one of its 
  argument.
* NEW: New interpreter API to enumerate a collection.

[GB.DBUS]
* NEW: Collection are fully supported now.
* NEW: The org.freedesktop.DBus.properties.GetAll() method has been
  implemented.
* BUG: Correctly raise an error when calling a D-Bus method fails.
* BUG: Correctly release strings returned by D-Bus functions that must be
  released.


git-svn-id: svn://localhost/gambas/trunk@3058 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-21 04:40:45 +00:00
Benoît Minisini
e509aab05f [DEVELOPMENT ENVIRONMENT]
* BUG: Fix class header parsing in automatic completion.

[INTERPRETER]
* BUG: Class[].Signature has been implemented.
* BUG: Fix native method calling when some arguments must be converted.
* NEW: Two new interpreter APIs, GB.BorrowValue() and GB.ReleaseValue(), to
  correctly manage values returned by GB.ReadValue().

[GB.DBUS]
* NEW: Support for exporting properties and methods. The GetAll() DBus 
  method has not been implemented yet, because marshalling Collection is 
  not supported yet. Sending signals is not supported yet too.
* NEW: The previous DBusObject class has been renamed as DBusProxy.
* NEW: A new DBusObject class. Each Gambas object that inherits DBusObject
  is automatically exported through DBus.
* NEW: DBusSignal is a new class to catch DBus signals by giving its 
  interface name.


git-svn-id: svn://localhost/gambas/trunk@3047 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-19 12:33:57 +00:00
Benoît Minisini
a02e468016 [INTERPRETER]
* BUG: Array.Type property is back again.


git-svn-id: svn://localhost/gambas/trunk@3044 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-16 14:15:11 +00:00
Benoît Minisini
0bc1701225 [WIKI CGI SCRIPT]
* NEW: New look for version specific documentation.

[INTERPRETER]
* NEW: Assign() has been removed, and replaced by Eval() with an expression 
  beginning with the LET keyword.
* NEW: New routines to read a value stored at a memory address: BoolPtr(),
  BytePtr(), ShortPtr(), IntPtr(), LongPtr(), SinglePtr(), FloatPtr() and
  PointerPtr().

[COMPILER]
* NEW: The LET keyword can be used to write an assignment expression. Of
  course it is optional.

[GB.EVAL]
* NEW: The LET keyword can be used to evaluate an assignment.
* NEW: The Expression.Compile() method does not take any argument anymore.

git-svn-id: svn://localhost/gambas/trunk@3041 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-14 16:33:29 +00:00
Benoît Minisini
70abf8b89c [INTERPRETER]
* NEW: Conversion between Integer or Long and Pointer is possible now.
* OPT: A little optimizations in extern function management.


git-svn-id: svn://localhost/gambas/trunk@3040 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-14 11:55:32 +00:00
Benoît Minisini
2dda2135f8 [INTERPRETER]
* BUG: Make the interpreter compile correctly.
* BUG: Some fixes in callback management.


git-svn-id: svn://localhost/gambas/trunk@3039 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-14 01:57:13 +00:00
Benoît Minisini
3054690743 [CONFIGURATION]
* NEW: Print a summary of warning messages after each component 
  compilation.

[INTERPRETER]
* BUG: StrPtr() with a length argument now works correctly.
* NEW: Support for callbacks: when converting a function to a Pointer, an 
  internal closure is created with the libffi library. The pointer then can 
  be sent to any extern function as function pointer argument.
* BUG: Opening memory stream should work in all cases now.


git-svn-id: svn://localhost/gambas/trunk@3038 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-14 01:50:18 +00:00
Benoît Minisini
46234d8dc7 [INTERPRETER]
* NEW: Arrays and structures can be sent to an extern function argument. 
  The extern function will receive the address of the data.


git-svn-id: svn://localhost/gambas/trunk@3035 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-09 11:16:49 +00:00
Benoît Minisini
32f6172c89 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix a crash is structure declaration analyze.

[INTERPRETER]
* NEW: Support for static array of structures. A static array of structure 
  'MyStruct' will create a temporary object whose class is '$MyStruct[]'. 
  That class does not inherit 'Array', and has only a few methods of the 
  Array class.
* NEW: Byte[].ToString() is a new method to convert a byte array to a 
  string. If no length is specified, ToString() assumes that the byte array
  is a zero-terminated string.
* NEW: Byte[].FromString() is a new method that fills a byte array with the
  contents of a string.

[COMPILER]
* NEW: Declaration of static arrays of structures is allowed.


git-svn-id: svn://localhost/gambas/trunk@3031 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-07 22:06:05 +00:00
Benoît Minisini
4eee881fda [DEVELOPMENT ENVIRONMENT]
* NEW: Global search can be cancelled.
* NEW: The IDE does not try to open binary files anymore.
* NEW: Use the new TabStrip.TextFont property.
* NEW: The open project dialog has been redesigned.

[INTERPRETER]
* BUG: String.Left(), String.Mid() and String.Right() now return NULL on 
  truncated UTF-8 substrings.


git-svn-id: svn://localhost/gambas/trunk@3029 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-05 22:17:49 +00:00
Benoît Minisini
53560dd374 [INTERPRETER]
* BUG: Dir() and RDir() on "" or "." should be fixed now.


git-svn-id: svn://localhost/gambas/trunk@3028 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-05 19:06:11 +00:00
Benoît Minisini
3f9b5afe60 [INTERPRETER]
* BUG: Correctly handle extern functions that return nothing.


git-svn-id: svn://localhost/gambas/trunk@3020 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-23 18:03:04 +00:00
Benoît Minisini
f6a132504d [INTERPRETER]
* BUG: Eof() (and other file functions) using a null stream will not crash 
  anymore.


git-svn-id: svn://localhost/gambas/trunk@3017 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-21 18:26:38 +00:00
Benoît Minisini
6059d4dcb7 [GB.IMAGE]
* NEW: New API for marking an image as modified, and for synchronizing it 
  before reading it, when the temporary image owner needs it.


git-svn-id: svn://localhost/gambas/trunk@3016 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-19 12:38:28 +00:00
Benoît Minisini
727701cdeb [CONFIGURATION]
* NEW: Bytecode version has been incremented, so all projects need to be 
  recompiled!

[INTERPRETER]
* OPT: Many little optimizations.
* OPT: Avoid calls to setjmp() when it is possible.
* OPT: Do not encode the stack drop inside the CALL instruction. 
  Executables are a bit larger, but a little speed is gained.

[COMPILER]
* OPT: Do not encode the stack drop inside the CALL instruction. 
  Executables are a bit larger, but a little speed is gained.


git-svn-id: svn://localhost/gambas/trunk@3013 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-18 00:14:53 +00:00
Benoît Minisini
e1a7b5efcb [INTERPRETER]
* OPT: A little optimization in Split().

[GB.CAIRO]
* BUG: Cairo.Path() now creates a text path and does not draw anything, 
  like other drawing methods.


git-svn-id: svn://localhost/gambas/trunk@3008 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-16 10:25:21 +00:00
Benoît Minisini
be6bde730d [DEVELOPMENT ENVIRONMENT]
* BUG: Correctly deals with unknown components in the project property 
  dialog.

[INTERPRETER]
* NEW: Error backtrace is now always printed.
* OPT: Some optimizations in mathematical routines.

[GB.IMAGE]
* NEW: Image.FillRect() is a new method that fills a rectangle with a 
  specified color.


git-svn-id: svn://localhost/gambas/trunk@3007 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-15 06:54:38 +00:00
Benoît Minisini
aaf1044366 [INTERPRETER]
* OPT: Many optimizations. One is big (gcc is not really clever sometimes!), 
  and now Gambas is about 30% faster than interpreted Python when running 
  stupid benchmarks.


git-svn-id: svn://localhost/gambas/trunk@3005 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-13 20:25:34 +00:00
Benoît Minisini
390a19785c [INTERPRETER]
* BUG: Pointer are correctly managed in extern function calls now.


git-svn-id: svn://localhost/gambas/trunk@3004 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-13 15:00:32 +00:00
Benoît Minisini
a32166b185 [INTERPRETER]
* OPT: Many optimizations again.
* BUG: Fix an unitialized variable in string to float conversion routine.
* BUG: Handle extern functions that return a pointer.


git-svn-id: svn://localhost/gambas/trunk@3003 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-13 12:03:29 +00:00
Benoît Minisini
405f8f89fe [INTERPRETER]
* OPT: Some optimizations again in memory allocator, object releasing 
  routine, arithmetic operators, class variable reader, line-by-line stream
  reader, class symbol sort routine.
* BUG: Using constant strings inside variant, like database drivers, works
  correctly again and does not crash the interpreter anymore.


git-svn-id: svn://localhost/gambas/trunk@2996 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-08 23:08:04 +00:00
Benoît Minisini
c52c9f0257 [INTERPRETER]
* OPT: Some optimizations again.

[COMPILER]
* BUG: Compile functions using ByRef correctly again.


git-svn-id: svn://localhost/gambas/trunk@2995 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-06 20:43:13 +00:00
Benoît Minisini
b3db598050 [DEVELOPMENT ENVIRONMENT]
* BUG: Breakpoints are correctly reset when opening a new project.

[INTERPRETER]
* BUG: The GB.NewString(), GB.NewZeroString() and GB.TempString() API 
  signature has changed. All components have been updated accordingly.
* OPT: Many optimizations to speed up the interpreter.

[GB.EVAL]
* NEW: During syntax highlighting, the first character of class names is
  automatically converted to uppercase.


git-svn-id: svn://localhost/gambas/trunk@2992 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-04 23:48:53 +00:00
Benoît Minisini
2c2ad90faf [INTERPRETER]
* OPT: Start some optimizations in conversion routines.


git-svn-id: svn://localhost/gambas/trunk@2989 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-02 23:23:50 +00:00
Benoît Minisini
08f7fd6338 [INTERPRETER]
* BUG: Try to fix the floating-point precision/rounding bug. In other 
  words, 0.6 is now printed 0.6, and not 0.6000...001 anymore.


git-svn-id: svn://localhost/gambas/trunk@2988 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-02 21:12:23 +00:00
Benoît Minisini
a8f12f8e54 [GB.FORM]
* BUG: Use a default question icon for Message.Question icon.


git-svn-id: svn://localhost/gambas/trunk@2987 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-30 19:37:40 +00:00
Benoît Minisini
65645599cb [INTERPRETER]
* BUG: Fix debug information loading on 64 bits OS.


git-svn-id: svn://localhost/gambas/trunk@2980 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-29 23:01:05 +00:00
Benoît Minisini
f75d640e3b [INTERPRETER]
* NEW: StrPtr() now can take a second argument to specify the length of the 
  string we will read from memory. If that argument is not specified, the
  string must ends with a zero character.
* OPT: Internal array management was optimized. It changes nothing for the
  Gambas array class.

[COMPILER]
* OPT: Internal array management was optimized.
* BUG: Using embedded structure with a class that is not a structure now
  raises an error.


git-svn-id: svn://localhost/gambas/trunk@2979 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-29 21:10:36 +00:00
Benoît Minisini
3406d87d1d [INTERPRETER]
* BUG: Archives are read correctly again on 64 bits OS.
* OPT: Memory allocations are now cached in a memory pool, so that malloc() 
  and free() are not called too often.
* BUG: The initial allocation of a new hash table is not too big anymore.

[COMPILER]
* OPT: Memory allocations are now cached in a memory pool, so that malloc() 
  and free() are not called too often. The compiler is now twice as fast as 
  it was before all the recent optimizations!

[ARCHIVER]
* BUG: Archives are read correctly again on 64 bits OS.


git-svn-id: svn://localhost/gambas/trunk@2976 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-28 19:33:05 +00:00
Benoît Minisini
17a6f7ebed [DEVELOPMENT ENVIRONMENT]
* BUG: Ignore incorrect paths when loading recent file list.

[INTERPRETER]
* OPT: Compute stack backtrace only when needed.


git-svn-id: svn://localhost/gambas/trunk@2975 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-28 07:47:49 +00:00
Benoît Minisini
b727d17086 [INTERPRETER]
* OPT: Using object references is faster.
* BUG: Fix a misuse of GB.NewString() in the String class.

[COMPILER]
* BUG: Raise an error now when trying to create an array of structures.

[GB.QT4]
* OPT: Global widget event filter is faster.
* OPT: Do not internallt relayout TabStrip too often, because Qt takes a 
  lot of time to do that.



git-svn-id: svn://localhost/gambas/trunk@2974 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-28 06:24:14 +00:00
Benoît Minisini
74f930e0b6 [INTERPRETER]
* BUG: Make the interpreter compile on 64 bits OS.


git-svn-id: svn://localhost/gambas/trunk@2973 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-27 21:27:42 +00:00
Benoît Minisini
3412ce6442 [CONFIGURATION]
* NEW: Object file format has changed, so bytecode version has been 
  incremented, and all projects must be recompiled. Yes, again!

[INTERPRETER]
* OPT: Optimizations in comparison operators.
* OPT: Optimize symbol lookup tables.

[COMPILER]
* OPT: Optimize symbol lookup tables.

[GB.EVAL]
* BUG: Gambas source code is correctly highlighted again.
* NEW: Quoted identifiers (those between '{' and '}') are highlighted more 
  intelligently now.


git-svn-id: svn://localhost/gambas/trunk@2971 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-27 13:51:09 +00:00
Benoît Minisini
1f592094a6 [CONFIGURATION]
* NEW: Bytecode version has been increased, and so all projects must be 
  recompiled.

[INTERPRETER]
* OPT: Objects that do not raise events do not allocate the event 
  management structure anymore. That save four pointers by object.
* NEW: Structure management is done, and embedded (static) structures are
  handled too.
* BUG: Static array management was fixed.
* NEW: All functions synonymous whose name ends with a question mark have 
  been removed.

[COMPILER]
* OPT: Some optimization again.
* BUG: EXTERN declarations compile again.

[GB.DB.SQLITE2]
* BUG: Fix a misuse of GB.NewString().


git-svn-id: svn://localhost/gambas/trunk@2970 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-26 22:01:28 +00:00
Benoît Minisini
b0a0c52af0 [INTERPRETER]
* NEW: More work on structure support.
* BUG: Fix optimization in error management.

[COMPILER]
* OPT: More optimizations. The Gambas 3 compiler is faster to compile the 
  Gambas 3 IDE than the Gambas 2 compiler to compile the Gambas 2 IDE, 
  which is smaller!
* NEW: Do not compute variable position and size, as it is done by the 
  interpreter anyway.

[GB.EVAL]
* NEW: Use the same optimizations as the compiler in the parser.

[GB.XML.RPC]
* BUG: The component compiles again.



git-svn-id: svn://localhost/gambas/trunk@2964 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-25 11:19:00 +00:00
Benoît Minisini
48f6a6a309 [INTERPRETER]
* BUG: L'API GB.ReturnNewString() doit pouvoir retourner une chaîne vide. 
  Dans ce cas elle le transforme en un GB.ReturnNull().


git-svn-id: svn://localhost/gambas/trunk@2960 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-23 18:59:11 +00:00
Benoît Minisini
4a544c567a [INTERPRETER]
* BUG: Use GB.ReturnNewZeroString() instead of GB.ReturnNewString() now. 
  All components using the old syntax should be fixed now.
* NEW: Start to manage structures.


git-svn-id: svn://localhost/gambas/trunk@2957 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-23 11:07:14 +00:00
Benoît Minisini
117f2ac635 [INTERPRETER]
* NEW: New GB.NewZeroString() API to create a Gambas string from a 
  null-terminated string. Components were modified to use it.
* OPT: Many optimizations everywhere.

[COMPILER]
* OPT: Many optimizations. The compiler should be noticeably faster.


git-svn-id: svn://localhost/gambas/trunk@2953 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-22 18:02:34 +00:00
Benoît Minisini
8e1604e59d [CONFIGURATION]
* NEW: The bytecode version has been incremented, as the object file format 
  has changed.

[DEVELOPMENT ENVIRONMENT]
* BUG: Handle static arrays in automatic completion.

[INTERPRETER]
* BUG: Handle public static arrays correctly.

[COMPILER]
* NEW: Handle structures, and write them inside object files.
* NEW: Class options (EXPORT, CREATE...) can only be written at the 
  beginning of the source file now.
* BUG: Fix some use of uninitialized values.
* BUG: Correctly write public static arrays in *.info files.
* NEW: Do not support old OPEN syntax anymore.


git-svn-id: svn://localhost/gambas/trunk@2952 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-20 23:23:39 +00:00
Benoît Minisini
74e8fc7fed [INTERPRETER]
* OPT: Many branch prediction optimizations.


git-svn-id: svn://localhost/gambas/trunk@2951 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-19 20:18:23 +00:00
Benoît Minisini
25ad3928cc [CONFIGURATION]
* NEW: Detect PowerPC architecture.

[INTERPRETER]
* OPT: As old static arrays have been removed, a new little optimization 
  is possible in array reading and writing functions.


git-svn-id: svn://localhost/gambas/trunk@2950 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-19 15:05:45 +00:00
Benoît Minisini
a2850ebc91 [CONFIGURATION]
* BUG: Do not compile database manager anymore, it has been deprecated.
* BUG: Compile the gb.dbus component.

[INTERPRETER]
* NEW: Pointer is a real datatype now.
* NEW: Static arrays came back. They are now like real array classes, 
  except that they are not resizable.
* NEW: IsPointer() is a new function that tells if an expression is a 
  pointer.
* NEW: All XXXX?() function synonymous were removed. Use the IsXXXX() 
  version instead.
* NEW: Remove now useless source files.

[COMPILER]
* NEW: Static arrays came back, with actually the same syntax as before.

[EXAMPLES]
* BUG: Fix the examples according to the new array syntax.



git-svn-id: svn://localhost/gambas/trunk@2949 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-19 12:43:57 +00:00
Benoît Minisini
a8efb8045f [INTERPRETER]
* NEW: Support for "static" arrays is finally removed.

[COMPILER]
* NEW: Support for "static" arrays is finally removed.



git-svn-id: svn://localhost/gambas/trunk@2945 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-14 21:30:54 +00:00
Benoît Minisini
ca37913578 [DEVELOPMENT ENVIRONMENT]
* BUG: Search string is correctly highlighted in all cases now.

[WEB SITE MAKER]
* NEW: German translation made by Stefan Lang.

[COMPILER]
* NEW: The 'New' keyword is now mandatory when declaring array variables 
  with dimensions. The IDE and component source code were modified 
  according to that change.

[GB.QT4.EXT]
* BUG: Search strings are correctly highlighted in editors with no syntax 
  highlighting.


git-svn-id: svn://localhost/gambas/trunk@2944 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-14 21:17:04 +00:00
Benoît Minisini
2fd1ea3b59 [INTERPRETER]
* BUG: Correctly detect when being run as 'gbr3'.


git-svn-id: svn://localhost/gambas/trunk@2942 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-10 11:20:47 +00:00
Benoît Minisini
a1c3fa1617 [INTERPRETER]
* NEW: Change the semantic of Eof(). Now, if the stream is in blocking 
  mode, then Eof() will wait for the data before testing if something can 
  be read on the stream.
* BUG: Correctly initialize the stream flag that tells that data is always 
  available.

[COMPILER]
* BUG: Correctly raise an error when the INPUT or OUTPUT keywords are used
  with the PIPE instruction.

[GB.FORM]
* NEW: ColorChoose.ShowColorMap is a new property that allows to hide or 
  show the colormap.

[GB.QT4]
* BUG: Correctly disable Qt automatic completion in the ComboBox control.


git-svn-id: svn://localhost/gambas/trunk@2940 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-08 20:17:29 +00:00
Benoît Minisini
98c0d81aad [CONFIGURATION]
* BUG: Fix the creation of the gbw3 symbolic link.

[DEVELOPMENT ENVIRONMENT]
* BUG: Fix an error in arrangement icon management.
* NEW: Merge all form editor toolbars.
* NEW: Support for code snippets. Type "fo" and TAB to see it. Not yet
  finished.

[INTERPRETER]
* NEW: Standard format for numbers now displays all the decimal digits.

[GB.QT4.EXT]
* BUG: Fix a possible crash in Editor selection management.


git-svn-id: svn://localhost/gambas/trunk@2929 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-03 11:46:02 +00:00
Benoît Minisini
d1873301d0 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix the display of arrangement icons.
* OPT: Keep a reference on the root control is the form editor.
* BUG: Loading recent files should never crash anymore now.
* BUG: Start fixing project creation.

[INTERPRETER]
* BUG: Don't load a component if its name is the same as the main project.

[GB.QT4]
* BUG: Mouse buttons properties work again during a MouseRelease event.


git-svn-id: svn://localhost/gambas/trunk@2924 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-29 12:54:45 +00:00
Benoît Minisini
cc6dfc0e33 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix and enhance Gambas 2 project conversion.

[GB.QT4]
* BUG: Allow control resizing whatever the arrangement of its container, 
  provided that its Ignore property is set.


git-svn-id: svn://localhost/gambas/trunk@2920 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-28 00:17:12 +00:00
Benoît Minisini
e02caaf252 [DEVELOPMENT ENVIRONMENT]
* NEW: Do not show a form in the treeview if no component implements its 
  family.

[INTERPRETER]
* NEW: Detect overridden classes, and automatically convert the return 
  datatype of Gambas and native functions using an overridden class.
* NEW: Convert overridden classes in the NEW instruction.


git-svn-id: svn://localhost/gambas/trunk@2912 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-26 09:36:47 +00:00
Benoît Minisini
52ac0bdfee [DEVELOPMENT ENVIRONMENT]
* BUG: Do not trim pasted text when using special paste.

[INTERPRETER]
* NEW: Format() can format Float number with up to 16 digits now.

[GB.QT4.EXT]
* NEW: Support for an insert & block mode. This mode is toggled with the
  "Insert" key.


git-svn-id: svn://localhost/gambas/trunk@2911 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-25 23:04:27 +00:00
Benoît Minisini
d49fe17d83 [DEVELOPMENT ENVIRONMENT]
* NEW: Remove any use of Component.UserPath and any reference to "user 
  component".
* NEW: "libraries" management. Libraries are defined in a new tab of the
  projet property dialog. At the moment, libraries exported classes are not
  taken into account by the automatic completion.
* NEW: The ESC key now closes the help browser.
* BUG: Correctly translate compilation error messages.

[INTERPRETER]
* NEW: "libraries" management.
* NEW: The Component.UserPath property has been removed.
* BUG: Evaluating "Application.Path" or "Application.Name" on the command 
  line does not crash anymore.

[COMPILER]
* BUG: Enhance translation of some error messages.
* NEW: Take libraries into account for exported class declarations.

[ARCHIVER]
* NEW: new "-x" option to extract a file from an archive.

[GB.QT4.EXT]
* NEW: Be more clever when deciding if a line has been modified after 
  having its last character deleted.


git-svn-id: svn://localhost/gambas/trunk@2909 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-25 10:46:57 +00:00
Benoît Minisini
0d5bb25a55 [DEVELOPMENT ENVIRONMENT]
* BUG: Errors on immediate debugging expressions are correctly displayed 
  now.

[WEB SITE MAKER]
* BUG: "mailto:" links are correctly generated now.

[INTERPRETER]
* NEW: The 'u' and 'uu' date formats do not display a point anymore. The
  point must be specified explicitely in the format string.


git-svn-id: svn://localhost/gambas/trunk@2900 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-20 13:28:40 +00:00
Benoît Minisini
7c9a7c368c [INTERPRETER]
* BUG: Remove debugging message.


git-svn-id: svn://localhost/gambas/trunk@2888 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-12 12:49:16 +00:00
Benoît Minisini
067017c715 [INTERPRETER]
* BUG: Fix argument parsing again.


git-svn-id: svn://localhost/gambas/trunk@2887 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-12 12:47:31 +00:00
Benoît Minisini
e69514d151 [INTERPRETER]
* BUG: Fix argument parsing when running an executable.


git-svn-id: svn://localhost/gambas/trunk@2886 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-12 12:24:29 +00:00
Benoît Minisini
79496cc582 [INTERPRETER]
* BUG: Standard streams are correctly initialized now. Consequently, Input 
  and Line Input on them work correctly again.


git-svn-id: svn://localhost/gambas/trunk@2869 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-07 18:39:45 +00:00
Benoît Minisini
a8c6cd99a3 [INTERPRETER]
* BUG: Process stream correctly detects when something has been really read
  during a Read event.

[GB.NET.SMTP]
* NEW: SmtpClient._NoGreeting is a new property that tells not to read the 
  SMTP server greeting. This is needed, because with TLS authentication, 
  openssl does not print it.


git-svn-id: svn://localhost/gambas/trunk@2865 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-06 18:03:37 +00:00
Benoît Minisini
1a905d7cab [INTERPRETER]
* NEW: The GB.Stream.Read API reads up to a defined number of bytes when 
  its length argument is negative (like the READ instruction).
* NEW: Reading a stream up to a defined number of bytes blocks for the 
  first byte to read.

[GB.NET.SMTP]
* BUG: The SmtpClient now works when it is piped with a stream coming from 
  the openssl command, either with TLS or SSL.
* BUG: All SMTP commands are sent in lower case, because uppercase can 
  confuse openssl.


git-svn-id: svn://localhost/gambas/trunk@2864 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-06 17:00:25 +00:00
Benoît Minisini
c15a7461aa [INTERPRETER]
* NEW: New APIs to get a Gambas stream from a stream object 
  (GB.Stream.Get), to read data from a stream (GB.Stream.Read) and to write
  date to a stream (GB.Steam.Write).

[GB.NET.SMTP]
* BUG: The _Socket property has been replaced by the _Stream property, that
  takes a Gambas stream.
* BUG: Correctly release the user and password strings when the SmtpClient 
  is freed.


git-svn-id: svn://localhost/gambas/trunk@2863 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-05 17:02:16 +00:00
Benoît Minisini
bb6f47038e [INTERPRETER]
* NEW: New interpreter API to browse the project contents.
* BUG: RDir(".") does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@2861 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-05 01:44:43 +00:00
Benoît Minisini
ecac90958a [INTERPRETER]
* BUG: Fix an uninitalized flag in the stream internal structure.
* BUG: Remove a forgotten debugging breakpoint.


git-svn-id: svn://localhost/gambas/trunk@2845 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-03-30 23:50:34 +00:00
Benoît Minisini
bb0b93f075 [INTERPRETER]
* NEW: Application.Startup now returns a Class object, the startup class.


git-svn-id: svn://localhost/gambas/trunk@2823 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-03-25 16:38:40 +00:00
Fabien Bodard
0febd39f25 [INTERPRETER]
* OPT: forgot some changes


git-svn-id: svn://localhost/gambas/trunk@2822 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-03-25 14:40:14 +00:00
Fabien Bodard
bc1fd21cdd [INTERPRETER]
* BUG: The Startup class name is now correctly returned by Appliction.Startup




git-svn-id: svn://localhost/gambas/trunk@2821 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-03-25 14:38:12 +00:00
Benoît Minisini
a6e879db91 [INTERPRETER]
* NEW: Application.Startup is a new property that returns the name of the 
  startup class.
* NEW: Class.AutoCreate is a new method that creates the automatic instance 
  of a class, and returns it. It returns NULL if the class is not 
  auto-creatable.


git-svn-id: svn://localhost/gambas/trunk@2820 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-03-25 11:16:33 +00:00
Benoît Minisini
029e4b5b18 [INTERPRETER]
* NEW: RDir() takes a fourth optional argument, that tells if symbolic link 
  to directories must be recursively searched too.

[GB.DEBUG]
* BUG: Prevent a possible freeze of the IDE when debugging.


git-svn-id: svn://localhost/gambas/trunk@2819 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-03-25 02:00:55 +00:00