* OPT: Optimize the inequality comparison operators by putting them into
the gbx_exec_loop.c source file.
git-svn-id: svn://localhost/gambas/trunk@4113 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* OPT: A little optimization in string allocation.
* OPT: Optimize returning from a function.
* OPT: A little optimization in conditonal jump.
git-svn-id: svn://localhost/gambas/trunk@4108 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: Really fix the way Trim() handle null strings. Now there is no
memory leaks anymore.
git-svn-id: svn://localhost/gambas/trunk@4100 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Add a project filter in the recent project list of the welcome
dialog.
[GB.REPORT]
* BUG: Fix a typo mistake in ReportVBox class.
git-svn-id: svn://localhost/gambas/trunk@4070 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix FOR...NEXT loop with Byte, Short and Single datatypes.
* BUG: FOR...NEXT loop optimization now works correctly if the step sign
changes.
git-svn-id: svn://localhost/gambas/trunk@4068 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Remove the unused GB.ExistFile() API.
* NEW: Exist() now takes an additional optional boolean argument that tells
if symbolic links must be followed, like Stat().
* BUG: Fix a possible memory leak if the [...] array creation operator
fails for any reason.
git-svn-id: svn://localhost/gambas/trunk@3940 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: Don't require /tmp to allow executable files.
* NEW: The name of a cached compile script is now the name of the original
script stored in a directory whose name is the MD5 sum.
git-svn-id: svn://localhost/gambas/trunk@3879 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Support for NOT LIKE, NOT BEGINS, NOT ENDS and NOT IS.
[COMPILER]
* NEW: New operators: NOT LIKE, NOT BEGINS, NOT ENDS and NOT IS.
[GB.EVAL]
* NEW: New operators: NOT LIKE, NOT BEGINS, NOT ENDS and NOT IS.
git-svn-id: svn://localhost/gambas/trunk@3407 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Files can be dropped from files managers to the project treeview.
They are automatically inserted into the project then.
[WIKI CGI SCRIPT]
* BUG: '{' and '}' are not interpreted anymore between '=='.
[BENCHMARKS]
* NEW: Add Gambas/Perl/Python benchmarks to the repository.
[INTERPRETER]
* NEW: A Stop instruction encountered inside a component is not ignored
anymore and stops the program.
* BUG: Fix the File.SetName, File.SetExt and File.SetBaseName methods.
[COMPILER]
* NEW: The preprocessor now undestands the False and True constants.
[GB.FORM]
* NEW: Clean up the Stock class icon loading algorithm.
* BUG: Fix the Gnome icon map.
[GB.FORM.STOCK]
* NEW: Support for svg stock icons.
[GB.QT4]
* BUG: Drag.Show() now works for DnD operations started outside of the
application.
[GB.GTK]
* BUG: Drag.Show() now works for DnD operations started outside of the
application.
git-svn-id: svn://localhost/gambas/trunk@3400 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: Define preprocessor color for all highlighting themes.
[COMPILER]
* NEW: The maximum number of constants in a class is now 65536.
[INTERPRETER]
* NEW: The maximum number of constants in a class is now 65536.
git-svn-id: svn://localhost/gambas/trunk@3383 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: The Val() and IsXXX() functions algorithm has been fixed. Now the
string is trimmed before being converted. Thousand separators are really
valid only to separate thousands. Extra non-space characters at the end
of the string make the conversion fail.
git-svn-id: svn://localhost/gambas/trunk@3382 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: In icon editor, the width of the selection frame now follows the
zoom level.
* NEW: Support for preprocessor highlighting.
[COMPILER]
* NEW: Integrated preprocessor. The following commands are supported:
#If <expr>, #Else If <expr>, #Else and #Endif. <expr> can be a
combination of constants (OS_LINUX, OS_FREEBSD, ARCH_X86, ARCH_X86...),
parenthesis, 'And' & 'Or' operators, version test (VERSION >= "3.0").
This is work in progress.
[GB.EVAL]
* NEW: A new highlighting color for the preprocessor.
[GB.QT4.EXT]
* NEW: A new highlighting color for the preprocessor in Editor control.
git-svn-id: svn://localhost/gambas/trunk@3374 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Mem$() was replaced by MkBool$(), MkByte$(), and so on.
[COMPILER]
* NEW: Mem$() was replaced by MkBool$(), MkByte$(), and so on.
* NEW: CLng(), CSng(), CVar(), CPtr() abbreviations were removed.
* NEW: CBoolean() was added.
git-svn-id: svn://localhost/gambas/trunk@3320 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Mem$() is a new function that returns a string from the internal
memory representation of a value.
* NEW: BoolPtr() has been replaced by Bool@(), BytePtr() has been replaced
by Byte@(), and so on...
* NEW: StrPtr() has been replaced by String@().
[EXAMPLES]
* NEW: Search support in the WebBrowser example.
git-svn-id: svn://localhost/gambas/trunk@3318 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: VarPtr() now correctly works on Date and Pointer variables.
* BUG: Addition works again on Date.
* NEW: Object.Address() is a new method that returns the memory address of
an object.
git-svn-id: svn://localhost/gambas/trunk@3307 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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: 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
* BUG: Configuration summary should be printed correctly again.
* NEW: README file was updated.
[INTERPRETER]
* BUG: The Error information should not be lost anymore during error
propagation through constructors.
* NEW: Natural comparison is now always language-aware.
[GB.QT4]
* BUG: TextArea selection methods work correctly now.
* BUG: TreeView.Count and ColumnView.Count now return the number of items
in the view like in gb.gtk, not just the number of root items.
git-svn-id: svn://localhost/gambas/trunk@2643 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: VarPtr() now works on a string variable. It returns the address of
the string.
* NEW: TypeOf("") now returns gb.String. "" is equal to NULL yet, but now its
string datatype is kept.
* NEW: Memory is new instruction like Open that opens a memory stream from
a Pointer.
* NEW: A Pointer can not be used as a stream directly. You must use the new
Memory instruction for that.
* NEW: The [...] array constructor now checks the datatype of all its
argument to decide the type of the new array.
* BUG: The ["key":value] collection constructor now does not leak memory
anymore if it fails.
* NEW: A new error, "void key", whose code is 64.
* NEW: TypeOf(Null) now returns gb.Null and not gb.Object anymore.
* BUG: IIf() now returns a Variant only if needed. It uses the same
algorithm as the array constructor.
[COMPILER]
* NEW: Memory is new instruction like Open that opens a memory stream from
a Pointer. The syntax is: hStream = Memory pPonter For Read | Write.
* NEW: Support for form controls being individually public.
* BUG: VarPtr() is compiled correctly again.
git-svn-id: svn://localhost/gambas/trunk@2339 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: WARNING! The bytecode has changed, so every project needs to be
recompiled.
[WEB SITE MAKER]
* NEW: Some more translations.
[INTERPRETER]
* NEW: Assign() is a new function. It is like Eval(), except that the
expression can be an assignment.
[GB.EVAL]
* NEW: Implementation of the new Assign() function.
* NEW: The Expression.Compile() method takes a new optional boolean
argument that indicates if we are compiling an assignment or not.
[GB.NET.CURL]
* BUG: A asynchronous transfer that ends do not stop the other ones
anymore.
git-svn-id: svn://localhost/gambas/trunk@1986 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix a backtrace memory leak in error management.
* BUG: Fix a memory leak in process streams.
[GB.FORM]
* BUG: Some bug fixes in DatePicker. It does not work correctly with
gb.gtk yet!
[GB.GTK]
* BUG: Fix the container arrangement and the ClientX / ClientY properties.
* BUG: A form is not its own event observer if one was specified at
instanciation time.
[GB.QT]
* OPT: The container arrangement is now triggered the same way as in
gb.gtk. No Qt event filter is used anymore.
[GB.QT4]
* OPT: The container arrangement optimization from gb.qt has been partially
applied to gb.qt4.
git-svn-id: svn://localhost/gambas/trunk@1858 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix the arithmetic operations on Boolean, Byte and Short, so that
everything is correctly truncated.
git-svn-id: svn://localhost/gambas/trunk@1836 867c0c6c-44f3-4631-809d-bfa615b0a4ec