176 lines
6.6 KiB
JSON
176 lines
6.6 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"engine": "perl",
|
|
"engineName": "Perl regular expressions via WebPerl",
|
|
"engineVersion": "5.28.1",
|
|
"semanticIdentity": "Perl v5.28.1 regular expressions via the legacy WebPerl v0.09-beta prebuilt runtime",
|
|
"status": "legacy-beta-compatibility-runtime",
|
|
"bridge": {
|
|
"abiVersion": 1,
|
|
"nativeOffsetUnit": "Unicode code points (Perl character offsets)",
|
|
"requestEncoding": "exact-key and byte-bounded JSON in a fixed MEMFS request file; no request value is interpolated into source",
|
|
"responseEncoding": "byte-bounded metadata JSON in a fixed MEMFS response file",
|
|
"workerTopology": "supervised ES module worker with a nested self-hosted classic WebPerl worker",
|
|
"evaluatorInvocation": "RegexTools::run_request()",
|
|
"userSourceEvaluation": false,
|
|
"regexCodeAssertionsEnabled": false,
|
|
"supportedApplicationFlags": [
|
|
"g",
|
|
"i",
|
|
"m",
|
|
"s",
|
|
"x",
|
|
"n",
|
|
"a",
|
|
"d",
|
|
"l",
|
|
"u"
|
|
],
|
|
"replacement": "Pre-tokenized fixed grammar supporting literal text, $$, greedy $n, and ${name}; bounded UTF-8 chunks stream from native spans without a complete capture-value array, expansion, or output materialization",
|
|
"replacementParityOracle": "identity self-test compares fixed named and numbered fixtures with native Perl s/// output",
|
|
"replacementOutputTransport": "successful UTF-8 output uses a separate fixed MEMFS binary file; the classic worker validates exact length, bound, canonical UTF-8 and injects the decoded string for PortableEngineAdapter",
|
|
"captureNames": "Perl-native numbered participation and spans; syntax metadata annotates capture-row names; named replacement lookup uses native %+ and resolves the selected value back to a native span before output",
|
|
"limits": {
|
|
"maximumPatternCharacters": 65536,
|
|
"maximumSubjectBytes": 16777216,
|
|
"maximumReplacementCharacters": 65536,
|
|
"maximumMatches": 10000,
|
|
"maximumCaptureRows": 100000,
|
|
"maximumCaptureGroups": 1000,
|
|
"maximumOutputBytes": 67108864,
|
|
"maximumErrorCharacters": 1024,
|
|
"maximumRequestJsonBytes": 101466112,
|
|
"maximumResponseJsonBytes": 8388608,
|
|
"outputChunkCharacters": 4096
|
|
},
|
|
"sourceFiles": [
|
|
{
|
|
"path": "engines/perl/README.md",
|
|
"sha256": "bac7fcce7a1e4451ab7f1c7489211114aa52b896aecf45f3ac991b294c736952",
|
|
"bytes": 3311
|
|
},
|
|
{
|
|
"path": "engines/perl/perl-runtime.worker.js",
|
|
"sha256": "0c42a7b2a72b886d967aadff0b1bb35017c247e5cad79ad85544fc3a91f17e5b",
|
|
"bytes": 10926
|
|
},
|
|
{
|
|
"path": "engines/perl/regex_tools_bridge.pl",
|
|
"sha256": "880835d63b2319f72ae4be1db50e2cecda8ebd98b80dca810448c3a665dcc4d3",
|
|
"bytes": 23415
|
|
}
|
|
]
|
|
},
|
|
"securityAudit": {
|
|
"generatedLoaderJavaScriptEvalSites": 1,
|
|
"generatedLoaderNewFunctionSites": 0,
|
|
"evalSitePurpose": "optional WebPerl Perl-to-JavaScript interoperability import; not loaded or invoked by regex-tools",
|
|
"normalPathCsp": "script-src 'self' 'wasm-unsafe-eval'; no 'unsafe-eval'",
|
|
"runtimeRegexEval": "disabled with no re 'eval'",
|
|
"codeAssertionDefense": "fixed scanner rejects (?{...}) and (??{...}) before compilation",
|
|
"killability": "the supervised worker tree can be terminated by EngineSupervisor",
|
|
"boundedTransport": "request and response JSON have exact field/byte contracts; replacement output is not JSON-escaped"
|
|
},
|
|
"source": {
|
|
"project": "WebPerl",
|
|
"repository": "https://github.com/haukex/webperl",
|
|
"tag": "v0.09-beta",
|
|
"tagObjectSha1": "c5933d11666906328b238d03459707207b6ca2b4",
|
|
"commitSha1": "6f2173d29a2c2e3536e1de75ff5d291ae96ab348",
|
|
"treeSha1": "20e59a142ad2e355fc3ed03da974bdf183b79c66",
|
|
"license": "GPL-1.0-or-later OR Artistic-1.0-Perl",
|
|
"perl": {
|
|
"version": "5.28.1",
|
|
"repository": "https://github.com/Perl/perl5",
|
|
"tag": "v5.28.1",
|
|
"license": "GPL-1.0-or-later OR Artistic-1.0-Perl"
|
|
}
|
|
},
|
|
"prebuilt": {
|
|
"archive": "https://github.com/haukex/webperl/releases/download/v0.09-beta/webperl_prebuilt_v0.09-beta.zip",
|
|
"archiveSha256": "5f441249217e90ab378c666f473d4206ab4f44907f6bb0aa8d70834bc38c40dc",
|
|
"archiveBytes": 3936557,
|
|
"runtimeAssetsCopiedByteForByte": true
|
|
},
|
|
"toolchain": {
|
|
"emscriptenVersion": "1.38.28",
|
|
"target": "wasm32-unknown-emscripten",
|
|
"license": "MIT OR NCSA"
|
|
},
|
|
"bundledModules": [
|
|
{
|
|
"name": "Cpanel::JSON::XS",
|
|
"version": "4.09",
|
|
"license": "GPL-1.0-or-later OR Artistic-1.0-Perl",
|
|
"normalEnginePath": true
|
|
},
|
|
{
|
|
"name": "Devel::StackTrace",
|
|
"version": "2.03",
|
|
"license": "Artistic-2.0",
|
|
"normalEnginePath": false,
|
|
"sourceArchive": "https://www.cpan.org/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.03.tar.gz",
|
|
"sourceArchiveSha256": "7618cd4ebe24e254c17085f4b418784ab503cb4cb3baf8f48a7be894e59ba848"
|
|
},
|
|
{
|
|
"name": "Future",
|
|
"version": "0.39",
|
|
"license": "GPL-1.0-or-later OR Artistic-1.0-Perl",
|
|
"normalEnginePath": false
|
|
}
|
|
],
|
|
"sourceDateEpoch": 1551644196,
|
|
"files": [
|
|
{
|
|
"path": "LICENSE-Devel-StackTrace-Artistic-2.0.txt",
|
|
"sha256": "e16dd93533bb65e25fad00d06e88840d9b5fd6bb80d551d8866126c52d89e1de",
|
|
"bytes": 9048
|
|
},
|
|
{
|
|
"path": "LICENSE-Emscripten.txt",
|
|
"sha256": "51aea7641f81d560eb039bc97ce35e2517e2656fe8731eb49ce6a18498eb22fe",
|
|
"bytes": 5092
|
|
},
|
|
{
|
|
"path": "LICENSE-WebPerl-Artistic.txt",
|
|
"sha256": "435a788b2de9aaae9c640e7c0ab7b317b41323522e8641bcda000607892abf1f",
|
|
"bytes": 7587
|
|
},
|
|
{
|
|
"path": "LICENSE-WebPerl-GPL.txt",
|
|
"sha256": "0166b8b8e96a6b153da26ece157ebbd9ffad5423670f611fae80fefacb6da7f5",
|
|
"bytes": 14468
|
|
},
|
|
{
|
|
"path": "NOTICE.txt",
|
|
"sha256": "499559af54694d319697271433262a3324a976061f4537ed1c5210235f9eb348",
|
|
"bytes": 2827
|
|
},
|
|
{
|
|
"path": "emperl.data",
|
|
"sha256": "9529019418cf766a42cf2d25bd3fc97b47c9e689f5666cfc32dc11338d1b1e66",
|
|
"bytes": 12021691
|
|
},
|
|
{
|
|
"path": "emperl.js",
|
|
"sha256": "b60e3c04874c6ef5278001257b4c8a9f4c7e69ca3d6b268d9639723234844784",
|
|
"bytes": 303013
|
|
},
|
|
{
|
|
"path": "emperl.wasm",
|
|
"sha256": "f1d49c4514c7332a57992c4a2444fd6a56ae3b5e6651b4fd484852a641e5e4ec",
|
|
"bytes": 3734063
|
|
},
|
|
{
|
|
"path": "perl-runtime.worker.js",
|
|
"sha256": "0c42a7b2a72b886d967aadff0b1bb35017c247e5cad79ad85544fc3a91f17e5b",
|
|
"bytes": 10926
|
|
},
|
|
{
|
|
"path": "regex_tools_bridge.pl",
|
|
"sha256": "880835d63b2319f72ae4be1db50e2cecda8ebd98b80dca810448c3a665dcc4d3",
|
|
"bytes": 23415
|
|
}
|
|
]
|
|
}
|