fix: ship the dependency libraries in the JSON-IR artifact - #194
Merged
Merged
Conversation
The artifact built from maps/*.isc alone dropped posix, unicode, var-Cyrl, and var-kor (still only present as legacy .iml files in libs/). Every library-dependent system map — bgnpcgn-deu (Tschüß!), the Belarussian, Macedonian, and Korean sets, 18 maps in all — fails at runtime with "Map dependency missing" against the v2.5.1 artifact. Port the four libraries to .isc (verbatim from the .iml alias definitions, which remain in place) and compile them into the artifact: 293 files total. Also declare the var-kor dependency in the 16 maps whose rules reference jamo aliases without listing the library — unqualified alias resolution walks declared dependencies only, and the leak-merged library JSONs of the old corpus masked the gap. Artifact count checks updated to 293.
ronaldtse
added a commit
to interscript/api
that referenced
this pull request
Sep 28, 2026
Replaces the corpus built by interscript-ruby's JsonIR with output of the canonical builder — interscript-ts's ISC converter, the same pipeline that produces the interscript/maps release artifact. 273 of 289 system JSONs were not byte-identical to production; the parity gate caught Tamil (தமிழ் came out 'tamail̮a'). Also picks up interscript/maps#194: the four dependency libraries (posix, unicode, var-Cyrl, var-kor) ship in the corpus again, and the 16 maps referencing var-kor aliases declare the dependency. This restores bgnpcgn-deu (Tschüß! -> Tschueß!) and the other 17 library-dependent maps that api.interscript.org currently fails with 'Map dependency missing'. The detect ranking (288 systems) and systemCodes count (289 addressable) are re-baselined to the corrected corpus; production currently returns a truncated 48-map detect ranking and null for library-dependent maps, so test/fixtures/parity.json records the corrected behavior until the deploy catches up. scripts/build-maps.rb pointed at the retired Ruby pipeline; it now defers to scripts/build-maps.mjs, which runs the canonical TS builder and regenerates manifest.js.
ronaldtse
added a commit
to interscript/api
that referenced
this pull request
Sep 28, 2026
…tems) (#26) * maps: regenerate the compiled JSON IR corpus from interscript-maps 2.5.1 (289 systems) Built with build-maps.rb against the ISC corpus through interscript-ruby's NodeAdapter (funcall-node casing fix + array-valued Any serialisation). 293 files: 289 systems + 4 libraries (posix, unicode, var-Cyrl, var-kor). One corpus-data gap noted: bgnpcgn-tuk-Cyrl-Latn-1993 depends on a 1979 map absent from the maps repo. * maps: rebuild the bundled corpus from the TS converter with libraries Replaces the corpus built by interscript-ruby's JsonIR with output of the canonical builder — interscript-ts's ISC converter, the same pipeline that produces the interscript/maps release artifact. 273 of 289 system JSONs were not byte-identical to production; the parity gate caught Tamil (தமிழ் came out 'tamail̮a'). Also picks up interscript/maps#194: the four dependency libraries (posix, unicode, var-Cyrl, var-kor) ship in the corpus again, and the 16 maps referencing var-kor aliases declare the dependency. This restores bgnpcgn-deu (Tschüß! -> Tschueß!) and the other 17 library-dependent maps that api.interscript.org currently fails with 'Map dependency missing'. The detect ranking (288 systems) and systemCodes count (289 addressable) are re-baselined to the corrected corpus; production currently returns a truncated 48-map detect ranking and null for library-dependent maps, so test/fixtures/parity.json records the corrected behavior until the deploy catches up. scripts/build-maps.rb pointed at the retired Ruby pipeline; it now defers to scripts/build-maps.mjs, which runs the canonical TS builder and regenerates manifest.js. * style: prettier-format scripts/build-maps.mjs
Merged
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
The
interscript.maps.irartifact is built frommaps/*.isconly. The four dependency libraries —posix,unicode,var-Cyrl,var-kor— still exist only as legacy.imlfiles inlibs/, so the v2.5.1 artifact (289 files) shipped without them.Every system map that declares a library dependency fails at runtime against that artifact with
Map dependency missing: <lib>— live right now on api.interscript.org:bgnpcgn-deu-Latn-Latn-2000"Tschüß!" →null(18 maps affected: German, Belarusian, Macedonian, Bulgarian, Russian GOST, the Korean sets)A second latent bug: 16 maps reference jamo/hangul aliases owned by
var-korwhile declaring onlyposix/unicode/var-Cyrl. The old corpus masked this because its library JSONs were leak-merged with every library's aliases; unqualified alias resolution walks declared dependencies only.Fix
.iscinlibs/— verbatim transcriptions of the.imlalias definitions (the.imlfiles stay). TS builder now compilesmaps/*.isc+libs/*.isc→ 293 files; parse gates (Ruby + TS) coverlibs/.dependency "var-kor"in the 16 maps that use its aliases.Verification
.iscparse under both the Ruby and TS parsersvar-kordependency entry, +4 library JSONsbgnpcgn-deu"Tschüß!" →Tschueß!and the full 288-entry detect rankingAfter merge, tag
v2.5.2to cut the artifact; the deploy repo pins the new artifact version andTschüß!returns on production.