Commit graph

24978 commits

Author SHA1 Message Date
Marc Durdin
6a280804b8 chore(developer): fixup build errors 2023-03-09 11:34:14 +07:00
Joshua A. Horton
f76e785ff6 feat(common/web): parallel keyboard loading tests 2023-03-09 09:26:22 +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
23151c1248 fix(web): --no-minify, not --skip-minify 2023-03-09 07:28:50 +07: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
Keyman Server
9fcf972166
Merge pull request #8392 from keymanapp/auto/version-master-17.0.63
auto: increment master version to 17.0.63
2023-03-09 01:03:40 +07:00
Keyman Build Agent
061e437220 auto: increment master version to 17.0.63 2023-03-08 13:02:56 -05:00
Eberhard Beilharz
d9e0d8a802
chore(linux): Rename keyboardprocessor to Keyman Core 2023-03-08 16:52:10 +01:00
Ross
a11f2f9c31 feat(windows): simple text editor initial commit 2023-03-08 22:22:40 +10:00
Darcy Wong
a95d20cc4e
Merge pull request #8384 from keymanapp/feat/common/builder-inheritable-params-off-master
feat(common): builder.inc.sh inheritable options
2023-03-08 17:58:33 +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
SabineSIL
2ffeb56883
Merge pull request #8380 from keymanapp/refactor/developer/8355-consistent-line-endings
chore(developer): use consistent line endings \r\n
2023-03-08 10:41:14 +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
Darcy Wong
76a7b3d815 fix(ios): Script call 2023-03-08 13:48:39 +07:00
Marc Durdin
c49f0e17ec chore(core): update unit tests with new store indices 2023-03-08 13:47:34 +07:00
Marc Durdin
1dcd50f6b7 chore(common): add _reserved member to COMP_KEY
In order to allow us to reference the padding in the FILE_KEY structure,
for reproducible and cross-platform consistent builds, turn the padding
into an `_reserved` (must always be zero) field.

Changes to compiler to utilise this will be in a follow-up commit.
2023-03-08 13:02:23 +07:00
Marc Durdin
8b123b9364 chore(core): rebuild kmx binary test fixtures without version data
In order to be able to provide a more robust round-trip comparison of
existing .kmx binary fixtures with compiler output, this commit rebuilds
them with the `-no-compiler-version` kmcomp flag, to omit the
`TSS_COMPILEDVERSION` store.
2023-03-08 11:48:29 +07:00
Darcy Wong
6c2126431f refactor(common): Make build-help into helper functions 2023-03-08 11:42:13 +07:00
Darcy Wong
099900ea51 feat(common): builder.inc.sh inheritable options
Appending a `+` to a builder option will automatically pass that option to child scripts.

Applying #8371 to master branch and @darcywong00 will then re-apply to #7407
2023-03-08 10:33:35 +07:00
Darcy Wong
78adb337a1 refactor(android): Use builder_is_debug_build 2023-03-08 09:57:36 +07:00
Darcy Wong
31d23efb20 chore(android): Merge remote-tracking branch 'origin/master' into refactor/android/builder-script 2023-03-08 09:46:18 +07:00
Marc Durdin
c51b96f94d
Merge pull request #8382 from keymanapp/fix/common/8373-builder-debug-usage
chore(common): clean up `--debug` usage in build scripts
2023-03-08 13:30:47 +11:00
Marc Durdin
8251ec861a chore: cleanup additional --debug references 2023-03-08 05:46:32 +07:00
Marc Durdin
00017350d3 chore(common): clean up --debug usage in build scripts
Fixes #8373.

Note that the core functionality requested in #8373 is already in place;
this commit just does some cleanup to make this easier to maintain in
the future:

* Uses `builder_is_debug_build` function to test for debug build
  (instead of `builder_has_option --debug`, which would also work but
  using the other function avoids typo issues with the option name).

* Renames `$_builder_debug` to `$_builder_debug_internal` to reduce
  naming confusion

* Documents `$builder_debug`, `builder_is_debug_build`, and clarifies
  usage of `--debug` option.

* Logs command line for dep builds (we could hide this in the future,
  but it certainly doesn't hurt for now!)
2023-03-08 05:40:40 +07:00
SabineSIL
2a71ed6a05
Merge pull request #8346 from keymanapp/refactor/developer/8086-common-includes
chore(developer): Refactor/developer/8086 common includes
2023-03-07 17:52:17 +01: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
Eberhard Beilharz
794557f7d5
chore(core): Remove obsolete --target-path option
Linux package builds no longer require a different target path, so
we can remove the `--target-path` parameter.
2023-03-07 13:38:31 +01:00
Eberhard Beilharz
0c2c4f4206
Merge pull request #8375 from keymanapp/chore/core/linuxstatic
chore(core): Create both dynamic and static libs on Linux
2023-03-07 13:21:11 +01:00
Eberhard Beilharz
0b4ed50242
Merge pull request #8039 from keymanapp/feat/linux/osk-poc
feat(linux): Add DBus method `SendText`
2023-03-07 09:53:24 +01:00
Marc Durdin
e032facc5e
Merge pull request #8362 from keymanapp/chore/developer/kmcmplib-rename-kmcmpdll.h
chore(developer): kmcmplib - rename kmcmpdll.h to reduce confusion
2023-03-07 19:03:09 +11:00
Marc Durdin
f35d4e9ae5
Merge pull request #8360 from keymanapp/chore/developer/kmcmplib-remove-version-library
chore(developer): remove unused version library reference
2023-03-07 19:02:59 +11:00
Marc Durdin
d9f55ccad2
Merge pull request #8359 from keymanapp/refactor/developer/kmcmplib-json-validation-remove-windows
refactor(developer): kmcmplib json-validation.cpp remove windowsisms
2023-03-07 19:02:50 +11:00
Marc Durdin
334c316fd3
Merge pull request #8357 from keymanapp/chore/common/remove-vswhere
chore(common): remove vswhere
2023-03-07 19:02:38 +11:00
Marc Durdin
a02d48047c
Merge pull request #8344 from keymanapp/chore/common/cleanup-builder-echo
chore(common): cleanup build.inc.sh echo
2023-03-07 19:02:29 +11:00
Marc Durdin
2e052b1854
Merge pull request #8377 from keymanapp/chore/merge-feature-ldml-20230306-epic-ldml
chore: merge feature-ldml to master, again 🙀
2023-03-07 18:49:33 +11:00
Eberhard Beilharz
65923eb5a9
Merge pull request #8372 from keymanapp/chore/linux/ghadebug
chore(linux): Remove debug output from packaging GHA
2023-03-07 08:48:23 +01:00