Commit graph

2063 commits

Author SHA1 Message Date
gambas
9726b53bb3 Add First and Last read-write properties to arrays.
[INTERPRETER]
* NEW: Add First and Last read-write properties to arrays.
2018-11-09 00:06:20 +01:00
gambas
ecf3410e99 Fix a crash in exception management.
[INTERPRETER]
* BUG: Fix a crash in exception management.
2018-11-07 17:21:38 +01:00
gambas
31901d72c9 Fix the LANGUAGE environment variable at startup, and add hebrew to the list of right-to-left written languages
[INTERPRETER]
* BUG: Fix the LANGUAGE environment variable at startup, not just when System.Language is set. This is a temporary fix, as you lost the contents of LANGUAGE.
* NEW: Add hebrew to the list of right-to-left written languages.
2018-11-06 18:11:51 +01:00
gambas
dcac5c2a26 Handle TRY inside JIT functions correctly.
[INTERPRETER]
* BUG: Handle TRY inside JIT functions correctly.

[GB.DEBUG]
* NEW: Add explicit messages when something fails during initialization.

[GB.JIT]
* BUG: Handle TRY correctly.
2018-11-02 21:44:40 +01:00
Benoît Minisini
e0495b2535 Merge branch 'master' into 'master'
Make main compile on Hurd

See merge request gambas/gambas!48
2018-11-01 00:25:01 +00:00
gambas
615ff675d2 Calling a jit function now correctly checks the number of arguments.
[INTERPRETER]
* BUG: Calling a jit function now correctly checks the number of arguments.
* BUG: Fix a panic message.
2018-10-31 01:56:35 +01:00
gambas
9aa856c3a6 Do not use __DATE__ and __TIME__ macros, they prevent reproducible builds.
[INTERPRETER]
* BUG: Do not use __DATE__ and __TIME__ macros, they prevent reproducible builds.

[COMPILER]
* BUG: Do not use __DATE__ and __TIME__ macros, they prevent reproducible builds.

[ARCHIVER]
* BUG: Do not use __DATE__ and __TIME__ macros, they prevent reproducible builds.

[INFORMER]
* BUG: Do not use __DATE__ and __TIME__ macros, they prevent reproducible builds.
2018-10-26 03:05:02 +02:00
bgermann
730bd63a34 Make main compile on Hurd
Replace some BSD-exclusive with Linux-only ifdefs to not pollute term
with Hurd ifdefs
2018-10-17 22:08:50 +02:00
gambas
921067cd34 The IsAlnum() function was never defined in the subroutine symbol table!
[COMPILER]
* NEW: The IsAlnum() function was never defined in the subroutine symbol table!
2018-10-16 19:31:24 +02:00
gambas
1c6a9c1b52 Define the TRUE/FALSE constant in the generated code again.
[GB.JIT]
* NEW: Define the TRUE/FALSE constant in the generated code again.
2018-10-16 19:30:28 +02:00
Benoît Minisini
aab5aecd72 Merge branch 'mipsterm' into 'master'
Fix missing define on MIPS

See merge request gambas/gambas!47
2018-10-16 17:29:38 +00:00
bgermann
1d93023181 Fix missing define on MIPS
More information: http://lists.busybox.net/pipermail/buildroot/2015-October/140931.html
2018-10-15 21:54:31 +02:00
bgermann
dace3b09ac Remove boolean definitions except in gb_common.h 2018-10-15 18:48:01 +02:00
bgermann
a0e95cc0b8 Spelling: catched -> caught 2018-10-14 21:52:07 +02:00
gambas
ad8ea52b64 Don't crash after a buffered file failed to close.
[INTERPRETER]
* BUG: Don't crash after a buffered file failed to close.
2018-10-11 12:30:45 +02:00
gambas
31929e1e44 Overriding public variables is forbidden, and JIT compiler correctly handles public constants.
[INTERPRETER]
* NEW: Overriding public variables was useless, and is now forbidden to help JIT compiler optimizations.

[GB.JIT]
* BUG: Correctly compile dynamic accesses to public constants.
2018-10-08 16:36:38 +02:00
gambas
5c5eede209 Now configure should really fail only if a component is actually disabled.
[CONFIGURATION]
* BUG: Now configure should really fail only if a component is actually disabled.
2018-10-01 14:00:08 +02:00
gambas
a2d936dedb Fix highlighting of strings including '\xXX' escape sequences.
[GB.EVAL]
* BUG: Fix highlighting of strings including '\xXX' escape sequences.
2018-10-01 10:48:24 +02:00
gambas
aa6b7825d8 Do not disable 'gb.crypt' if libcrypt is not found. Let's suppose it is located in the C system library, as on some systems based on musl and busybox.
[CONFIGURATION]
* NEW: Fix some messages

[GB.CRYPT]
* NEW: Do not disable the component if libcrypt is not found. Let's suppose it is located in the C system library, as on some systems.
2018-09-29 04:40:24 +02:00
gambas
1f29f16e32 Fix information about native classes.
[INTERPRETER]
* BUG: Fix information about native classes.
2018-09-23 22:02:56 +02:00
gambas
737b77c387 String value can be used like object.
[INTERPRETER]
* NEW: String value can be used like object.
* NEW: String[X] returns the X-th character of the string, 0 being the first one.
* NEW: String[X, N] returns N characters from the position X, 0 being the first one. IF N is strictly negative, then all characters from the position X, except the last N characters are returned.
* NEW: String.Len returns the length of the string.

[COMPILER]
* NEW: Allow the [] operator to be applied to a string.
2018-09-23 09:15:29 +02:00
gambas
029f3d35c2 Remove the Connection.TimeZone property, it is not used yet.
[GB.DB]
* NEW: Remove the Connection.TimeZone property, it is not used yet.
2018-09-23 09:12:37 +02:00
Benoît Minisini
a79edf23ed Merge branch 'bsd' into 'master'
More BSD changes

See merge request gambas/gambas!38
2018-09-21 22:55:31 +00:00
gambas
46f21a7f7b Strip png files with ImageMagick convert command. 2018-09-19 20:53:00 +02:00
bgermann
846c4bada9 Change __WORDSIZE definition for BSDs 2018-09-15 10:50:10 +02:00
gambas
6ad1333324 Fix String.InStr() and String.RInstr() in ignore case mode, when the starting position is not specified.
[INTERPRETER]
* BUG: Fix String.InStr() and String.RInstr() in ignore case mode, when the starting position is not specified.
2018-09-14 19:17:56 +02:00
gambas
12c0ebda46 String.InStr() starting position is correctly taken into account now.
[INTERPRETER]
* BUG: String.InStr() starting position is correctly taken into account now.
2018-09-12 13:39:05 +02:00
bgermann
0aaee954d6 [GB.TERM] Compatibility with OpenBSD
[GB.TERM]
* NEW: Compatibility with OpenBSD
2018-09-10 22:04:50 +02:00
gambas
88220d483b Let the interpreter correctly manage exceptions when calling non-JIT code from JIT code.
[INTERPRETER]
* BUG: JIT: Let the interpreter correctly manage exceptions when calling non-JIT code from JIT code.

[GB.JIT]
* BUG: Correctly initialize CP during exception handler.
2018-09-10 20:11:59 +02:00
bgermann
6e2a9d458f Unify BSD ifdefs 2018-09-09 18:26:38 +02:00
gambas
f00acc7104 Default value of optional arguments are correctly referenced now.
[GB.JIT]
* BUG: Default value of optional arguments are correctly referenced now.
2018-09-06 07:41:29 +02:00
gambas
d3a145655a Fix compilation of gb.pdf on old gcc, by checking if the '-std=c++11' flag is available.
[INTERPRETER]
* NEW: Write the name of optional libraries in the warning message displayed when not found.

[GB.PDF]
* BUG: Fix compilation of gb.pdf on old gcc, by checking if the '-std=c++11' flag is available.
2018-09-01 20:05:44 +02:00
Benoît Minisini
ce37927180 Merge branch 'netbsd' into 'master'
Improve NetBSD support

See merge request gambas/gambas!37
2018-09-01 10:28:18 +00:00
gambas
847dcd8ebf Remove other files that should not be tracked by git. 2018-09-01 12:23:05 +02:00
gambas
9ffe91c294 Remove files that should not be tracked by git. 2018-09-01 12:21:57 +02:00
gambas
3cb8b1afc6 Highlight.Analyze works correctly again.
[GB.EVAL]
* BUG: Highlight.Analyze works correctly again.
2018-09-01 12:16:24 +02:00
gambas
2374407b4d [DEVELOPMENT ENVIRONMENT]
* NEW: Update highlighting themes by defining the new color constants.
* NEW: Update French translation.
* BUG: Option dialog: The highlighting color panel now takes the editor font size into account.

[GB.EVAL]
* BUG: Fix string highlighting.
2018-09-01 00:46:48 +02:00
gambas
a73c2ed412 Add three new color constants for syntax highlighting: Escape, Label and Constant.
[COMPILER]
* NEW: Rename a macro constant to avoid a symbol clash when compiling the interpreter.

[INTERPRETER]
* NEW: Get rid of a macro trick in 'gbx_eval.h' header.

[GB.EVAL]
* NEW: Highlight: Add three new color constants for syntax highlighting: Escape, Label and Constant.
* NEW: Rename some source files.
* NEW: Rename some constants.
* NEW: Gambas syntax highlighter now use the three new contants for escape characters in strings, for labels, and for language contants (True, False, Null, +Inf and -Inf).

[GB.EVAL.HIGHLIGHT]
* NEW: Support for the new syntax highlighting color constants.

[GB.FORM.EDITOR]
* NEW: Support for the new syntax highlighting color constants.
2018-08-31 15:58:53 +02:00
bgermann
1b7abb97b7 Correct 3e6d9696 2018-08-30 14:07:18 +02:00
bgermann
3e6d969613 Change enum prefix that collides with statvfs 2018-08-30 13:33:13 +02:00
bgermann
3685f21cbf [GB.TERM] Compatiblitity with NetBSD
[GB.TERM]
* NEW: Compatiblitity with NetBSD
2018-08-30 09:35:44 +02:00
bgermann
b1a12236ad Convert from statfs to more portable statvfs
[INTERPRETER]
* NEW: Convert from statfs to more portable statvfs
2018-08-29 23:59:11 +02:00
bgermann
e74adab7c5 Use FreeBSD exp10() fix for all BSDs
[INTERPRETER]
* BUG: The exp10() function works on all BSDs now
2018-08-29 15:36:25 +02:00
bgermann
a3df769268 Use sys/ioctl.h instead of pty.h
pty.h is not needed because its functions are not used.
Use ioctl.h additionally to the already included termios.h to import the
implicitly used functions/constants.
2018-08-29 14:29:54 +02:00
bgermann
e6028806a0 Fix libltdl workaround for NetBSD 2018-08-29 14:18:33 +02:00
gambas
7a680d738b Correctly compile void function arguments.
[GB.JIT]
* BUG: Correctly compile void function arguments.
2018-08-29 11:22:56 +02:00
gambas
fc2cbe819a Rename 'ClassStat' class as '_ClassStat' to avoid a possible name collision.
[GB.JIT]
* NEW: Rename 'ClassStat' class as '_ClassStat' to avoid a possible name collision.
2018-08-28 17:05:11 +02:00
gambas
7d16436c5c Eof() now correctly works on file bigger than 4GB opened in direct mode.
[INTERPRETER]
* BUG: Eof() now correctly works on file bigger than 4GB opened in direct mode.
2018-08-27 23:57:30 +02:00
gambas
c2b2d7d624 If an unknown symbol is called through a parent class reference, the _unknown() method is not called and an error is raised if the unknown symbol exists in the actual child class.
[INTERPRETER]
* NEW: If an unknown symbol is called through a parent class reference, the _unknown() method is not called and an error is raised if the unknown symbol exists in the actual child class.
2018-08-23 12:22:30 +02:00
gambas
706a605cc3 Correctly restore the stack after calling a method through the interpreter, and handle null values as object values having a null address automatically.
[INTERPRETER]
* NEW: Creating a NULL value now clears the object address field so that it can be freely interpreted as a Object value with a null address by the JIT compiled code.

[GB.JIT]
* BUG: Correctly restore stack after calling a method through the interpreter.
2018-08-22 09:30:27 +02:00
gambas
7ab07bd95f Correctly handle optional object arguments.
[GB.JIT]
* BUG: Correctly handle optional object arguments.
2018-08-20 19:57:47 +02:00
gambas
7492efcc0e Always load the class before accessing a static variable, as it may not be ready.
[INTERPRETER]
* BUG: FIx JIT class loading API.

[GB.JIT]
* BUG: Always load the class before accessing a static variable, as it may not be ready.
2018-08-18 15:28:19 +02:00
gambas
07ccec7358 Compile correctly optional arguments initialization.
[GB.JIT]
* BUG: Compile correctly optional arguments initialization.
2018-08-18 12:03:44 +02:00
gambas
d371614662 Correctly compile conversion from object to boolean.
[GB.JIT]
* BUG: Correctly compile conversion from object to boolean.
2018-08-17 01:04:53 +02:00
gambas
979e22f6e9 Correctly load classes from archives other than the main project one during JIT compilation.
[INTERPRETER]
* NEW: When creating a new class, set its component immediately if we know the archive it comes from.

[GB.JIT]
* BUG: Correctly load classes from archives other than the main project one.
2018-08-16 01:50:45 +02:00
gambas
6d35875a56 Correctly raise exceptions on the number of arguments of function calls.
[GB.JIT]
* BUG: Correctly raise exceptions on the number of arguments of function calls.
2018-08-15 08:37:25 +02:00
gambas
0b341e7c91 Compile optional arguments correctly.
[GB.JIT]
* BUG: Compile optional arguments correctly.
2018-08-15 00:01:51 +02:00
gambas
0297c1bafa Load classes without running the _init method, so that the JIT behaviour is closer to the interpreter behaviour.
[INTERPRETER]
* NEW: Add a JIT API for loading classes without running the _init method.

[GB.JIT]
* BUG: Load classes without running the _init method, so that the JIT behaviour is closer to the interpreter behaviour.
2018-08-14 16:46:55 +02:00
gambas
c569a234be Don't leak memory when converting an object to a boolean and correctly pop the arguments from the stack when propagating an exception.
[GB.JIT]
* BUG: Don't leak memory when converting an object to a boolean.
* BUG: Correctly pop the arguments from the stack when propagating an exception.
2018-08-14 12:15:04 +02:00
gambas
ad16238574 Correctly compile subroutines that return an unknown datatype.
[GB.JIT]
* BUG: Correctly compile subroutines that return an unknown datatype.
2018-08-14 10:57:49 +02:00
gambas
698e5dd948 Fix access to objects that can be invalid.
[GB.JIT]
* BUG: Fix access to objects that can be invalid.
2018-08-13 23:01:27 +02:00
gambas
7a129a8d83 Add support fot date variables.
[GB.JIT]
* NEW: Add support fot date variables.
2018-08-13 22:55:01 +02:00
gambas
ffa3cd0875 Correctly read pointer variables.
[GB.JIT]
* BUG: Correctly read pointer variables.
2018-08-13 00:36:33 +02:00
gambas
bdb60ecef7 Correctly compile long public constants.
[GB.JIT]
* BUG: Correctly compile long public constants.
2018-08-13 00:24:38 +02:00
gambas
9c1fa46558 Reading variants from memory is done correctly now.
[GB.JIT]
* BUG: Reading variants from memory is done correctly now.
2018-08-12 09:43:15 +02:00
gambas
a2123c7f27 Accesses to byte global variables are compiled correctly now.
[GB.JIT]
* BUG: Accesses to byte global variables are compiled correctly now.
2018-08-12 00:22:44 +02:00
gambas
0975e520db JIT: Handle function datatype by raising a type mismatch error.
[INTERPRETER]
* NEW: JIT: Add an API for throwing type mismatch errors.
* BUG: Raise a type mismatch error when converting a function to a variant. Don't panic anymore.

[GB.JIT]
* BUG: Handle function datatype by raising a type mismatch error.
2018-08-11 14:06:46 +02:00
gambas
f882946561 Fix conversions of NULL.
[GB.JIT]
* BUG: Fix conversions of NULL.
2018-08-11 07:55:08 +02:00
gambas
0aedbe63a2 Fix an internal common string routine used by thousand separator management.
[INTERPRETER]
* BUG: Fix an internal common string routine used by thousand separator management.
2018-08-11 07:54:22 +02:00
gambas
aa33e0ddad Add a '-j' option to the interpreter that disable the JIT compiler.
[INTERPRETER]
* NEW: Add a '-j' option to the interpreter that disable the JIT compiler.
2018-08-11 07:53:02 +02:00
gambas
28b52f2de0 Val() correctly reads thousand separators again.
[INTERPRETER]
* BUG: Val() correctly reads thousand separators again.
2018-08-10 23:37:55 +02:00
gambas
4e83422f20 Fix optional arguments management.
[INTERPRETER]
* NEW: Fix panic error message again.

[GB.JIT]
* BUG: Fix optional arguments management.
2018-08-10 14:22:49 +02:00
gambas
3966bfbca7 Fix compilation of variant values borrowings and NULL values conversions.
[GB.JIT]
* BUG: Fix compilation of variant values borrowings.
* BUG: Fix NULL values conversions.
2018-08-10 13:53:20 +02:00
gambas
5df6553247 Fix compilation of variant values releases.
[GB.JIT]
* BUG: Fix compilation of variant values releases.
2018-08-10 13:35:20 +02:00
gambas
4209cffa11 [INTERPRETER]
* NEW: Fix panic error message.

[GB.JIT]
* BUG: Load project classes before try to resolve a unknown symbol.
* BUG: Correctly restore the stack pointer in all cases at function exit.
2018-08-10 13:26:54 +02:00
gambas
f5b1c1c03b Format$ now prints the expected number of decimal digits when using exponential format.
[INTERPRETER]
* BUG: Format$ now prints the expected number of decimal digits when using exponential format.
2018-08-10 11:49:12 +02:00
gambas
7b501542a1 Fix thousand separators again.
[INTERPRETER]
* BUG: Fix thousand separators again.
2018-08-09 15:47:29 +02:00
gambas
acf401ba2d Correctly reset the stack pointer when releasing the stack in error handlers.
[INTERPRETER]
* BUG: Do not clear the 'super' field of the object value returned by NEW, as it does not fix actually anything.

[GB.JIT]
* BUG: Correctly reset the stack pointer when releasing the stack in error handlers.
2018-08-09 11:05:51 +02:00
gambas
bb34431646 Fix a crash in JIT relative to SUPER management.
[INTERPRETER]
* BUG: Clear the 'super' field of the object value returned by NEW.

[GB.JIT]
* BUG: Correctly reset EXEC_super in error catching.
2018-08-06 13:26:49 +02:00
gambas
609ef351f8 The interpreter does not crash anymore when using standard streams at the end of the program whereas they have been already freed.
[INTERPRETER]
* BUG: The interpreter does not crash anymore when using standard streams at the end of the program whereas they have been already freed.
2018-07-17 15:33:11 +02:00
gambas
bba1946700 The datatype of object symbols was incorrectly computed.
[GB.JIT]
* BUG: The datatype of object symbols was incorrectly computed.
2018-07-08 08:24:31 +02:00
gambas
e04ec717c7 JIT: Structures and static arrays have been implemented.
[INTERPRETER]
* NEW: JIT: Support for structures and static arrays.

[GB.JIT]
* NEW: Structures and static arrays have been implemented.
2018-07-07 14:54:23 +02:00
gambas
da5c780572 Allow compilation of structure accesses again.
[COMPILER]
* BUG: Allow compilation of structure accesses again.
2018-07-07 02:23:08 +02:00
gambas
ed775d62d4 Correctly handle function values used as arguments.
[GB.JIT]
* BUG: Correctly handle function values used as arguments.
2018-07-07 00:58:55 +02:00
gambas
50dedeb8cb Don't use __attribute__((noreturn)), it makes gcc dizzy and slow as hell.
[GB.JIT]
* BUG: Don't use __attribute__((noreturn)), it makes gcc dizzy and slow as hell.
2018-07-05 07:15:23 +02:00
gambas
d3c93a05e4 Work on new JIT system continues.
[INTERPRETER]
* NEW: Abort if a stack mismatch is detected after a JIT function has been called.

[GB.JIT]
* NEW: The GB_JIT_CC environment variable allows to define the C compiler that will generate the code.
* OPT: Don't call the compiler through a shell anymore.
* NEW: Support for clang.
* BUG: Don't use the "," operator anymore to write JIT code.
* BUG: Correctly free stack when leaving a function whereas we are still inside a GOSUB.
* BUG: Declare all local variables and arguments as volatile as soon the function uses CATCH or FINALLY.
2018-07-05 07:10:31 +02:00
gambas
4a1c81d0aa Jit.Time is a new property that returns the time spent in JIT compilation, in seconds.
[INTERPRETER]
* NEW: Jit is a new static class that allows to deal with the JIT compiler.
* NEW: Jit.Time is a new property that returns the time spent in JIT compilation, in seconds.

[GB.JIT]
* NEW: Support for the Jit.Time property.
2018-07-03 00:52:19 +02:00
gambas
527702ea59 Subroutines returning something that are used as instructions correctly drop their return value now.
[GB.JIT]
* BUG: Subroutines returning something that are used as instructions correctly drop their return value now.
2018-07-02 22:37:33 +02:00
gambas
9cf443a04f [INTERPRETER]
* BUG: Take JIT code into account when displaying current position in DEBUG instruction.

[COMPILER]
* BUG: Fix subroutine metadata.
* BUG: Fix subroutine search function.

[GB.JIT]
* BUG: Fix string referencing.
* NEW: Implement date arrays accessors.
* BUG: Fix error management.
* BUG: Fix mathematic functions implementation.
* NEW: Support of functions with a variable number of arguments.
* BUG: Fix support of Long constants.
* BUG: Fix implementation of Collection array operator.
* BUG: Fix READ, EXEC, SHELL and DEBUG instructions.
* BUG: Fix VarPtr().
* BUG: Fix TRUE constant implementation.
2018-07-02 19:37:37 +02:00
gambas
5f4f12acf3 [COMPILER]
* NEW: UNSAFE is a new keyword used in conjunction with FAST. It tells the JIT compiler not to do any safety check (null objects, division by zero, out of array bounds...). It makes the code a bit faster, but prone to segmentation fault.

[INTERPRETER]
* NEW: Support for the UNSAFE keyword.

[GB.JIT]
* NEW: Support for the UNSAFE keyword.
* NEW: Check validity of objects that can be invalid.
2018-06-29 00:10:31 +02:00
gambas
fe08dfa333 Work continues on new JIT system.
[INTERPRETER]
* NEW: JIT: Support for SUPER.
* NEW: JIT: Support for extern functions.
* NEW: Add a flag in Gambas functions to know if they are static or not.

[GB.JIT]
* NEW: Support for SUPER.
* NEW: Support for extern functions.
* BUG: Fix object arrays access.
* OPT: Optimization of Abs, Sgn, Int, Fix, and Pi subroutines.
2018-06-27 19:35:23 +02:00
gambas
ab3963c99c Fix some bugs detected by clang, and JIT code can now raise events.
[INTERPRETER]
* NEW: JIT: Support for event raising.
* BUG: Fix some bugs detected by clang.

[GB.JIT]
* NEW: Support for event raising.
* OPT: Some optimizations in jit code generation and compilation.
2018-06-25 19:17:44 +02:00
gambas
90700a48ae Remove now unused JIT compilation source files.
[COMPILER]
* BUG: Remove now unused JIT compilation source files.
2018-06-25 19:16:10 +02:00
gambas
06d139920d Work continues on new JIT system.
[INTERPRETER]
* BUG: JIT: No need to support breakpoints.

[GB.JIT]
* BUG: No need to support breakpoints.
2018-06-23 01:37:06 +02:00
gambas
128b5de2f2 [INTERPRETER]
* NEW: JIT: Support for QUIT and STOP EVENT instructions.

[GB.JIT]
* NEW: Implement QUIT and STOP EVENT instructions.
2018-06-23 01:31:39 +02:00
gambas
6502645560 Work continues on new JIT system.
[INTERPRETER]
* BUG: JIT: Fix error handling when calling methods from JIT code.

[GB.JIT]
* NEW: Fix support of CATCH and FINALLY.
* NEW: Support for ON GOTO and ON GOSUB.
2018-06-22 04:49:05 +02:00
gambas
757ecc14eb Fix the clang fix. Compiler messages are visible again.
[COMPILER]
* BUG: Fix the clang fix. Compiler messages are visible again.
2018-06-19 16:09:30 +02:00
Benoît Minisini
9834cc71d9 Merge branch 'clang' into 'master'
Make compilation with clang possible

See merge request gambas/gambas!27
2018-06-19 00:07:32 +00:00
gambas
3bd9dca142 Work on new JIT system continues.
[INTERPRETER]
* NEW: JIT: Complex number support.
* NEW: JIT: LAST support.

[GB.JIT]
* BUG: Fix management of local variable declaration of translated functions.
* NEW: Support for WITH ... END WITH.
* NEW: JIT: Complex number support.
* NEW: JIT: LAST support.
2018-06-19 00:30:12 +02:00
gambas
4ef9c15a1b Support for CATCH and FINALLY.
[INTERPRETER]
* NEW: The NEW implementation routine takes its opcode as argument now, like other subroutines with a variable number of arguments.

[GB.JIT]
* OPT: Call subroutines using their static address. No significative performance gain was detected.
* NEW: Support for CATCH and FINALLY.
2018-06-16 01:12:13 +02:00
gambas
b9a83c8a10 Work continues on new JIT system.
[INTERPRETER]
* NEW: Support for error management in JIT methods.

[COMPILER]
* BUG: Fix Error() function metadata.

[GB.JIT]
* NEW: Support for error management.
* NEW: TRY instruction.
* BUG: Correct support of NULL.
2018-06-14 16:45:05 +02:00
bgermann
ff8a181667 Make compilation with clang possible
[CONFIGURATION]
* OPT: Compilation with clang is possible
2018-06-13 18:26:06 +02:00
gambas
5a1e3b48e9 Fix label generation again.
[GB.JIT]
* BUG: Fix label generation again.
2018-06-13 18:19:32 +02:00
gambas
08c772a290 Fix FOR EACH loops translation.
[GB.JIT]
* BUG: Panic if the stack is not void once a function has been translated.
* BUG: Fix FOR EACH loops translation.
2018-06-13 16:59:56 +02:00
gambas
b8198005db [BENCHMARKS]
* OPT: Little optimization in nbody benchmark.

[GB.JIT]
* BUG: Fix translation of loops.
* BUG: Fix label generation.
2018-06-13 16:55:25 +02:00
gambas
83eed9707d Merge branch 'jit-with-c' 2018-06-13 00:45:19 +02:00
gambas
6b8afd0617 [COMPILER]
* BUG: Fix Left, Mid and Right subroutines metadata.

[GB.JIT]
* BUG: Fix function arguments management.
* BUG: Functions returning objects work correctly now.
* BUG: Fix internal control variables management.
2018-06-13 00:38:18 +02:00
Adrien Prokopowicz
2c9b2dcf03 Add the ability to expose some configuration failures with CI
See merge request gambas/gambas!26
2018-06-12 18:36:26 +00:00
gambas
431be5bcea Fix string search routine optimization and thousand separator.
[INTERPRETER]
* BUG: Fix string search routine optimization.
* BUG: Fix thousand separator.
2018-06-12 16:30:11 +02:00
Laurent Carlier
a5a117fd33 Add a way to track configuration failures with CI
Disable it for main as it's expected.

=> GAMBAS_CONFIG_FAILURE=1 ./configure
.....
checking for gb.db.postgresql headers... no
configure: WARNING: Unable to find file: postgres.h
configure: WARNING: Unable to find file: pg_type.h
checking for gb.db.postgresql libraries... /usr/lib64/
configure: error: Failed to configure gb.db.postgresql
configure: error: ./configure failed for gb.db.postgresql
2018-06-12 16:27:31 +02:00
Tobias Boege
d44b4bd7f2 Chmod reads mode bit string correctly
[INTERPRETER]
* BUG: Fix off-by-one error in FILE_mode_from_string which couldn't read mode bits 's' and 't'
2018-06-12 13:40:44 +02:00
gambas
c671adfd6b Work continues on new JIT system.
[INTERPRETER]
* OPT: String searching (Instr, RInstr and Replace) has been made about 4x faster by searching the first occurence with memchr() and memrchr().

[GB.FORM.TERMINAL]
* BUG: Fix warning messages.

[GB.JIT]
* BUG: Fix byte, short and boolean pushing and popping routines.
* BUG: Fix string values referencing.
* BUG: Fix optional argument management.
* NEW: Optimization of bits management subroutines.

[GB.QT4]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.

[GB.QT5]
* BUG: Delay hooks initialization, because now socket notifiers must not be used before creating the event loop.
2018-06-11 18:56:39 +02:00
gambas
4e50dec11d Work continues on new JIT system. Translation is now done at runtime.
[INTERPRETER]
* OPT: String routines are now compiled with -O3.
* NEW: Don't display JIT debugging message unless GB_JIT_DEBUG is set to something different from zero.
* NEW: String whose length is greater than 256 now have a growth step of 256 bytes instead of 16.

[GB.JIT]
* NEW: Do many global optimizations as now the class metadata is fully available.
* NEW: Support for optional argument. Still buggy at the moment.
2018-06-09 22:42:35 +02:00
gambas
23be942b6a Work continues on the new JIT system.
[BENCHMARKS]
* NEW: Little meaningless changes.

[INTERPRETER]
* NEW: JIT: Support for FOR EACH loops.
* BUG: JIT: Handle function values that are put on stack before calling them.

[COMPILER]
* NEW: JIT: Optimization of mathematic functions.
* NEW: JIT: Support for FOR EACH loops.
* NEW: JIT: Remove successive POP_x() / PUSH_x().
* NEW: JIT: Optimization of DIV and MOD.
* NEW: JIT: Support of internal control local variables used by SELECT and FOR EACH.
* NEW: JIT: Support for SWAP.

[GB.JIT]
* NEW: Optimization of mathematic functions.
* NEW: Variants management.
* NEW: All conversions are handled now.
* NEW: FOR EACH loops are implemented.
2018-06-05 11:43:39 +02:00
gambas
23081e47c6 Work continues on new JIT system. The "Fractal" example runs!
[INTERPRETER]
* NEW: Implement return value of JIT methods.
* NEW: Support for calling '.' operator from a JIT method.

[COMPILER]
* BUG: JIT: Fix detection of native arrays.
* BUG: JIT: Delete translated file if a class has no fast method anymore.
* BUG: JIT: Prefix JIT method with "jit_" to avoid possible conflicts.
* BUG: JIT: Fix variable initialization.
* NEW: JIT: Complete datatype support.
* NEW: JIT: Support for SWAP.
* NEW: JIT: Support for array operators.
* BUG: JIT: Fix arithmetic operators.
* NEW: JIT: Implement ME and "." operator.
* NEW: JIT: Complete GOSUB / RETURN support.
* NEW: JIT: Support for DIV and MOD operators. Not optimized yet.

[ARCHIVER]
* NEW: Put JIT translation in the archive.

[GB.JIT]
* NEW: Complete datatype support. Variant is not supported yet.
* NEW: Complete GOSUB / RETURN support.
* NEW: Support for ME and '.' operator.
2018-06-02 17:59:47 +02:00
gambas
1d276cdc68 Work continues on new JIT system.
[INTERPRETER]
* BUG: Release arguments after having called a JIT method.
* NEW: Add JIT interface for returning a value.

[COMPILER]
* NEW: JIT: Nicer translation for quick add of negative numbers.
2018-06-01 14:40:07 +02:00
gambas
714b77a10d Work on new JIT system continues.
[CONFIGURATION]
* NEW: Add '.jit' directory to '.gitignore'.

[COMPILER]
* NEW: New '-j' option that disables just in time compilation.
* NEW: JIT: Support for private functions calls.
* NEW: JIT: Support for native arrays accessors.
* BUG: JIT: Fix loop support.
* NEW: JIT: Support for GOSUB.

[GB.JIT]
* NEW: GB_JIT_DEBUG is an environment variable that defines if JIT compilation debugging messages are printed.
* NEW: GB_JIT_CFLAGS is an environment variable that defines the JIT compilation flags. The default is "-O3".
* NEW: Support for native arrays accessors.
2018-06-01 03:50:42 +02:00
gambas
5219fc48d1 Work continues on new JIT system.
[COMPILER]
* BUG: JIT: Fix local variable referencing.
* NEW: JIT: Implement NEW operator and array accessors.

[INTERPRETER]
* NEW: Support for JIT NEW operator and array accessors.

[GB.JIT]
* NEW: Support for object datatypes.
* NEW: Implement NEW operator and array accessors.
2018-05-29 23:25:57 +02:00
gambas
83a2452acb Continue working on new JIT system.
[COMPILER]
* NEW: JIT: Support for FOR...TO...NEXT loops.
* NEW: JIT: Support for Len(), Left$(), Mid$(), and Right$().
* NEW: JIT: Subroutines return values are now hadled correctly.

[GB.JIT]
* NEW: Compile JIT code with -O3.
2018-05-29 03:43:23 +02:00
gambas
a2b64b190a Work on new JIT system continues.
[COMPILER]
* NEW: Internal initialization functions now can be JIT translated.
* NEW: Support of subroutine calling completed. Interpreter subroutines are called if there is no optimization implemented in the JIT translation.

[INTERPRETER]
* NEW: Remove old JIT stuff.

[GB.JIT]
* NEW: Use 'gambas.h' and 'gb.jit.h' to compile translated code.
2018-05-28 03:18:44 +02:00
gambas
d797a545b6 [COMPILER]
* NEW: Work on JIT continues...
* NEW: Better panic errors.

[INTERPRETER]
* NEW: Remove the old JIT stuff.
* NEW: Calls gb.jit at runtime if needed. If a fast function has no jit implementation, the bytecode version is used.
* NEW: Start defining the JIT interface needed by the JIT functions.
* NEW: The common static character buffer is now twice the size of the maximum symbol length, to avoid possible overflows.

[GB.JIT]
* NEW: Compilation starts to work.
* NEW: Debugging messages.
2018-05-26 16:50:00 +02:00
gambas
cdc6d47922 Work continues on new JIT system.
[COMPILER]
* NEW: Work continues on new JIT system.

[INTERPRETER]
* NEW: Make comparison operator true functions so that they can be called by the JIT code.
2018-05-25 21:01:38 +02:00
gambas
e2a53d4a09 't' and 'tt' date format now return the correct timezone.
[INTERPRETER]
* BUG: 't' and 'tt' date format now return the correct timezone.
2018-05-25 12:17:30 +02:00
gambas
35e9859894 Correctly fix the READ instruction without leaking memory.
[INTERPRETER]
* BUG: Correctly fix the READ instruction without leaking memory.
2018-05-24 15:09:51 +02:00
gambas
ebd8963617 Continue working on the new jit system.
[COMPILER]
* NEW: Continue working on the new jit system.
* NEW: Initial support for arithmetic instructions.
2018-05-24 00:31:58 +02:00
gambas
b5edf09de9 Reading a fixed number of bytes with READ does not crash anymore if an "End of file" error is raised.
[INTERPRETER]
* BUG: Reading a fixed number of bytes with READ does not crash anymore if an "End of file" error is raised.
2018-05-23 20:39:16 +02:00
gambas
dfeb4243ab Continue working on the new jit system.
[COMPILER]
* NEW: Continue working on the new jit system.
2018-05-18 02:19:28 +02:00
gambas
f39f7063ef Start working on the new jit system.
[COMPILER]
* NEW: Start working on the new jit system.

[GB.JIT]
* NEW: Rename the component as 'gb.jit.llvm'.
2018-05-17 01:13:56 +02:00
gambas
14614f4e67 Check if the "-flto" link time optimzation flag is available.
[CONFIGURATION]
* BUG: Check if the "-flto" link time optimzation flag is available.
2018-05-08 18:44:31 +02:00
Tobias Boege
6a77f9f2c5 Only use tag in trunk_version.h if it is *exactly* that commit
[CONFIGURATION]
* BUG: Only use tag in trunk_version.h if it is *exactly* that commit
2018-05-05 18:07:50 +02:00
Tobias Boege
9ed904241f Print git tag instead of branch name in trunk_version.h if available
[CONFIGURATION]
* NEW: Print git tag instead of branch name in trunk_version.h if available
2018-05-05 17:56:29 +02:00
Tobias Boege
e4bfb99a47 Generate trunk_version.h with detached HEAD
[CONFIGURATION]
* BUG: Generate trunk_version.h with detached HEAD
2018-05-05 17:56:29 +02:00
gambas
43285550c6 UTF-8 string routines position cache now should behave correctly in all cases.
[INTERPRETER]
* BUG: UTF-8 string routines position cache now should behave correctly in all cases.
2018-04-20 18:26:52 +02:00
gambas
6712de717c Support for case sensitive schema names.
[GB.DB]
* BUG: Support for case sensitive schema names.

[GB.DB.POSTGRESQL]
* BUG: Support for case sensitive schema names.
2018-04-18 03:17:30 +02:00
gambas
87f546bb81 Correctly quote table names when using schemas.
[GB.DB]
* BUG: Correctly quote table names when using schemas.
2018-04-16 20:57:56 +02:00
gambas
4fdd272253 Correctly quote index fields when generating an UPDATE or DELETE request in Result.Save() and Result.Delete() methods.
[GB.DB]
* BUG: Correctly quote index fields when generating an UPDATE or DELETE request in Result.Save() and Result.Delete() methods.
2018-04-16 16:28:44 +02:00
gambas
de12caa1e7 Fix conversion between dates and their local string representation.
[INTERPRETER]
* BUG: Fix conversion between dates and their local string representation.
* OPT: Little optimization in conversion functions calls.

[GB.UTIL]
* BUG: Fix Date.ToUnixTime() and Date.FromUnixTime() according to the interpreter fix.
2018-04-09 18:58:11 +02:00
gambas
e07ac2e4f2 Connection.LastInsertId is a new property that returns the value of the serial field used in the last inserted row.
[GB.DB]
* NEW: Connection.LastInsertId is a new property that returns the value of the serial field used in the last inserted row. It is supported on MySQL, PostgreSQL and SQLite3 only.
* BUG: Connection.Handle is correctly declared now.

[GB.DB.MYSQL]
* NEW: Support for Connection.LastInsertId.

[GB.DB.ODBC]
* NEW: Raise an error if Connection.LastInsertId is used.

[GB.DB.POSTGRESQL]
* NEW: Support for Connection.LastInsertId.

[GB.DB.SQLITE2]
* NEW: Raise an error if Connection.LastInsertId is used.

[GB.DB.SQLITE3]
* NEW: Support for Connection.LastInsertId.
2018-03-20 16:05:33 +01:00
gambas
f47d63100c Raise an error if a object being freed has been referenced by its '_free' special method.
[INTERPRETER]
* NEW: Add a new message error for free object being referenced.
* NEW: Raise an error if a object being freed has been referenced by its '_free' special method.
* OPT: Add a boolean flag in the class structure not to try to call the '_free' special method if there is not.
2018-03-17 23:33:02 +01:00
gambas
900fee66d5 Update many project configuration files. 2018-03-16 14:13:21 +01:00
gambas
4c38b0f5c3 RDir() now works correctly when browsing executable directories.
[INTERPRETER]
* BUG: RDir() now works correctly when browsing executable directories.
2018-03-16 14:02:58 +01:00
gambas
b517994783 Years written with a initial zero digit are not converted to years between 1931 and 2030 if lower then 100.
[INTERPRETER]
* NEW: When formatting a date, the number of 'y' is now the minimum number of digits used for displaying the date year.
* NEW: When converting a string to a date with Val(), if the year begins with a zero character, then it is not converted to years between 1931 and 2030 if it is lower than 100.
2018-03-16 01:45:32 +01:00
gambas
d6b8c451c9 Raise a more explicit "No return value" error when trying to get the return value of a task that didn't return anything.
[INTERPRETER]
* BUG: Raise a more explicit "No return value" error when trying to get the return value of a task that didn't return anything.
2018-03-14 16:59:57 +01:00
gambas
043229a013 Result.GetAll() is a new method that returns an array of the values of a specific field from each record.
[INTERPRETER]
* NEW: New API for reference a Gambas string.

[GB.DB]
* NEW: Result.GetAll() is a new method that returns an array of the values of a specific field from each record. It is about twice faster than the equivalent code written in Gambas.
2018-03-07 22:06:02 +01:00
gambas
58ddc650ad Try to add some more static datatype analysis, but did not succed.
[COMPILER]
* NEW: Try to add some more static datatype analysis, but did not succed.
2018-03-03 03:14:11 +01:00
gambas
4ae717707e Forgot to commit the headers for MOD and DIV static datatype analysis.
[COMPILER]
* BUG: Forgot to commit the headers for MOD and DIV static datatype analysis.
2018-02-28 19:12:59 +01:00
gambas
b1f4574278 Really fix static datatype analysis of DIV and MOD operators.
[COMPILER]
* BUG: Really fix static datatype analysis of DIV and MOD operators.
2018-02-28 16:54:23 +01:00
gambas
98b4de489c Fix warning on boolean operators and static datatype analysis of DIV and MOD operators.
[COMPILER]
* BUG: Fix warning on boolean operators.
* BUG: Fix static datatype analysis of DIV and MOD operators.
2018-02-28 16:48:39 +01:00
gambas
d009f251ce Image.Invert() is a new method that inverts an image. It takes an optional boolean argument that indicates if the color hue must be kept.
[GB.IMAGE]
* NEW: Image.Invert() is a new method that inverts an image. It takes an optional boolean argument that indicates if the color hue must be kept.
2018-02-28 14:55:48 +01:00
gambas
00b0adb523 Don't raise an error when analyzing the AND, OR or XOR operator. Print a warning instead.
[COMPILER]
* NEW: Don't raise an error when analyzing the AND, OR or XOR operator.
* NEW: Print a warning if the AND, OR or XOR operator mix Boolean and Integer datatypes.
2018-02-28 14:07:24 +01:00
gambas
83e95184c1 Fix the AND, OR, and XOR operator. The AND, OR, XOR and NOT operator now can take a Date, that is converted to boolean.
[INTERPRETER]
* BUG: Fix the AND, OR, and XOR operator.
* NEW: The AND, OR, XOR and NOT operator now can take a Date, that is converted to boolean.
2018-02-28 14:05:45 +01:00
gambas
a93f5b3cc2 Writing to a stream does not crash anymore if the stream is closed while the data is sent in several shots.
[INTERPRETER]
* BUG: Writing to a stream does not crash anymore if the stream is closed while the data is sent in several shots. Socket stream implementation should not close the stream while writing. I will try to fix that later.
2018-02-23 04:01:56 +01:00
gambas
6e06250946 Use a power of two as internal coordinate scale.
[GB.CLIPPER]
* NEW: Use a power of two as internal coordinate scale.
2018-02-22 04:30:25 +01:00
gambas
6f06d516b3 Deleting a collection item while the collection is enumerated does not crash anymore.
[INTERPRETER]
* BUG: Deleting a collection item while the collection is enumerated does not crash anymore.
2018-02-20 23:00:17 +01:00
gambas
5487a3ca88 Fix a possible memory leak when using the Stream.End() method.
[INTERPRETER]
* BUG: Fix a possible memory leak when using the Stream.End() method.
2018-02-17 23:16:28 +01:00
gambas
d5c096f71e Fix parsing of quoted identifiers.
[COMPILER]
* BUG: Fix parsing of quoted identifiers.

[GB.EVAL]
* BUG: Fix parsing of quoted identifiers.
2018-02-17 20:41:39 +01:00
gambas
e39cfbf9da Fix Min() and Max() arguments datatype static checks, and some little differences with compiler sources.
[COMPILER]
* BUG: Fix Min() and Max() arguments datatype static checks.

[GB.EVAL]
* BUG: Fix some little differences with compiler sources.
2018-02-17 16:44:38 +01:00
gambas
3c8c5a2243 Fix an uninitialized flag in streams, that make watching real files from reading incorrectly raise the Read event.
[INTERPRETER]
* BUG: Fix an uninitialized flag in streams, that make watching real files from reading incorrectly raise the Read event.
2018-02-16 02:39:30 +01:00
gambas
76c314a0e6 Class.IsLoaded() is a new static method that returns if a specific class is loaded.
[INTERPRETER]
* NEW: Class.IsLoaded() is a new static method that returns if a specific class is loaded.
2018-02-14 17:41:31 +01:00
gambas
a2099dea77 Fix a warning message typo.
[COMPILER]
* BUG: Fix a warning message typo.
2018-02-14 17:07:06 +01:00
gambas
d1f6bc62c4 Add a warning for uninitialized local and private global variables.
[COMPILER]
* NEW: Add a warning for uninitialized local and private global variables.
2018-02-14 17:03:14 +01:00
gambas
ab89976564 Don't crash when building a collection with the bracket operator if one of the value is a class.
[INTERPRETER]
* BUG: Don't crash when building a collection with the bracket operator if one of the value is a class.
2018-02-12 23:45:27 +01:00
gambas
09a0573e61 Replace my old sourceforge mail address by the new one.
[CONFIGURATION]
Replace my old sourceforge mail address by the new one.
2018-02-12 02:53:46 +01:00
gambas
17834b13a6 Don't call QUIT when terminating a task, it crashes. Just clean up the temporary directory and exit.
[INTERPRETER]
* BUG: Don't call QUIT when terminating a task, it crashes. Just clean up the temporary directory and exit.
2018-01-28 17:57:13 +01:00
gambas
df26bab7c4 Correctly raise an error if a quoted identifier starting with '{' has no corresponding '}'.
[COMPILER]
* BUG: Correctly raise an error if a quoted identifier starting with '{' has no corresponding '}'.
2018-01-22 20:10:30 +01:00
gambas
477116942d Tasks do not print memory and objects clean up warnings anymore, and their output serialization file is now automatically destroyed.
[INTERPRETER]
* BUG: Remove the task output serialization file when it is freed.
* BUG: Tasks do not print memory and objects clean up warnings anymore.
2018-01-20 16:43:13 +01:00
gambas
dc9bdcfc87 When a task terminates, it now internally calls the QUIT instruction, so that everything is cleaned up.
[INTERPRETER]
* BUG: When a task terminates, it now internally calls the QUIT instruction, so that everything is cleaned up.
2018-01-19 01:56:13 +01:00
gambas
2a4383b3ad Fix symbol table binary string comparison for non-ASCII characters.
[INTERPRETER]
* BUG: Fix symbol table binary string comparison for non-ASCII characters.
2018-01-16 09:53:38 +01:00
gambas
319fb7175d Correctly initialize Connection object from Connections collection when that connection has been switched between sqlite and non-sqlite type from the IDE.
[GB.DB]
* BUG: Correctly initialize Connection object from Connections collection when that connection has been switched between sqlite and non-sqlite type from the IDE.
2018-01-14 23:16:03 +01:00
gambas
ce6d6e7e96 A table cannot have two fields whose names only differ by case anymore.
[GB.DB]
* NEW: Remove the 'no_case' database driver flag.
* NEW: A table cannot have two fields whose names only differ by case anymore.
2018-01-08 13:12:15 +01:00
gambas
e3f941c7e2 Use a dedicated stream for locks, and ignore Application.Busy when displaying a message box.
[DEVELOPMENT ENVIRONMENT]
* OPT: Don't load the help browser form immediately to speed up IDE starting.

[INTERPRETER]
* NEW: Use a dedicated stream for locks, so that the File object returned by LOCK cannot be used for reading or writing the locked file.

[GB.GTK]
* NEW: Ignore Application.Busy when displaying a message box.

[GB.GTK3]
* NEW: Ignore Application.Busy when displaying a message box.

[GB.QT4]
* NEW: Ignore Application.Busy when displaying a message box.

[GB.QT5]
* NEW: Ignore Application.Busy when displaying a message box.
2017-12-18 13:02:39 +01:00
gambas
2bb28545a5 LOCK instruction now can be used on existing files without clearing them.
[INTEPRRETER]
* NEW: LOCK instruction now can be used on existing files without clearing them.
2017-12-17 21:21:29 +01:00
gambas
dfb179b549 Component.Version now returns the full version of libraries.
[INTERPRETER]
* NEW: Component.Version now returns the full version of libraries.
2017-11-25 06:02:46 +01:00
gambas
8bf14d2a7e New properties for knowing if a component is a user library, and for getting its version.
[INTERPRETER]
* NEW: Component.Library is a new property that returns if a component is actually a user library.
* NEW: Component.Version is a new property that returns the version number of a loaded component. If the component is a user library, you get the version number of that library. Otherwise you get the current Gambas version.
2017-11-25 05:40:12 +01:00
gambas
36b16f18b3 Sort the internal project class list to make the contents of object files predictable.
[ARCHIVER]
* BUG: scandir() work is now correctly freed.

[COMPILER]
* NEW: Sort the internal project class list to make the contents of object files predictable.
2017-11-19 23:18:23 +01:00
gambas
39f93ddb37 The archiver now uses a predictable file order when creating an archive.
[ARCHIVER]
* BUG: The archiver now uses a predictable file order when creating an archive.
2017-11-19 02:29:59 +01:00
gambas
5e79f29fdc Fix some gcc compiler warnings.
[COMPILER]
* BUG: Fix some gcc warnings.

[GB.QT4]
* BUG: Clipboard.Paste() correctly converts image to ARGB premultiplied format.

[GB.QT5]
* BUG: Clipboard.Paste() correctly converts image to ARGB premultiplied format.

[GB.PCRE]
* BUG: Fix a gcc warning.
2017-11-10 20:35:27 +01:00
gambas
48b9e8ddad Highlight.Custom is a new constant that is the first integer constant that can be used for custom highlighting state.
[GB.EVAL]
* NEW: Highlight.Custom is a new constant that is the first integer constant that can be used for custom highlighting state.
2017-11-01 08:42:35 +01:00
gambas
9519c3dc52 Implement string comparison based on MATCH operator with the gb.Match constant.
[INTERPRETER]
* NEW: gb.Match is a new constant that indicates a string comparison using the PCRE MATCH operator.
* BUG: The gb.Descent flag could be erased when sorting objects implementing the '_compare' special method.
2017-10-21 01:19:27 +02:00
gambas
b8bb7e60c1 Fix internal renaming of overridden classes, and use the '^' character instead of '>' to name them.
[INTERPRETER]
* BUG: Fix internal renaming of overridden classes, and use the '^' character instead of '>' to name them.
2017-10-12 13:48:52 +02:00
gambas
e6495bcc5b READ instruction with a negtive length argument works correctly again.
[INTERPRETER]
* BUG: READ instruction with a negtive length argument works correctly again.
2017-10-10 18:49:15 +02:00
gambas
807f10b92b Allows newlines before a closing ']' in array/collection creation operator.
[COMPILER]
* NEW: Allows newlines before a closing ']' in array/collection creation operator.
2017-10-10 18:45:31 +02:00
gambas
55a1701759 Correctly attach newly created objects.
[INTERPRETER]
* BUG: Correctly attach newly created objects.
* BUG: Lof() should work correctly now on streams having a specific implementation of Lof() function.
2017-10-05 23:18:19 +02:00
gambas
6018b475b6 Oct$() is a new functions that converts an integer to its octal representation.
[COMPILER]
* NEW: Oct$() is a new functions that converts an integer to its octal representation.

[INTERPRETER]
* NEW: Oct$() is a new functions that converts an integer to its octal representation.
2017-10-05 04:11:00 +02:00
gambas
12d51ca863 New syntax for octal numbers: "&Oxxx".
[COMPILER]
* NEW: New syntax for octal numbers: "&Oxxx".

[INTERPRETER]
* NEW: New syntax for octal numbers: "&Oxxx".

[GB.EVAL]
* NEW: New syntax for octal numbers: "&Oxxx".
2017-10-05 03:17:13 +02:00
gambas
57820e6d44 Val() and Eval() now correctly read binary and hexadecimal numbers with the maximum number of digits.
[INTERPRETER]
* BUG: Val() and Eval() now correctly read binary and hexadecimal numbers with the maximum number of digits.
2017-10-05 03:01:44 +02:00
Benoît Minisini
86f8104bd4 Merge branch 'rework-stream-interface' into 'master'
Rework the interpreter stream management

See merge request gambas/gambas!15
2017-09-30 18:43:25 +00:00
gambas
6cdcb477fc Array construction operator now accepts class names as Variants.
[INTERPRETER]
* BUG: Array construction operator now accepts class names as Variants.
2017-09-29 04:14:08 +02:00
gambas
2953ea8d85 Fix error management that could lead to other potential crashes.
[INTERPRETER]
* BUG: Fix error management that could lead to other potential crashes.
2017-09-28 02:05:43 +02:00
gambas
8a30ff0ec3 Fix a crash when an error occurs inside a constructor that is called from another constructor.
[INTERPRETER]
* BUG: Fix a crash when an error occurs inside a constructor that is called from another constructor.
2017-09-28 01:20:35 +02:00
gambas
d2d36a7a76 Forgot to update the stream implementation structure in 'gambas.h'.
[INTERPRETER]
* BUG: Forgot to update the stream implementation structure in 'gambas.h'.
2017-09-27 21:31:10 +02:00
gambas
b17c977502 Fix internal stream buffer management, and STREAM_read_max() function.
[INTERPRETER]
* BUG: Fix internal stream buffer management, and STREAM_read_max() function.
2017-09-27 14:15:23 +02:00
gambas
aa67ba1309 Rework the stream interface, so that the stream read & write methods just have to actually read or write the data.
[INTERPRETER]
* NEW: Rework the stream interface, so that the stream read & write methods just have to actually read or write the data.
2017-09-27 02:48:00 +02:00
gambas
65c83f1407 Compile breakpoints for functions whose name begins with a '$'.
[COMPILER]
* BUG: Compile breakpoints for functions whose name begins with a '$'.
2017-09-26 01:49:57 +02:00
gambas
a489f435e7 gb.notify: don't crash anymore when releasing watches.
[INTERPRETER]
* NEW: Add an API that returns the first element of a hash table.

[GB.NOTIFY]
* BUG: Don't crash anymore when releasing watches.
2017-09-21 18:15:37 +02:00
gambas
9f6ec453fa TextEditor: If the cusor is at the end of the line, keep it there when the line is rewritten by the syntax highlighter.
[GB.FORM.EDITOR]
* BUG: TextEditor: If the cusor is at the end of the line, keep it there when the line is rewritten by the syntax highlighter.
2017-09-15 00:28:24 +02:00
gambas
98259f1d71 SqlRequest.Where() method now implicitely uses the AND operator.
[GB.DB]
* NEW: SqlRequest.Where() method now implicitely uses the AND operator.
2017-09-15 00:27:32 +02:00
gambas
6b9060885e Make MOVE '<source> KILL <target>' a synonymous of 'MOVE <source> DOWNTO <target>'.
[COMPILER]
* NEW: Make MOVE '<source> KILL <target>' a synonymous of 'MOVE <source> DOWNTO <target>'.
2017-09-12 16:30:00 +02:00
gambas
82c94e87a4 Dir() does not loop indefinitely anymore when browsing an archive file with a void pattern.
[INTERPRETER]
* BUG: Dir() does not loop indefinitely anymore when browsing an archive file with a void pattern.
2017-09-09 01:31:57 +02:00
gambas
ce5780c916 Define an explicit accurate QImage constructor so that effect methods do not crash anymore.
[GB.IMAGE.EFFECT]
* BUG: Define an explicit accurate QImage constructor so that effect methods do not crash anymore.
2017-09-08 02:11:09 +02:00
gambas
fcfb16b779 [INTERPRETER]
* OPT: RDir() now does less stat() system calls, by assuming that the number of hard links of a directory is its number of sub-directories plus two.
  Scanning my home directory calls stat() about 640,000 times instead of 715,000 before. About a 10% gain.
2017-09-01 04:22:08 +02:00
gambas
7d6cf08a4b Some fixes in Format$() function.
[INTERPRETER]
* BUG: Translate comments in english.
* BUG: Take '\' escape character into account correctly in format strings.
* BUG: Remove undocumented feature in format strings.
2017-08-30 20:40:17 +02:00
gambas
bf48f40f5c [DEVELOPMENT ENVIRONMENT]
* NEW: Add support for gb.gui.qt.opengl.
* NEW: Update french translation.

[GB.GUI.QT.OPENGL]
* NEW: New Qt OpenGL switcher component.
2017-08-29 00:42:58 +02:00
gambas
0abba10995 Switcher component are now more clever, and support the lack of gb.qt4.
[INFORMER]
* NEW: Components now can include information for a list of alternatives component. The first one available will be included.

[GB.GUI]
* NEW: Includes information of the first available gui component.

[GB.GUI.OPENGL]
* NEW: Includes information of the first available gui OpenGL component.

[GB.GUI.QT]
* NEW: Includes information of the first available Qt component.

[GB.GUI.QT.WEBKIT]
* NEW: Includes information of the first available Qt webkit component.
2017-08-29 00:38:43 +02:00
gambas
21bf519dc9 Don't use CLOCK_MONOTONIC_RAW if the constant is not defined.
[INTERPRETER]
* BUG: Don't use CLOCK_MONOTONIC_RAW if the constant is not defined.
2017-08-28 22:08:48 +02:00
gambas
f8358c6fa1 Initialize pseudo-terminal with ICRNL too.
[INTERPRETER]
* BUG: Initialize pseudo-terminal with ICRNL too.
2017-08-28 19:04:25 +02:00
gambix
fca930e139 [GB.TERM.FORM]
* OPT: Make the object placement more logical. the 0,0 pos now
       is the left corner after the border.
* NEW: Add the showmodal function
2017-08-26 20:25:52 +02:00
gambas
359471cc30 Initialize master terminal of processes run inside a pseudo-terminal before forking.
[INTEPRETER]
* NEW: Initialize master terminal of processes run inside a pseudo-terminal before forking.
2017-08-26 13:11:59 +02:00
gambas
f1abbae64d Support for TermForms in the compiler.
[COMPILER]
* NEW: Add support for terminal forms ('*.termform' file extension).
2017-08-24 20:17:08 +02:00
gambas
f45192abb2 Fix pseudo-terminal management again. Now processes run through a terminal set the ECHO flag, and do not clear the OCRNL flag.
[INTERPRETER]
* NEW: Initialize pseudo-terminals with ECHO and don't clear OCRNL flag. This is not compatible with previous versions, as now, by default, printing a NL will become CR+NL through the pseudo-terminal.
  But I didn't succeed in modifying the pseudo-terminal reliably once the child has started. It sometimes fails silently.
* NEW: Check the result of tcsetattr() carefully, as it returns an error only if none of the flags has been set, not just one.

[GB.TERM]
* NEW: Check the result of tcsetattr() carefully, as it returns an error only if none of the flags has been set, not just one.

[GB.FORM.TERMINAL]
* OPT: TerminalView: Reorder some tests in escape codes analyze.
* NEW: TerminalView: The mouse wheel now sends up and down keys when we are not in mouse mode, and if there is nothing to scroll.
2017-08-23 18:10:58 +02:00
gambas
f05e6bc0ca Fix the TerminalView control again, and the way processes are run in pseudo-terminals.
[DEVELOPMENT ENVIRONMENT]
* BUG: Terminal: Replace "\n" by "\r\n" when sending text to the output terminal.

[INTERPRETER]
* NEW: When a process is run with a pseudo-terminal, don't set the ECHO flag, and clear the ONLCR flag.
  That way, the data printed on the standard output is the same as when the process is not run in a pseudo-terminal.

[GB.FORM.TERMINAL]
* BUG: TerminalView: Output filter now works correctly when it receives incomplete data.
* OPT: TerminalViews: Resize the terminal less often when the terminal view is resized.
* NEW: TerminalView: When a process is run inside the terminal, set the ECHO and ONLCR flags automatically.
2017-08-22 13:20:26 +02:00
gambas
69b4eb60c7 Remove a debugging message.
[GB.TERM]
* BUG: Remove a debugging message.
2017-08-22 01:15:11 +02:00
Benoît Minisini
46f31edffc Merge branch 'fix-nested-withs' into 'master'
[COMPILER] Fix Nested WITHs expression evaluation.

See merge request !1
2017-08-21 22:20:24 +00:00
gambas
ba37aa6da7 Fix pseudo-terminal initialization when running an external process with Exec or Shell.
[INTERPRETER]
* BUG: Fix pseudo-terminal initialization when running an external process with Exec or Shell.

[COMPILER]
* BUG: Fix a typo in 'gbc_trans.h' header.
2017-08-21 13:57:40 +02:00
gambas
91de2cccd5 Flush the process outputs when it stops immediately after having been launched.
[INTERPRETER]
* BUG: Flush the process outputs when it stops immediately after having been launched.
2017-08-21 01:45:59 +02:00
gambas
38a60179aa Fix Process.Wait() (remove debugging messages). 2017-08-18 13:19:10 +02:00
gambas
e1a5412f4f Fix Process.Wait()
[INTERPRETER]
* BUG: Process.Wait() does not freeze anymore when the child process actually ends before checking the end of the process just after having run it.
2017-08-18 13:15:03 +02:00
Benoît Minisini
04175a1ca6 Merge branch 'cygwin' into 'master'
Cygwin changes for 3.10.0

See merge request !3
2017-08-17 10:46:13 +00:00
Tobias Boege
48c951987b [CONFIGURATION]
* NEW: Add (short) commit hash and branch name to gb{a,c,i,x}3 --version when compiled from git
2017-08-15 11:58:48 +02:00
Laurent Carlier
e78a7fae66 Add more generated files to .gitignore, remove them from the repository 2017-08-15 08:03:17 +02:00
bgermann
4331a20835 leave out features not available in Cygwin
[GB.TERM]
* NEW: use preprocessor to leave out features not available in Cygwin
2017-08-14 23:19:01 +02:00
Laurent Carlier
8dc6679530 Remove 'missing' file ,generated by autotools, from the repository 2017-08-13 16:13:06 +02:00
Adrien Prokopowicz
72ddc85f52 [COMPILER]
* BUG: The WITH's expression is now evaluated before entering the WITH's scope.
2017-08-12 18:12:13 +00:00
Benoît Minisini
47aa838ba2 [DEVELOPMENT ENVIRONMENT]
* OPT: Editor: Some optimizations in identifier completion.
* NEW: Image editor: Add an opacity effect.
* NEW: Update backround images.

[WEBSITE MAKER]
* NEW: Update to 3.10 version.

[WIKI]
* NEW: The '{@classes}' command can take arguments to add custom classes to the list of classes.


git-svn-id: svn://localhost/gambas/trunk@8175 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-08-12 09:15:57 +00:00
Benoît Minisini
a3410b006f [INTERPRETER]
* NEW: Collection.First is a new property that returns the key of the first element of the collection, or NULL if the collection is void.
* NEW: Collection.Last is a new property that returns the key of the last element of the collection, or NULL if the collection is void.


git-svn-id: svn://localhost/gambas/trunk@8174 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-08-08 12:33:47 +00:00
Benoît Minisini
986e7eeb85 [INTERPRETER]
* NEW: Add an API that allows to create an array class before instanciating it.

[GB.DBUS]
* BUG: When marshalling from DBus to Gambas, create the array classes before instanciating them.


git-svn-id: svn://localhost/gambas/trunk@8173 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-08-07 13:51:33 +00:00
Benoît Minisini
d42a49b57d [CONFIGURATION]
* NEW: Switch version to 3.10.90.

[GB.DB]
* NEW: Connection.TimeZone is new property that will allow to define the default timezone of dates stored in the database we are connected to. Not implemented yet.


git-svn-id: svn://localhost/gambas/trunk@8168 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-07-24 18:53:33 +00:00
Benoît Minisini
5189530aaf [INTERPRETER]
* BUG: Don't raise events just after a process has been started and has just been terminated. Postpone them.


git-svn-id: svn://localhost/gambas/trunk@8142 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-06-09 23:00:45 +00:00
Benoît Minisini
cbfcb9fb00 [INTERPRETER]
* BUG: Check if linking with 'librt' is needed to get monotonic clock.


git-svn-id: svn://localhost/gambas/trunk@8139 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-05-26 12:26:39 +00:00
Benoît Minisini
cfacf387ec [CONFIGURATION]
* NEW: Add a autoconf check for monotonic clock.

[INTERPRETER]
* BUG: Use a monotonic clock (if possible) to implement the WAIT instruction.


git-svn-id: svn://localhost/gambas/trunk@8138 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-05-26 00:20:40 +00:00
Benoît Minisini
c4bdedb4d4 [COMPILER]
* BUG: Oops, forgot to remove a debugging flag.


git-svn-id: svn://localhost/gambas/trunk@8130 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-04-27 13:46:49 +00:00
Benoît Minisini
c20cbb7972 [COMPILER]
* NEW: New instruction MOVE ... DOWNTO ... that renames a file and erase the destination atomically.

[INTERPRETER]
* NEW: New instruction MOVE ... DOWNTO ... that renames a file and erase the destination atomically.
* BUG: The signal handler now loops until the signal pipe is void.


git-svn-id: svn://localhost/gambas/trunk@8129 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-04-27 13:18:35 +00:00
Benoît Minisini
1184d41881 [INTERPRETER]
* BUG: Fix a possible bad serialization of arrays.
* BUG: Don't crash during the unserialisation of an array whose datatype has been incorrectly serialized. Raise an error instead.


git-svn-id: svn://localhost/gambas/trunk@8110 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-03-18 12:14:01 +00:00
Benoît Minisini
e68cad85c4 [INTERPRETER]
* NEW: Steam.Watch() is a new method that allows to watch/unwatch a stream for reading and/or writing after it has been opened.


git-svn-id: svn://localhost/gambas/trunk@8104 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-25 23:10:45 +00:00
Benoît Minisini
82eddfd5c9 [CONFIGURATION]
* NEW: Remove all 'depcomp' files. Apparently they are not used anymore by autoconf.

[INTERPRETER]
* BUG: Fix some gcc 6 warnings.

[GB.DEBUG]
* BUG: Fix some gcc 6 warnings.

[GB.GTK]
* BUG: Fix some gcc 6 warnings.
* BUG: Fix a ';' mistake in a focus management test.

[GB.GTK3]
* BUG: Fix some gcc 6 warnings.
* BUG: Fix a ';' mistake in a focus management test.

[GB.IMAGE]
* BUG: Fix some gcc 6 warnings.


git-svn-id: svn://localhost/gambas/trunk@8101 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-18 17:24:01 +00:00
Benoît Minisini
661accb890 [INTERPRETER]
* NEW: The GB.SystemHasForked() API now resets the pseudo-random number generator, and the signal handler management pipe.


git-svn-id: svn://localhost/gambas/trunk@8089 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-11 01:00:44 +00:00
Benoît Minisini
5e49bfbd90 [GB.DB.SQLITE2]
* BUG: Make component compile with gcc 6.

[INTERPRETER]
* BUG: Include <cmath> instead of <math.h> for components written in C++, so that they compile with gcc 6.

[GB.GTK]
* BUG: Make component compile with gcc 6.

[GB.GTK3]
* BUG: Make component compile with gcc 6.

[GB.QT4]
* BUG: Make component compile with gcc 6.

[GB.QT5]
* BUG: Make component compile with gcc 6.


git-svn-id: svn://localhost/gambas/trunk@8088 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-07 00:08:22 +00:00
Benoît Minisini
cf6eb94ebd [INTERPRETER]
* BUG: Detection of svn commit version now works with older version of subversion.


git-svn-id: svn://localhost/gambas/trunk@8064 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-25 22:30:19 +00:00
Benoît Minisini
b225eba20f [CONFIGURATION]
* NEW: Update copyright year in all source files.


git-svn-id: svn://localhost/gambas/trunk@8056 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-13 03:29:42 +00:00
Benoît Minisini
f0f6dc3261 [INTERPRETER]
* BUG: Automatically restart mkfifo() and open() system calls when executing the PIPE instruction.


git-svn-id: svn://localhost/gambas/trunk@8053 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-13 03:22:35 +00:00
Benoît Minisini
6950a075f0 [INTERPRETER]
* BUG: Tasks do not inherit signal handler pipe anymore, they recreate it instead. Otherwise you have interferences with the parent process of the task, and some signals are lost.
* BUG: Buffered streams now take the internal stream flag "available_now" into account. No idea why that was disabled.
* BUG: Standard streams now set the internal stream flag "available_now" if they are not connected to a terminal. Which may not be necessarily accurate, so it is a temporary change.


git-svn-id: svn://localhost/gambas/trunk@8052 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-11 16:57:44 +00:00
Benoît Minisini
61b5676b6a [GB.TERM]
* BUG: Fix local and control flags of terminal settings.


git-svn-id: svn://localhost/gambas/trunk@8048 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-07 22:35:34 +00:00
Benoît Minisini
d5f1ac948c [DEVELOPMENT ENVIRONMENT]
* NEW: Update french translation.
* NEW: Support for the new gb.term component.

[INTERPRETER]
* NEW: Add an API that returns the file descriptor associated with a specific stream.

[GB.TERM]
* NEW: New component for terminal management with an API very close to the one provided by the operating system.


git-svn-id: svn://localhost/gambas/trunk@8043 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-07 00:58:20 +00:00
Benoît Minisini
c4d22f9d24 [INTERPRETER]
* BUG: Forbid continuing and stay in debugger when an unhandled error is raised. This prevent crashes when an error occurs during variable initialization.


git-svn-id: svn://localhost/gambas/trunk@8031 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-12-31 12:02:58 +00:00
Benoît Minisini
4e887b93b3 [INTERPRETER]
* BUG: Do not crash anymore when converting a pointer to an anonymous object. Raise an error instead.


git-svn-id: svn://localhost/gambas/trunk@8030 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-12-31 12:01:12 +00:00
Benoît Minisini
3a954eec2c [CONFIGURATION]
* BUG: Correctly detect update of svn database for generating trunk version file.


git-svn-id: svn://localhost/gambas/trunk@8005 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-30 11:16:28 +00:00
Benoît Minisini
f2717c4ae8 [INTERPRETER]
* BUG: Remove debugging messages.


git-svn-id: svn://localhost/gambas/trunk@7998 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-27 02:44:07 +00:00
Benoît Minisini
7989d44979 [INTERPRETER]
* BUG: Close watched process input & outputs as soon as it is killed. Otherwise, running two processes using virtual terminals successively may fail.


git-svn-id: svn://localhost/gambas/trunk@7997 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-27 02:43:15 +00:00
Benoît Minisini
b2b31e7fd0 [GB.INOTIFY]
* BUG: Don't assume inotify_add_watch() succeeds in all cases. The watched path may have been deleted after the watch has been created.


git-svn-id: svn://localhost/gambas/trunk@7996 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-26 22:55:53 +00:00
Benoît Minisini
4aa7d6a268 [INTERPRETER]
* BUG: Debugger does not crash anymore when displaying a static collection-like object.


git-svn-id: svn://localhost/gambas/trunk@7995 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-24 23:58:11 +00:00
Benoît Minisini
1cf354061c [INTERPRETER]
* BUG: Make CStr() and CDate() mutually coherent, by internally converting to UTC dates only.


git-svn-id: svn://localhost/gambas/trunk@7983 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-18 14:50:40 +00:00
Benoît Minisini
043ee62a7c [DEVELOPMENT ENVIRONMENT]
* NEW: Debugger: Use the 'gb.signal' component to send signals to debugged processes.
* BUG: Debugger: Correctly pause projects using an external terminal.

[GB.SIGNAL]
* NEW: Signal.Send() is a new method to send signals to processes. It is just a direct interface to the kill() system call.


git-svn-id: svn://localhost/gambas/trunk@7982 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-17 16:12:28 +00:00
Benoît Minisini
f79951fe9f [GB.DB]
* BUG: Connection.ApplyTemplate() now correctly handles a collation whose name is "default" in the template file.


git-svn-id: svn://localhost/gambas/trunk@7941 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-10-29 01:38:56 +00:00
Benoît Minisini
cf467669a0 [GB.INOTIFY]
* BUG: Creating a watch with a null path now raises an error instead of crashing.


git-svn-id: svn://localhost/gambas/trunk@7940 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-10-29 01:35:40 +00:00
Benoît Minisini
5d34538e33 [INTERPRETER]
* BUG: Exec with a null program name does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@7939 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-10-28 10:12:09 +00:00
Benoît Minisini
1b673641f3 [INTERPRETER]
* BUG: Timer delay is now stored in 31 bits, and so can now be up to 2^31 - 1 milliseconds, i.e. about 24 days, 20 hours and 31 seconds.


git-svn-id: svn://localhost/gambas/trunk@7925 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-10-05 15:28:40 +00:00
Benoît Minisini
97b8bc2056 [INTERPRETER]
* BUG: The translation file of the project is now always correctly loaded. That was a very old bug.


git-svn-id: svn://localhost/gambas/trunk@7919 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-10-01 22:32:42 +00:00
Benoît Minisini
236a3a191e [INTERPRETER]
* BUG: Define "__STDC_FORMAT_MACROS" macro in 'gb_common.h', so that C++ source files using '<inttypes.h>' compile even with old gcc versions.


git-svn-id: svn://localhost/gambas/trunk@7891 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-09-05 15:55:03 +00:00
Benoît Minisini
dd180e03ee [COMPILER]
* BUG: Fix internal datatype analyze. The compiler should not crash anymore on ARM.

[GB.DB.ODBC]
* BUG: Fix a 32-bits 'sprintf' format bug.

[GB.IMAGE.IO]
* BUG: Fix a 32-bits 'sprintf' format bug.

[GB.XML]
* BUG: Fix a 32-bits 'sprintf' format bug.


git-svn-id: svn://localhost/gambas/trunk@7887 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-09-03 23:45:59 +00:00
Benoît Minisini
4d50dead00 [INTERPRETER]
* BUG: Correctly call static event handlers when an event is raised.


git-svn-id: svn://localhost/gambas/trunk@7884 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-09-01 22:10:26 +00:00
Benoît Minisini
0b222b1a99 [INTERPRETER]
* BUG: Fix detection of errors occuring inside interpreter API.


git-svn-id: svn://localhost/gambas/trunk@7879 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-30 22:26:15 +00:00
Benoît Minisini
531e7c3e90 [GB.FORM]
* BUG: MenuButton: Take foreground color into account correctly.
* BUG: MenuButton: Clip text so that arrow is always clearly visible.
* BUG: MenuButton: Take the Design property into account correctly.


git-svn-id: svn://localhost/gambas/trunk@7864 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-26 00:21:27 +00:00
Benoît Minisini
60dff96936 [DEVELOPMENT ENVIRONMENT]
* NEW: Database connection: Now you can initialize a new database from the template of another connection of the project.


git-svn-id: svn://localhost/gambas/trunk@7850 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-19 19:43:56 +00:00
Benoît Minisini
c019b07f40 [CONFIGURATION]
* NEW: Force symbolic link creation.

[GB.WEB]
* BUG: Fix Session.Keys for SQLite sessions.

[GB.IMAGE]
* BUG: Image.Desaturate() now works correctly on image alpha channel.


git-svn-id: svn://localhost/gambas/trunk@7847 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-18 18:59:19 +00:00
Benoît Minisini
86fe572568 [GB.DB]
* BUG: Fix a memory leak in blob handling when using a PostgreSQL database.


git-svn-id: svn://localhost/gambas/trunk@7841 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-16 17:25:46 +00:00
Benoît Minisini
34df9f3d4c [INTERPRETER]
* NEW: When searching a relative path inside an archive, ignore trailing slashes: "foo/bar/" and "/foo/bar//" are now the same as "foo/bar".


git-svn-id: svn://localhost/gambas/trunk@7837 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-13 14:58:28 +00:00
Benoît Minisini
e71801407c [INTERPRETER]
* NEW: Process.CloseInput() is a new method that explicitly closes the process input, as if you send a CTRL+D from the shell. This implements the old process stream closing behaviour that was removed in revision #7622.


git-svn-id: svn://localhost/gambas/trunk@7833 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-10 18:37:25 +00:00
Benoît Minisini
5355d8b955 [DEVELOPMENT ENVIRONMENT]
* NEW: The run button has a pop-up menu button only if at least one argument list has been defined in the project properties.
* NEW: Project property dialog: if the argument lists order changes, the current argument list index follows.

[GB.FORM]
* NEW: MenuButton: If no arrow is visible, and if no menu is defined, then the MenuButton raises the Click event.

[GB.WEB]
* NEW: Session.Type defines which kind of session store to use. At the moment, two are implemented. Session.File (the old one), and Session.Sqlite (based on a sqlite database).

[GB.WEB.FORM]
* BUG: Remove some debugging messages.


git-svn-id: svn://localhost/gambas/trunk@7829 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-07-22 22:12:35 +00:00
Benoît Minisini
2a3ecf982d [DEVELOPMENT ENVIRONMENT]
* NEW: Project property dialog: New project arguments interface.
* NEW: Debugger: The project arguments is now selectable with a popup menu.
* BUG: Fix position history behaviour.

[INTERPRETER]
* NEW: Object.Type(), Object.Class() and Object.Is() now work with invalid objects.

[GB.FORM]
* NEW: Completion: Support for TextArea editor.
* NEW: Completion: Editor property is now writable.
* NEW: TableView: Raise a new Hide event when the editor is hidden.

[GB.FORM.EDITOR]
* NEW: TextEditor: CursorAt() is a new method that returns the cursor screen position from a line and a column.

[GB.GTK]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.

[GB.GTK3]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.

[GB.GUI.BASE]
* BUG: GridView: Newlines in cells with WordWrap property set are now taken into account correctly.

[GB.QT4]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.

[GB.QT5]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.


git-svn-id: svn://localhost/gambas/trunk@7825 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-07-18 03:01:59 +00:00
Benoît Minisini
8647a12953 [CONFIGURATION]
* NEW: Search libffi in more directories to find it on CentOS.

[DEVELOPMENT ENVIRONMENT]
* NEW: Mark PlaceHolder properties as translatable.
* NEW: Make font smaller in autocompletion help.
* BUG: Reset class symbol list everytime its source file is modified.
* BUG: Form editor: Renaming a selected control does not crash anymore.
* NEW: Custom drawing for WebButton controls.
* NEW: Cleaning a project directory now deletes valgrind output files.
* NEW: "--cleanup" is a new command-line option to clean a project directory.

[GB.WEB.FORM]
* NEW: Let the IDE draw WebButton controls.
* NEW: Draw WebHtml controls using TextLabel.
* NEW: Draw WebScrollView controls using ScrollView.


git-svn-id: svn://localhost/gambas/trunk@7820 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-07-15 15:13:10 +00:00
Benoît Minisini
62863d13f4 [GB.IMAGE]
* BUG: ImageStat() now return the correct dimenstions of JPEG images.


git-svn-id: svn://localhost/gambas/trunk@7813 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-07-10 02:09:55 +00:00
Benoît Minisini
2d5e1ac26a [INTERPRETER]
* BUG: The error backtrace is now reset only when raising a new error. Consequently, the information is now kept when an error is propagated.


git-svn-id: svn://localhost/gambas/trunk@7807 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-07-07 08:50:33 +00:00
Benoît Minisini
c324389180 [COMPILER]
* NEW: Rename the internal class initialization method from "$load" to "@load", so that the valid identifier "$load" can be freely used by the user.


git-svn-id: svn://localhost/gambas/trunk@7797 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-06-07 00:08:11 +00:00
Benoît Minisini
f01ea65084 [INTERPRETER]
* BUG: Fix a possible misuse of kill() when calling Process.Kill().


git-svn-id: svn://localhost/gambas/trunk@7792 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-31 12:11:35 +00:00
Benoît Minisini
9779e9b105 [INTERPRETER]
* NEW: The Stream class now can raise a Resize event. Only the standard input stream (File.In) can raise it.
* NEW: If the startup class defines an Application_Read() or an Application_Resize() event handler, then the standard input stream is attached to it with the "Application" event name, so that these event handlers are used. Otherwise, the standard input stream must be attached and watched manually.


git-svn-id: svn://localhost/gambas/trunk@7785 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-22 22:03:16 +00:00
Benoît Minisini
7c4220f210 [GB.FORM]
* BUG: FileView: Enable/disable file watches on Show/Hide events.
* BUG: DirView: Enable/disable file watches on Show/Hide events.


git-svn-id: svn://localhost/gambas/trunk@7771 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-07 14:28:09 +00:00
Benoît Minisini
535fa6bea3 [GB.INOTIFY]
* BUG: Forgot to commit a source file.


git-svn-id: svn://localhost/gambas/trunk@7768 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-07 00:55:08 +00:00
Benoît Minisini
7fc3acc849 [GB.INOTIFY]
* BUG: Now you can create as many watches on the same path as you want.
* NEW: Consequently, the Watch[] static array accessor, that returned the watch associated with a path, had to be removed.
* NEW: The flags constants and the Watch.Events property are now associated with the Gambas events, not the internal inotify events.


git-svn-id: svn://localhost/gambas/trunk@7766 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-06 23:03:28 +00:00
Benoît Minisini
d15a425953 [DEVELOPMENT ENVIRONMENT]
* NEW: Finish the redesign of the debug panel.

[INTERPRETER]
* BUG: Fix a stack mismatch leading to a crash in Eval() when an "Unknown symbol" error occurs.

[GB.FORM]
* BUG: SidePanel: The Hide event is now raised after the SidePanel has been actually hidden.


git-svn-id: svn://localhost/gambas/trunk@7754 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-04 01:38:46 +00:00
Benoît Minisini
89339bf9d5 [INTERPRETER]
* BUG: Don't raise the write callback associated with a watched file descriptor if the read callback has disabled it.


git-svn-id: svn://localhost/gambas/trunk@7748 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-27 00:05:54 +00:00
Benoît Minisini
3ce6340a09 [INTERPRETER]
* NEW: GB.GetArrayType() is a new API that returns the datatype of the elements of an array class.


git-svn-id: svn://localhost/gambas/trunk@7746 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-15 21:11:19 +00:00
Benoît Minisini
eb16cc10aa [INTERPRETER]
* BUG: Remove the redefinition of NULL constant in C++ sources.


git-svn-id: svn://localhost/gambas/trunk@7741 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-13 21:20:13 +00:00
Benoît Minisini
5366f3391e [INTERPRETER]
* BUG: Fix the GB.Every() API that does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@7739 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-13 19:57:48 +00:00
Benoît Minisini
f73ceed778 [INTERPRETER]
* NEW: Stream.Term.Width and Stream.Term.Height are two new properties that return the size of the terminal associated with the stream, if any.
* NEW: As soon as the terminal size is read on any stream with the previous properties, the SIGWINCH signal is watched, and the Application_Resize() public method of the startup class is called each time this signal is catched, meaning that the terminal has been resized.


git-svn-id: svn://localhost/gambas/trunk@7735 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-10 13:10:25 +00:00
Benoît Minisini
ebe3fdaf0c [INTERPRETER]
* BUG: Subst$() now does not crash anymore when its result is a void string.


git-svn-id: svn://localhost/gambas/trunk@7726 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-06 13:19:14 +00:00
Benoît Minisini
e6c400c46c [INTERPRETER]
* BUG: Fix 'gambas.h' header for new version of gcc.


git-svn-id: svn://localhost/gambas/trunk@7715 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-03 11:40:08 +00:00
Benoît Minisini
ff7bbe8a21 [DEVELOPMENT ENVIRONMENT]
* NEW: Add 'gb.form.terminal' to the component list.
* NEW: New component status icons.

[INTERPRETER]
* BUG: Correctly export Stream.Term description.
* NEW: Stream.Term.FlowControl is a new property that allows to set or retrieve if flow control is enabled on a terminal stream.

[GB.GTK]
* NEW: Change the name of 'NewChild' event argument.

[GB.GTK3]
* NEW: Change the name of 'NewChild' event argument.

[GB.QT4]
* NEW: Change the name of 'NewChild' event argument.

[GB.QT5]
* NEW: Change the name of 'NewChild' event argument.

[GB.FORM.TERMINAL]
* NEW: Support for the 'Set title' command.
* NEW: TerminalView now emits the Title event when the terminal requests a title change.
* NEW: Support for flow control. When output is suspended, the terminal contents becomes darker.
* BUG: Correctly update the scrollbar when switching between screens.


git-svn-id: svn://localhost/gambas/trunk@7714 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-03 10:54:21 +00:00
Benoît Minisini
d7e88bf641 [INTERPRETER]
* BUG: Fix a possible crash in String.Code().

[GB.FORM.TERMINAL]
* OPT: Compress the attribute array associated with each line.
* OPT: Drawing line routine uses the JIT compiler.



git-svn-id: svn://localhost/gambas/trunk@7701 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 19:06:03 +00:00
Benoît Minisini
79a4ea2a70 [INTERPRETER]
* BUG: Fix a crash on one error message thrown incorrectly.

[GB.FORM.TERMINAL]
* OPT: Optimize drawing routine. Still slow, but less flicker.
* NEW: TerminalView: Add a blink property that enables or disables cursor blink.

[GB.GTK]
* BUG: Use cairo_paint() instead of cairo_fill() when Paint.Operator is not Paint.OperatorOver. Is it a Cairo bug?

[GB.GTK3]
* BUG: Use cairo_paint() instead of cairo_fill() when Paint.Operator is not Paint.OperatorOver. Is it a Cairo bug?


git-svn-id: svn://localhost/gambas/trunk@7698 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 09:25:11 +00:00
Benoît Minisini
342848f9e1 [INTERPRETER]
* NEW: Stream.Term.Echo is a new property that allows to enable or disable the terminal echo mode.

[GB.FORM.EDITOR]
* NEW: Screen management splitted from TerminalView. TerminalView has two screens now. Switch between screens is not implemented yet.


git-svn-id: svn://localhost/gambas/trunk@7674 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 08:54:02 +00:00
Benoît Minisini
83f7f6677e [INTERPRETER]
* NEW: Stream.IsTerm is a new property that returns if a stream is a terminal.
* NEW: Stream.Term.Resize() is a new method that resizes a terminal.


git-svn-id: svn://localhost/gambas/trunk@7669 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-26 13:09:20 +00:00
Benoît Minisini
625888d44d [INTERPRETER]
* NEW: Timer: The constructor now takes the delay as optional parameter. And if that delay is specified, the timer is automatically started.

[GB.FORM.TERMINAL]
* NEW: TerminalView: internal control that only deals with displaying the terminal contents.


git-svn-id: svn://localhost/gambas/trunk@7664 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-25 13:06:09 +00:00
Benoît Minisini
31625057b2 [INTERPRETER]
* BUG: Fix declaration of CLASS_DESC_SYMBOL structure. The JIT compiler does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@7663 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-23 23:31:42 +00:00
Benoît Minisini
bd22007651 [INTERPRETER]
* BUG: Ignore EINPROGRESS and EAGAIN error codes when closing a file descriptor.


git-svn-id: svn://localhost/gambas/trunk@7658 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-23 02:58:13 +00:00
Benoît Minisini
1db9d8df47 [INTERPRETER]
* NEW: Add a symbol table optimization that is disabled because it's not worth it.
* OPT: Force inlining of functions in symbol tables routines.
* OPT: A little optimization on routine string argument extraction.


git-svn-id: svn://localhost/gambas/trunk@7650 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-20 18:29:12 +00:00
Benoît Minisini
4c3370908c [COMPILER]
* NEW: Work on internal expression datatype analyze has continued.
* OPT: Compiling syntax trees is faster now.

[INTERPRETER]
* OPT: Analyzing objects a method or a property applies to is faster now.
* NEW: Remove an unused method in table symbol implementation.


git-svn-id: svn://localhost/gambas/trunk@7647 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-20 01:27:31 +00:00
Benoît Minisini
5b75185c3a [COMPILER]
* OPT: Compile is now compiled with -O3 optimizations.
* OPT: Reserved words built-in symbol table is faster now.
* NEW: Initial support for expression datatype analyze. Some new errors are raised at compilation time, like using a string with the AND operator for example. The datatype analyzer is rougher than the IDE one because it is local to the compile class.
* OPT: Symbol table search is a bit faster.


git-svn-id: svn://localhost/gambas/trunk@7632 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-14 01:40:50 +00:00
Benoît Minisini
214ce4f43e [INTERPRETER]
* BUG: Collection methods now always update the Key property, being called normally or from the debugger.
* BUG: The debugger now sends the current key when enumerating collection keys.


git-svn-id: svn://localhost/gambas/trunk@7627 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-11 23:44:26 +00:00
Benoît Minisini
cd9324c68e [INTERPRETER]
* BUG: Correctly detect error when closing a process stream.
* BUG: Ignore EBADF errors when closing a stream. It means that the underlying file descriptor has already been closed.


git-svn-id: svn://localhost/gambas/trunk@7624 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-08 20:24:24 +00:00
Benoît Minisini
a3ada1b09d [INTERPRETER]
* BUG: Undo r7620 change.


git-svn-id: svn://localhost/gambas/trunk@7623 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-08 20:05:45 +00:00