Nikolay Nikolov
|
e2eadc51a3
|
+ added the memory.init and data.drop instructions
|
2022-05-27 23:38:49 +03:00 |
|
Nikolay Nikolov
|
dbba2d2746
|
+ implemented popcnt via the popcnt instruction in WebAssembly
|
2022-05-27 23:23:27 +03:00 |
|
Nikolay Nikolov
|
c9ed14f87b
|
+ enable the 64-bit SAR instruction on the WebAssembly target
|
2022-05-27 22:56:05 +03:00 |
|
Nikolay Nikolov
|
b6aaa06f83
|
+ enable the ROL/ROR instructions for WebAssembly
|
2022-05-27 22:46:32 +03:00 |
|
Michaël Van Canneyt
|
4765d885df
|
* Export wasiAlloc, wasiFree
|
2022-05-27 19:16:52 +02:00 |
|
Pierre Muller
|
bb39ec1610
|
Avoid invalid typecast to tabstractvarsym
|
2022-05-27 12:32:53 +00:00 |
|
mattias
|
653303274f
|
fcl-passrc: resolver: fixed error when accessing element of forward class
|
2022-05-27 11:45:24 +02:00 |
|
Sven/Sarah Barth
|
0c9b622a74
|
* fix compilation with DEBUG_NODE_XML defined
|
2022-05-27 07:36:50 +02:00 |
|
Sven/Sarah Barth
|
f73fc7d566
|
* fix #39736: ensure that the capturer object and any converted function reference interface are considered used
+ added test
|
2022-05-27 07:24:46 +02:00 |
|
mattias
|
02211971a3
|
fcl-passrc: added enums msFunctionReferences,msAnonymousFunctions
|
2022-05-27 00:30:06 +02:00 |
|
Pierre Muller
|
2c9776ac6b
|
Remove %OS by %TARGET, as spotted by Gareth
|
2022-05-26 21:38:31 +00:00 |
|
Pierre Muller
|
e148afd506
|
Fix cycling with -CR option
|
2022-05-26 22:43:41 +02:00 |
|
florian
|
45bf47ee05
|
* compilation with -O3 fixed
|
2022-05-26 22:34:34 +02:00 |
|
Sven/Sarah Barth
|
39b7b07ebb
|
+ add tests for function references, anonymous functions and C-blocks
|
2022-05-26 21:44:25 +02:00 |
|
Sven/Sarah Barth
|
7974f39522
|
* implement assignment of procedure and method variables and routines (global, instance and nested) to function references
|
2022-05-26 21:44:24 +02:00 |
|
Sven/Sarah Barth
|
9f3dcdb211
|
+ add method to find a procinfo for a nested function by the corresponding procdef
|
2022-05-26 21:44:24 +02:00 |
|
Sven/Sarah Barth
|
c6aba5cd8d
|
* make tprocinfo.addnestedproc public so that it can be used to add generated functions
|
2022-05-26 21:44:24 +02:00 |
|
Sven/Sarah Barth
|
702f79ec8c
|
+ add method tprocsym.Find_procdef_by_funcrefdef to find a procdef that's compatible with the specified function reference
|
2022-05-26 21:44:24 +02:00 |
|
Sven/Sarah Barth
|
943da88dda
|
* rework tprocsym.Find_procdef_byprocvardef so that its implementation can be used in a more generic manner
|
2022-05-26 21:44:24 +02:00 |
|
Sven/Sarah Barth
|
f2305d1cee
|
* if an invokable that isn't a function reference is followed by a point in a mode that doesn't use TP/Delphi style calling without parameters then don't call it like is done with normal procvars
|
2022-05-26 21:44:23 +02:00 |
|
Sven/Sarah Barth
|
76df7144ba
|
* implement necessary conversion functionality for anonymous procdefs to function reference interfaces including capturing of variables
|
2022-05-26 21:44:23 +02:00 |
|
Sven/Sarah Barth
|
f8b1801a8f
|
+ implement necessary functionality in tcgprocinfo to initialize and populate the capturer
Based on code by Blaise.ru
|
2022-05-26 21:44:23 +02:00 |
|
Sven/Sarah Barth
|
9b9ae2db1a
|
* two function references are equal to each other as long as their signatures match
|
2022-05-26 21:44:23 +02:00 |
|
Sven/Sarah Barth
|
6fe9a15094
|
+ add function to check whether a procdef can be converted to a function reference
|
2022-05-26 21:44:22 +02:00 |
|
Sven/Sarah Barth
|
749faa42ee
|
* do not insert the $result symbol again when the VMT for the capturer is built
|
2022-05-26 21:44:22 +02:00 |
|
Sven/Sarah Barth
|
9aac622dc9
|
+ add necessary core functions and functionality to implement capturing of variables
Based on code by Blaise.ru
|
2022-05-26 21:44:22 +02:00 |
|
Sven/Sarah Barth
|
0e0739a64f
|
* regenerate msg{idx,txt}.inc
|
2022-05-26 21:44:22 +02:00 |
|
Sven/Sarah Barth
|
a0171e4335
|
+ add an error message for when a symbol can't be captured
|
2022-05-26 21:43:41 +02:00 |
|
Sven/Sarah Barth
|
897f0e1784
|
* if a symbol is not part of a symtable then assume it's from the current module
|
2022-05-26 21:43:40 +02:00 |
|
Sven/Sarah Barth
|
b5ab81c983
|
* an internal definition in a specialization might not have a genericdef
|
2022-05-26 21:43:40 +02:00 |
|
Sven/Sarah Barth
|
90ebeb275a
|
+ add utility function to retrieve a file position of a usage of a type symbol from a type's definition
|
2022-05-26 21:43:40 +02:00 |
|
Sven/Sarah Barth
|
3eac88eeaf
|
* protected symbols are visible for defs declared in a local symtable as well
|
2022-05-26 21:43:40 +02:00 |
|
Sven/Sarah Barth
|
533a11ec80
|
* correctly handle calling convention for function references
|
2022-05-26 21:43:39 +02:00 |
|
Sven/Sarah Barth
|
47d7520b32
|
* consider invokables as related when they're equal
|
2022-05-26 21:43:39 +02:00 |
|
Sven/Sarah Barth
|
145b37425d
|
+ add function funcref_equal to check whether two function references are considered equal enough to be assignable
|
2022-05-26 21:43:39 +02:00 |
|
Sven/Sarah Barth
|
ff0b560fe4
|
* set the flag that the symtable contains a generic at the end of the corresponding block of types_dec() to ensure that the owner is assigned correctly
|
2022-05-26 21:43:39 +02:00 |
|
Sven/Sarah Barth
|
6299e94c8f
|
* set the type symbol of the procvar while it is parsed so that a function reference can have itself as part of the parameters or the return type
|
2022-05-26 21:43:39 +02:00 |
|
Sven/Sarah Barth
|
06a00b53c3
|
* also handle function references when a generic one had been parsed
|
2022-05-26 21:43:39 +02:00 |
|
Sven/Sarah Barth
|
b297199ab6
|
+ add a field to denote that a symbol (mainly local and parameter ones) was captured through another symbol
|
2022-05-26 21:43:38 +02:00 |
|
Sven/Sarah Barth
|
ec96d4242a
|
* check hierarchy of the current generic or specialization def independant of whether it's a record- or objectdef
|
2022-05-26 21:43:38 +02:00 |
|
Sven/Sarah Barth
|
f02fc4fe0f
|
* move checking for a def in the hierarchy to a separate nested function and use it to check the hierarchy of the current def being specialized as well
|
2022-05-26 21:43:38 +02:00 |
|
Sven/Sarah Barth
|
5cf15be434
|
+ add a constructor for trecorddef to declare an internal record type as part of a specific other type
Based on code by Blaise.ru
|
2022-05-26 21:43:37 +02:00 |
|
Sven/Sarah Barth
|
92082ab28f
|
* correctly handle directives for anonymous functions
|
2022-05-26 21:43:37 +02:00 |
|
Sven/Sarah Barth
|
e8b0fc88e3
|
* correctly handle directives for function references
|
2022-05-26 21:43:37 +02:00 |
|
Sven/Sarah Barth
|
fd26453d5a
|
* name of result variable of anonymous functions can be changed (and must be in modes without modeswitch Result)
|
2022-05-26 21:43:37 +02:00 |
|
Sven/Sarah Barth
|
7de854ef1e
|
+ add method register_implemented_interface to tobjectdef which registers an implemented interface and - if desired - also initializes the GUID related fields of the objectdef
* use that method in all locations outside symdef that add add an implemented interface
Based on work by Blaise.ru
|
2022-05-26 21:43:37 +02:00 |
|
Sven/Sarah Barth
|
76d3a9c4b5
|
* generate a better name if the procdef is an anonymous one
|
2022-05-26 21:43:36 +02:00 |
|
Sven/Sarah Barth
|
cdf676c9b5
|
* a function also captures other nested functions when these are called
|
2022-05-26 21:43:36 +02:00 |
|
Sven/Sarah Barth
|
eaeb614887
|
+ provide a tsym based variant of ChangeOwnerAndName
|
2022-05-26 21:43:36 +02:00 |
|
Sven/Sarah Barth
|
a7a0f47d98
|
* extract a symbol or def from its previous owner if that owner has OwnsObjects set to true
|
2022-05-26 21:43:36 +02:00 |
|