Commit graph

2740 commits

Author SHA1 Message Date
Steven R. Loomis
f7e5b114cf
Merge pull request #8412 from keymanapp/chore/resources-7042-cldr-update-202303-epic-ldml 2023-03-14 21:50:17 -05:00
Joshua A. Horton
e4b9aae8aa fix(developer/compilers): locks esbuild target detection for kmc bundling 2023-03-15 09:06:41 +07:00
Steven R. Loomis
0f99a62a4e fix(developer): ldml add KeysCompiler.hardwareLayers() 2023-03-14 18:14:24 -05:00
Steven R. Loomis
275c310e79 fix(developer): ldml update test case per review feedback 2023-03-14 18:09:37 -05:00
Steven R. Loomis
7a3a0c4b2c chore(developer): ldml update compiler for updated spec 🙀
- some support for >1 layers -

Fixes: #8160
more work will be needed for touch layers. but punting that till we get to touch.

#7042
2023-03-14 17:38:30 -05:00
Steven R. Loomis
f92cd36125 chore(developer): ldml update compiler for updated spec 🙀
#7042
2023-03-14 17:38:30 -05:00
Steven R. Loomis
f7a2f075ee chore(core): ldml update tests to match latest ldml 🙀
- move hardware= attribute  into the form= attribute

#7042
2023-03-14 17:38:30 -05:00
Joshua Horton
10518dd62e
Merge pull request #8429 from keymanapp/chore/common/ldml-ts-and-node-updates
chore(common): TS updates to non-sync'd packages, feature-esmodule merge conflict prevention
2023-03-14 12:06:15 +07:00
Joshua A. Horton
f7d082981c chore: Merge branch 'master' into chore/feature-esmodule-master-update 2023-03-14 11:51:57 +07:00
Marc Durdin
534bd2a54b
Merge pull request #8416 from keymanapp/chore/common/build-script-performance
chore(common): build script performance improvements
2023-03-14 15:41:32 +11:00
Joshua A. Horton
f5e64a10a5 chore: Merge branch 'chore/common/ldml-ts-and-node-updates' into chore/feature-esmodule-master-update 2023-03-14 09:23:39 +07:00
Joshua A. Horton
2439ba4e97 fix(developer): updates kmc, web/types module resolution, adds missing type import/exports 2023-03-14 08:41:29 +07:00
Joshua A. Horton
0da7ac24be chore(common): updates TS, sets export map for keyman-version 2023-03-14 08:22:26 +07:00
Ramesh Kunnappully
8647610d16
Update copyright period in License.rtf 2023-03-13 23:52:25 +05:30
Marc Durdin
92ed99c4d6 chore(common): build script performance improvements
Improves build script performance by:
* using built-ins wherever possible (e.g. string splitting)
* eliminating redundant code
* using absolute (to $KEYMAN_ROOT) rather than relative paths to avoid realpath
* removing unnecessary `npm run` calls

BEFORE                         | AFTER
-------------------------------|----------------------
time ./core/build.sh --help    |
real    0m2.116s               | real    0m0.874s
user    0m0.578s               | user    0m0.198s
sys     0m0.984s               | sys     0m0.289s
-------------------------------|----------------------
time ./web/build.sh --help     |
real    0m3.523s               | real    0m0.757s
user    0m1.166s               | user    0m0.320s
sys     0m2.273s               | sys     0m0.455s
-------------------------------|----------------------
time ./web/build.sh -d         |
real    1m34.750s              | real    0m59.974s
user    0m9.721s               | user    0m6.284s
sys     0m19.652s              | sys     0m13.202s

@keymanapp-test-bot skip
2023-03-13 07:18:09 +07:00
Marc Durdin
920f376b64 chore(developer): fix compile errors 2023-03-10 13:23:31 +07:00
Marc Durdin
73a080a949 chore(developer): fix kmcompx compile errors
Some minor errors post-merge.
2023-03-10 13:16:25 +07:00
Marc Durdin
2ad0689090
Merge pull request #8402 from keymanapp/chore/developer/breadth-first-build
chore(developer): kmcmplib breadth-first-build 🚑
2023-03-10 09:24:55 +11:00
Marc Durdin
36c185f5f8
Merge pull request #8398 from keymanapp/chore/core/shared-meson-config
chore(core): shared meson config 🚑
2023-03-10 09:24:45 +11:00
Marc Durdin
aa9065e7df
Merge pull request #8393 from keymanapp/feat/developer/kmcmplib-wasm-support
feat(developer): adds support for compiling kmcmplib to wasm 🚑
2023-03-09 18:43:57 +11:00
Marc Durdin
fed2d18c89
Merge branch 'feature-kmcompx' into chore/developer/kmcmplib-tidy-up-filesystem-access 2023-03-09 18:43:29 +11:00
Marc Durdin
0291399d13
Merge pull request #8388 from keymanapp/fix/developer/8381-kmx-output-consistency
fix(developer): improve .kmx output consistency for cross-platform 🚑
2023-03-09 18:41:44 +11:00
Marc Durdin
583280c636
Merge pull request #8387 from keymanapp/chore/developer/cross-platform-fixups-for-wasm
chore(developer): cross-platform fixups pre-wasm build of kmcmplib 🚑
2023-03-09 18:41:25 +11:00
Marc Durdin
42e395e0be chore(developer): fix typo 2023-03-09 13:07:33 +07:00
Marc Durdin
bd768b1d0e
Merge pull request #8379 from keymanapp/refactor/developer/8082-xstring-check-for-p
chore(developer): check for *p != NULL and test for p > pStart
2023-03-09 17:00:41 +11:00
Marc Durdin
a0cb9a61be chore(developer): kmcmplib breadth-first-build 2023-03-09 12:57:20 +07:00
Marc Durdin
7a57e2aba0
Merge branch 'feature-kmcompx' into chore/developer/cross-platform-fixups-for-wasm 2023-03-09 16:29:25 +11:00
Marc Durdin
ef80f0f6b5 chore(developer): shared meson config for kmcmplib 2023-03-09 12:14:15 +07:00
Marc Durdin
6a280804b8 chore(developer): fixup build errors 2023-03-09 11:34:14 +07:00
Marc Durdin
0341f554e9
Merge pull request #8367 from keymanapp/chore/developer/kmcmplib-remove-windows.h
chore(developer): remove references to windows.h
2023-03-09 12:27:15 +11:00
Marc Durdin
98ca597320
Merge pull request #8365 from keymanapp/chore/developer/kmcmplib-api-interfaces-and-types
chore(developer): cleanup API interfaces and types for kmcmplib
2023-03-09 12:27:05 +11:00
Marc Durdin
e10606f6c1 feat(developer): adds support for compiling kmcmplib to wasm
Note: unit tests require manual build of keyboards in keyboards repo
using kmcmpdll.dll under Windows, and copying into the tests/fixtures
folder, prior to run, under non-Windows platforms.

(Later: will make it possible to build the reference keyboards using
kmcomp.exe on Windows.)
2023-03-09 07:20:50 +07:00
Marc Durdin
2ce959aee5 chore(developer): fixup header 2023-03-09 07:20:26 +07:00
Marc Durdin
ad0ce5e5b8 chore(developer): avoid symbol collision 2023-03-09 07:04:55 +07:00
Marc Durdin
5d52932e1c chore(developer): further filesystem cleanup in kmcmplib
* fixes CheckFilenameConsistency to use Windows functions on Windows,
  to check case differences, and only test for file existence on other
  platforms which are already case sensitive.
* fixes memory leaks in usage of `wstrtostr2`, and eliminated the
  function altogether.
* avoided use of u16sprintf for error messages, as it seems not to be
  working correctly (long term, eliminate altogether, use C++ string
  formatting).
* fix memory leak and overwrite of token in compiler error message.
* remove debug logging and namespace from filesystem.cpp

Unrelated to kmcmplib:
* improved logs in kmcomp tests (these tests are running on kmcmplib),
  so it is easier to diagnose failing tests.
2023-03-09 05:39:39 +07:00
SabineSIL
30f0f0b87a
Update developer/src/kmcmplib/src/xstring.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-03-08 10:54:10 +01:00
SabineSIL
66e4bde0d3
Update developer/src/kmcmplib/src/xstring.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-03-08 10:50:28 +01:00
SabineSIL
b27189fb21
Update developer/src/kmcmplib/src/xstring.cpp
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-03-08 10:49:39 +01:00
Marc Durdin
9cb58e9030 chore(developer): add filesystem.h ref 2023-03-08 15:43:10 +07:00
Marc Durdin
8277b6b38f chore(developer): tidy up kmcmplib filesystem access
Moves filesystem functionality into filesystem.cpp (it was partially
in kmx_u16.h previously), and adds cross-platform switches. This brings
us most of the way towards being able to run kmcompx under WASM and in
theory other platforms (yet to be tested).
2023-03-08 15:42:16 +07:00
Marc Durdin
3758aa261e chore(developer): remove filesystem.h ref 2023-03-08 15:41:38 +07:00
Marc Durdin
462ebb0e88
chore: remove filesystem.h ref 2023-03-08 19:40:25 +11:00
Marc Durdin
e36c0085b0 fix(developer): improve .kmx output consistency for cross-platform
This fixes two issues:

1. `COMP_KEY` structure had padding that was not always zeroed out.
   Made this explicit.

2. Rule sorting could be inconsistent when re-sorting rules that
   use `+ any() > ...`, which are expanded at compile time into multiple
   rules, and which ended up with identical sort keys due to lack of
   precision. This relates to #8381 but only adds differentiation for
   the otherwise ambiguous rule sort keys, and does not fix that issue,
   which requires further investigation.
2023-03-08 13:53:29 +07:00
Marc Durdin
e52e7731ad chore(developer): cross-platform fixups pre-wasm build of kmcmplib
This is not enough for building to WASM, but wanted to split out the
bigger changes into their own PRs. This is mostly busy-work.

One serious bug fixed:
* u16string_from_string was not converting from UTF-16 correctly

Apart from that, just tidies up a few bits and pieces in kmcmplib:
* type coercion for json-validator.cpp (probably already fixed upstream)
* cleanup of build scripts for new builder variable names
* various compatibility macros for MSVC vs clang
* safer math expressions
* file name casing in headers
* replacement of various ms-only std funcs
* removed some unused variables and consts
* tightened up search for keyboards to get only keyboards in /source/
  folders (may be possible to improve further in the future?)
2023-03-08 13:49:06 +07:00
Sabine
5ef2c42694 Merge remote-tracking branch 'origin/feature-kmcompx' into refactor/developer/8086-common-includes 2023-03-07 16:27:25 +01:00
Sabine
2b19fecce5 chore(developer): use \n as line endings (instead of \r\n) 2023-03-07 16:08:02 +01:00
Sabine
349d970a39 chore(developer): undo previous change in Readline 2023-03-07 16:08:02 +01:00
Sabine
9426204e87 chore(developer): check for *p != NULL and test for p > pStart 2023-03-07 15:57:35 +01:00
Marc Durdin
6067748221 chore(developer): additional fixes 2023-03-04 05:41:35 +07:00
Marc Durdin
a86b52d50f chore(developer): remove references to windows.h
This removes the remaining references to windows.h and windows types and
macros from kmcmplib.

A few TODO items have been added, mostly relating to shared code or
fixed buffer sizes.

Compiler version is now sourced from keymanversion.h.
2023-03-03 16:37:10 +07:00