kaleidawave / ezno

A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance
https://kaleidawave.github.io/posts/introducing-ezno/
MIT License
2.3k stars 42 forks source link

Few parser fixes #158

Closed kaleidawave closed 1 week ago

kaleidawave commented 1 month ago
kaleidawave commented 2 weeks ago

Pretty formating of array

Currently if some structures including array have check to see if their content printed on the same line overflows a specific count. This works well (see parser/examples/pretty_printing.rs). However in a project I am working on I had a case where I have a array of lots of literals.

const x = [1, 1, 0, 0, 1, 0, 1, ... *etc* ]

as it breaks the max-line width threshold it is pretty printed as

const x = [
  1, 
  1, 
  0, 
  0, 
  1, 
  0, 
  1,
   ... *etc* 
]

I wonder if in this case it could be alternatively done in half-way manner, where the items are distributed?

const x = [
  1, 1, 0, 0, ...
  1, 0, 1, 0, ...
   ... *etc* 
]
kaleidawave commented 2 weeks ago

Help @addisoncrump @jasikpark. Not sure why it is now requiring x86_64-unknown-linux-musl, when the rest of the tests run on x86_64-unknown-linux-gnu?

error[E0463]: can't find crate for `core`
  |
  = note: the `x86_64-unknown-linux-musl` target may not be installed
  = help: consider downloading the target with `rustup target add x86_64-unknown-linux-musl`
  = help: consider building the standard library from source with `cargo build -Zbuild-std`

For more information about this error, try `rustc --explain E0463`.
error: could not compile `libc` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
Error: failed to build fuzz script: RUSTFLAGS="-Cpasses=sancov-module -Cllvm-args=-sanitizer-coverage-level=4 -Cllvm-args=-sanitizer-coverage-inline-8bit-counters -Cllvm-args=-sanitizer-coverage-pc-table -Cllvm-args=-sanitizer-coverage-trace-compares --cfg fuzzing -Clink-dead-code -Cllvm-args=-sanitizer-coverage-stack-depth -Cdebug-assertions -C codegen-units=1" "cargo" "build" "--manifest-path" "/home/runner/work/ezno/ezno/parser/fuzz/Cargo.toml" "--target" "x86_64-unknown-linux-musl" "--release" "--config" "profile.release.debug=true" "--bin" "module_roundtrip_naive"
Error: Process completed with exit code 1.

It was working yesterday (maybe a change in 1.79 that has just come through, not sure though) and not sure whether changing the CI dtolnay/rust-toolchain@stable target is a good fix or would even work?

addisoncrump commented 2 weeks ago

You seem to have run into this: https://github.com/rust-fuzz/cargo-fuzz/issues/355

I'm surprised that hasn't already been fixed... I bumped the upstream issue.

kaleidawave commented 1 week ago

Need to look into this fuzzing issue before merge. Understand why broken, but not sure why now? There hasn't been an update to cargo-fuzz in a while? Manually setting the version hasn't seemed to work?

kaleidawave commented 1 week ago

Installing from the GitHub repository works? (cargo install --git https://github.com/rust-fuzz/cargo-fuzz.git). Only adds 18s to the action (to build the binary from source)? Should be okay, until https://github.com/rust-fuzz/cargo-fuzz/pull/365 is merged!

lishaduck commented 1 week ago

Are the issues linked resolved? You put "for" after "fix", so they didn't autoclose 😉