Conversation
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
CLI cleanup: remove musl support, fix Mac issues, unify argument parsing, and fix cross-compilation.
Musl removal
build-linux-muslCI job (was Alpine-based)detect_libc()from installer — was incorrectly detecting musl on UbuntuLibCtype to just"gnu" | "system"Installer improvements
export PATHafter install sochadis available immediately without opening a new shellCLI argument parsing
chad-node.tsfrom manual for-loop arg parsing toArgumentParser(same parser the native binary uses)argparse.tsintosrc/so tsc can compile it (rootDir restriction prevents importing fromlib/)--verboseflag in the native binary (was declared but never connected tosetVerbose)Cross-compilation
--targettolinux-x64forbuild/runcommands (the only supported cross-compile target)chad ircan still target any platform since it only emits LLVM IR.alinker scripts that contain absolute paths — resolve referenced archives and rewrite scripts with local filenames-staticwhen cross-compiling to avoid.solinker script relocation issues-L<sysroot>/usr/libto bypass multiarch path detectionFix
chad runon Mac (native binary)cs_execSyncusespopen()which captures stdout into a buffer. When the nativechad runcalledchild_process.execSync(cmd), the user program's output was captured and silently discardedcs_exec_passthrough()inchild-process-bridge.cusingsystem()which inherits stdin/stdout/stderrcalls.ts,llvm-declarations.ts) and use it inchad-native.tsFix
chad watchon Mac (native binary)NOTE_WRITE, but in-place file edits don't triggerNOTE_WRITEon the directory fd (only directory entry changes like create/delete/rename do)NOTE_WRITE | NOTE_ATTRIB | NOTE_DELETE | NOTE_RENAME)NOTE_DELETE/NOTE_RENAMEand re-opening stale file descriptorsCI
build-linux-musljob and all references to ithello.tscreation step before cross-compile test (file doesn't exist in repo)test-artifactjobTest plan