Skip to content

Releases: FishingHacks/mira

Mira v0.3.0

09 Dec 00:28
e06573e

Choose a tag to compare

Full Changelog: v0.2.1...v0.3.0

  • Added defer:
    // output:
    // 1
    // 2
    fn main() {
        defer "2".println();
        "1".println();
    }
  • A lot of refactoring
  • Miradoc (Passes lightroom with an accessibility score of 100/100)
  • Use LibC
  • Dropped all targets but x86_64-linux-gnu
  • Monomorphisation (You can now use generics in functions and types)
  • Added support for hex and unicode literals in strings ("\x45\u{ffa}")
  • Added symbol demangling for mira functions to panic
  • Added std::alloc
  • A ton of work on std::langitems::*, mainly u* and str
  • Added std::slice and std::ptr
  • Added std::Vec

Mira v0.2.1

16 Aug 12:54
fd7dd74

Choose a tag to compare

Full Changelog: v0.1.0...v0.2.1

  • A lot of refactoring
  • Sped up compile times
  • Added macros:
    macro! join_idents {
        ($first:ident $(,)?) => { $first };
        ($first:ident $(, $next:ident)+ $(,)?) => { concat_idents!($first $(, _, $next)+) };
    }
    
    fn join_idents!(hello, world) () -> &str = "Hello, World!";
    fn main() { hello_world().print(); }
  • much improved diagnostics:
    Unicode Formatter:
    error: Expected void, but found &str
      ╭──[/home/fishi/rust/miralang/release/stdin_buffer:6:35]
      │
    6 │ fn join_idents!(hello, world) () = "Hello, World!";
      ·                                    ^^^^^^^^^^^^^^^ types don't match
      ╰──
      note: i am a helpful note
    
    ASCII Formatter:
    error: Cannot find function print on type `&void`
     --> /home/fishi/rust/miralang/release/stdin_buffer:7:27
      |
    7 | pub fn main() { hello_world().print(); }
      .                            ^^^^^^^^ No function named print is associated with `&void`
      |
      = note: i am a helpful note
    
  • support for llvm 19.1 and 20.1
  • stopped mirac from causing a stackoverflow when dereferencing a sized array (*(0usize as &void as &[u8; 1]))

mira v0.2

16 Aug 00:50
cd59402

Choose a tag to compare

Full Changelog: v0.1.0...v0.2

  • A lot of refactoring
  • Sped up compile times
  • Added macros:
    macro! join_idents {
        ($first:ident $(,)?) => { $first };
        ($first:ident $(, $next:ident)+ $(,)?) => { concat_idents!($first $(, _, $next)+) };
    }
    
    fn join_idents!(hello, world) () -> &str = "Hello, World!";
    fn main() { hello_world().print(); }
  • much improved diagnostics:
    Unicode Formatter:
    error: Expected void, but found &str
      ╭──[/home/fishi/rust/miralang/release/stdin_buffer:6:35]
      │
    6 │ fn join_idents!(hello, world) () = "Hello, World!";
      ·                                    ^^^^^^^^^^^^^^^ types don't match
      ╰──
      note: i am a helpful note
    
    ASCII Formatter:
    error: Cannot find function print on type `&void`
     --> /home/fishi/rust/miralang/release/stdin_buffer:7:27
      |
    7 | pub fn main() { hello_world().print(); }
      .                            ^^^^^^^^ No function named print is associated with `&void`
      |
      = note: i am a helpful note
    
  • support for llvm 19.1 and 20.1

Mira pre-release 0.0.1

12 Feb 10:15

Choose a tag to compare

Unpacked Size: 133.7 MiB (mirac 133.7 MiB, lib/: 13.3KiB)