Skip to content

taupkg-v0.0.1

Latest

Choose a tag to compare

@Yusee-Programmer Yusee-Programmer released this 04 Jun 23:02
8618c24

taupkg v0.0.1

Tauraro Package Manager — first release

taupkg is the official package manager for the Tauraro programming language.
It compiles to a single native binary with no runtime dependencies.


What's included

Command Description
taupkg init [name] Create a new taupkg.toml and src/main.tr
taupkg add <pkg>[@constraint] Add a dependency and install it
taupkg remove <pkg> Remove a dependency
taupkg install Install all deps listed in taupkg.toml
taupkg update [pkg] Update all (or one) dependency
taupkg build [--release] [-o file] Build the project
taupkg run [-- args] Build and run
taupkg test Build and run tests
taupkg search <query> Search the registry
taupkg publish Publish to the registry
taupkg info <pkg> Show package information
taupkg list List installed packages
taupkg clean Remove .taupkg/build/
taupkg install-tauraro [--version x.y.z] Download and install the Tauraro compiler

Compiler fixes (tauraroc) required for this release

taupkg exercises the full Tauraro feature set — multi-module imports, built-in
module dispatch, Vec[str] type inference, and local imports inside function
bodies. Several compiler bugs were fixed as part of getting taupkg to compile:

  • Parser: from X import Y inside function bodies now generates a no-op
    instead of a floating X; identifier that caused undeclared-symbol errors
  • Sema: str.split() now returns Vec[str] with its element type, so
    subsequent .get(idx) dispatches as List_str_get rather than bare get()
  • Sema: Built-in module methods carry return types — OS.cwd()str,
    OS.is_windows()bool, Process.system()int, Env.get_var()str
  • Codegen: str.split() no longer emits a (void*) cast that broke
    __auto_type type inference on the result variable
  • Codegen: argv parameter in def main(argv: Vec[str]) is renamed to
    _tr_main_argv in both the declaration and all body references, preventing
    shadowing of C's char** argv
  • Codegen: #ifndef TYPENAME_STRUCT_DEFINED guards in gen_class_struct
    eliminate duplicate-definition errors when two modules define a same-named type
  • Codegen: Forward declarations and class method prototypes in
    tauraro_types.h are deduplicated, fixing conflicting-type linker errors in
    multi-module builds
  • Codegen: OS, Process, Env, Hash, File static method dispatch
    (OS.cwd()_tr_cwd(), Process.system(cmd)_tr_system(cmd), etc.)
  • Runtime search (src/main.tr): read_runtime_header now also checks
    bin_dir/runtime/tauraro_rt.h — the layout used by structured release zips —
    so the compiler finds its own runtime header when installed via taupkg