Conversation
Release binaries were built without -ldflags, so Version and BuildTime defaulted to "dev" and "unknown". Users who installed via ez install saw "dev (dev build)" instead of the actual release version.
chore(ci): inject version ldflags in release workflow
Verifies resolve_print_suffix() correctly dispatches println() for struct functions returning string, float, bool, char, uint, and int.
…n float formatting
…ables for fallible stdlib
…ic counting and type resolution
fix(codegen): remove two unused-variable warnings
…mports (#1596) - Transitive imports now resolve relative to the importing file's directory via new source_dir field on ImportItem, not the entry file's directory - Directory import module name derivation strips trailing slash to avoid empty module names (e.g. "src/engine/" now correctly derives "engine") - Diamond dependencies (same file via different relative paths) are deduplicated using realpath() normalization instead of false E6001 errors - Self-referential directory imports detected and rejected with E6004 - Added W2013 (duplicate import) and W2014 (redundant sibling import) warnings
Transitive imports now resolve relative to the importing file's directory, not the entry file. Updated worker.ez to use "../shared.ez".
… file warning (#1596) - Restructure directory import processing into two passes (parse-all then rewrite-all) so sibling files share a combined name mapping - Null out processed import item paths to prevent re-scan from emitting spurious W2013 duplicate warnings - Add W2015 warning when a direct file import is redundant because the file was already pulled in by a directory import
…sitive suppression (#1596) - Two-pass directory import now generates compound rewrite mappings (alias_Name → mod_Name) so sibling qualified types resolve correctly - Remove uppercase-only guards on type rewriting — types can use any casing - Suppress W2013 for transitive diamond deps (only warn on direct imports) - W2015 now tells user which namespace to use instead of redundant import - Track module names alongside imported file paths for better diagnostics
Stdlib/C imports inside transitively imported files were not being injected into the main program because the sibling-detection loop skipped them without clearing the all_sibling flag. Now stdlib and C imports correctly mark the statement as non-sibling so it gets injected.
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
cast()system has multiple validation and codegen gaps #1598): String-to-numeric casts now work for all sized types (uint, i8, i16, i32, u8, u16, u32, f32, u64). Char-to-string casts produce the character, not ASCII value.resolve_print_suffixto correctly identify return types of struct-scoped functions.