* BUG: Prevent a possible infinite recursion when detaching objects.
* BUG: Don't crash if a standard stream has been freed. Raise an error
instead.
git-svn-id: svn://localhost/gambas/trunk@7085 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Rand() is a new function that returns an integer random number.
Rand(X) returns a integer random number between 0 and X included.
Rand(X,Y) returns a integer random number between X and Y included.
* BUG: System.TimeZone now returns the accurate value, i.e. the number of
seconds that must be *added* to go to UTC.
git-svn-id: svn://localhost/gambas/trunk@6282 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Use vfork() instead of fork() to implement EXEC and SHELL, so that
when the child process cannot run the child program for any reason, the
error is immediately catched.
* BUG: Fix a possible file descriptor leak when using LOCK.
git-svn-id: svn://localhost/gambas/trunk@6189 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix the CLOSE instruction when dealing with a string stream.
* NEW: Make WRITE behave the same way as READ on a memory stream. I.e. it
writes a null-terminated "C" string.
git-svn-id: svn://localhost/gambas/trunk@5942 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Undo one change of last revision: reading a stream from a memory
stream is a special case. It reads a null-terminated C string, and not a
serialized Gambas string.
* NEW: OPEN STRING is a new instruction that allows to use a string as a
stream. Writing to it appends the written data to the end of the string
at the moment.
* NEW: Closing a string stream returns the data written to the stream as a
new string.
[COMPILER]
* NEW: New OPEN STRING instruction.
* NEW: OPEN MEMORY and OPEN PIPE are synonymous of the MEMORY and PIPE
instructions alone.
[GB.EVAL]
* NEW: Highlight the new OPEN STRING instruction correctly.
git-svn-id: svn://localhost/gambas/trunk@5941 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Update copyright year to 2013.
[GB.FORM]
* NEW: ImageView is a new control that allows to view an image inside a
scrolled view, at different zoom levels.
* BUG: FileProperties now works correctly if 'gb.desktop' is not used.
* NEW: The FileProperties preview tab now uses an ImageView control and has
a toolbar to zoom the preview.
* BUG: Add the 'linux' and 'gnu' icon in the stock icon list.
git-svn-id: svn://localhost/gambas/trunk@5770 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: A stream redirected through the 'Begin' method checks that stream is
ready for writing only when the 'Send' method is called. Between the
'Begin' and 'Send' calls, the PRINT and WRITE instructions will always
succeed.
git-svn-id: svn://localhost/gambas/trunk@5723 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Even() is a new subroutine that returns if a number is even.
* NEW: Odd() is a new subroutine that returns if a number is odd.
[GB.GTK]
* BUG: Close all windows correctly when a QUIT instruction is executed.
[GB.QT4]
* BUG: Close all windows correctly when a QUIT instruction is executed.
git-svn-id: svn://localhost/gambas/trunk@4615 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: INPUT now only read strings. It does not convert the read string
with Val() anymore.
* BUG: IIf() and [...] do not accept non-value datatypes (Class and
Function).
* NEW: Start supporting displaying Collection-like classes in the debugger.
git-svn-id: svn://localhost/gambas/trunk@4557 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: INPUT returns the read string if it cannot be converted to any
number or date.
git-svn-id: svn://localhost/gambas/trunk@4552 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix the behaviour of INPUT so that it uses Val() again to convert
the values read from the stream.
git-svn-id: svn://localhost/gambas/trunk@4549 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix version requirements on components in the packager.
[INTERPRETER]
* OPT: A little optimization in LINE INPUT.
[GB.FORM]
* NEW: GridView: Setting the column width to -1 make it fit its contents.
* NEW: GridView: Double-clicking on the right limit of a column make it
fit its contents.
git-svn-id: svn://localhost/gambas/trunk@4537 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: LINE INPUT does not try to incorrectly release its stream argument
anymore when there is no stream argument.
* OPT: A little optimization in Space$(), Upper$() and Lower$().
* OPT: EXEC / SHELL ... TO does not return the process output through a
temporary string that will be freed later. If the string is big, then
the memory is retained longer than necessary.
git-svn-id: svn://localhost/gambas/trunk@4509 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix the form editor grid horizontal position.
[INTERPRETER]
* NEW: IsNan() is a new function that returns if a floating point value is
not a number.
* NEW: IsInf() is a new function that returns +1 if a floating point value
is +Inf, -1 if it is -Inf, and 0 if it is a normal number.
* NEW: Swap$() is a new function that swaps a string.
* NEW: The MkBool$(), MkShort$(), MkInt$()... functions come back!
[COMPILER]
* NEW: +Inf and -Inf are two new keywords for representing the
corresponding special floating values.
git-svn-id: svn://localhost/gambas/trunk@4435 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: Internal conversions between unicode and utf-8 have been optimized.
* OPT: String.UCase(), String.LCase() and String.Chr() have been optimized.
* BUG: Arrays of classes exported from a component or a library are now
automatically exported too.
* NEW: Param.All is a new property that returns all extra arguments as an
array.
git-svn-id: svn://localhost/gambas/trunk@4143 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: Write instruction can write a bunch of bytes from a pointer address.
git-svn-id: svn://localhost/gambas/trunk@4077 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Exist() new implementation is now really backward-compatible.
git-svn-id: svn://localhost/gambas/trunk@3941 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: An option to disable the automatic control structure completion.
* OPT: Use the new Stream.ReadLine() method to speed up the CSV file
import routine.
[INTERPRETER]
* NEW: ReadLine() is a new method of the Stream class, that read a text
line like LINE INPUT, but with an optional escape character.
[GB.FORM]
* BUG: The default event of an IconPanel is Click.
git-svn-id: svn://localhost/gambas/trunk@3577 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
* BUG: The control rename algorithm should work better now.
[EXAMPLES]
* BUG: Fix ServerSocket and ClientSocket examples.
[INTERPRETER]
* BUG: WRITE and READ with a specified length of zero now does nothing.
[GB.NET]
* BUG: Closing a socket created by a ServerSocket does not crash anymore.
[GB.QT4]
* BUG: When a combo-box becomes read-only, the first item is automatically
selected if there was no current item.
* BUG: Window with no border can have focus now.
git-svn-id: svn://localhost/gambas/trunk@3404 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix startup current directory detection when running an archive.
* BUG: Using a Variant where a stream is requested does not crash the
interpreter anymore.
git-svn-id: svn://localhost/gambas/trunk@3276 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* BUG: Fix the Database example.
[INTERPRETER]
* BUG: Fix unchecked system calls.
[ARCHIVER]
* BUG: Prevent the archiver from putting the executable file into itself,
leading to a endless growing generated file.
* NEW: Files having the ".gambas" extension are now excluded from
executable archives.
[GB.DB.FORM]
* BUG: Remove the DataBrowser.Adjust property.
git-svn-id: svn://localhost/gambas/trunk@3272 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* 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
* 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: 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: 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
* BUG: Use -fnested-functions only on Mac OS X.
* BUG: The GB_COMPONENT macro now correctly voids all component variables
when the component is not found.
git-svn-id: svn://localhost/gambas/trunk@2621 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Use the new Read/Write syntax.
[INTERPRETER]
* NEW: New Read/Write syntax.
* NEW: IsVariant() returns if its argument is a Variant.
[COMPILER]
* NEW: New Read/Write syntax.
* NEW: Support for the old read syntax.
[WIKI CGI SCRIPT]
* NEW: Allow query arguments ("?v3" for example) inside wiki links.
* NEW: New look for the table of contents.
* BUG: Non-translated pages display again.
[GB.WEB]
* NEW: Use the new Read/Write syntax.
git-svn-id: svn://localhost/gambas/trunk@2344 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: 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: Do not use "boolean" anymore. Use "bool" instead.
[COMPILER]
* NEW: Do not use "boolean" anymore. Use "bool" instead.
git-svn-id: svn://localhost/gambas/trunk@2091 867c0c6c-44f3-4631-809d-bfa615b0a4ec
* NEW: Start assigning actions to everything.
* NEW: Action shortcuts can be configured.
* NEW: Project actions are automatically saved in the .action directory.
* BUG: Signature of native arrays is correct now.
[INTERPRETER]
* BUG: GB_LoadFile() does not leak file descriptors anymore.
* NEW: Relative paths starting with "../" allows to open files located in
the main archive from a component.
[ARCHIVER]
* NEW: Store the ".action" directory in the archive.
[GB.DB]
* BUG: Correctly check that table name are not void in Create(), Find(),
Edit() and Delete() methods.
[GB.FORM]
* NEW: A new stock icon named "shortcut". Mmm... Should be named
"keyboard".
[GB.FORM.MDI]
* NEW: Support for automatic configuration of action shortcuts.
* NEW: Action.Configure() is a new method that opens a dialog for
configuring shortcuts. Shortcut configuration is stored in the
application setting files, under the '[gb.form.mdi/Shortcuts]' slot.
[GB.QT]
* NEW: Action[].Shortcut is a new property for setting or getting the
shortcut of an action.
* BUG: Correctly opens startup forms again.
git-svn-id: svn://localhost/gambas/trunk@1758 867c0c6c-44f3-4631-809d-bfa615b0a4ec