cabboose
cabboose
```nim import cps type C = ref object of Continuation O = ref object of C P = ref object of C proc sayYourName(c: C): string {.cpsVoodoo.} = return "I...
I've refactored the library to stop using the std/atomics because it was very restrictive. Pros: std/atomics restriction on the types allowed for its operations to work has been removed Cons:...
The consumers are the slowest set of operations. A single consumer loonyqueue would be drastically faster for MPSC situation. I have implemented a version of the LoonyQueueSC, however there is...
Added `loonyPadding` compiler option which would just padd each loony field onto a cache line of its own. In my benchmarks I couldn't really see a difference, will need to...
Implements len proc (tested outside of test suite) Removes utils/futex and introduces dependency on externally maintained futexes library.
Thread analyzer determines the [deallocshared](https://github.com/nim-lang/Nim/blob/e3b19cbe52e0578de315d259fbb066bfe991a60f/lib/system/threads.nim#L185) proc called by a thread on completion is a data-race. Atm only solution I can come up with involves changing or providing a modified std...
Refactor all these alias types like TagPtr to use a distinct type with converters to avoid boilerplate spaghetti as per disruptek
Orc crashes when a Continuation (or any ref object) passed through the queue reaches the end of its life span and the final `=destroy` is run. This is evident by...
### Example ```nim type Box*[T] = object when sizeof(T) != 0: value: int Obj* = object _*: Box[RefObj] RefObj* = ref Obj ``` ### Actual Output ``` PS C:\Users\shaya\Documents\GitHub\hyalos> nim_dbg...
### Example ```nim type int128 {.importc:"__int128".} = distinct array[2, uint64] hint128 = object hi, lo: int64 proc atomicAddFetch[int128](p: ptr int128, v: int128, mo = ATOMIC_SEQ_CST): int128 {.importc:"__atomic_add_fetch", nodecl.} var atm...