+ implemented random_get
* fixed stdin/stdout/stderr redirection
* use fast O(1) conversion of FunctionInstance to FunctionInstanceId instead of O(N) in TWasmStack.Call
+ implemented Execute for the unreachable instruction
+ implemented execution via the 'return' instruction, as well as termination via return from the _start function (instead of through proc_exit)
* fixed bug in reading large negative SLEB numbers
+ initial implementation of path_rename
+ return ISDIR if path_unlink_file is called on a directory
+ implemented path_unlink_file
+ implemented path_remove_directory
+ implemented path_create_directory
* use FileGetDate(GetFileHandle(...)) instead of FileAge() for getting the file modification time in fd_filestat_get
+ implemented fd_filestat_set_size
+ allow fd_tell also when there's the FdSeek right
* don't call Seek at all, when fd_seek is called with whence=Cur and offset=0
+ allow fd_seek with whence=Cur and offset=0, based on the FdTell right
+ default implementation of path_open for non-directories
+ default implementation of fd_path_filestat_get for non-directories
+ implemented fd_seek for stdin/out and directories
+ check for FdSeek rights when executing fd_seek
+ disallow fd_tell if no rights
+ implemented fd_tell for stdio and directories
+ check FRightsBase for FdFilestatGet
+ implemented fd_filestat_get for directories
+ add the frFdFilestatGet rights to the standard input and output devices
+ implemented fd_filestat_get for the standard input and standard output devices
+ return weNotcapable if you call fd_readdir on a non-directory file descriptor
+ pass fdflags to the TWasiInternalFdDescriptorFile constructor
* fixed the returning of fs_rights_inheriting
+ implemented fd_fdstat_get for regular files
+ added checks for negative seek offsets in fd_seek
+ range check the whence argument of fd_seek and return weInval in case it is an invalid value
* disallow glob characters (*, ?) in path_open and path_filestat_get
+ added protection against directory traversal attack
+ implemented fd_write for files
+ implemented fd_seek
+ implemented FdTell
+ implemented fd_filestat_get for files
+ implemented fd_read for files
+ implemented proper opening of files
+ pass rights base and rights inheriting when creating new file descriptors via path_open
+ introduced FRightsBase and FRightsInheriting
+ implemented fd_close
+ implemented fd_readdir
+ finished the implementation of path_open
+ implementation of TWasiInternalFdDescriptorDirectory.PathOpen
* find and execute the '_start' export function, instead of simply calling the first function in the module
* skip duplication check for custom sections
+ show usage message when called without any parameters
+ introduced TWasiInternalFdDescriptor.PathOpen
+ defined type TWasiDirent
* TWasiOFlags converted to a set
+ started implementing path_open
* workaround for the bug in Invoke() with 64-bit sets
+ implementation of PathFilestatGet, using FindFirst/FindClose
+ added numbers to the TWasiErrno enum
+ partial implementation of path_filestat_get
+ implemented passing set types as parameters in host module function calls
* TWasiLookupFlags changed to a set
+ added type TWasiFilestat
+ proper implementation of fd_prestat_get and fd_prestat_dir_name
+ TWasiRights converted to a set
* compilation with WASI_DEBUG fixed
* TWasiFdFlags changed to a set
+ partial support for invoking host functions with set types as parameters
+ added FdStatGet method to TWasiInternalFdDescriptor; changed the fd_fdstat_get implementation to use it
* faster fd_write implementation for stdout
+ implemented the i64.trunc_sat_f64_s instruction
+ WASI: implementation of clock_time_get
* TWasiClockId converted to enum
+ support invoking host functions with enum parameters
+ logging of all WASI function calls when compiled with WASI_DEBUG
+ more functions print their debug output when WASI_DEBUG is defined
+ implemented WASI standard input
* WASI: disallow writing to stdin, return BADF
+ added a FD table to the WASI implementation. Use that to implement fd_write to the standard output.
+ pass command line parameters after the .wasm file name to the wasi program
* fix environ_sizes_get returning the proper environc
+ implemented args_get and args_sizes_get
+ implemented environ_get and environ_sizes_get, so that they pass the environment to the module
+ added classes and decoding for the non-trapping float-to-int instructions. Execute() not implemented, yet.
* fixed the second parameter to the SUnrecognizedInstructionOpcode2 message
+ WASIp1: prepare the environment buf
+ parse the --dir, --map-dir and --env parameters and update FWasiConfig
+ added options --dir, --env and --map-dir (validation by CheckOptions only)
- rm unused local var
+ pass Opts and NonOpts as TStringList in TMyApplication.DoRun, in order to parse the options once
+ make use of TCustomApplication for the main console app
+ introduced TWasiConfig, which includes command line, environment and preopened dirs list
* use an enum return type for TWasiErrno
+ support enum return values in host module interfaces
* LoadWasm renamed RunWasm
* project1 renamed fpwasmvm
* project1.* renamed fpwasmvm.*
+ only use unit ffi.manager on Linux
+ fix codepage issues on Linux, when compiled with fpc trunk
- rm unused units
- removed unused variable
+ support proc_exit
+ log proc_exit