* NEW: Translate all parts of error messages.
[INTERPRETER]
* NEW: Add an explicit error message when trying to override a class that
has already been used as a parent for another class.
git-svn-id: svn://localhost/gambas/trunk@5017 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: New optimizations in profile file size.
* NEW: PageUp and PageDown keys now work as expected in the project filter
box.
[INTERPRETER]
* NEW: Support for new profile file format.
[GB.DEBUG]
* OPT: New profile file format.
[GB.LIBXML]
* NEW: Make this component exclude gb.xml.
[GB.XML]
* NEW: Make this component exclude gb.libxml.
git-svn-id: svn://localhost/gambas/trunk@4961 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Any operators of the _operator interface can be optional now. But
consequently, division by zero must be raised by the implementation.
* NEW: Implement Vector arithmetic operators.
* NEW: Rename some Matrix methods.
* NEW: Implement Polynomial arithmetic addition and substraction.
* BUG: Fix Polynomial to string conversion.
* NEW: Complex.Handle is a new property that returns the memory address of
the underlying complex number in memory.
git-svn-id: svn://localhost/gambas/trunk@4947 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: '_operators' interface has been renamed as '_operator'.
* NEW: Arithmetic operators now can be applied on two objects with
different classes. One at least must implement the '_operator' interface.
* NEW: Each class that implements the '_operator' interface has now an
automatic priority that follows the load order. When a binary operator
has two objects that implement two different '_operator' interface, the
one having the highest priority is used.
* NEW: Implementing all methods in the '_operators' interface is not
mandatory anymore. If one method is not implemented, then it is replaced
by a function that raises a 'Type mismatch' error.
[GB.GSL]
* NEW: Matrix arithmetic has been implemented.
* NEW: Matrix.Determinant() method.
* NEW: Matrix.Invert() method.
* NEW: Matrix.Transpose() method.
* NEW: Matrix _call special method multiplies a matrix by a vector.
* NEW: Vector <-> Array conversion.
git-svn-id: svn://localhost/gambas/trunk@4946 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
* 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
* BUG: Now the _property special method can be static even if _unknown is
dynamic. Anyway, if _unknown is static then all unknown properties and
methods must be static, and if _unknown is dynamic, they all must be
dynamic.
git-svn-id: svn://localhost/gambas/trunk@4896 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Switch to JIT compiler if available, and make it able to talk to gb.jit.
* BUG: GP must be NULL for new void stack frames.
[COMPILER]
* NEW: 'Fast' keyword means the class should be JIT-compiled.
[GB.JIT]
* NEW: JIT Compiler.
git-svn-id: svn://localhost/gambas/trunk@4759 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Destructors now can safely raise errors. If these errors are
ignored, the object is released anyway.
git-svn-id: svn://localhost/gambas/trunk@4506 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Do not try to handle Home and End keys in editors.
* BUG: Fix the translation of error messages made by the debugger.
* NEW: Update error message list.
[INTERPRETER]
* NEW: Chmod, Chown and Chgrp were implemented.
* NEW: Stat.Auth is a new property that returns the file mode as a string,
using the format of the 'chmod' shell command.
* NEW: Rmdir raises a specific 'Directory is not empty' error now, when
trying to remove a non-empty directory.
[COMPILER]
* NEW: Chmod <path> To <mode> was implemented. <mode> is a string having
the same format as the 'chmod' shell command.
* NEW: Chown <path> To <user> was implemented. <user> is the name of the
user as defined in the /etc/passwd file.
* NEW: Chgrp <path> To <group> was implemented. <user> is the name of the
group as defined in the /etc/group file.
git-svn-id: svn://localhost/gambas/trunk@4400 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: Don't use glibc memcmp() to compare strings. My own routine is a
little faster according to valgrind.
* OPT: The UTF-8 String class routines Left(), Mid() and Right() have been
optimized. The positions of the first 256 characters of the last string
processed by the String class are cached.
* OPT: Some native methods can be called like any other native subroutines.
But that can be used only inside the interpreter, not in a component.
* OPT: The '&' operator is faster now when it takes two arguments only (the
most frequent case).
git-svn-id: svn://localhost/gambas/trunk@4106 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
* BUG: When checking inheritance, ignore the case of the "_new" special
method name.
[GB.REPORT]
* BUG: Fix some bad method overrides.
git-svn-id: svn://localhost/gambas/trunk@4067 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix PayPal link.
* BUG: Fix default font in style sheets.
[INTERPRETER]
* BUG: Now an inherited method checks that it has the same signature as the
parent method. This check is not done for a native class inherting
another native class. C/C++ programmers are supposed to know what they
are doing. :-)
[GB.DB.FORM]
* BUG: Rename all Refresh() methods as Update() in all controls, so that
the Refresh() method inherited from Control is not badly overridden.
* NEW: Change the way DataView chooses the height of a row.
[GB.GTK]
* NEW: Control.Refresh() now takes no argument.
* NEW: DrawingArea.Refresh() keeps taking four optional arguments
describing the sub-rectangle to refresh.
[GB.QT4]
* NEW: Control.Refresh() now takes no argument.
* NEW: DrawingArea.Refresh() keeps taking four optional arguments
describing the sub-rectangle to refresh.
git-svn-id: svn://localhost/gambas/trunk@4064 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Generate project help pages in temporary files so that the help
browser can put them in its history.
[GB.QT4.WEBKIT]
* BUG: The default user agent is returned when no specific user agent has
been set.
git-svn-id: svn://localhost/gambas/trunk@4060 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: The startup class icon is now just drawn with a dark outline.
* NEW: Error messages updated.
* NEW: French translation updated.
[INTERPRETER]
* NEW: Inheritance is stricter now: the child symbol must have exactly the
same kind than the parent symbol.
* BUG: A child method must return the same datatype as its parent method
now.
* NEW: Gambas 3 executable mime description file and icon have been renamed
so that they do not conflict with Gambas 2 files.
[GB.FORM]
* BUG: IconView.Find() has been renamed as IconView.FindAt(), to avoid the
conflict with the inherited UserControl.Find() method.
[GB.FORM.MDI]
* BUG: Workspace.Children has been renamed as Workspace.Windows, because
the Workspace.Children property was in conflict with the inherited
Container.Children property.
[GB.GTK]
* NEW: ListView, TreeView and ColumnView Find() method has been renamed as
'FindAt' to match the IconView class.
[GB.IMAGE]
* NEW: Color.SetRGB() and Color.SetHSV() are two new methods that takes a
color as an integer, modifies one of its component, and returns it. They
are faster than using the ColorInfo class.
* NEW: Color.GetAlpha() returns the alpha component of a color from its
integer value.
[GB.QT4]
* NEW: ListView, TreeView and ColumnView Find() method has been renamed as
'FindAt' to match the IconView class.
git-svn-id: svn://localhost/gambas/trunk@4015 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Abort if a native class declares the same symbol twice.
* NEW: Two more standard error messages declared in gambas.h
git-svn-id: svn://localhost/gambas/trunk@3989 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Remove a debugging message in the connection editor.
[INTERPRETER]
* NEW: '_property' is a new special method that must return TRUE when an
unknown symbol (stored in Param.Name) is a property. If that special
method is not implemented, all unknown symbols are methods.
* NEW: Remove the deprecated constant gb.Text.
* NEW: Param.Property has been removed.
[COMPILER]
* NEW: Handle the new '_property' special method. That method must be
public, dynamic, takes no argument, and must return a boolean.
git-svn-id: svn://localhost/gambas/trunk@3915 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Do not crash anymore when an error is raised inside the constructor
of the automatic instance of an auto-creatable class.
git-svn-id: svn://localhost/gambas/trunk@3777 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Key[] does not print GTK+ warning anymore when getting a null
string as argument.
* BUG: Mouse.Blank cursor works as expected now.
git-svn-id: svn://localhost/gambas/trunk@3547 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Gambas2 to Gambas3 project converter. Only forms and project
structure are converted at the moment, as before.
* NEW: Update compiler error messages list.
[INTERPRETER]
* BUG: Activate the automatic instance just after its creation, but
before calling the constructors, so that they can reference it without
trying to create it recursively again and again.
git-svn-id: svn://localhost/gambas/trunk@3397 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Code indentation routine correctly handles structures now.
[INTERPRETER]
* NEW: Object.LastEventName has been deprecated, and replaced by
the Param.EventName property.
* BUG: IsFloat() is now a synonymous for IsNumber().
* BUG: Intrinsic functions description has been updated.
[COMPILER]
* NEW: "\e" is a new string escape sequence equivalent to "\x1B".
[GB.FORM]
* NEW: Use the new Control.Proxy property instead of internal observers
inside compound controls (ValueBox, ButtonBox, MenuButton).
[GB.GTK]
* NEW: Control.Proxy is a new property that allows to define a control
proxy that will handle focus, key and mouse events in original control's
place.
[GB.QT4]
* NEW: Control.Proxy is a new property that allows to define a control
proxy that will handle focus, key and mouse events in original control's
place.
git-svn-id: svn://localhost/gambas/trunk@3387 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Button to "flattr" Gambas.
[INTERPRETER]
* BUG: Fix some possible uses of unitialized values.
[COMPILER]
* BUG: Fix a possible crash when having 63 arguments passed by reference
to a function.
[GB.DB.SQLITE3]
* BUG: Detect integer primary key whatever the case used to write
"integer".
[GB.GTK]
* BUG: Page setup is enabled in printer configuration dialog now.
[GB.QT4]
* BUG: The font size of printed texts is now correct.
git-svn-id: svn://localhost/gambas/trunk@3344 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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: 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: 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
* 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