Commit graph

33096 commits

Author SHA1 Message Date
Joshua A. Horton
092b6f7a4f fix(common/models): null-guard left-hand token reference for split-token check during tokenization 2024-07-29 14:04:40 +07:00
Joshua A. Horton
969f997ae7 chore(web): missed a review improvement spot - let -> const 2024-07-29 12:15:24 +07:00
Joshua A. Horton
b7c7f5a41c chore(common/models): address PR review comments re needed comment, condition-clarity improvement 2024-07-29 12:13:36 +07:00
Joshua A. Horton
fca87e21f9 fix(web): unrevert #11258, leaving OSK hidden before instructed to display 2024-07-29 11:36:37 +07:00
Joshua Horton
7e5903b1ab
Merge pull request #12015 from keymanapp/change/web/revert-11174
change(web): revert #11174, which loads keyboards before initializing the OSK
2024-07-29 11:34:08 +07:00
Marc Durdin
59addc5d2b refactor(developer): move error reporting inside GetCompileTargetsFromTargetsStore
This supports upcoming changes for parameterized errors in
`GetCompileTargetsFromTargetsStore`.
2024-07-29 10:52:23 +07:00
Marc Durdin
c359fd6ccc refactor(developer): move error reporting inside ProcessGroupFinish
This supports upcoming changes for parameterized errors in
`VerifyUnreachableRules` (now a `void` return because it always returned
success anyway).
2024-07-29 10:41:32 +07:00
Darcy Wong
fc56010520
Merge pull request #12021 from keymanapp/chore/common/history-17-0-327
chore(common): Update history from 17.0.327 and add missing descriptions
2024-07-28 21:13:31 -05:00
Marc Durdin
bcec446144 refactor(developer): return KMX_BOOL instead of KMX_DWORD for AddStore() and friends
This is definitely a yak shave, but should have payoff in terms of
cleaner and more descriptive error messages in the long run.

In the existing design, many (but not all) functions return a KMX_DWORD
error value, and that is passed on up the call stack to be reported as
an error elsewhere. This separation of error reporting from error site
makes it difficult to add parameters (and masks the actual error site in
analysis).

This commit starts to move the error reporting to the actual site of the
error, in `AddStore()`, `ProcessSystemStore()`, `ParseLine()`,
`AddCompilerVersionStore()`, `BuildVKDictionary()`, and
`ProcessBeginLine()`.

During analysis, identified a memory leak (missing `delete[] temp`) in
`process_if()`. Fixed on line 2716.

Many of the `process_*()` functions call `AddStore()`, which is now
responsible for reporting its own errors; these functions have not yet
been updated and so if `AddStore()` fails, the compiler will generate
two error messages -- one from `AddStore()` and a second one in the
value returned from the calling `process_*()` function.

The `VERIFY_KEYBOARD_VERSION` macro hides a `return` statement which
returned an error code on failure. This has been split into
`VERIFY_KEYBOARD_VERSION_ret` which causes the caller to returns the
error code, and the existing `VERIFY_KEYBOARD_VERSION` macro now causes
the caller to return `FALSE` on failure. This should be refactored to
move the `return` condition into the caller (removing the `return`
side-effect) in the future.
2024-07-29 06:21:21 +07:00
Marc Durdin
05fd680a9e refactor(developer): Move error reporting inside CheckForDuplicateStore
This is the same change as for `CheckForDuplicateGroup`.

`CheckForDuplicateStore` is one of a few places where parameterized
errors are returned. Moving the error reporting inside the function
makes it cleaner to refactor those parameterized errors later. (This
requires a similar change in `ProcessStoreLine`, also formatted and
rebraced per style guide.)
2024-07-29 04:27:06 +07:00
Marc Durdin
7371c87867 refactor(developer): Move error reporting inside CheckForDuplicateGroup
`CheckForDuplicateGroup` is one of a few places where parameterized
errors are returned. Moving the error reporting inside the function
makes it cleaner to refactor those parameterized errors later. (This
requires a similar, simple change in `ProcessGroupLine`.)
2024-07-29 04:18:28 +07:00
Marc Durdin
92c5d41501 refactor(developer): make AddCompileError void type
`AddCompileError` would return FALSE only for 'user interruption' (not
used since Developer 17) or for fatal errors. After analysis, it turns
out that this error value was not used anywhere and removing it
simplifies the error management logic, making code paths much easier to
follow.

The return value was used in v17.0 and earlier in the macro for
`AddCompileWarning`, effectively only relevant for 'user interruption'
(`CERR_Break`); this was an ugly code pattern as it meant that any
`AddCompileWarning` could exit a function with failure -- though as
noted above `CERR_Break` was never emitted in v17.0.
2024-07-29 04:13:15 +07:00
Marc Durdin
d53b4c8322 test(developer): validate that messages in kmcmplib and kmc-kmn match
Add a unit test to verify that kmn_compiler_errors.h and
kmn-compiler-messages.ts have identical definitions for all errors in
kmcmplib. Then remove mismatched (and unused) messages identified by
this test.
2024-07-28 12:37:58 +07:00
Marc Durdin
6a48f5e550 refactor(developer): align kmcmplib error codes with kmc
Renames kmcmplib error codes to match those in kmc-kmn, and updates the
bitmasks accordingly. Adds a KmnCompilerMessages namespace so a trivial
enum can be declared without risk of clashes with other ERROR_ or
similar messages.
2024-07-28 11:45:03 +07:00
Marc Durdin
c8b055101f refactor(developer): rename CWARN_Info to CINFO_Info 2024-07-28 08:42:57 +07:00
Keyman Server
ab06fdc0e9
Merge pull request #12043 from keymanapp/auto/version-master-18.0.78
auto: increment master version to 18.0.78
2024-07-27 11:04:11 -07:00
Keyman Build Agent
532453b5c1 auto: increment master version to 18.0.78 2024-07-27 14:03:28 -04:00
Marc Durdin
091b4042a2 refactor(developer): rename CERR_None and CERR_EndOfFile to STATUS_
These two codes are not true error or message codes, but are used as
return values extensively throughout kmcmplib. The codes are never
passed to message callbacks. As such, I have renamed them to reflect
usage, but opted not to change their values as there would be some risk
in doing so (e.g. use of `!v` vs `v == CERR_None`).
2024-07-27 09:24:13 +07:00
Marc Durdin
a0e786035f refactor(developer): rename error severity masks to match typescript 2024-07-27 09:17:20 +07:00
Marc Durdin
503d9c6ea9 chore(developer): use FATAL_ prefix for fatal errors in kmcmplib 2024-07-27 09:11:03 +07:00
Marc Durdin
0e0e96c810
Merge pull request #12029 from keymanapp/chore/developer/api-refresh
chore(developer): api doc refresh
2024-07-27 11:34:20 +10:00
Marc Durdin
2f6ffd9ca3
Merge pull request #12028 from keymanapp/fix/developer/12027-remove-paths-from-tsconfig.json
fix(developer): remove `paths` from tsconfig.json
2024-07-27 11:34:13 +10:00
Marc Durdin
ed6374c3b8
Merge pull request #12017 from keymanapp/chore/developer/10254-analyzer-messages
chore(developer): rename to analyzer-messages.ts
2024-07-27 11:34:03 +10:00
Marc Durdin
0175f906c8
Merge pull request #11921 from keymanapp/refactor/windows/cleanup-engine-logging
refactor(windows): clean up logging
2024-07-27 11:31:37 +10:00
Marc Durdin
f1e065d274 fix(web): add nullish test in setOsk
Fixes: #12038
2024-07-27 06:32:11 +07:00
Marc Durdin
1cff1a5084 chore(developer): remove redundant references from tsconfig.json
With the full move to ES Modules, we no longer need to include
`references` in tsconfig.json, as we can rely on package.json and
build.sh dependency management. Note however that `tsc -b` may not work
to build dependencies -- they need to be built using `build.sh`, which
calculates which dependencies need building.

kmc-keyboard-info was missing a dependency link to kmc-package in
build.sh, correcting this at the same time.

Relates-to: #12027
2024-07-27 05:44:22 +07:00
Keyman Server
1fc471c147
Merge pull request #12036 from keymanapp/auto/version-master-18.0.77
auto: increment master version to 18.0.77
2024-07-26 11:03:50 -07:00
Keyman Build Agent
88f7945cf7 auto: increment master version to 18.0.77 2024-07-26 14:03:16 -04:00
Eberhard Beilharz
037374091c
Merge pull request #12032 from keymanapp/fix/linux/kvk2ldml
fix(linux): set local directory if not specified
2024-07-26 16:30:03 +02:00
Dr Mark C. Sinclair
37464e9438 chore(developer): Merge branch 'master' into fix/developer/correct-use-of-u16chr-when-second-parameter-could-be-null
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2024-07-26 14:03:10 +01:00
Dr Mark C. Sinclair
194bfd6bed chore(developer): Merge branch 'master' into test/developer/kmcmplib-compiler-unit-tests-3
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2024-07-26 13:54:59 +01:00
Dr Mark C. Sinclair
0f7d0c5b01
Merge pull request #11663 from keymanapp/test/developer/kmcmplib-compiler-unit-tests-2
test(developer): kmcmplib compiler unit tests 2
2024-07-26 13:50:27 +01:00
Dr Mark C. Sinclair
d816bf608d chore(developer): Merge branch 'master' into test/developer/kmcmplib-compiler-unit-tests-2
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
#     Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
#     Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
2024-07-26 11:26:57 +01:00
Eberhard Beilharz
2599487187
fix(linux): set local directory if not specified
If the user specifies just an output file without directory name, we
will now use the current directory instead of crashing.
2024-07-26 12:18:24 +02:00
Marc Durdin
37e1a9d296 refactor(developer): improve the callbacks for kmcmplib
* Removes redundant calls
* Uses C++ classes on the interface side
* Removes global callbacks from the Javascript side

In preparation for cleanup of compiler messages
2024-07-26 15:55:44 +07:00
Marc Durdin
833efeb53f refactor(developer): move functions and variables into CompilerErrors.cpp
Groundwork for rework of compiler errors. No functional changes.
2024-07-26 10:03:12 +07:00
Marc Durdin
6310c2e9ed chore(developer): api doc refresh 2024-07-26 09:23:17 +07:00
Marc Durdin
1afa4beb01 fix(developer): remove paths from tsconfig.json
Fixes: #12027
2024-07-26 06:59:45 +07:00
Marc Durdin
db904b5617 fix(developer): cleanup package.json and build.sh errant references
During analysis of root causes for #12027, discovered a few package
relationship issues in package.json and build.sh.

analyzer-messages.ts ///<reference> is a mitigation for now.

Relates-to: #12027
2024-07-26 06:57:32 +07:00
Eberhard Beilharz
6336cd88a5
Merge pull request #12024 from keymanapp/chore/linux/upload-script
change(linux): improve changelog PRs after upload to debian
2024-07-25 22:21:54 +02:00
Keyman Server
dbf9f917e3
Merge pull request #12026 from keymanapp/auto/version-master-18.0.76
auto: increment master version to 18.0.76
2024-07-25 11:06:02 -07:00
Keyman Build Agent
4a01769c8d auto: increment master version to 18.0.76 2024-07-25 14:05:29 -04:00
Eberhard Beilharz
4516c9d8df
change(linux): improve changelog PRs after upload to debian
Mention original PR in the body of the cherry-pick PR.
2024-07-25 16:50:38 +02:00
Darcy Wong
a8f92ae85f chore(common): Update missing history descriptions 2024-07-25 08:01:52 -05:00
Darcy Wong
fc868dc1ad chore(common): Update history from 17.0.327 2024-07-25 07:58:46 -05:00
Darcy Wong
88412735ee
Merge pull request #11889 from keymanapp/chore/fv/12-11
chore(android,ios): Add ojibwa ifinal/rdot keyboards to FirstVoices
2024-07-25 07:23:22 -05:00
Sabine
4688e4d097 feat(mac): remove RALT filter 2024-07-25 13:58:54 +02:00
Sabine
aa5ad7af4a feat(mac): use new u16 2024-07-25 13:56:31 +02:00
Eberhard Beilharz
02170dd062
chore(web): update common/web/types/src/main.ts
Co-authored-by: Joshua Horton <joshua_horton@sil.org>
2024-07-25 12:28:11 +02:00
Marc Durdin
70a32b081b chore(developer): rename to analyzer-messages.ts
Fixes #10254.

A full clean and build resolved this, so seems likely the rename caused
some intermediate file to break?
2024-07-25 15:09:00 +07:00