Try   HackMD

gccrs syncup: Semantics checking

Rolling agenda.

2024-11-18

  • repr(align) and repr(packed) do not work
  • Cannot convert pointer types to integer types
    • ptr as usize doesn't work
    • Same for float to integer and vice versa
    • Nobel to open up issues on the gccrs repo

2024-10-28

code to add:

#[lang = "sized"]
pub trait Sized {}

2024-10-14

No call, per Nobel: "Sorry folks, but due to the ongoing festive season in Nepal I won't be able to make it this week."

2024-09-30

No call, per Nobel: "We had a syncup last Monday so this won't be necessary."

2024-09-23

  • handling optimizations

    • compare every optimization against each optimization for each compiler.
  • Expected fail cases

    • link them from projects issues to gccrs issue
  • Checking Invarints

    • Fine as it is (Output to stdout).

Actions:

2024-08-21

  • how to bring printing functionality into gccrs
extern "C" { fn printf(fmt: *const i8, ...); } fn format_option(option: &Option<i32>) -> &'static str { match option { Some(_) => "Some", None => "None", } } fn main() { let s = "Nobel"; unsafe { printf("%s\n\0", s as *const str as *const i8) } }
  • Possible bug:
fn main() {
    let foo: i32 = -2147483648;
}
  • Review Actions

Actions:

  • Nobel to open up issues for possible issues

Report issue:

  • handling type limits.
  • handling module from non-main files.

2024-07-22

  • Fuzzing or manual testcases?
    • manual testcases would be better for now, since the compiler is not super stable
    • since we are interested in semantic differences, it's better to have tailored testcases
    • fuzzing my be useful to come up with test cases to put into the regression test suite
  • using C FFI for functionality that is not present in gccrs for uniform test cases across rustc and gccrs.

Actions: