Add game binaries, test infrastructure, and runtime fixes#78
Merged
Conversation
- Add ZIL test files for Infocom games (Zork1-3, Planetfall, Spellbreaker, Lurking Horror) - Add game data files (.z3, .zip) for Infocom games - Update runtime, compiler, and bootstrap modules - Add documentation files (Internal Secrets, ZILF Reference Guide) - Add transcript recording and test generation scripts - Update testing documentation and Makefile
- test_compiler.lua: match actual error wrapping format from compileRoutine - test_sourcemap_integration.lua: use ERROR form that actually triggers a runtime error (ADD with nil silently succeeds)
Inject a <SETG ZORK-NUMBER> line into generated ZIL tests (derived from the game name numeric suffix, default 0) and escape double quotes in both command text and extracted response phrases so generated ZIL strings are valid. Updates the auto-generated zork3 test to include the SETG and properly-escaped SAY commands.
…repunch/zilscript into feature/test-and-game-updates
Enhance include resolution, parsing, and runtime support: make INSERT_FILE search relative to the including file, respect package.zilpath and .zil suffixes, and pass the resolved source path into the compiler so loaded chunks have correct names. Add safer file-open helpers and dirname logic. Improve OBJECT handling (resolve globals, function props, exit table support, clearer errors for unresolved exits) and add GASSIGNEDQ and several new flag constants. Compiler updates: handle placeholder conditionals in logical forms, add PROB and TELL form handlers, propagate source filename for INSERT-FILE nodes, and quote PER targets. Parser fixes: robust atom reading and '!' form handling. Runtime: expose load/rawget/rawset in game env. main.lua: allow story module arg and simplified module loading.
… matching - Guard highlight() in main.lua against non-table DIRS/DESCS (zork3 redefines DIRS as a memory address) - Include file:line in parser error messages for unexpected delimiters - Translate all .lua references in stack traces through sourcemap (not just zil_*.lua) - Use resolved filepath in INSERT_FILE errors and run load/exec errors through sourcemap.translate() - Run module load errors through sourcemap.translate() in create_env_require
- Add blackwood-horror.zil and limehouse-killings.zil entry points with local paths - INSERT_FILE falls back to infocom/zork1/ when file not found locally - Fix limehouse actions.zil: missing TELL > brackets, add GO routine - SYNTAX handler: skip modifier keywords (TEXT) between JOIN and = - SYNTAX function: clear error when ACTION is missing - Document critical ZIL implementation rules in skills/
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.
Summary
This PR adds compiled game binaries, comprehensive test infrastructure, and several runtime/compiler fixes across multiple Infocom adventures.
Changes
Game Binaries & Test Transcripts
Test Infrastructure
Runtime & Compiler Fixes
Documentation
Housekeeping