@keymanapp/kmc-kmn 17.0.114-alpha → 17.0.115-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/compiler/compiler.d.ts +2 -1
- package/build/src/compiler/compiler.d.ts.map +1 -1
- package/build/src/compiler/compiler.js +39 -9
- package/build/src/compiler/compiler.js.map +1 -1
- package/build/src/import/kmcmplib/wasm-host.js +21 -1416
- package/build/src/import/kmcmplib/wasm-host.js.map +1 -1
- package/build/src/import/kmcmplib/wasm-host.wasm +0 -0
- package/package.json +3 -3
|
@@ -16,7 +16,7 @@ export interface CompilerOptions {
|
|
|
16
16
|
}
|
|
17
17
|
export declare class KmnCompiler {
|
|
18
18
|
private Module;
|
|
19
|
-
|
|
19
|
+
callbackID: string;
|
|
20
20
|
callbacks: CompilerCallbacks;
|
|
21
21
|
constructor();
|
|
22
22
|
init(callbacks: CompilerCallbacks): Promise<boolean>;
|
|
@@ -27,6 +27,7 @@ export declare class KmnCompiler {
|
|
|
27
27
|
verifyInitialized(): boolean;
|
|
28
28
|
run(infile: string, outfile: string, options?: CompilerOptions): boolean;
|
|
29
29
|
private compilerMessageCallback;
|
|
30
|
+
private loadFileCallback;
|
|
30
31
|
private runCompiler;
|
|
31
32
|
private runKvkCompiler;
|
|
32
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAgD,MAAM,yBAAyB,CAAC;AAI1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAgD,MAAM,yBAAyB,CAAC;AAI1G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAmBD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAM;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;;IAOhB,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjE;;;OAGG;IACI,iBAAiB,IAAK,OAAO;IAc7B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO;IA2B/E,OAAO,CAAC,uBAAuB,CAG9B;IAED,OAAO,CAAC,gBAAgB,CAsBvB;IAED,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,cAAc;IA4BtB;;;;;OAKG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAI,UAAU,GAAG,IAAI;CAgChF;AA4BD;;GAEG;AACH,qBAAa,UAAU;IACF,OAAO,EAAE,MAAM;IAAS,MAAM,EAAE,MAAM,EAAE,EAAE;gBAA1C,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,EAAE;IAE7D;;OAEG;IACH,IAAI,MAAM,IAAK,MAAM,CAEpB;IAED,QAAQ,IAAK,MAAM;CAGpB"}
|
|
@@ -23,12 +23,13 @@ const baseOptions = {
|
|
|
23
23
|
* instance of the Compiler class
|
|
24
24
|
*/
|
|
25
25
|
let callbackProcIdentifier = 0;
|
|
26
|
+
const callbackPrefix = 'kmnCompilerCallbacks_';
|
|
26
27
|
export class KmnCompiler {
|
|
27
28
|
Module;
|
|
28
|
-
|
|
29
|
+
callbackID; // a unique numeric id added to globals with prefixed names
|
|
29
30
|
callbacks;
|
|
30
31
|
constructor() {
|
|
31
|
-
this.
|
|
32
|
+
this.callbackID = callbackPrefix + callbackProcIdentifier.toString();
|
|
32
33
|
callbackProcIdentifier++;
|
|
33
34
|
}
|
|
34
35
|
async init(callbacks) {
|
|
@@ -38,6 +39,7 @@ export class KmnCompiler {
|
|
|
38
39
|
this.Module = await loadWasmHost();
|
|
39
40
|
}
|
|
40
41
|
catch (e) {
|
|
42
|
+
/* c8 ignore next 3 */
|
|
41
43
|
this.callbacks.reportMessage(CompilerMessages.Fatal_MissingWasmModule({ e }));
|
|
42
44
|
return false;
|
|
43
45
|
}
|
|
@@ -53,7 +55,9 @@ export class KmnCompiler {
|
|
|
53
55
|
// Can't report a message here.
|
|
54
56
|
throw Error('Must call Compiler.init(callbacks) before proceeding');
|
|
55
57
|
}
|
|
56
|
-
if (!this.Module) {
|
|
58
|
+
if (!this.Module) {
|
|
59
|
+
/* c8 ignore next 4 */
|
|
60
|
+
// fail if wasm not loaded or function not found
|
|
57
61
|
this.callbacks.reportMessage(CompilerMessages.Fatal_MissingWasmModule({}));
|
|
58
62
|
return false;
|
|
59
63
|
}
|
|
@@ -61,14 +65,16 @@ export class KmnCompiler {
|
|
|
61
65
|
}
|
|
62
66
|
run(infile, outfile, options) {
|
|
63
67
|
if (!this.verifyInitialized()) {
|
|
68
|
+
/* c8 ignore next 2 */
|
|
64
69
|
return false;
|
|
65
70
|
}
|
|
66
71
|
options = { ...baseOptions, ...options };
|
|
67
|
-
globalThis[this.
|
|
68
|
-
|
|
72
|
+
globalThis[this.callbackID] = {
|
|
73
|
+
message: this.compilerMessageCallback,
|
|
74
|
+
loadFile: this.loadFileCallback
|
|
75
|
+
};
|
|
69
76
|
let result = this.runCompiler(infile, outfile, options);
|
|
70
|
-
delete globalThis[this.
|
|
71
|
-
//TODO: write the file out!
|
|
77
|
+
delete globalThis[this.callbackID];
|
|
72
78
|
if (result) {
|
|
73
79
|
if (result.kmx) {
|
|
74
80
|
this.callbacks.fs.writeFileSync(result.kmx.filename, result.kmx.data);
|
|
@@ -86,6 +92,25 @@ export class KmnCompiler {
|
|
|
86
92
|
this.callbacks.reportMessage(mapErrorFromKmcmplib(line, code, msg));
|
|
87
93
|
return 1;
|
|
88
94
|
};
|
|
95
|
+
loadFileCallback = (filename, baseFilename, buffer, bufferSize) => {
|
|
96
|
+
// TODO: we can optimize this in future by avoiding loading the file twice #8885
|
|
97
|
+
let resolvedFilename = this.callbacks.resolveFilename(baseFilename, filename);
|
|
98
|
+
let data = this.callbacks.loadFile(resolvedFilename);
|
|
99
|
+
if (!data) {
|
|
100
|
+
return 0;
|
|
101
|
+
}
|
|
102
|
+
if (buffer == 0) {
|
|
103
|
+
/* We need to return buffer size required */
|
|
104
|
+
return data.byteLength;
|
|
105
|
+
}
|
|
106
|
+
if (bufferSize != data.byteLength) {
|
|
107
|
+
// TODO: consider chucking a wobbly because this is a bug #8885
|
|
108
|
+
/* c8 ignore next 2 */
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
this.Module.HEAP8.set(data, buffer);
|
|
112
|
+
return 1;
|
|
113
|
+
};
|
|
89
114
|
runCompiler(infile, outfile, options) {
|
|
90
115
|
let result = {};
|
|
91
116
|
let wasm_interface = new this.Module.CompilerInterface();
|
|
@@ -97,8 +122,7 @@ export class KmnCompiler {
|
|
|
97
122
|
wasm_options.warnDeprecatedCode = options.warnDeprecatedCode;
|
|
98
123
|
wasm_options.shouldAddCompilerVersion = options.shouldAddCompilerVersion;
|
|
99
124
|
wasm_options.target = 0; //CKF_KEYMAN; TODO, support KMW
|
|
100
|
-
wasm_interface.
|
|
101
|
-
wasm_interface.loadFileCallback = this.callbackName; // TODO: this is wrong, needs to be a new callback; not yet used though
|
|
125
|
+
wasm_interface.callbacksKey = this.callbackID; // key of object on globalThis
|
|
102
126
|
wasm_result = this.Module.kmcmp_compile(infile, wasm_options, wasm_interface);
|
|
103
127
|
if (!wasm_result.result) {
|
|
104
128
|
return null;
|
|
@@ -116,6 +140,7 @@ export class KmnCompiler {
|
|
|
116
140
|
return result;
|
|
117
141
|
}
|
|
118
142
|
catch (e) {
|
|
143
|
+
/* c8 ignore next 3 */
|
|
119
144
|
this.callbacks.reportMessage(CompilerMessages.Fatal_UnexpectedException({ e: e }));
|
|
120
145
|
return null;
|
|
121
146
|
}
|
|
@@ -137,6 +162,7 @@ export class KmnCompiler {
|
|
|
137
162
|
}
|
|
138
163
|
catch (e) {
|
|
139
164
|
console.log(e);
|
|
165
|
+
// TODO: also unit test #8886
|
|
140
166
|
// TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
|
|
141
167
|
return null;
|
|
142
168
|
}
|
|
@@ -144,6 +170,7 @@ export class KmnCompiler {
|
|
|
144
170
|
let vk = reader.transform(kvks, errors);
|
|
145
171
|
if (!vk || errors.length) {
|
|
146
172
|
console.dir(errors);
|
|
173
|
+
// TODO: also unit test #8886
|
|
147
174
|
// TODO: this.callbacks.reportMessage(CompilerMessages.Error_InvalidKvksFile({e}));
|
|
148
175
|
return null;
|
|
149
176
|
}
|
|
@@ -161,9 +188,11 @@ export class KmnCompiler {
|
|
|
161
188
|
*/
|
|
162
189
|
parseUnicodeSet(pattern, bufferSize) {
|
|
163
190
|
if (!this.verifyInitialized()) {
|
|
191
|
+
/* c8 ignore next 2 */
|
|
164
192
|
return null;
|
|
165
193
|
}
|
|
166
194
|
if (!bufferSize) {
|
|
195
|
+
/* c8 ignore next 2 */
|
|
167
196
|
bufferSize = 100; // TODO-LDML: Preflight mode? Reuse buffer?
|
|
168
197
|
}
|
|
169
198
|
const buf = this.Module.asm.malloc(bufferSize * 2 * this.Module.HEAPU32.BYTES_PER_ELEMENT);
|
|
@@ -211,6 +240,7 @@ function getUnicodeSetError(rc) {
|
|
|
211
240
|
case KMCMP_FATAL_OUT_OF_RANGE:
|
|
212
241
|
return CompilerMessages.Fatal_UnicodeSetOutOfRange();
|
|
213
242
|
default:
|
|
243
|
+
/* c8 ignore next */
|
|
214
244
|
return CompilerMessages.Fatal_UnexpectedException({ e: `Unexpected UnicodeSet error code ${rc}` });
|
|
215
245
|
}
|
|
216
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,0BAA0B;AAC1B,OAAO,EAAoC,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1G,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAKtE,CAAC;AAMD,CAAC;AAOD,CAAC;AAEF,MAAM,WAAW,GAAoB;IACnC,wBAAwB,EAAE,IAAI;IAC9B,SAAS,EAAE,IAAI;IACf,wBAAwB,EAAE,KAAK;IAC/B,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAEF;;;;GAIG;AACH,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAE/B,MAAM,OAAO,WAAW;IACd,MAAM,CAAM;IACpB,
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}
|