0.1.0-beta.2 (older version) Thoroughness: Low Understanding: Medium
by programmerjake on 2021-04-14
This review is from Crev, a distributed system for code reviews. To add your review, set up cargo-crev
.
The current version of Inkwell is 0.5.0.
0.1.0-beta.2 (older version) Thoroughness: Low Understanding: Medium
by programmerjake on 2021-04-14
Lib.rs has been able to verify that all files in the crate's tarball, except Cargo.lock
,
are in the crate's repository with a git tag matching the version. Please note that this check is still in beta, and absence of this confirmation does not mean that the files don't match.
Crates in the crates.io registry are tarball snapshots uploaded by crates' publishers. The registry is not using crates' git repositories, so there is a possibility that published crates have a misleading repository URL, or contain different code from the code in the repository.
To review the actual code of the crate, it's best to use cargo crev open inkwell
. Alternatively, you can download the tarball of inkwell v0.5.0 or view the source online.
Found some unsound code, reported in #241
Going through the code, there are many places where non-public functions are not marked
unsafe
even when they exhibit UB if given garbage input. Since those functions are not publically visible, external users can't directly cause UB from safe code, but I'd consider that a code style issue. Reported in #244There are several places where lifetimes seem to have been ignored, unnecessarily restricting users. Reported in #243
ExecutionEngine is not thread-safe, even though the underlying LLVM type is. Reported in #242
The documentation for TargetMachine::write_to_file is misleading and incorrect. Reported in #240
Issue: Low (github.com/TheDan64/inkwell/issues/240)
Issue: High (github.com/TheDan64/inkwell/issues/241)
Issue: Low (github.com/TheDan64/inkwell/issues/242)
Issue: Low (github.com/TheDan64/inkwell/issues/243)
Issue: Medium (github.com/TheDan64/inkwell/issues/244)