Commit graph

4256 commits

Author SHA1 Message Date
Steven R. Loomis
1fe6f497f7 feat(developer): VARification steps 🙀
For: #7377
2023-05-27 22:08:16 -05:00
Steven R. Loomis
ca602385b3 feat(developer): vars: hooray for more errors 🙀
For: #7377
2023-05-27 17:01:10 -05:00
Marc Durdin
62b41d385c
Merge pull request #8856 from keymanapp/chore/developer/remove-seterror
chore(developer): remove SetError macro
2023-05-26 18:43:33 +10:00
Marc Durdin
18c4ac5bb2
Merge pull request #8850 from keymanapp/refactor/developer/wasm-compiler-interface
refactor(developer): compiler interface part 1 for wasm
2023-05-26 18:43:24 +10:00
Marc Durdin
a92917f947 chore(developer): replace cwrap wasm bindings
This moves the remainder of the WASM interfaces in kmcmplib to using
emscripten bind. It is a little bit of a step backwards at present for
parseUnicodeSet, because I've changed the output buffer type to an int
for the purposes of simplifying the binding just now. But that can be
improved later, and at least we are consistent with the binding methods.

Next step is to move the filesystem access out of kmcmplib.
2023-05-25 12:54:27 +07:00
Marc Durdin
d0083e984d
Merge pull request #8796 from keymanapp/refactor/developer/kmcmplib-fs-agnostic
refactor(developer): move file write out of WriteCompiledKeyboard and CompileKeyboard merge
2023-05-25 14:06:51 +10:00
Marc Durdin
50186e986e chore(developer): remove SetError macro
The `SetError` macro emitted `return FALSE;` which was confusing for
reviewing code flow. Replaced with explicit `AddCompileMessage()` and
`return FALSE;`.
2023-05-25 09:03:22 +07:00
Marc Durdin
ef101d746c chore(developer): address review comments 2023-05-25 08:24:09 +07:00
Marc Durdin
cdf5f7a7c4 chore(developer): consolidate 'extra' field for FILE_KEYBOARD
FILE_KEYBOARD is a structure used in multiple libraries and languages.
It is passed around between kmcmplib, kmcmpdll, and kmcomp, with three
separate definitions (kmcmplib/compfile.h, kmcmpdll/compfile.h, and
kmcomp/compile.pas). These duplicate definitions must be maintained for
now because of type issues between the legacy kmcmpdll and kmcmplib,
which means that the definitions must be kept in sync.

Because FILE_KEYBOARD_EXTRA has a C++ class in it, it will be
initialized in CompileKeyboardHandle rather than in the caller, so
FILE_KEYBOARD.extra is now a pointer rather than a struct.

When original kmcomp and kmcmpdll are eventually removed, these
duplications will disappear and some of the memory management and
lifecycle will become easier to manage.
2023-05-24 12:14:41 +07:00
Marc Durdin
d1d6dc5d99 refactor(developer): compiler interface part 1 for wasm
This starts the refactor of the .kmn compiler interfaces for WASM,
moving more file writes into typescript and out of the compiler. Adds a
cleaner binding and structures for passing compile metadata back to
typescript for additional build steps (e.g. kvk, js builds).

Will rebase the Typescript-based KMW compiler onto this so it can start
to benefit from the refactoring.

* Fixes a minor issue with loading a .kvks file with an empty flags set.
* Adds a writeFileSync method to the compiler callback interfaces.
* Adds an e2e compiler test to verify that .kmx and .kvk are both
  correctly compiled.
2023-05-23 15:26:28 +07:00
Marc Durdin
15142e9a4b chore(developer): cleanup 2023-05-23 11:52:37 +07:00
Marc Durdin
b6173fda37 fix(developer): 'no keyboard version' no longer emitted
The `Info_KeyboardFileHasNoKeyboardVersion` message is now only emitted
if the package uses `FollowKeyboardVersion`, which broke a unit test in
kmc.
2023-05-23 11:39:44 +07:00
Marc Durdin
e4cfc8843c chore: Merge branch 'master' into feat/typescript-keymanweb-compiler 2023-05-23 09:51:06 +07:00
Marc Durdin
e293d7608c chore(developer): add test for missing .js file 2023-05-23 09:28:26 +07:00
Marc Durdin
3828a5c16b refactor(developer): move message tests into test-messages.ts 2023-05-23 08:31:29 +07:00
Steven R. Loomis
b7a7ac328c feat(developer): vars: var utils and some tests 🙀
For: #7377
2023-05-22 19:10:53 -05:00
Joshua A. Horton
ca894d0991 chore(web): Merge branch 'master' into chore/web/merge-master-esmodule-a17s13-mid 2023-05-22 13:49:45 +07:00
Steven R. Loomis
5b1d892b0d feat(developer): markers: marker utils and tests 🙀
For: #7377
2023-05-20 19:57:23 -05:00
Steven R. Loomis
518fcd8fc2 feat(developer): tran: compiler path complete 🙀
- still doesn't actually precompile vars or regex

For: #7377
2023-05-19 19:09:44 -05:00
Steven R. Loomis
3165eae0ea feat(developer): tran: verify steps 🙀
- also add function compilerEventFormat() to format an event or array of events

For: #7377
2023-05-19 13:23:05 -05:00
Steven R. Loomis
4a53bd18de feat(developer): tran: group steps 🙀
For: #7377
2023-05-17 17:29:16 -05:00
Ross
1d3fc99b28 chore(windows): Merge branch 'master' into chore/windows/5442/remove-legacy-keyman-core 2023-05-17 10:27:56 +10:00
Steven R. Loomis
900de4caf0 feat(developer): vars: bitrot 🙀
- still no basic.txt yet…

For: #7377
2023-05-16 18:12:12 -05:00
Steven R. Loomis
d1b55ddee6 Merge remote-tracking branch 'upstream/master' into feat/developer-7377-transform-format-epic-ldml3 2023-05-16 18:10:49 -05:00
Marc Durdin
4ad975d3a8
Merge pull request #8793 from keymanapp/chore/developer/verify-package-has-a-model-or-keyboard
chore(developer): verify that package has at least a model or keyboard
2023-05-16 17:21:41 +10:00
Marc Durdin
ced54e260a
Merge pull request #8792 from keymanapp/chore/developer/verify-included-files-in-package
chore(developer): verify file types of content files in package
2023-05-16 17:21:24 +10:00
Marc Durdin
1be22862cf
Merge pull request #8783 from keymanapp/feat/developer/verify-at-least-one-language-in-package
feat(developer): verify at least one language in package
2023-05-16 17:21:01 +10:00
Marc Durdin
888786e0f4
Merge pull request #8778 from keymanapp/feat/developer/verify-package-lang-tags
feat(developer): verify bcp47 tags are valid and minimal in kmc-package
2023-05-16 17:20:46 +10:00
Marc Durdin
bd0db9c7da
Merge pull request #8769 from keymanapp/feat/developer/verify-keyboard-versions
feat(developer): verify keyboard versions in kmc-package
2023-05-16 17:20:26 +10:00
Marc Durdin
b2e293892d
Update developer/src/kmc-package/test/fixtures/invalid/keyboardcontentfilenotfound.kps 2023-05-16 13:21:31 +10:00
Marc Durdin
c31118cd6d chore(developer): rename fixture 2023-05-15 20:17:22 +07:00
Marc Durdin
663e4195ff
chore: Apply suggestions from code review 2023-05-15 23:16:36 +10:00
Joshua A. Horton
1308e74833 chore(web): Merge branch 'feature-esmodule-web-engine' into fix/web/webview-android-launch 2023-05-15 08:50:28 +07:00
Marc Durdin
ac0cd831f8 refactor(developer): CompileKeyboard merge 2023-05-14 17:14:51 +07:00
Marc Durdin
e7a6d3293d refactor(developer): move file write out of WriteCompiledKeyboard
Stage one of the kmcmplib filesystem refactoring, as we move to writing
to buffers and allowing caller to write to disk. Moves responsibility
for writing data out of WriteCompiledKeyboard and into
kmcmp_CompileKeyboardFile. This means that there are now no file writes
in Compiler.cpp, except for the temp UTF16fromUTF8 (which I will also
change to a in-memory buffer "real soon now").

Note that responsibility for writing in kmcmp_CompileKeyboardFile is
very much temporary as we'll move it out of the library altogether in
a subsequent commit.
2023-05-14 16:02:18 +07:00
Marc Durdin
135d6f9c0f
chore(developer): rename misnamed error message 2023-05-14 17:23:21 +10:00
Marc Durdin
7f1c05cba4
chore: rename Error_PackageMustContainAModelOrAKeyboard
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2023-05-14 17:18:59 +10:00
Marc Durdin
9978cb2d50 chore(developer): fix typo 2023-05-14 13:40:11 +07:00
Marc Durdin
4416957d2e chore(developer): skip c8 test for kmc-kmw for now 2023-05-14 12:46:54 +07:00
Marc Durdin
80e5d650de chore(developer): split CKF_KEYMANWEB for typescript compiler 2023-05-14 12:46:53 +07:00
Marc Durdin
eac6651c03 chore(developer): use older pattern for row id
In order to match existing behaviour with the legacy KeymanWeb compiler,
we should use quoted numbers for row ids. This behaviour can probably be
changed over to the new model in the future, but for now this prevents
unit tests from causing us grief.
2023-05-14 12:46:52 +07:00
Marc Durdin
ea374aaffd chore(developer): rollback temp kmcomp js build stub 2023-05-14 12:46:51 +07:00
Marc Durdin
c4b8f574cf chore(developer): add kmc-kmw to kmc deps 2023-05-14 12:46:22 +07:00
Marc Durdin
d00396467a chore(developer): add kmc-kmw to npm workspace 2023-05-14 12:44:36 +07:00
Marc Durdin
d2581ae4a8 feat(developer): 'working' kmw compiler 2023-05-14 12:43:22 +07:00
Marc Durdin
68f97306df feat: temp commit -- kmw compiler 2023-05-14 12:42:13 +07:00
Marc Durdin
13e8067600 feat: kmc-kmw more conversions 2023-05-14 12:41:20 +07:00
Marc Durdin
f68a4c84fd chore: continue 2023-05-14 12:41:19 +07:00
Marc Durdin
dc05daefde feat: more work on compiler 2023-05-14 12:41:18 +07:00
Marc Durdin
c1439759ca chore: temp step 1 of ts kmw 2023-05-14 12:41:17 +07:00