Description: Wasm rtl and wasm specific packages
This file as text.
(active) Revisions in this set:
769aeaae03f9eae322270f5800bf409e73fbbd2e,e376851fd8aabb05ac93bc234ae06fd9ed0cdd32,47c271dcd0635ea584023800d66d1ef8ca5ec07e
d9781bcebee08dfdbbdee90a595e92ce1fc284fd,99d66b4c93821f5b4dfbc0fc236ad0c7626d5310,362cabe6845a0769cc8e7fcd4dd5c75a74a07a85
9ba01e7aee19489072b616647ec044ce03a14a43,7fa8f514af5bf6d2e1865353b34ab56d92b54e1b,219294c02b4129d8a063626c72dc3f867ab75680
19cce3e42e46f010065146dec761dc6b00a6efc1,a916aa36d82bf3d37588c1118ad838940453e527,3cb4952745479eb8cd8b445951e8fd13f88b6fc5
1ce1a0fe1fe3642b2daca5e16b1058cad0d3b5fb,9056887aaedd811e0518ebb1b98219b561e04cba,48f115686d105165d9637ffcfcce2f10b6192d9c
27133cb66d75ae134110acf12f002d367ff04523,b93d49df9b4ba90f25219d3a4ba8536649646c09,8c8f8088ebaf68c83500668e97b9c16c41f7d92e
4e4fcaa8a286fe959e1d6595f2d3781b9b893796,f6beba0b0be3dc457baf08163f22a226dade7747,fb73ad3411add5e599beaf06b5b0da8bf9d7df05
08c8e0ec668cdaebfb9a8a0a6daa854b4f2b9e33,b97f3a08edca89cf8444a5261eb6e5e0fd141303,01589aa69367f1bc7160c3d86b1e8f2facf2353b
28dba2e7217c7cb560ec81fe6241d97349c3663d,9bb1cda8b5ccbb80e3d1a65cf6d490bb7bef7939,a36fca37f10da90ddc22569d6913ac7dcf9c14f4
4c26e4f9894b85fe08694181a8b401a769863495,1da241c09cdd2e73286733fd00d39d8ba87cf9b5,0d375c638c3525021ac386e1985cbe35d14d85b4
5c9186a395b0fe1e118ec0122f468086d6107bcd,5dc62fae3b0cbe83c0208fcd4746a852b501b1b9,d74f81fda863cf65d6acccfd7e5120e646190c82
6a7524418a88fbcbba65b0172f047266eafead64,c4165a67a743517bd5cc39708cd8745cd1b1298c,27ab23681cb1bcf4829c99d54506b934333e3f5e
5913c17805dcd685fb9270a581121a922546b9f0,ac8fefbc2bf6056c7a32f74a33e346899fa3428f,e315a30ef4098784c515edc6a2628204a7a1f989
10d740298d54b90f5dcfdfcf8db6af3250b5f5b5,2a4f4ef420dba8797a3de8ac86ea30ea80cd1404,2824f592a3eb5fc687aa7e67f12be07aa99a245c
5bdef935f9b674313cf9ecae69696bbb9f9b88b9,b58f9bcfd08f1c9dcb58b4fbaaeea4005e2799b7,50370ff56d2eec973fb17f253b0f39a47ba7a356
2daf7f984f24ce54492ff8e1364592d705b0abe9,dbc3d6b98f66afad36744c718f39155fdaff8b12,0187580793af3512cb52831aede8af5dcb0a297d
3df063ad92962b0768b2dccb31457017390fdb3d,ec2e645719b35b7098c759c496e0308f48b88ef5,e80ce5f61f3857db8956c81de525d41b86aa2ed0
94912ab27474fef4d96349f091c504ad1e701531,7dcd89ede12e1d8f060ca5859a9c54de81ba7698,0e11fe0fc5f039939f2f85bc6896812fb1df0b83
ec21c75e05f33de9a5fbe7f7d1bab246f7a32dc0,d0a5b61b80a1c8ae6d8d0661833e9e1eb288244f,a49c0f6e0cc25a096b596e11ac5158b6a56bd96c
0c745fb257e71111588ac54b0bb4bd383751e82c,9cc08d91240df8fdc1809e3e7ece0f02d3df0946,824658874d7aa322b257688869899f15e5444805
4c3af63fad394c8e415aa459ba3d8cd305c525e1,8884c1967d07d267f78d90dff1dc9778c797957a,3fac1e7d5beacea815a2dddbd4674b027affe7e8
38ec27065b62932e0387ce4a7a998362a1f315b1,6d79054cff8fee91630149d9f439b22aa95b28c4,bbb159658a2265472a7a23571e6d2d439e409318
7f4f25488861aa4c70918b6a7bdae2db10909c15,7d1999eedb23e0560ae2e2840ae52decbf733e73,c95dfe24e7203ebc73429d5bbb839d6aba1c8b67
73867e47f92660f175f5bd2fa65d90e59825616d,4016e1accafec4aab026a040ad4e3145895d43d7,b530804eb6b28e9776875988cf3ea5dfbe7cc707
cb164667572a20b17818d90ea2279922404454f3,89cd72b71c8c567ef7f1f371860fc43faa7eb50b,0457690a8bc3590080fb5267e35311e8d19ca918
7fb83161b75365d9482736bc485e02f2cc5649c6,a57971204c103f738674e3af5fa72c940cef249f,429d04089ed2b0e89cb34ffe0b3f87a265c4c372
bcdd29b556776ae1ec8d3b81d4d926d19140fefa,124480e73adff243d2cd0e2096db03a029f95fcb,3ad7a0e716b497df356b2d8c6e799045c6aa7623
28a849a2931afcd495438a761dd63fab1615a6ba,396781408129dd8a31bd35df2e05e6807921d297,a1e4d5a51755c7e23d4f93515007afe7e46fe2c6
536b85021d2b19f24530f982d6dbddff0d0a3598,5043bdaf183c096f38d092f66dbb5207fedb85cf,c1d6cad44411473fe7c3b28e9da40f89889ba8eb
e48fdc5b0f6d6791f394510f678233d5eb9dafec,afd7d9965ab56f5432773a3f472f1663f243a73a,951d2f394212678b0ec84648dcd2b57f3cca0b04
3160e45316babdd507b140acf2999fe102699377,303c0378e9dcd43ac922491017d1ab7c3f81ae13,e579da0844fc82f72b91622902c2671c7b7c831f
b340994e1b1f886bb660aed64e0981a954414d2b,45ec51dc1f56e8511468583d99121cc942af05f3,25af7a4281eb9c7323320b0eaa5348a9daec39bf
d0b03c9c71369432011b0297674fd5bf0a5644df,a81eac24838b7adaac46f50874b2a8c92aea593c,594b96e305e14f029b70a1330c6a96ca6e930972
1210747f1d4354b8f00054fb3ee496462e5c4f11,ce04ce42eddf132f110173b5ba7e4f103e835d17,1e6061845ee7923d066cc24f650ae3ddb0044976
c88873cd46efcbc367c003cc2155e0ce63490a21,3b0d2b329a8edcdfda5005bac6fcf1fbe2070ff5,0314ba9bfdcd7bd092506e692df7b84edfa9f648
ccbc28dd85650b3db35cd414fbcca3acc1331c1e,00e528996782c384b3a03cafbf18555420898147,aef32d5de98cdd07c1843ced826ed128b84a2ab3
51fdff0e7f8ab62b1f66450fa930af1d970118ab,46a9fcc5f93074c9c37fc2539cc9b19d094286f6,c0d6efaada138f939f067562354f1dc483c5f353
9600b5276ab4e010dfe8a316557c6757515598b8,1084346b005135274fdbd693dd1ff5b744e87707,cc15c3c2de57d0039fbdcad6632349c26e6c78c6
3e2b0ac8b96d739b7f0b7f36d4ad432bd094a551,633f905b79f556c0782d6381294546ea61ecbe85,334102e3915212911b03280d719e874a35e9ee2d
1f0c72b6c18aaa6e2aefa9b6a250ccb461837e62,5ac4fd0b133541f705dd3478fb90a6f8f75ce70e,b18e3810499b15d3f0d4dd4c5612471523c18e68
ae83472a06f37feefb22a7906389ebb8d94d65a0,083ac5c1142ce6040133ec4da1318626367db612,368a77d75e78d0cae0c92ef4300117ed07afcc3d
37b7835b12bfec0382b308575ea4742223c01cc6,2cefdd35b56c48ff4f48b119b9e13582e3940d2a,5a2b045388652a7640d3e8f3dfa0f69a9d7c15a5
e03e62f013cb259d43b056de85e8eba3fd61278b,74ea291454b64f8896d015fdc9bdaf6d5db18e7b,7b213bb4e6a3221062afc1b0d3c40580603f4b9d
fc0fb5968a98f3ba261cffbb679baa41eaf563c9,45f7be1b3c9485e7b3de3c5f48debca75b4bb559,9c4a354d7bf4eba9cd3453d780a55b6041836028
7f682589c7a33e74208b71c5aad347baab8313d6,4ac0781dd8b0882f761b4887697b88e9ce903c90,d775dadced3c86c4a530ab75a0bb13575f5cd4bd
573b82c67f58bda7f6cfb5cea54c49bbc4c962ed,4c8f718a8b7e27c98cbee65db0b163b6613243ba,e94d02a06788c0953111efc08dd5a7c8da5789ee
8488c87b20efb6e3a934a9d71475ac3a24d9d6ef,40725146cc37345879b82d1edaba02fcf0687fff,f29fe358ad694e288b751a4632ffda7ed77305b8
925091d0d14658a943ff204e7f6a39819b42bc0f,5e813e62f24635c3947c5adb1efcf94dfedd2f0e,2e8b9e7e01ffbf180e5c0ac2a2a29d0e06b822a7
12db8a59b526a292182da0b43adb15e9e30b6c7c,6972d16c3ab08068898d123f5b677c6e56d96d1a,3e6ae3f887f9c69ccd23465b185b70fbe798acd1
d06dd9532c66a81d197ebfe12134a48e3d30102e,f270543bf4537afa59149e4fabe9c5a9d094f068,0b3d0594582bf3e2a12f56310f1e5fe5b8ad532d
637fa74c5c305cadcb0aad0c43b0f6a9a3c30888,008397cb492610afc8cce7a3d4b416daf4c60af0,708a479fdd177f27565d1c740c62266c590ab94b
7e89495a0950add0013733eb631483aa9ebf24e7,6286ff38cca83503949d91e60edd03639dd6056d,7703ff9b34ee48665b37f418b699a3229c0bcaf5
0977f0ac0d1ecf3284554b2613bbdd1bb03359a8,736fc12e55ab4872f92d85a6d45f038bd658f94f,9e9153b2d30c088de589ccfe57351a14d902c4a1
d520f1df0baa2a96adb5f4506ff855419529ca82,cf73409470dd3688b070bc658b0f72c1621797ef,266a0af993498604899b2dd3586b7bd8ccbfaf8e
e867b540344e13681b040b234101f282f30cbe60,8353fa6c811f455e791f284b0c525ee4e38d725a,163f97b84e7c3728961f60ffe0f10e25001cf189
0a8f1b257dde0f079ef7344ce210ad5ee2dd2eea,fdc19ea05117ea6498fb1526cd4a2cd03735e83f,92eb7ba81fb19495c752ab10db47de92c973e8ab
17ae93f916438ff444b4eb0a8a1970412c35892e
Clicking a revision will expand files
* Add linking examples, change pcchar to pchar
* fixes to the WebAssembly atomic function intrinsics
+ implemented InterlockedIncrement, InterlockedDecrement, InterlockedExchange,
InterlockedCompareExchange and InterlockedExchangeAdd for WebAssembly in a
thread safe way, using the thread and atomics extension, when the RTL is
compiled with -dFPC_WASM_THREADS
+ added except_branchful.inc as a system unit dependency include file to wasm32/makefile.cpu
+ added AtomicAdd() and AtomicSub() intrinsics to the WebAssembly unit
+ added AtomicAnd(), AtomicOr() and AtomicXor() to the WebAssembly unit
+ added AtomicExchange() to the WebAssembly unit
+ added AtomicCompareExchange() to the WebAssembly unit
+ added AtomicLoad() to the WebAssembly unit
+ added AtomicWait() to the WebAssembly unit
+ added AtomicNotify() to the WebAssembly unit
* AtomicWait marked as inline
* added non-atomic implementations of the atomic operations in the WebAssembly unit, used when the RTL is compiled without -CTwasmthreads
* Correct windows DLL name
+ print more exceptions debug info, when the WebAssembly RTL is compiled with -dEXCDEBUG
* Comment out debug in loop
* Seems not all was committed
* Fix compilation without threads
* Remove PChar/PPChar/PPPChar defines, they are in the system unit
* Dotted filenames for package wasmtime
* since exporting webassembly globals doesn't yet work accross units, added a
workaround by using property getters and setters
* WasmEdge library import
* Git did not add .lst files
* Fix compilation in unicode rtl
* Correctly load library, make this public
* Add wasm-job for webassembly
* not automatically committed...
* Sample unit containing all browser apis
* Add create_object method
* Remove unqualified string type, use UTF8 string or Unicode string
* Create objects directly
* More complete example with dictionaries as objects
* Allow to create browser API stubs that will work on non-webassembly platforms
* Fix compilation for targets that do not have variants
Disable jvm-android target for wasm-job package because it requires sysutils unit which is not available for jvm-android
* Added nothreads unit for fake thread support. Currently only WASI
* Add TypedArray constructor
* Fix memleak, objects created directly are owned by webassembly
* set method for typed array
* Add constructor to TJSArray that accepts array of const
* Promise implementation and demo
* Make methods protected, so one can override
* Allow to cache reject/resolve
* Allow to disable monitor
* Getters & Setters for typed arrays
* Corrections for Float64
* Forgot to commit last version: allow to use thisid from function
* Hosting example for webassembly module
* Corrections from samples
* Fetch example, demo how to reconstruct object response
* Implement TJSArrayBuffer
* Define JSJSON to as to use static methods
* in the WASI system unit initialization, call InitSystemThreads even if
FPC_WASM_THREADS is not defined (but FPC_HAS_FEATURE_THREADING is defined),
to initialize the nothread manager. This fixes various regressions when WASI
threading is disabled, caused by calls to nil pointer functions.
* Add new constructor for typed array with length
* Correct Cast class functions which were recursively calling themselves instead of JOBCreate
* Add some utility properties
* use an empty TThread implementation in rtl/wasi/tthread.inc, in case
FPC_WASM_THREADS is not defined
+ added basic WebAssembly inline assembler test
+ added test for the WebAssembly inline asm call instruction
* WASI: preserve the initial value of the stack pointer on startup, so that we
can later use the area after that, until the end of memory as an initial heap
+ WASI: use an initial heap area, that exists between the end of the stack area,
and before the end of initially allocated memory. This recovers some memory
that was previously wasted and delays the first call to memory.grow
* NativeInt size depends on platform.
* Implement DataView properties
* Redefine (T|I)JSArrayBufferView
* Correct interface ArrayBufferView
* reduce iterations for RiscV32 for now
* API to show objects in webassembly runtime in browser
+ added WebAssembly inline asm tests for the instructions:
i32.div_s
i64.div_s
i32.div_u
i64.div_u
+ added WebAssembly inline asm test for:
i32.rem_s
i64.rem_s
i32.rem_u
i64.rem_u
+ added WebAssembly inline asm test for:
i32.and
i64.and
i32.or
i64.or
i32.xor
i64.xor
+ added WebAssembly inline asm test for:
i32.shl
i64.shl
+ added WebAssembly inline asm tests for:
i32.shr_u
i64.shr_u
+ added WebAssembly inline asm tests for:
i32.shr_s
i64.shr_s
+ added WebAssembly inline asm tests for:
i32.rotl
i64.rotl
i32.rotr
i64.rotr
+ added WebAssembly inline asm tests for:
i32.clz
i64.clz
i32.ctz
i64.ctz
i32.popcnt
i64.popcnt
* Set event handler-type properties
* String must not be shortstring
+ implemented CheckInitialStkLen for the WASI target (just returns the parameter
stklen as a result value, unmodified)
* proper implementation for the function Sptr (which returns the stack pointer) for WebAssembly
* Install error handler to examine exceptions during callback
* Correct callback handler for object tree
* Correct dictionary construction
* Add overloads with offset and length for typed array constructor
* Objects passed in callback are ours to free
* Make sure reference count is properly managed
Add missing Makefile for h68units, testinsight and wasm-oi packages
* Webassembly HTTP request API
* WebAssembly threads: in TThread.WaitFor, call CheckSynchronize in a loop,
while waiting on a thread that isn't finished, but the waiting happens on the
main thread. This fixes the hang in test tb0636.pp
* WebAssembly: fixed SysUtils.sleep() with large timeouts causing incorrect time
delay, due to arithmetic overflow
* WebAssembly threads: fix race condition, which causes sometimes an abandoned
basic event to be reported as signalled. This should fix the test tbrtlevt.pp
sometimes failing.
* Add some utility methods to TJSarray for easier pushing of values
* Webassembly websocket support and demo
* Regexp support for wasm target
* Rename some identifiers to be more unique. Fixes issue
gitlab 0040915
* Regexp for wasm (using browser API)
* Allow message in ShowAsDebug
* Some minor improvements
* Fix warnings, hints and notes
+ added unit unix98pty. Only enabled for linux, for now, but can be enabled in the future on other unix-likes.
+ WASI threads: define FPC_WASM_WORKER_THREADS_CAN_WAIT. It is actually true in
all known cases (command line WASI or browser).
* Simple example for JOB call
* Some fixes in handling of headers
* Typecast to pointer of self() needed
* Store session info only for project files
* Make names unique across modules
* Unique names for imports
* Remove erroneously commited commented line
* switch WebAssembly RTL to provide atomic intrinsic helpers instead of Interlocked* functions
Fix TJSArray._GetStrings: exit once you get correct value, do not fall through to raising error
* with all existing RTLs switched over to the atomic intrinsics, the define FPC_SYSTEM_INTERLOCKED_USE_INTRIN can be removed again
* New fix for fpc_atomic_cmp_xchg_alu, as suggested by Sven
+ add intrinsic for 8-bit atomic cmpxchg for wasm32 (this way the fallback for cmxchg is no longer used for wasm32)
- remove unnecessary defines
* Fix compilation when using threading
+ added function fpc_wasm_invoke_helper to the WebAssembly RTL
+ initial implementation of System.Rtti.Invoke() for WebAssembly. Currently
only works with the internal linker. Not all types have been tested, yet.
* proper handling for boolean results (especially Boolean64 and QWordBool) in System.Rtti.Invoke
* also handle enumeration results and integer result sizes, other than 32-bit in System.Rtti.Invoke for WebAssembly
* Add TJSAtomics.waitAsync
* Fix compilation for unicode
* Allow host environmentto get main and self thread IDs. Needed for inter-thread messaging in browser
* API to share JOB objects between threads (if browser allows)
* Object ID must be controlled by wasm side
* ID is now handled in webassembly
* WASI: workaround for FindFirst/FindNext opening the current directory, by using its full name
* WASI: avoid using inner preopened dirs, that escape to the parent with '..',
in case there's an outer preopened dir
* moved the common WASI RTL source files and includes to a 'wasicommon' dir
* WASI system.pp: check that WebAssembly threads are always turned off for the wasip1 target, and always turned on for the wasip1threads target
* Allow wasm guest & host to be notified of wasm memory growth
* Fix compilation, probably also bug with mem size
+ API to get exception info in host environment
* performance.now interface
* Add some missing constants
* log exit to be symmetrical with entry in AllocateOSInfoBlock
* Webassembly browser storage API