Commit graph

148 commits

Author SHA1 Message Date
Benoît Minisini
5fa1961a62 Recover the speed of Gambas 3.18 by moving code.
[INTERPRETER]
* OPT: Recover the speed of Gambas 3.18 by moving code.
2023-08-16 18:04:08 +02:00
Benoît Minisini
2f81de1876 When using an intermediate temporary stream, copy the behaviour flags from the original stream.
[INTERPRETER]
* BUG: When using an intermediate temporary stream, copy the behaviour flags from the original stream.
2023-03-24 21:26:45 +01:00
Benoît Minisini
7cd804982b Fix a test that leads to a crash when gcc optimizations are enabled.
[INTERPRETER]
* BUG: Fix a test that leads to a crash when gcc optimizations are enabled.
2023-03-24 20:57:42 +01:00
Benoît Minisini
56cc729fe0 Fix backward-compatibility with previous bytecode.
[INTERPRETER]
* BUG: Fix backward-compatibility with previous bytecode.
* OPT: Optimizations of local variables and argument assignements.
* BUG: NULL can be serialized on streams correctly now.
2022-10-04 22:49:01 +02:00
Benoît Minisini
fd66b99f32 Some optimizations of the main interpreter loop.
[INTERPRETER]
* OPT: Some optimizations of the main interpreter loop.
2022-10-01 16:26:08 +02:00
Benoît Minisini
6a793ddeb7 Replace my old depracted gmail mail by the new one.
[CONFIGURATION]
* NEW: Replace my old depracted gmail mail by the new one.
2022-09-12 15:13:13 +02:00
gambas
f677aef95c Fix backward-compatibility of serialization format.
[INTERPRETER]
* BUG: Fix backward-compatibility of serialization format.
2022-02-12 14:29:43 +01:00
gambas
dbd1091373 Try to make the new serialization format backward-compatible with the old one.
[INTERPRETER]
* BUG: Try to make the new serialization format backward-compatible with the old one.
2022-02-11 18:59:31 +01:00
gambas
5d1716aa0f Serialization now does not duplicate objects anymore. Fix Task.Wait().
[INTERPRETER]
* NEW: Serialization now does not duplicate objects anymore. Once an object
  is serialized, if it is encounter again, then it is seralized as a five
  bytes reference.
* BUG: Fix Task.Wait() that incorrectly used 'sleep' instead of 'usleep'.
2022-02-08 22:48:06 +01:00
gambas
c1c14d0f8a Avoid race conditions with actual reads, when we need to PEEK all the bytes of a stream.
[INTERPRETER]
* BUG: If some data have been peeked on a stream, then the next reads will
  only return the peeked data until they all have been exhausted, and the
  Lof() function will return the number of peeked bytes yet to read.
2022-02-01 02:37:09 +01:00
gambas
4681142810 If remote debugging is activated, lock a file to tell the IDE we are alive.
[INTERPRETER]
* NEW: If remote debugging is activated, lock a file to tell the IDE we are alive.
2021-10-21 01:02:07 +02:00
gambas
10c2829207 Now only standard input, output, error, pipes and process streams are automatically unwatched.
[INTERPRETER]
* BUG: Now only standard input, output, error, pipes and process streams are automatically unwatched.
2021-08-10 18:23:18 +02:00
gambas
3f5234be7e Read watches are not automatically disabled anymore for non-regular files.
[INTERPRETER]
* NEW: Read watches are not automatically disabled anymore for non-regular files.
2021-08-10 07:27:21 +02:00
gambas
a7a249543e Fix how 'Lof()' behaves on special files, and how read watches are automatically disabled or not. Add a new "Unknown stream size" error.
[INTERPRETER]
* NEW: New "Unknown stream size" error when 'Lof()' cannot know the size of a stream.
* BUG: If we can't know the size of a stream watched for reading, then we don't unwatch it automatically anymore.
* BUG: Streams based on non-regular file descriptors (devices for example) opened in direct mode now never use 'fstat()' for getting the file length.
2021-07-31 00:46:51 +02:00
gambas
1943dbfcf9 Some fixes in stream management.
[INTERPRETER]
* NEW: Read watches are automatically disabled when stream is closed in all cases.
* BUG: Buffered stream end-of-file function has been fixed.
2021-07-27 02:56:59 +02:00
gambas
cba7b18844 Fix the behaviour of standard input, end of file and stream read watches.
[INTERPRETER]
* NEW: Standard input is not supposed to be always available for reading.
* NEW: Watching a stream for reading is stopped as soon as reading ahead returns end of file.
* NEW: Eof() now immediately returns TRUE if a previous read ahead has reached end of file.
2021-07-16 04:00:29 +02:00
gambas
1239f45687 Redesign internal file constants.
[INTERPRETER]
* NEW: Redesign internal file constants.
* BUG: Opening a file for creation in direct mode now implies the write flag.
2020-11-09 17:38:28 +01:00
gambas
2cd257be5b PEEK is a new instruction that peek some bytes from a stream without removing them.
[COMPILER]
* NEW: Support for the new PEEK instruction.

[INTERPRETER]
* NEW: PEEK is a new instruction that peek some bytes from a stream without removing them, so that they are available to the next READ instruction.
* OPT: IsAscii(), IsLower(), IsPunct()... instructions are now a bit faster.
2020-02-11 01:45:10 +01:00
gambas
ba221177da Fix call of special methods _read() and _write().
[INTERPRETER]
* BUG: Fix call of special methods _read() and _write().
2020-01-14 03:49:03 +01:00
gambas
507f48ca61 Fix a possible memory leak when reading an object on a stream through its special _read() method fails.
[INTERPRETER]
* BUG: Fix a possible memory leak when reading an object on a stream through its special _read() method fails.
2020-01-09 18:31:56 +01:00
gambas
2429cff72b Fix possible memory leaks when reading objects or variants with the READ instruction.
[INTERPRETER]
* BUG: Fix possible memory leaks when reading objects or variants with the READ instruction.
2020-01-07 02:34:40 +01:00
gambas
15a7a7f4f3 Fix objet serialization.
[INTERPRETER]
* BUG: Fix objet serialization.
* NEW: Use one byte for writing the class name length when serializing objects.
2019-12-21 20:54:13 +01:00
gambas
f39ed34592 Serializing an object is not ambiguous anymore.
[INTERPRETER]
* BUG: Serializing an object is not ambiguous anymore.
2019-12-21 17:35:30 +01:00
gambas
3d956c269c '_read' and '_write' are two new special methods that allow to make any object serializable by the READ and WRITE instructions.
[INTERPRETER]
* NEW: '_read' and '_write' are two new special methods that allow to make any object serializable by the READ and WRITE instructions.
* NEW: Rename macro that convert a Gambas stream object to the internal stream structure and add a macro that does the reverse conversion.
2019-12-21 17:03:42 +01:00
gambas
64be06797e Reading strings with the READ instruction when the NullTerminatedString property is set now works correctly on all streams.
[INTERPRETER]
* BUG: Reading strings with the READ instruction when the NullTerminatedString property is set now works correctly on all streams.
2019-12-20 00:29:07 +01:00
gambas
3e0398dbd1 OPEN NULL is a new syntax that opens a null stream.
[INTERPRETER]
* NEW: OPEN NULL is a new syntax that opens a null stream. Reading always returns end of file, and writing does nothing except advancing the file pointer, allowing to know how many bytes were written.

[COMPILER]
* NEW: OPEN NULL is a new syntax that opens a null stream.
2019-12-18 06:59:21 +01:00
gambas
2a6eaf8c8c Merge branch 'master' of gitlab.com:gambas/gambas 2019-12-18 06:34:42 +01:00
Benoît Minisini
53f83fb014 Forgot a semicolon.
[INTERPRETER]
* BUG: Forgot a semicolon.
2019-12-18 05:33:55 +00:00
gambas
4bca597638 Stream.NullTerminatedString is a new property that tells if writing a string on the stream emits the string length first, or a null terminated zero byte. This property is TRUE by default on memory streams.
[INTERPRETER]
* NEW: Stream.NullTerminatedString is a new property that tells if writing a string on the stream emits the string length first, or a null terminated zero byte. This property is TRUE by default on memory streams.
2019-12-18 06:29:33 +01:00
Benoît Minisini
6c1b9d6858 Really fix serialization of NULL values.
[INTERPRETER]
* BUG: Really fix serialization of NULL values.
2019-12-18 05:29:03 +00:00
gambas
b98ca797e4 Fix serialization of NULL values.
[INTERPRETER]
* BUG: Fix serialization of NULL values.
2019-12-18 05:46:26 +01:00
gambas
b8ca134643 Reading a string on a memory stream now correctly skip the terminating null byte.
[INTERPRETER]
* BUG: Reading a string on a memory stream now correctly skip the terminating null byte.
2019-12-16 13:32:49 +01:00
gambas
baaf962ab0 JIT now handles "no return value" errors correctly.
[INTERPRETER]
* BUG: Process.Wait() now handles error output correctly.

[GB.JIT]
* BUG: Display compiler error correctly.
* BUG: Handle "no return value" errors correctly.
2018-11-24 20:00:45 +01: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
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
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
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
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
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
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
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
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
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
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
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
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
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