Yorick Peterse

Results 242 comments of Yorick Peterse

https://github.com/inko-lang/inko/commit/cefa6649c7959ee293e118bb1f2dd9e53d86781d adds the `inko doc` command, producing a set of JSON files containing documentation information. https://github.com/inko-lang/idoc/ takes these files and converts them to HTML. idoc uses dependencies not part of...

For installing idoc, one can just use the `make install` task for the time being. In the coming weeks I want to set up something like https://docs.rs/ such that most...

Using external thread-local variables in Rust requires nightly, and probably will continue to require this for a long time: https://github.com/rust-lang/rust/issues/29594

A tricky thing about using the stack is that LLVM doesn't seem to provide any intrinsics for obtaining any kind of stack information. This means we'd have to use raw...

For thread-local code, the following Rust code compiles to the same as regular/raw thread-locals: ```rust thread_local! { static PTR1: Cell = const { Cell::new(std::ptr::null_mut()) }; } ``` This can be...

A quick dive through the current code reveals we don't use the current process value in all that many places, mostly to pass it as an implicit argument to methods....

It seems that when one uses `#[no_mangle]` in the `thread_local!` macro, mangling is still applied to the constant. This can be seen in https://rust.godbolt.org/z/qWzaq8qze where `PTR1` is mangled as `example::PTR1::__getit::VAL.0`...

Looking at the assembly, it also seems Rust uses LLVM's `localdynamic` for the `thread_local!` variable, while using `generaldynamic` for the `#[thread_local]` version.

Worth mentioning: often these micro benchmarks end up measuring completely unrelated code, such as the time it takes to write to STDOUT (something the Wren benchmarks suffer from). When adopting...

Regex interning could be done by reusing interned strings and mapping these to their regex objects. This way re-using the same regex literals would result in only 1 heap allocation....