Skip to content

ArgMojo v0.10.0

Latest

Choose a tag to compare

@forfudan forfudan released this 22 Oct 20:27
fa41f83

20261022 (v0.10.0)

ArgMojo v0.10.0 update the codebase to Mojo v1.2.0. The new compiler also fixes the deadlock that kept response files disabled since v0.4.0, so @args.txt expansion now works. The deprecated alias_name spellings are removed.

⭐️ New in v0.10.0

  1. Response files are enabled (PR #64). After command.response_file_prefix(), myapp @args.txt reads arguments from args.txt, one per line, with # comments, @@ escaping and nested response files up to response_file_max_depth[N]() (default 10). See the user manual.

🦋 Changed in v0.10.0

  1. Remove .alias_name[]() and the alias_name= parameter of Option, Flag and Count, deprecated in v0.9.0 (PR #64). To migrate, replace .alias_name[ with .alias[ and alias_name= with alias=.

🔄 Mojo v1.2.0 migration (PR #64)

  1. Update the Mojo dependency to >=1.2.0, <1.3.0.
  2. Parsable no longer defines its own default __init__. Mojo v1.2.0 gives Defaultable a default __init__ that default-constructs each field via reflection, which clashed with Parsable's own reflection-based one: every Parsable struct failed with "conflicting default implementations in 'Parsable' and 'Defaultable'". Parsable now uses the inherited one, and conforming structs still need no __init__. A field whose type is not Defaultable is reported by the compiler.

🔧 Fixes in v0.10.0

  1. A program that used ArgMojo together with the standard library's file I/O (for example open(path).read()) failed to compile on Mojo v1.2.0 with "existing function with conflicting signature". The *-echo password prompt declared libc read through external_call, and Mojo v1.2.0's standard library declares read with a different signature. The prompt now reads through RawFileDescriptor.read_bytes() (PR #64).