Mukul Rathi
Mukul Rathi
Thank you for your interesting question, the truth is that I haven’t really thought too much about error-handling yet. This language was written for my undergraduate dissertation so as a...
Hmm, not sure. Is `gcc` set up correctly? A minimal example you might want to test your Bazel LLVM setup with is this repo: https://github.com/dgp1130/llvm-bazel-foolang/blob/master/llvm.bzl
Not working on new language features for now, perhaps will resume work on Bolt later down the line!
buggy so far, llvm not compiling within the docker image
A better solution: See https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java Store reader + writer lock as`shorts` (16 bits) each - so the upper bits of a int32 refers to reader count, the lower bits refer...
the lock / unlock functions should take in two arguments - the memory addresses of the pthread id and lock counter respectively. (llvm::PointerType ?)
when releasing writer lock need to set threadID to null (to prevent other threads reading a stale copy of the owning thread).
fix #122 whilst at it
Could instead try to use a `pthread_rw_mutex()` with a custom field that checks owner thread set - so don't try to acquire lock if thread has already acquired it. This...
(Bug - not updating field) ``` let (i = 0; i< 10; i++){ x.f := x.f + i } ``` x.f is set to 0 if using a locked capability,...