Add warning on non-based atoms.#66
Closed
sigilante wants to merge 74 commits into
Closed
Conversation
Analyzes current implementation against the spec from the sigilante/freshwater-ray-finned-fish branch, documenting: - Working features (compiler pipeline, basic types, classes, FFI) - Missing features (type system, NockApp integration, tooling) - Code architecture and technical debt - Roadmap assessment and recommendations
…s-jock-language-hEsYa
- Add %struct AST node for struct definitions
- Add %struct type to jype-leaf for type representation
- Add got-type helper function for parsing type names
- Add struct parser for syntax: struct Name { field: Type, ... };
- Add struct mint (code generator) to compile structs to Nock
- Add struct-fields type with $+ indirection to prevent recursive loop in jype-leaf - Add struct parser (no next=jock, composes like a class) - Add got-type helper for parsing uppercase type names - Add %struct stub in mint and type-to-default - Filter Datadog metrics noise in Makefile Co-Authored-By: Claude Opus 4.5 <[email protected]>
Replace crash stub with code gen that builds struct jype and produces bunt via type-to-default. Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add struct-to-jype helper for expanding struct fields to cell jype - Add %struct cases in axis-at-name and type-at-axis for field resolution - Add %struct to match-inner-jock keyword forwarding - Remove semicolon consumption from struct parser (compose owns it) - Add clean-jam make target (clears hoonc cache) - Print only lib names in jockc debug output - Add struct-basic.jock test Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add struct keyword
Post GH workflow.
Aliases resolve the target type eagerly at definition time (not evaluation time), supporting both built-in primitive types and subject-defined types like structs. Alias chaining works across compose boundaries since each alias captures the full resolved type. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add alias and upgrade struct.
The class definition lookup (get-limb) returns the axis of the battery (head of door), not the full door. Method dispatch needs the full door [battery [sample context]] to fire arms via %9. Fix: compute door-nock as parent of the battery axis (div axis 2), so %8 pushes the full door instead of just the battery. Also: strip name from class def jype (dyp(name %$)) so axis-at-name can recurse into [state core] pair to find methods. Also: improve runner.hoon error reporting with mole wrapper and nock-result/nock-crashed traces. Co-Authored-By: Claude Opus 4.5 <[email protected]>
…ion. New AST nodes (%index-empty, %index-has, %index-del, %index-pop, %index-put), Stack type, bracket parser dispatch in both match-jock paths, hoon.hoon map/set helper gates, and %index compilation for map-get and set-get. Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Add comma-skipping in match-metatype for Map(K, V) type params - Add mint stub cases for all new index AST nodes - Fix parser bracket code: restructure == detection to avoid find.$ - Remove %stack from inner indexing guard (mint-vain) - Add ;; casts for new AST nodes in parser loop Co-Authored-By: Claude Opus 4.6 <[email protected]>
map-get and set-get helpers searched trees using gor (hash-based ordering), which depends on mug/muk (Murmur3). Without jet acceleration in the jockc Nock interpreter, these are too slow at runtime. Replaced with both-subtree DFS search using ^- * to break wet gate type recursion. Also fixed map/set literal compilation to extract values from [%1 *] constant Nock formulas, and removed debug prints. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Add compilation for m[key?] (map has) and s[elem?] (set has) bracket syntax, following the same Nock generation pattern as %index (get). Update %index-del stub message to note it's blocked on gor/mug jetting. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Updated README to reflect the status of Jock and its development history.
Add status update for jockt test framework.
Support Set/Map operators
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.
No description provided.