Commit graph

1262 commits

Author SHA1 Message Date
rc-swag
99d9d68e66 Initial addition of arm64 configuration 2025-07-31 16:30:23 +10:00
Eberhard Beilharz
51ca604b47
chore(common): Merge remote-tracking branch 'origin/master' into maint/common/14109_isOsFuncs 2025-07-21 09:20:12 +02:00
Eberhard Beilharz
faa521d82c
maint(common): set C++17 in standard.meson.build
Note that the ICU subprojects still explicitly specify C++17 since they
are maintained outside of Keyman and so shouldn't be tied to the Keyman
compiler version requirement.

Fixes: #12526
Test-bot: skip
2025-07-18 14:04:11 +02:00
Eberhard Beilharz
acebacc2b6
maint(core): explain (wrong) meson warning
Build-bot: skip
Test-bot: skip
2025-07-17 17:03:47 +02:00
Eberhard Beilharz
3b136fcec9
maint(common): consolidate functions to determine OS
- add `builder_is_windows`, `builder_is_macos` and `builder_is_linux`
  functions
- add/move `BUILDER_OS` env variable to `resources/builder.inc.sh`
- use the new functions and env variable

Fixes: #14109
Test-bot: skip
2025-07-09 18:33:09 +02:00
Eberhard Beilharz
819c9cc3fe
chore: Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-05-30 18:25:23 +02:00
Steven R. Loomis
4d9551ae07
Merge pull request #14050 from keymanapp/feat/developer/13939-ln-layrcompiler
feat(developer): line numbers for layr compiler
2025-05-27 19:00:41 -05:00
Steven R. Loomis
b681885eca feat(developer): add more tests to layr compiler
- check for duplicate minDeviceWidth
- check for invalid minDeviceWidth

Fixes #13939
2025-05-26 12:30:59 -05:00
Marc Durdin
9f15e7c7ec maint: add empty 'scripts' tag to package.json to silence warning
Also removes './' from front of gosh.js to address another npm cleanup
(from `npm pkg fix`).

Fixes: #13833
2025-05-25 06:35:28 +07:00
Eberhard Beilharz
ee93d0d27a
maint(linux): add --no-werror option to not report warnings as errors
By default we add the `--werror` option to meson builds. This might cause
problems when compiling with a different compiler, so this option adds
the `--no-werror` option to our build scripts. This enables integrators
to compile with other compiler versions.

Fixes: #13970
Test-bot: skip
2025-05-20 09:01:22 +02:00
Marc Durdin
64d9128446 chore: Merge branch 'chore/merge-master-into-web-core' 2025-05-15 17:42:55 +02:00
Marc Durdin
43cf66a9d4
Merge pull request #13796 from keymanapp/maint/meson-versioning-improvements
maint(common): cleanup meson versioning
2025-05-02 13:39:47 +07:00
Marc Durdin
9d2db4faf3 maint(common): consolidate standard.meson.build configuration
Use a shared function standard_meson_build to prep the
resources/meson.build folder for consistency. A future cleanup would be
to use meson-utils.inc.sh for all meson build scripts.
2025-04-30 09:16:43 +07:00
Marc Durdin
f8917d2454 maint(common): cleanup meson versioning
* Adds `VERSION_WITH_TAG` variable to standard.meson.build
* Consistently uses `file('VERSION.md')` to retrieve version number

Note that VERSION_WITH_TAG is not yet used but should be used for
version tagged files later.
2025-04-30 08:23:05 +07:00
Marc Durdin
7a56017f5b maint(core): batch build kmx in tests for performance
Build all the .kmx files used for kmn and ldml unit tests in batch
rather than one at a time. The ldml-test-data builds remain unbatched
for now (and are visibly slow!).

Fixes: #13495
2025-04-30 06:02:59 +07:00
Marc Durdin
ffec6a21f3 chore: Merge remote-tracking branch 'origin/epic/web-core' into chore/merge-dev-refactors-into-web-core 2025-04-03 12:19:28 +07:00
Marc Durdin
ac6eb0b767 chore: use explicit node: prefix for node imports
This makes it easier for us to enumerate modules that have node
dependencies. There may be others I have not yet picked up.
2025-04-03 08:01:08 +07:00
Marc Durdin
7c42887ead
Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-03-31 12:13:48 +07:00
Marc Durdin
a52437c407 chore: Merge branch 'master' into chore/b18s4-merge-beta-to-master 2025-03-29 05:38:08 +07:00
Eberhard Beilharz
1f8f979f61
Update core/include/keyman/keyman_core_api_vkeys.h
Co-authored-by: Marc Durdin <marc@durdin.net>
2025-03-27 15:39:00 +01:00
Eberhard Beilharz
3e3a0dbce1
refactor(linux): mark undocumented keycodes as internal
Several keys that are defined in `winuser.h` were added after Keyman
defined its vkeys and so are not documented in the Keyman docs. This
change adds underscores before and after to mark them as being internal.
It's still useful to have them in the source code because it makes the
mapping between Linux keys and Keyman vkeys easier.

Addresses code review comment.
2025-03-26 16:49:31 +01:00
Eberhard Beilharz
a645fea903
fix(linux): improve key mapping to allow Core to reset context
This change tries to map all keys to corresponding Core VKeys so that
Core sees them and can reset the context if necessary. Previously we
had 0 for most of the keys, which meant that we didn't send them to
Core but instead returned right away. While this doesn't directly fix
the failing user tests described in #12968, it fixes the original tests
in #11172.

Closes: #12968
2025-03-21 18:15:46 +01:00
Steven R. Loomis
443681999d feat(core): improve kmxplus validation tests
- update per review notes

Fixes: #9446
2025-03-18 11:08:44 -05:00
Steven R. Loomis
9989217f9e feat(core): improve kmxplus validation
- restructured validation calls to be more consistent

Fixes: #9446
2025-03-17 12:09:04 -05:00
Steven R. Loomis
0011a2d10d feat(core): improve kmxplus validation
- improve an output string
- catch BMP noncharacters besides U+FFFF (H/T @mcdurdin - this was the whole point of the PR) plus test

Fixes: #9446

Co-authored-by: Marc Durdin <marc@durdin.net>
2025-03-17 11:26:57 -05:00
Steven R. Loomis
f1b3555114 feat(core,docs): improve kmxplus validation
- improve how validation works - a missing section does not mean an invalid section. distingush these.
- propagate errors for invalid sections
- update documentation of required sections

Fixes: #9446
2025-03-14 15:37:23 -05:00
Steven R. Loomis
cd002441e5 feat(core): check non-extended keys for bad unicode
- add test case
- turn this into not be an assert, so we can test it

Fixes: #9446
2025-03-14 10:04:21 -05:00
Steven R. Loomis
2e7b5b1417 feat(core): check non-extended keys for bad unicode
- also, use U+FFFD in core if it's a bad char

Fixes: #9446
2025-03-14 09:31:38 -05:00
Steven R. Loomis
b2c3a46283
feat(core) Update core/src/ldml/ldml_processor.cpp
map bad chars to U+0020

Co-authored-by: Marc Durdin <marc@durdin.net>
2025-03-14 09:23:37 -05:00
Steven R. Loomis
2e50282087
Merge branch 'master' into feat/core/9446-detect-bad-unicode-kmxplus 2025-03-14 09:19:03 -05:00
Steven R. Loomis
a0c2daf25b
Merge pull request #13494 from keymanapp/chore/core/9446-kmx-plus-tests-gtest
feat(core): move kmx_plus.tests.cpp to GTest 🙀
2025-03-14 09:18:34 -05:00
Marc Durdin
068da83e50 chore: Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-03-14 11:05:17 +07:00
Marc Durdin
c35e0dac5f chore: Merge branch 'epic/web-core' into chore/merge-master-into-web-core 2025-03-14 11:02:37 +07:00
Steven R. Loomis
b696e34001 feat(core): move kmx_plus.tests.cpp to GTest
- msvc global to UTF-8
2025-03-13 22:47:39 -05:00
Steven R. Loomis
289151c990 feat(core): move kmx_plus.tests.cpp to GTest
- set kmx_plus_tests.cpp to UTF-8
2025-03-13 17:34:37 -05:00
Steven R. Loomis
d9602cede1 feat(core): assert that no noncharacter emitted from ldml_processor
- not counting markers, which have a special path

Fixes: #9446
2025-03-13 17:22:37 -05:00
Steven R. Loomis
1132fe5845 feat(core): tests for check on load for valid kmx_plus unicode
- turn off some asserts- makes untestable
(there are asserts at 'higher levels' such as loading the entire kmx+)
- add a test with a synthesized COMP_KMXPLUS_STRS - a valid and an invalid one

Fixes: #9446
2025-03-13 17:15:21 -05:00
Steven R. Loomis
fba5f72844 feat(core): tests for check on load for valid kmx_plus unicode
Fixes: #9446
2025-03-13 16:44:31 -05:00
Steven R. Loomis
05f3e3ca52 Merge branch 'chore/core/9446-kmx-plus-tests-gtest' into feat/core/9446-detect-bad-unicode-kmxplus 2025-03-13 15:06:31 -05:00
Steven R. Loomis
1306cf8760 feat(core): move kmx_plus.tests.cpp to GTest
- also update test_assert.h to vector to GTest if present
2025-03-13 15:05:55 -05:00
Marc Durdin
27e53011af
Merge pull request #13450 from keymanapp/fix/core/13419-uset-unaligned
fix(core): unalign `usetCount` and `rangeCount`
2025-03-13 13:19:04 +07:00
Steven R. Loomis
2c2bfe7f15 feat(core): check on load for valid kmx_plus unicode
- error out if failure

Fixes: #9446
2025-03-12 17:45:47 -05:00
Marc Durdin
3cdaa2fee0 chore(core): add clean actions for :mac and :win targets
Fixes: #13381
2025-03-10 07:53:32 +07:00
Marc Durdin
577cbd3a07 fix(core): unalign usetCount and rangeCount
Fixes: #13419
2025-03-07 12:50:22 +07:00
Eberhard Beilharz
5c7030ffa2
refactor(core): address code review comment 2025-03-05 18:05:35 +01:00
Marc Durdin
03001bd971 chore(common): add unit test for nul and context() in context part of rule
The compiler and Core appear to be working correctly in this situation;
this test verifies Core's behaviour.

Fixes: #13299
2025-03-04 11:22:35 +01:00
Eberhard Beilharz
b2cccdd996
feat(core): expose context and actions APIs to WASM 2025-03-03 11:29:17 +01:00
Eberhard Beilharz
c297c66a64
feat(core): expose state and event API to WASM 2025-03-03 11:28:57 +01:00
Eberhard Beilharz
fe3e02cf9e
feat(web): implement getting properties of KMXKeyboard 2025-03-01 17:18:31 +01:00
Marc Durdin
d83454ab77 chore(windows): ensure dependencies for keyman32 exclude core:wasm
Fixes: #13374
2025-02-28 17:52:27 +01:00