Sven/Sarah Barth
6ec8441744
* test that SysUtils.Swap<>() doesn't hide System.Swap()
2024-11-17 10:15:44 +01:00
Frederic Kehrein
64c27a86a8
* Adding new generic Extract and Swap function to RTL
...
These allow to move data from one variable to another without triggering
the copy operation. Extract makes use of the newly introduced move
semantic for function results and Swap uses System.Move to not trigger
the copy mechanism.
2024-11-16 22:08:06 +00:00
Frederic Kehrein
ca92c49f8c
* Avoid calling copy operator when moving data from temporary objects
...
When a function returns a managed record, a new temporary object is
created for the result, which is then copied to the real destination.
For managed records with a deep copy implementation, this can create
immense overhead. So instead this introduces a move, which basically
consists of
```pascal
procedure Move(var src, dst);
begin
Finalize(dst); // Finalize existing data
Move(src,dst,sizeof(dst)); // Shallow copy
Initialize(src); // Clear source
```
* nld.pas: use MOVE when assigning the function result from the
temporary return object
* rtl/inc/systemh.pas: Adding new macro to mark new RTTI version with MOVE
operation
* rtl/inc/compproc.inc, rtl/inc/rtti.inc: Adding new move mechanism when
indicated by the compiler.
2024-11-16 22:08:06 +00:00
florian
e4af0fc1e9
* don't mess with boolean and/or operations in mixed short/full evaluated expressions, resolves #41012
2024-11-16 17:27:16 +01:00
Frederic Kehrein
4b92df28cf
Adding static properties to extended RTTI
2024-11-15 12:47:41 +00:00
Michaël Van Canneyt
2d0f8467fa
* Patch from Евгений Савин to implement TValue.Cast for floats. Fixes issue #41011
2024-11-13 23:22:59 +01:00
Michaël Van Canneyt
e9107bbf4f
* Patch from Евгений Савин to fix passing records to invoke. Fixes issue #41006
2024-11-11 11:59:57 +01:00
florian
092ff254f1
+ AtomicIncrement/Decrement overloads
...
* tests extended
2024-11-10 14:56:10 +01:00
florian
fe6dd84d01
+ new tests
2024-11-09 09:51:59 +01:00
Michaël Van Canneyt
f35384ba53
* Attributes for methods test
2024-11-08 12:15:28 +01:00
Frederic Kehrein
6618c0dbf7
Fixing a bug where an empty postfix for enum was allowed
2024-11-07 21:09:37 +00:00
Pierre Muller
7b492b9975
Add DosExitCode to DosError shl 16 to set ExitCode value in utils/dosbox/exitcode.pas program
2024-11-06 22:21:22 +00:00
Pierre Muller
dd6efefdbf
Adapt to dosbox-x
2024-11-06 22:21:22 +00:00
Pierre Muller
3bee7636dd
Add command line in verbose mode
2024-11-06 22:21:22 +00:00
Pierre Muller
f4a413fabd
Add rule to generate exitcode.exe dos/go32v2 binary, required by dosbox_wrapper
2024-11-06 22:21:22 +00:00
Sven/Sarah Barth
bcdef8341e
* fix #40992 : correctly handle padding inside the FFI Invoke manager
...
+ added test
2024-11-05 23:23:56 +01:00
Pierre Muller
6e575e753e
Add missing sub-directories from test/packages directory
2024-11-05 21:53:21 +00:00
Frederic Kehrein
1778fb6fe3
Implementing TImplementedInterface.getcopy
to allow copying of interfaced objectcs
...
It's probably not fully correct(see comment about procdef copy) but
seems good enough ¯\_(ツ)_/¯
2024-11-03 14:08:45 +00:00
Sven/Sarah Barth
782b707763
* clarify purpose of texrtti18 and texrtti19
2024-11-01 15:31:20 +01:00
Sven/Sarah Barth
823b376a9d
* texrtti18.pp is no longer relevant due to 59a1199110
which adds support for array properties in Extended RTTI, so move the new texrtti20.pp over to texrtti18.pp
2024-11-01 15:30:18 +01:00
florian
99a9cfbc71
+ additional test
2024-11-01 10:52:35 +01:00
florian
63734fb792
* unnecessary directives removed
2024-10-31 22:35:04 +01:00
Frederic Kehrein
59a1199110
Adding support for indexed properties in extended RTTI
2024-10-31 14:51:00 +00:00
florian
b7edddf9d9
* do not eat the semicolon after an absolute expression to a symbol, noted in #40978
2024-10-30 22:45:48 +01:00
florian
b28681e91d
* properly reject function calls as target of absolute, resolves #40977
...
* better error message on invalid expressions for absolute
2024-10-29 22:23:25 +01:00
Pierre Muller
34b6d4f572
Pass -ll option to prepup utility to include longlog file into tar.gz testsuite results
2024-10-28 11:00:27 +01:00
Rika Ichinose
c08d73054a
Return MemSize from FreeMem.
2024-10-27 21:44:01 +03:00
florian
511beac49c
* get rid of the hack that tlabelnode inherits from tunarynode and stores a statement in left, resolves #40964
2024-10-26 16:11:24 +02:00
Sven/Sarah Barth
00fc962ca3
+ fix #40963 : print suitable messages for local unit, include, library and object paths if -vt is given
...
+ added test
2024-10-25 17:13:23 +02:00
Sven/Sarah Barth
3e8e02bede
+ extend test framework with ability to specify certain expected compiler messages using their ids
2024-10-25 17:11:47 +02:00
Sven/Sarah Barth
a1e9dc4447
* fix typo in tests/readme.txt
2024-10-25 17:08:59 +02:00
Sven/Sarah Barth
2ef822e8e8
* fix #40305 : with type helpers now supporting inheriting from unique type aliases, declare a TRealHelper as a descendant of TDoubleHelper (cause Real is a Double)
...
+ added test
2024-10-25 15:26:32 +02:00
florian
5d4bb6db9b
* patch by lag programming to replace bitcnt by popcnt, resolves #40962
2024-10-22 22:54:57 +02:00
florian
397293f09f
+ more fixes to mark symbols used by preprocessor expressions properly
...
+ made MarkSymbolAsUsed more fail safe
+ tests
2024-10-20 17:28:20 +02:00
florian
8b19929ad9
* fix test
2024-10-20 17:03:36 +02:00
florian
22ec4a2033
* mark symbols used in conditional compiling expressions using sizeof, resolves #40955
2024-10-20 14:37:09 +02:00
florian
b8a4a72760
* properly process all child nodes of call nodes in foreachnode, resolves #40957
2024-10-19 23:41:46 +02:00
Sven/Sarah Barth
e048266473
* fix #40259 : global managed records with Initialize operator need to be initialized no matter if they are referenced in the current unit or not.
...
+ added test
2024-10-18 17:51:49 +02:00
Rika Ichinose
d63b6294b5
Compile “length(string or array) = 0” as “pointer(string or array) = nil” without further check, unless really required.
...
Also handle length <> 0, > 0, < 0, >= 0, <= 0, assuming lengths are never negative.
2024-10-16 16:53:59 +03:00
Sven/Sarah Barth
73420dcace
* ensure that Default() symbols that use management operators are properly initalized/finalized
...
+ added test
2024-10-11 18:00:01 +02:00
florian
e7cf7538cd
* improve test
2024-10-09 22:41:52 +02:00
Frederic Kehrein
a188322e76
Fixing bug where in const init no typecheck for symbol was performed
2024-10-09 19:48:53 +00:00
Michaël Van Canneyt
088f394440
* Implement TList<T>.pack. Patch by Alexander Bagel. Fixes issue #40927
2024-10-09 09:15:50 +02:00
florian
e91c8040ea
* do not generate lea with 16 bit references on x86-64, resolves #40936
2024-10-07 22:53:54 +02:00
Michaël Van Canneyt
736edf6422
* Better testlocation
2024-10-02 07:36:17 +02:00
Frederic Kehrein
dcabb0151f
Adding fpsockets unit to fcl-net
2024-10-02 07:36:17 +02:00
Frederic Kehrein
23dd7a5173
Adding TNullPtr to types
...
Additional changes:
* Now using TNullPtr instead of custom type in TNullable
* Adding assignment of variants with TNulPtr to avoid name conflicts
* Adding comparison to TNullPtr (Pointers, TObjects, TNullable)
2024-10-02 05:30:09 +00:00
Pierre Muller
77c51bf7e2
Add try/except block inside try/finally block in ExecuteRedir function
2024-10-01 14:03:01 -07:00
Pierre Muller
da0cefb364
Add %norun for tw36544a library
2024-10-01 14:03:01 -07:00
Pierre Muller
3707000121
Also accept EMathError exception
2024-10-01 14:03:00 -07:00