-
-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
epic: web-core 🎼 #12291
Draft
mcdurdin
wants to merge
84
commits into
master
Choose a base branch
from
epic/web-core
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
epic: web-core 🎼 #12291
+1,148
−251
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
`emcc.py` is not marked as executable in emcripten's git repo so the build failed when trying to locate emscripten. However, it turns out that `emcc` is marked as executable, so we use that instead. On Windows however, we still need to use `emcc.py` because otherwise Meson won't detect it as valid compiler.
- add temporary function to Core for this POC - add new CoreProcessor to access Keyman Core WASM - add unit tests for new core processor - add code to KeymanEngine and InputProcessor to load the new CoreProcessor - add web server to manual tests and new action `start` to build script This change requires the manual tests to be loaded from a web server instead of loaded as file, because otherwise the wasm code won't be loaded. Currently we always load CoreProcessor. This should be improved in a future change to only load when it is actually needed. Part-of: #11293
…core chore: merge master into web-core
Co-authored-by: Marc Durdin <[email protected]>
feat(web): POC of Core WASM integration into Keyman Web
User Test ResultsTest specification and instructions User tests are not required Test Artifacts
|
mcdurdin
added
web/
core/
Keyman Core
epic
A long lived branch, home for a new feature, usually will have child PRs based on it
labels
Aug 27, 2024
…core chore: merge master into web-core 🎼
- split keyboard loading into loading into blob and then loading the script - look at first four bytes to see if it's a .js or a .kmx keyboard - for domKeyboardLoader, use fetch to get the blob, then use indirect eval to load the script, instead of injecting a script element. This does not yet implement the loading of .kmx keyboards.
srl295
approved these changes
Sep 1, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice!
Addresses code review comments.
Without this change building unit tests fail with an error that `--shared-memory` is disallowed.
This change renames the type library from `km-core=-interface.d.ts` to `keymancore.d.ts` to match the name of the target (`keymancore`) to make it more obvious where this comes from and where/how it gets build.
feat(core): expose `km_core_keyboard_load_from_blob` to WASM 🎼
github-actions
bot
added
developer/
developer/ide/
linux/
linux/engine/
and removed
developer/
linux/
linux/engine/
developer/ide/
labels
Dec 17, 2024
The data we read from the KMX file is not in places 32-bit aligned, e.g. `dpGroupArray` will often start at a 16-bit boundary. Emscripten doesn't like this and will abort the program if `SAFE_HEAP=1` is defined. This change works around the problem by calling `CopyKeyboard` and thus expanding the structure. See #12844.
This change adds a new flag `KMX_REQUIRES_REALIGNMENT` instead of the previous `KMX_64BIT` for the cases where we have to re-align the KMX data at pointer boundaries. Renamed because Emscripten also needs the re-alignment even though it's 32-bit. Addresses code review comments.
fix(core): work around alignment problem when using Emscripten 🎼
github-actions
bot
added
developer/
developer/ide/
linux/
linux/engine/
and removed
developer/
linux/
linux/engine/
developer/ide/
labels
Jan 6, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
common/resources/
Build infrastructure
common/
core/
Keyman Core
developer/ide/
developer/
docs
epic
A long lived branch, home for a new feature, usually will have child PRs based on it
epic-web-core
linux/engine/
linux/
web/
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds support for Keyman Core (incl. LDML keyboards) to KeymanWeb, bringing LDML keyboards to Android, iOS, and web platforms
References
Seed PR:
@keymanapp-test-bot skip