* NEW: Implement Variant comparison routine.
* NEW: Variant[] now has an Exist() and a Find() method.
git-svn-id: svn://localhost/gambas/trunk@5098 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: New gb.complex component
[INTERPRETER]
* BUG: Automatic array conversion now works with not yet loaded array
classes.
[GB.COMPLEX]
* NEW: New component that implements a rudimentary management of complex
numbers. This component is automatically loaded if a complex number
constant is encountered and no loaded component can already handle
complex numbers.
git-svn-id: svn://localhost/gambas/trunk@4924 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: When converting an instance of A to the class B, try the conversion
interface of A first. If A has no conversion interface, or if it cannot
handle the B class, then try the conversion interface of B if any.
[GB.GSL]
* NEW: Vector class has been implemented.
[GB.JIT]
* NEW: SPEC_CONVERT constant has been replaced by a field in the CLASS
structure.
git-svn-id: svn://localhost/gambas/trunk@4916 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Correctly raise an error when trying to use NULL on classes
implementing the _operators interface.
* NEW: The _convert interface now must handle conversions from any
datatype.
[GB.GSL]
* NEW: Automatic conversion from numbers to Complex.
* NEW: Start implementating the Vector class.
git-svn-id: svn://localhost/gambas/trunk@4913 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: "_operators" is a new interface that allows any native class to be
used with most of arithmetic operators: +, -, *, /, Abs, =, <> at the
moment.
* NEW: The "_convert" interface now allows a class to be converted to any
datatype, not just other classes.
* NEW: Str() and Print uses the "_convert" interface to print a localized
string conversion of any object.
[GB.GSL]
* NEW: Use the new "_operators" interface so that complex numbers can be
handled by standard arithmetic operators.
* NEW: The Complex class now implements the "_convert" interface.
git-svn-id: svn://localhost/gambas/trunk@4908 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: The debug window has a button to switch between "normal view" and
"symbol view". In "normal view", array and collection contents are
displayed. If the object is not an array or a collection, then all
non-hidden symbols are displayed. In "symbol view", all objects symbols
are displayed, whatever the object type is.
[INTERPRETER]
* NEW: The debugger now can display collection-like objects. An object can
be displayed like a collection if it has a Count property, is enumerable,
has a _get special method taking a string, and has a Key property that
returns the key of the last enumerated element.
[GB.DEBUG]
* NEW: The debugger now can display collection-like objects. An object can
be displayed like a collection if it has a Count property, is enumerable,
has a _get special method taking a string, and has a Key property that
returns the key of the last enumerated element.
[GB.FORM]
* BUG: GridView.Clear resets the height of all rows to the default value.
git-svn-id: svn://localhost/gambas/trunk@4558 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Terminal emulation now does not automatically convert NL to CR+NL.
* BUG: Fix the declaration of custom array classes.
[GB.GTK]
* BUG: Stopping a file descriptor watch now correctly check if the event
loop must be exited.
git-svn-id: svn://localhost/gambas/trunk@4398 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Calling native methods on an anonymous reference now correctly casts
the return value to a Variant.
* BUG: Remove all Array class methods that break the inheritance rules.
[GB.GTK]
* BUG: Fix initial position of windows so that window manager constraints
are not overrided.
[GB.SETTINGS]
* BUG: Fix the use of Array class.
git-svn-id: svn://localhost/gambas/trunk@4361 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: A button to show or hide the system tables in the database editor.
* BUG: Copying button is enabled now in the SQL editor.
* NEW: SQL highlighting.
[GB.EVAL.HIGHLIGHT]
* NEW: SQL highlighting routine.
[GB.FORM]
* BUG: Fix an arrangement bug in TabPanel.
[GB.QT4.EXT]
* NEW: Editor.HighlightCurrent flag has been renamed HighlightImmediately.
* BUG: Braces are now highlighted even if they are not on the same line.
* NEW: Editor.HideMargin is a new flag to hide the editor left margin.
git-svn-id: svn://localhost/gambas/trunk@4344 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: The "Browse again" button in the search list now does nothing if
there is no search string defined.
[INTERPRETER]
* NEW: Object[].FindByRef and Object[].ExistByRef are two new methods that
do not take the _compare special method into account. They compare
objects by reference only.
[GB.DB.FORM]
* NEW: DataBrowser.Border is a new property to define if a border should be
displayed or not.
* BUG: Fix DataBrowser layout for all orientations.
[GB.DB.MYSQL]
* BUG: Try to make connection timeout work as expected, without success.
It seems sticked to be at least one minute. :-(
[GB.FORM]
* BUG: IconView now behaves correctly when an item has no text. It uses there
new array methods that search items by reference only.
* NEW: TabPanel.Highlight is a new property that highlight the current
selected tab button.
* NEW: TabPanel.Closable is a new property that works exactly like
TabStrip.Closable.
* BUG: TabPanel.Remove() now works correctly.
* NEW: ScrollArea is more clever with mouse wheel events.
[GB.FORM.MDI]
* NEW: Workspace now uses a TabPanel instead of a TabStrip.
git-svn-id: svn://localhost/gambas/trunk@4342 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: New "Gamabs" highlight theme.
* BUG: When showing the search dialog, the search text is correctly
selected in all cases now.
* BUG: Importing a report (or any form that is not a GUI form) now
correctly imports the class file.
[EXAMPLES]
* NEW: Add a text clipping example in the 'Painting' example.
[INTERPRETER]
* OPT: Replace() is now faster when the search string and the replace
string are both one character length strings.
[COMPILER]
* NEW: The string escape character '\v' was added.
[GB.GTK]
* BUG: Paint.Text() now works correctly when the alignment is not
specified.
[GB.NET]
* BUG: Correctly check system errors when using a asynchronous DnsClient.
[GB.QT4]
* BUG: Paint.Save() and Paint.Restore() take the clipping path into account
now.
[GB.SETTINGS]
* NEW: Use a temporary file when saving a settings file, and always make a
backup.
[GB.WEB]
* NEW: The Session.Modify() method was replaced by a read/write Modified
property.
git-svn-id: svn://localhost/gambas/trunk@4273 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Do not use GB.ReturnNull() when returning a void string anymore. Use
the new GB.ReturnVoidString() API instead.
git-svn-id: svn://localhost/gambas/trunk@4216 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: Optimization of locale-aware string comparison routine.
* OPT: Do not use sprintf() for searching event handlers in symbol tables.
* OPT: String[].Find() and String.Exist() are now twice faster for ASCII
binary and case insensitive comparisons.
* BUG: Initialize the locale before loading any class.
* OPT: Do not use sprintf() when searching a file inside Gambas archives.
* OPT: Unroll a loop to speed up binary string identity comparison a little
bit.
* BUG: Collection keys are now hashed with their eight last characters.
* BUG: Internal Collection automatic resizing was disabled. Re-enable it!
git-svn-id: svn://localhost/gambas/trunk@4153 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: Optimize some string functions by not using arguments passed by
reference.
* OPT: Integrate the "=" operator function into the main execution loop to
save one function call.
* OPT: Optimize string comparison functions on x86 and x64_64 architectures
by comparing eight bytes in one shot.
git-svn-id: svn://localhost/gambas/trunk@4104 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Byte[].FromString() is a now a static method that creates a new byte
array from a string.
git-svn-id: svn://localhost/gambas/trunk@3918 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Lithuanian translation made by Regimantas Baublys.
* BUG: Fix loading of old Gambas 3 projects without ".src" directory.
* BUG: Multi-dimensional arrays are now correctly displayed by the
debugger.
[SCRIPTER]
* BUG: Running a script now correctly returns the value specified by
the Application.Return property.
[GB.QT4.EXT]
* BUG: Some fixes in the undo/redo management of the Editor class.
git-svn-id: svn://localhost/gambas/trunk@3899 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Object[].Exist() and Object[].Find() now take the _compare special
method into account.
git-svn-id: svn://localhost/gambas/trunk@3739 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Support for multi-dimensional arrays in the debugger.
[INTERPRETER]
* BUG: Support for multi-dimensional arrays in the debugger.
[GB.DEBUG]
* BUG: Support for structures.
* BUG: Support for multi-dimensional arrays in the debugger.
git-svn-id: svn://localhost/gambas/trunk@3654 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Support for MkPointer$().
* NEW: Embedded arrays of structures array write accessor has been
implemented.
git-svn-id: svn://localhost/gambas/trunk@3453 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: The argument of Byte@(), Short@()... functions now can be a string.
Then the address of the string in memory is used.
* BUG: Structures allocated with the NEW operator are correctly freed now.
* NEW: READ and WRITE now can deal with structures and embedded arrays.
* NEW: Dir?() synonymous has been removed.
git-svn-id: svn://localhost/gambas/trunk@3322 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Correctly handle all compiler error messages.
[INTERPRETER]
* NEW: Full management of the Single datatype.
* BUG: VarPtr() now works on Single local variables.
* BUG: Remove useless Tag property. It is defined in the Stream class now.
* BUG: Correctly free the Tag property in the Stream class.
[GB.GTK]
* BUG: Rich-text string management has been fixed. The ampersand character,
the "&", ">" and "<" entites are correctly interpreted now.
[GB.NET.CURL]
* BUG: Remove useless Tag property. It is defined in the Stream class now.
[EXAMPLES]
* NEW: The WebBrowser example has a download manager now.
git-svn-id: svn://localhost/gambas/trunk@3296 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: The Object[].Add() method signature is now correctly declared.
git-svn-id: svn://localhost/gambas/trunk@3190 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* NEW: Properties wose kind is ReportBorder are now managed.
* NEW: Border and Padding are taken into account when drawing Report forms.
[INTERPRETER]
* BUG: Thousand separators are taken into account when trying to convert a
string to an integer.
* BUG: String[].Exist() now correctly returns a boolean.
[GB.DRAW]
* NEW: Paint.Device and Draw.Device now return NULL if nothing is
currently drawn.
[GB.REPORT]
* NEW: Change the syntax of ReportBorder.ToString() and ReportBorder[].
[GB.QT4]
* BUG: Dialog.SelectColor() does not quit the event loop unexpectedly
anymore.
git-svn-id: svn://localhost/gambas/trunk@2760 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Renaming a control now automatically renames the identifier in the
source code.
[INTERPRETER]
* NEW: Split() now takes a 5th optional argument that tells if escape
characters should be kept in the returned strings.
* NEW: CVariant() is a new function that converts its argument into a
Variant.
[COMPILER]
* NEW: CVariant() is a new function that converts its argument into a
Variant.
[GB.FORM]
* NEW: SidePanel, DirChooser, FileChooser and FileView Settings property
now use the new Settings storage facilities and return a Variant[].
[GB.GTK]
* NEW: The Settings and Layout properties of HSplit and VSplit now return
an Integer[] instead of a String.
* BUG: The name property of newly created menus is correctly initialized
now.
[GB.QT4]
* NEW: The Settings and Layout properties of HSplit and VSplit now return
an Integer[] instead of a String.
[GB.SETTINGS]
* NEW: The settings file format has changed. Now collections and arrays can
be stored and retrieved.
git-svn-id: svn://localhost/gambas/trunk@2329 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Some little cosmetic changes.
* BUG: Do not use gb.UseLanguage anymore.
[INTERPRETER]
* NEW: The gb.UseLanguage and gb.Case constants have been removed.
* NEW: Array.Find() methods now take an optional argument that defines the
search start index.
* NEW: gb.Like is a new comparison mode that internally uses the LIKE
operator.
git-svn-id: svn://localhost/gambas/trunk@2260 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Raise a memory error when trying to allocate a too large
array.
[GB.GTK]
* BUG: Fix the management of cell spanning.
[GB.QT4]
* BUG: Fix the management of cell spanning.
git-svn-id: svn://localhost/gambas/trunk@2143 867c0c6c-44f3-4631-809d-bfa615b0a4ec