Commit graph

24978 commits

Author SHA1 Message Date
Joshua A. Horton
3b22c198c1 fix(web): re-establishes web srcmap uploading 2023-07-05 09:32:12 +07:00
Joshua A. Horton
ff3e108ff2 fix(web): fixes up Web's InlinedOSK manual test page 2023-07-05 08:17:13 +07:00
Steven R. Loomis
50f0b3112a Merge remote-tracking branch 'upstream/master' into chore/common-8950-node18-engine 2023-07-04 15:51:37 -05:00
Steven R. Loomis
049b8c0a86 chore(common): update docs around Node.js 2023-07-04 15:49:19 -05:00
Steven R. Loomis
d8a57418b0
Merge branch 'master' into feat/developer-7377-reorder-uset 2023-07-04 15:25:18 -05:00
Steven R. Loomis
2370f97cbe
Merge branch 'chore/developer-7377-refactor-kmn-epic-ldml' into fix/common-7377-multi-escape-reorder-epic-ldml 2023-07-04 15:20:09 -05:00
Steven R. Loomis
5588e3fc34
Merge branch 'fix/developer-8069-coverage-todo-epic-ldml' into chore/developer-7377-refactor-kmn-epic-ldml 2023-07-04 15:19:44 -05:00
Steven R. Loomis
b6992d378b fix(developer): improve coverage, add todos 🙀
- fix to the fix

for: #8069
2023-07-04 15:05:10 -05:00
Eberhard Beilharz
aaa1fd1ae4
Merge pull request #9172 from keymanapp/fix/linux/packaginggha
fix(linux): Fix packaging GHA
2023-07-04 21:42:04 +02:00
Keyman Server
81b18cfde2
Merge pull request #9174 from keymanapp/auto/version-master-17.0.134
auto: increment master version to 17.0.134
2023-07-05 01:35:55 +07:00
Keyman Build Agent
aa0ba8fb7d auto: increment master version to 17.0.134 2023-07-04 14:35:21 -04:00
Steven R. Loomis
8cd846f298 fix(common): support multichar escapes in element sets 🙀
- \u{22 0127} acts like \u{22}\u{0127}

for: #7377
2023-07-04 12:47:58 -05:00
Eberhard Beilharz
9afbbcd7f9
fix(linux): Fix packaging GHA
Revert to relative paths.
2023-07-04 19:35:48 +02:00
Steven R. Loomis
a5af734160 chore(developer): refactor so KmnCompiler only created once within kmc 🙀
- remove async SectionCompiler.init()  and all callers
- the usetparser lives on the DependencySections, initialized by kmc-ldml (and by the test harnesses)

for: #7377
2023-07-04 11:39:57 -05:00
Steven R. Loomis
69c9ddc99e fix(developer): improve coverage, add todos 🙀
- skip coverage on some actual internal errors
- add todos where coverage is needed

for: #8069
2023-07-04 11:10:05 -05:00
Steven R. Loomis
e8c24c5df1
Merge branch 'master' into feat/developer-7377-reorder-uset 2023-07-04 11:09:16 -05:00
Steven R. Loomis
1126cfb9a2 chore(developer): robust reorder tests 🙀
For: #7377
2023-07-04 10:50:03 -05:00
Eberhard Beilharz
a63ce22260
Merge pull request #9169 from keymanapp/fix/linux/packaginggha
fix(linux): Fix packaging GHA
2023-07-04 17:31:00 +02:00
Steven R. Loomis
52b8dfb205 feat(common): preflighting on uset 🙀
- update docs on UnicodeSet
- uset parser: fix/clarify that the wasm interface takes a bufferSize, but the ts interface takes a range count. This was muddled before.

For: #7377
2023-07-04 10:26:50 -05:00
Eberhard Beilharz
f1989b65b6
fix(linux): Fix packaging GHA
Next iteration of fixing packaging GHA.
2023-07-04 16:53:33 +02:00
Eberhard Beilharz
58f4d11f52
Merge pull request #9164 from keymanapp/fix/linux/packaginggha
fix(linux): Fix packaging GHA
2023-07-04 16:12:35 +02:00
Eberhard Beilharz
2ab9777c07
fix(linux): Fix packaging GHA
Use absolute path to source directory.
2023-07-04 15:51:00 +02:00
Marc Durdin
8ebc849345 fix(developer): kmc/kmw was not stripping codes correctly
Fixes #9156.

The compiler was only skipping the first codepoint in a CODE sequence.
2023-07-04 14:48:36 +07:00
Marc Durdin
70f7c1634d fix(developer): kvks file reader needs to handle bitmaps
Fixes #9159.

If a key contains a bitmap, then ignore the text for the key.
2023-07-04 14:46:51 +07:00
Marc Durdin
4d64cb2d38 fix(developer): touch layout was not converting all special keycaps
Fixes #9161.

kmw-compiler was converting only the first key cap with `*special*`
caption, rather than all key caps.
2023-07-04 14:44:42 +07:00
Marc Durdin
d2acfdec5c fix(developer): improve kmcmplib/kmw compiler performance
Fixes #9154.

Improves performance in both kmcmplib and in kmc-kmn/kmw-compiler. After
these changes are applied, vietnamese_telex keyboard builds in around 6
seconds on my machine (down from over 2 minutes). This is certainly only
the surface of performance improvements we could make.

Addresses excessive memory reallocations in kmcmplib, by reallocating
store and key arrays in large chunks of 100 items rather than
reallocating on each new item added. This resulted in a 250x speed-up on
functions such as `AddStore` in WASM build.

Some careful modulus arithmetic was needed for resizing the key array,
which can be grown in larger increments.

Resolved excessive zeroing out of destination buffer in u16ncpy, which
was being called with an 8kb destination buffer on every line of the
file.

In the kmw side, vast majority of the performance cost was in copying of
buffers while loading a .kmx into memory, rather than creating views
into the memory. Essentially replaced this pattern:

```
return this.rString.fromBuffer(source.slice(offset));
```

with:

```
const data = new Uint8Array(source.buffer, source.byteOffset + offset);
return this.rString.fromBuffer(data);
```
2023-07-04 14:36:25 +07:00
Marc Durdin
3a54d9b7f4 fix(developer): kmc-kmn/kmw should strip \r from inline html
Fixes #9157.

Matching kmcomp behaviour once more.
2023-07-04 14:31:01 +07:00
Marc Durdin
9dacaaac4e fix(developer): kmc-kmn/kmw should add/delete certain fields in touch layout when writing
Fixes #9160.

To match the behaviour of kmcomp, kmc should add/delete the following
fields when writing out a kmw touch layout:

* `platform.displayUnderlying` flag is always emitted by kmcomp, so kmc
  should always emit it too.
* `platform.font` and `platform.fontsize` should be eliminated if empty
  string
* `key.id` should be eliminated if empty string
2023-07-04 14:29:19 +07:00
Eberhard Beilharz
038cf98db1
Merge pull request #9155 from keymanapp/fix/linux/packaginggha
fix(linux): Another attempt to fix packaging GHA
2023-07-04 08:36:22 +02:00
Joshua A. Horton
e2b5d69d91 docs(ios): adds script docs to ios/README.md, updates, drops some ancient bits 2023-07-04 12:04:42 +07:00
Joshua A. Horton
6b5228788d fix(ios): sample apps support for parent script option 2023-07-04 08:16:02 +07:00
rc-swag
3565b35b5b
Merge pull request #9149 from keymanapp/fix/windows/9093-resize-change-hot-key-lbl
fix(windows): adds an extra row for Change Hotkey text label
2023-07-04 10:42:52 +10:00
Steven R. Loomis
0f0c1e5e61 feat(common): preflighting on uset 🙀
- allow uset to preflight (calculate # of ranges)

For: #7377
2023-07-03 18:48:48 -05:00
Steven R. Loomis
ebcccbe0ef feat(core): rearrange elem flags 🙀
- per review comments, make the elem flags clearer

For: #7377
2023-07-03 18:20:59 -05:00
Steven R. Loomis
a6dcf4dfce
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-07-03 18:20:20 -05:00
Steven R. Loomis
a25d3819d1 Merge remote-tracking branch 'upstream/master' into feat/developer-7377-reorder-uset 2023-07-03 18:09:22 -05:00
Steven R. Loomis
7cf83d2947
Merge pull request #9141 from keymanapp/feat/common-7377-segment-ordr-epic-ldml
feat(common): add segmenter for element strings 🙀
2023-07-03 18:08:41 -05:00
Steven R. Loomis
3ecf8da917
Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-07-03 18:08:25 -05:00
Eberhard Beilharz
32a77eb2c2
fix(linux): Another attempt to fix packaging GHA
This works around the permission problem we got with the previous
commit.
2023-07-03 20:02:22 +02:00
Marc Durdin
4354cd691a
Merge pull request #9153 from keymanapp/fix/developer/9152-kvk-extension
fix(developer): strip .kvk extension 🗜
2023-07-03 18:50:58 +10:00
Joshua A. Horton
b5d0d7d5f8 change(ios): adds targets to primary build.sh 2023-07-03 15:03:55 +07:00
Marc Durdin
2cc2106bbf
Merge pull request #9151 from keymanapp/fix/developer/kmc-bugs-9112-9140-9145-9146
fix(developer): another omnibus set of bug fixes for kmc 🗜
2023-07-03 17:42:33 +10:00
Marc Durdin
3d86e608f4 fix(developer): strip .kvk extension
Fixes #9152.
2023-07-03 12:47:22 +07:00
Joshua A. Horton
0745407f6c fix(ios): sample build issue 2023-07-03 09:43:55 +07:00
Marc Durdin
92c8c6497e fix(developer): improve warnings around keyboard version matching
Fixes #9145.

* `WARN_KeyboardVersionsDoNotMatch` is now only raised when
  `FollowKeyboardVersion` is set.
* `WARN_KeyboardVersionsDoNotMatchPackageVersion` has been removed,
  because it did not really make sense; if 'FollowKeyboardVersion' is
  set, it could not be raised, and otherwise, the author may wish to
  have separate keyboard + package versions anyway.
* Note that the 0x0013 compiler message allocation for
  `WARN_KeyboardVersionsDoNotMatchPackageVersion` has been left alone;
  as this was only used in pre-release, we can probably re-task it in
  the future.
2023-07-03 09:40:09 +07:00
Marc Durdin
9a1b87824a fix(developer): split keyboard and model language metadata tests
Fixes #9146.

For model packages, 304016 (ERROR_ModelMustHaveAtLeastOneLanguage)
remains as an error (this is a new error for kmc, kmcomp did not
validate model metadata). For keyboard packages, a new warning is
introduced to match the existing kmcomp behaviour, 20401B
(WARN_KeyboardShouldHaveAtLeastOneLanguage).
2023-07-03 09:31:29 +07:00
Marc Durdin
be0b2ae583 fix(developer): allow kmcmplib memory usage to grow
Fixes #9112.

Note that this does not address any performance concerns which are a
much bigger issue; it just avoids the crash.
2023-07-03 09:27:53 +07:00
Marc Durdin
7aede78707 fix(developer): compiler needs to support loading .kvk files
Fixes #9150.

Legacy .kmn keyboards can refer to a binary .kvk file. kmc needs to be
able to load these as well.

Note: there was a short period of time in which .kvk files were either
source or binary format. We moved to .kvk always being binary, and .kvks
always being source (xml), and so IMO we don't need to include support
for mismatched file formats.
2023-07-03 09:25:10 +07:00
Marc Durdin
33affc660f fix(common): legacy .kpj schema
Fixes #9140.
Fixes #9148.

Keyman Developer 9.0 .kpj files included a lot of additional state
metadata. We need a schema which validates these files, as they are
otherwise valid to load (we'll never save them any more). Rather than
add all the extra metadata to what is otherwise a fairly clean schema,
we'll provide a legacy .schema.json.

In the future, we may be able to merge these schemas, as we move towards
the .kpj 2.0 format which doesn't list files. Ideally, all three formats
(Keyman Developer 9.0 schema, call it legacy, 1.0 schema for Keyman
Developer 10.0+ which has Options and Files listed, 2.0 schema for
capturing just project settings for a folder) will be supported by a
single schema file.
2023-07-03 09:06:03 +07:00
Joshua A. Horton
b65a80f6f9 fix(ios): lots more fixes per PR review 2023-07-03 09:01:23 +07:00