diff --git a/developer/docs/help/context/index.md b/developer/docs/help/context/index.md index 04028b35c1..d7bf164c30 100644 --- a/developer/docs/help/context/index.md +++ b/developer/docs/help/context/index.md @@ -42,12 +42,6 @@ title: Context Help [kmc Command-line Options](kmc) -[kmlmc Command-line Options](kmlmc) - -[kmlmi Command-line Options](kmlmi) - -[kmlmp Command-line Options](kmlmp) - [Character Map](character-map) [Message Window](messages) diff --git a/developer/docs/help/context/kmlmc.md b/developer/docs/help/context/kmlmc.md deleted file mode 100644 index 33edf500f5..0000000000 --- a/developer/docs/help/context/kmlmc.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: kmlmc - Command Line Lexical Model Compiler (deprecated) ---- - -kmlmc has been replaced by [kmc](../reference/kmc). diff --git a/developer/docs/help/context/kmlmi.md b/developer/docs/help/context/kmlmi.md deleted file mode 100644 index dc47cbbc39..0000000000 --- a/developer/docs/help/context/kmlmi.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: kmlmi - Command Line Lexical Model model_info Compiler (deprecated) ---- - -kmlmi has been replaced by [kmc](../reference/kmc). diff --git a/developer/docs/help/context/kmlmp.md b/developer/docs/help/context/kmlmp.md deleted file mode 100644 index 3442d8f142..0000000000 --- a/developer/docs/help/context/kmlmp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: kmlmp - Command Line Lexical Model Package Compiler (deprecated) ---- - -kmlmp has been replaced by [kmc](../reference/kmc). diff --git a/developer/docs/help/reference/kmc/cli/kmcomp-migration.md b/developer/docs/help/reference/kmc/cli/kmcomp-migration.md index c864e1bc90..e3cd9f28b7 100644 --- a/developer/docs/help/reference/kmc/cli/kmcomp-migration.md +++ b/developer/docs/help/reference/kmc/cli/kmcomp-migration.md @@ -5,9 +5,8 @@ title: Migrating from kmcomp to kmc `kmcomp` was the command-line compiler for Keyman Developer through version 16.0. Version 17.0 replaces `kmcomp` with `kmc`. -The lexical model command-line tooling, `kmlmc`, `kmlmp`, and `kmlmi`, are all -still present in version 17, but are deprecated, as the same tasks can be -performed with `kmc`. +The lexical model command-line tooling, `kmlmc`, `kmlmp`, and `kmlmi`, have +been removed in version 19.0; instead use `kmc`. ## Benefits @@ -99,21 +98,6 @@ kmcomp | kmc | notes ## Compiling a lexical model -`kmlmc` and `kmlmp` were separate tools in earlier versions of Keyman Developer, -for compiling lexical models and lexical model packages. They have both been -replaced with `kmc`. - -Old method, using kmlmc and kmlmp: - -```bash -kmlmc file.model.ts -# or specifying output filename -kmlmc -o output/path/file.model.js file.model.ts -kmlmp file.model.kps -``` - -New method, using kmc: - ```bash # recommended, build the model project: kmc build . diff --git a/developer/src/README.md b/developer/src/README.md index f3419c71dc..f9b9092448 100644 --- a/developer/src/README.md +++ b/developer/src/README.md @@ -84,7 +84,7 @@ in Keyman for Windows. ## kmc -node-based next generation compiler, hosts kmc, (and legacy kmlmc, kmlmp) +node-based next generation compiler, hosts kmc ### kmc-analyze - Analysis tools diff --git a/developer/src/inst/kmdev.wxs b/developer/src/inst/kmdev.wxs index c57de43d82..8b10c138c7 100644 --- a/developer/src/inst/kmdev.wxs +++ b/developer/src/inst/kmdev.wxs @@ -262,14 +262,6 @@ - - - - - - - - diff --git a/developer/src/inst/node/kmlmc.cmd b/developer/src/inst/node/kmlmc.cmd deleted file mode 100644 index be3bdf06e0..0000000000 --- a/developer/src/inst/node/kmlmc.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@rem This script avoids path dependencies for node for distribution -@rem with Keyman Developer. When used on platforms other than Windows, -@rem node can be used directly with the compiler (`npm link` will setup). -@"%~dp0\node.js\node.exe" "%~dp0\kmc\kmlmc.mjs" %* diff --git a/developer/src/inst/node/kmlmp.cmd b/developer/src/inst/node/kmlmp.cmd deleted file mode 100644 index 2062ae091c..0000000000 --- a/developer/src/inst/node/kmlmp.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@rem This script avoids path dependencies for node for distribution -@rem with Keyman Developer. When used on platforms other than Windows, -@rem node can be used directly with the compiler (`npm link` will setup). -@"%~dp0\node.js\node.exe" "%~dp0\kmc\kmlmp.mjs" %* diff --git a/developer/src/kmc/build-bundler.js b/developer/src/kmc/build-bundler.js index 9b5f9cdd9b..1cfbe2568f 100644 --- a/developer/src/kmc/build-bundler.js +++ b/developer/src/kmc/build-bundler.js @@ -7,8 +7,6 @@ import esbuild from 'esbuild'; await esbuild.build({ entryPoints: [ 'build/src/kmc.js', - 'build/src/kmlmc.js', - 'build/src/kmlmp.js', ], bundle: true, format: 'esm', diff --git a/developer/src/kmc/package.json b/developer/src/kmc/package.json index 069e676ed1..39d839bc84 100644 --- a/developer/src/kmc/package.json +++ b/developer/src/kmc/package.json @@ -11,10 +11,8 @@ ], "scripts": { "build": "tsc -b", - "bundle": "npm run bundle-kmc && npm run bundle-kmlmc && npm run bundle-kmlmp", + "bundle": "npm run bundle-kmc", "bundle-kmc": "esbuild build/src/kmc.js --bundle --platform=node --target=es2022 > build/cjs-src/kmc.cjs", - "bundle-kmlmc": "esbuild build/src/kmlmc.js --bundle --platform=node --target=es2022 > build/cjs-src/kmlmc.cjs", - "bundle-kmlmp": "esbuild build/src/kmlmp.js --bundle --platform=node --target=es2022 > build/cjs-src/kmlmp.cjs", "test": "eslint . && cd test && tsc -b && cd .. && mocha" }, "type": "module", @@ -29,9 +27,7 @@ }, "main": "build/src/kmc.js", "bin": { - "kmc": "build/src/kmc.js", - "kmlmc": "build/src/kmlmc.js", - "kmlmp": "build/src/kmlmp.js" + "kmc": "build/src/kmc.js" }, "dependencies": { "@keymanapp/common-types": "*", diff --git a/developer/src/kmc/src/kmlmc.ts b/developer/src/kmc/src/kmlmc.ts deleted file mode 100644 index ca2fd4d6b0..0000000000 --- a/developer/src/kmc/src/kmlmc.ts +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env node -/** - * kmlmc - Keyman Lexical Model Compiler - */ - -import { Command } from 'commander'; -import { LexicalModelCompiler } from '@keymanapp/kmc-model'; -import { SysExits } from './util/sysexits.js'; -import KEYMAN_VERSION from "@keymanapp/keyman-version"; -import { NodeCompilerCallbacks } from './util/NodeCompilerCallbacks.js'; - -let inputFilename: string; -const program = new Command(); - -/* Arguments */ -program - .description('Compiles Keyman lexical models') - .version(KEYMAN_VERSION.VERSION_WITH_TAG) - .arguments('') - .action(infile => inputFilename = infile) - .option('-o, --outFile ', 'where to save the resultant file'); - -program.parse(process.argv); - -// Deal with input arguments: -if (!inputFilename) { - exitDueToUsageError('Must provide a lexical model source file.'); -} - -const callbacks = new NodeCompilerCallbacks({logLevel: 'info'}); - -const compiler = new LexicalModelCompiler(); -if(!await compiler.init(callbacks, null)) { - console.error('Initialization failed.'); - process.exit(SysExits.EX_DATAERR); -} - -let code = null; -// Compile: -try { - code = await compiler.run(inputFilename, program.opts().outFile); -} catch(e) { - console.error(e); - process.exit(SysExits.EX_DATAERR); -} - -if(!code) { - console.error('Compilation failed.') - process.exit(SysExits.EX_DATAERR); -} - -// Output: -if (program.opts().outFile) { - compiler.write(code.artifacts); -} else { - // TODO(lowpri): if writing to console then log messages should all be to stderr? - const decoder = new TextDecoder(); - const text = decoder.decode(code.artifacts.js.data); - console.log(text); -} - -function exitDueToUsageError(message: string): never { - console.error(`${program.name()}: ${message}`); - console.error(); - program.outputHelp(); - return process.exit(SysExits.EX_USAGE); -} \ No newline at end of file diff --git a/developer/src/kmc/src/kmlmp.ts b/developer/src/kmc/src/kmlmp.ts deleted file mode 100644 index d5fdb20c16..0000000000 --- a/developer/src/kmc/src/kmlmp.ts +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env node -/** - * kmlmp - Keyman Lexical Model Package Compiler - */ - -// Note: this is a deprecated package and will be removed in Keyman 19.0 - -import { Command } from 'commander'; -import { KmpCompiler } from '@keymanapp/kmc-package'; -import { SysExits } from './util/sysexits.js'; -import KEYMAN_VERSION from "@keymanapp/keyman-version"; -import { NodeCompilerCallbacks } from './util/NodeCompilerCallbacks.js'; - -let inputFilename: string; -const program = new Command(); - -/* Arguments */ -program - .description('Compiles Keyman lexical model packages\nDeprecated: use instead; will be removed in v18') - .version(KEYMAN_VERSION.VERSION_WITH_TAG) - .arguments('') - .action(infile => inputFilename = infile) - .option('-o, --outFile ', 'where to save the resultant file'); - -program.parse(process.argv); - -// Deal with input arguments: - -if (!inputFilename) { - exitDueToUsageError('Must provide a lexical model package source file.'); -} - -const outputFilename: string = program.opts().outFile ? program.opts().outFile : inputFilename.replace(/\.kps$/, ".kmp"); - -// -// Run the compiler -// - -const callbacks = new NodeCompilerCallbacks({logLevel: 'info'}); -const kmpCompiler = new KmpCompiler(); -if(!await kmpCompiler.init(callbacks, null)) { - process.exit(1); -} - -const result = await kmpCompiler.run(inputFilename, outputFilename); -if(!result) { - process.exit(1); -} - -if(!await kmpCompiler.write(result.artifacts)) { - console.error('Failed to write kmp file'); - process.exit(1); -} - -function exitDueToUsageError(message: string): never { - console.error(`${program.name()}: ${message}`); - console.error(); - program.outputHelp(); - return process.exit(SysExits.EX_USAGE); -} diff --git a/developer/src/tike/build.sh b/developer/src/tike/build.sh index b9e5349f3e..15e2add3c4 100755 --- a/developer/src/tike/build.sh +++ b/developer/src/tike/build.sh @@ -72,8 +72,6 @@ function do_build() { tds2dbg "$WIN32_TARGET" cp "$WIN32_TARGET" "$DEVELOPER_PROGRAM" - cp kmlmc.cmd "$DEVELOPER_PROGRAM" - cp kmlmp.cmd "$DEVELOPER_PROGRAM" cp kmc.cmd "$DEVELOPER_PROGRAM" cp "$KEYMAN_ROOT/core/build/x86/$TARGET_PATH/src/$KEYMANCORE_DLL" "$DEVELOPER_PROGRAM" builder_if_release_build_level cp "$WIN32_TARGET_PATH/tike.dbg" "$DEVELOPER_DEBUGPATH" diff --git a/developer/src/tike/kmlmc.cmd b/developer/src/tike/kmlmc.cmd deleted file mode 100644 index 4f86f2e3bd..0000000000 --- a/developer/src/tike/kmlmc.cmd +++ /dev/null @@ -1,20 +0,0 @@ -@echo off -setlocal -rem This script is based on /developer/src/node/inst/kmlmc.cmd. It is stored here -rem in order to allow TIKE to call out to the compiler while debugging. -if exist "%~dp0..\inst\node\dist\node.exe" ( - rem If running in developer/src/tike/: - set nodeexe="%~dp0..\inst\node\dist\node.exe" - set nodecli="%~dp0..\kmc\build\src\kmlmc.js" -) else if exist "%~dp0..\src\inst\node\dist\node.exe" ( - rem If running in developer/bin/: - set nodeexe="%~dp0..\src\inst\node\dist\node.exe" - set nodecli="%~dp0..\src\kmc\build\src\kmlmc.js" -) else ( - rem Cannot find node or kmlmc.js relative to execution path - echo Error: node.exe or kmlmc.js not found. - exit /b 1 -) - -%nodeexe% --enable-source-maps %nodecli% %* -exit /b %errorlevel% diff --git a/developer/src/tike/kmlmp.cmd b/developer/src/tike/kmlmp.cmd deleted file mode 100644 index 716a5bf940..0000000000 --- a/developer/src/tike/kmlmp.cmd +++ /dev/null @@ -1,20 +0,0 @@ -@echo off -setlocal -rem This script is based on /developer/src/node/inst/kmlmp.cmd. It is stored here -rem in order to allow TIKE to call out to the compiler while debugging. -if exist "%~dp0..\inst\node\dist\node.exe" ( - rem If running in developer/src/tike/: - set nodeexe="%~dp0..\inst\node\dist\node.exe" - set nodecli="%~dp0..\kmc\build\src\kmlmp.js" -) else if exist "%~dp0..\src\inst\node\dist\node.exe" ( - rem If running in developer/bin/: - set nodeexe="%~dp0..\src\inst\node\dist\node.exe" - set nodecli="%~dp0..\src\kmc\build\src\kmlmp.js" -) else ( - rem Cannot find node or kmlmp.js relative to execution path - echo Error: node.exe or kmlmp.js not found. - exit /b 1 -) - -%nodeexe% --enable-source-maps %nodecli% %* -exit /b %errorlevel% diff --git a/package-lock.json b/package-lock.json index 7618527727..f5c4e68d9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -281,9 +281,7 @@ "supports-color": "^9.4.0" }, "bin": { - "kmc": "build/src/kmc.js", - "kmlmc": "build/src/kmlmc.js", - "kmlmp": "build/src/kmlmp.js" + "kmc": "build/src/kmc.js" }, "devDependencies": { "@sentry/cli": "^2.31.0",