Avril
3461794a68
Changed ifunc resolver for _jr_resolv to use the `static const` initialiser in the new macro-based constant expression xsubi endianess resolver. The ifunc resolver always had resolved the correct function at compile-time and consists of a single `jmp` into it, this doesn"t change anything but make it consistent with the constant expression resolver"s methods (which do matter for that one.)
...
This behaviour is reversible. See `src/rng/crand.c" for the preprocessor flag based options (although this one should make no different in codegen at all.)
Fortune for rngxx's current commit: Future small blessing − 末小吉
3 years ago
Avril
045cb7189b
Added compile-time (macro) determiation of endianess shift needed for jr_state"s bitfield over xsubi. Reduces code size and removes 2 levels of indirection.
...
To switch to the old (still available, through the function"s symbol itself) ifunc implementation, build with `-D_RNGXX_JR_RESOLV_RUNTIME` (the resolution still happens at compile-time, but the ifunc impl demands indirection even if it does nothing.)
Fortune for rngxx's current commit: Future small blessing − 末小吉
3 years ago
Avril
bd22305f77
started: Adding read_only access qualifier to params of internal X-TU function protos.
...
Will expand to all internal protos, and then will expand to user-facing API protos (mostly relevant for C API.)
Fortune for rngxx's current commit: Blessing − 吉
3 years ago
Avril
4da128e510
Moved dynctor registration into `rng.cpp` (seems to work in *this* TU too. Why not `rng/sm64.cpp` specifically???? very annoying.)
...
Fortune for rngxx's current commit: Small curse − 小凶
3 years ago
Avril
3165ef13fd
Hack to work arround dynctor not being registered when not defined in `crand.cpp" (no idea why, the symbol exists. looking into it.)
...
Fortune for rngxx's current commit: Small curse − 小凶
3 years ago
Avril
dfb3d74816
Added SM64 engine to C hard-coded new API
...
Fortune for rngxx's current commit: Future small blessing − 末小吉
3 years ago
Avril
8a0ecc0e32
XXX: Why is sm64"s dynctor not being called?
...
Fortune for rngxx's current commit: Great blessing − 大吉
3 years ago
Avril
d38f0ebd62
Cannot register sm64 dyn constructor for some reason...
...
Fortune for rngxx's current commit: Curse − 凶
3 years ago
Avril
86b855bda3
Added seeding interface.
...
Added splitmix64 seed generator.
Added splitmix64 random generator.
Fortune for rngxx's current commit: Future small blessing − 末小吉
3 years ago
Avril
d9e34e7e70
Start: Seeding API
...
Fortune for rngxx's current commit: Half curse − 半凶
3 years ago
Avril
3ff3db0e3e
C++ iterators are absolute retarded shite. Their ```design""" makes no sense.
...
Fortune for rngxx's current commit: Future curse − 末凶
3 years ago
Avril
b071cbb1ad
Added `nexta[m]` array handling functions.
...
Fixed C-C++ bool interop sizing bug.
Fortune for rngxx's current commit: Small curse − 小凶
3 years ago
Avril
1cf5ca05b2
Added noexcept to global dtor & ctor
...
Fortune for rngxx's current commit: Half blessing − 半吉
3 years ago
Avril
4b988ba83b
Added name-based runtime engine lookup.
...
This is opt-in for any children of `Random`, the macro `RNGXX_APPLY_CTOR(namespace, class_name, seed_type)` in `internal/init.hpp` enables this lookup.
Non-internal implementors of Random can use this API also. This provides a dynamic way to load user-defined subclasses of Random at runtime.
A symbol-based lookup may be added in the future.
Version bumped.
Fortune for rngxx's current commit: Future curse − 末凶
3 years ago
Avril
ebc16f5638
C API: Added individual primitive types `rng_next_*()`
...
Defined in rngxx.h header as `inline static __gnu_inline` (force inline). To compile into consumer libraries as ONLY inline (no symbol emitted) `inline extern __gnu_inline`, define the macro `_RNGXX_INLINE_ONLY` (If inlining is disabled by compiler flag (e.g. `-O0`), this will cause linker failures.)
Fortune for rngxx's current commit: Curse − 凶
3 years ago
Avril
9ebf0384a5
C API basic test
...
Fortune for rngxx's current commit: Blessing − 吉
3 years ago
Avril
29187574be
C API added
...
(testing needed)
Fortune for rngxx's current commit: Half blessing − 半吉
3 years ago
Avril
ed1f1d5f03
C API: Start `next` shim
...
Fortune for rngxx's current commit: Small blessing − 小吉
3 years ago
Avril
fc70397536
C API: Type spec and flags (start)
...
Use bitfields for ty + tyflag in struct for `rng_next()` options.
Fortune for rngxx's current commit: Middle blessing − 中吉
3 years ago
Avril
c38d58b7fe
Rework C API shim. Now bridges: librngxx (main library C++ interface) @ rngxx.hpp -> >|capi-bridge.cpp <-> capi-bridge.h <-> capi.c|> -> rngxx.h
...
Fortune for rngxx's current commit: Small blessing − 小吉
3 years ago
Avril
8cdc9648a0
Merge
...
Fortune for rngxx's current commit: Half blessing − 半吉
3 years ago
Avril
b1bed00dcc
Fix header names. Again...
...
Fortune for rngxx's current commit: Small blessing − 小吉
3 years ago
Avril
d51eb30b6b
C API start
...
Fortune for rngxx's current commit: Small curse − 小凶
3 years ago
Avril
f193acd2ea
Fixed internal header problems (hopefully...)
...
Fortune for rngxx's current commit: Half curse − 半凶
3 years ago
Avril
7733ada38b
Fixed some namespace pollution issues
...
Fortune for rngxx's current commit: Blessing − 吉
3 years ago
Avril
54dfb64596
Renamed API header & API header location /include
...
Fortune for cpprng's current commit: Future small blessing − 末小吉
3 years ago
Avril
df0fbadf3b
Reorganised /include
...
Fortune for cpprng's current commit: Future curse − 末凶
3 years ago
Avril
9fb0030c7a
Compiles for static + shared libraries
...
Fortune for cpprng's current commit: Future small blessing − 末小吉
3 years ago
Avril
9b2b2468cc
Why can"t I call Random:: functions from an instance of derrived class crand???
...
Fortune for cpprng's current commit: Curse − 凶
3 years ago
Avril
5f57115683
Vectorised next_bytes(), next_v*().
...
XXX: next_bytes(std::array<u8, ...>) doesn"t seem to play nice with aliasing rules.
Fortune for cpprng's current commit: Small blessing − 小吉
3 years ago
Avril
acc580e031
Random: Added `next_*(min, max)`
...
Fortune for cpprng's current commit: Future small blessing − 末小吉
3 years ago
Avril
a9bc96294a
Working util::range type and bounded range-scale API!
...
Fortune for cpprng's current commit: Future blessing − 末吉
3 years ago
Avril
5d69550fff
Fucking hell... First "attempt" at range API... it doesn"t look good :/
...
Fortune for cpprng's current commit: Future small blessing − 末小吉
3 years ago
Avril
fe55da9a5a
Improved ergonomics for aligned_ptr pointer handling
...
(This is mostly a test to see if overloading `operator&()` is ever something worth doing. Since this is a rather lax smart-pointer container and I can"t see any reason we"d need to pass around `aligned_ptr<T>*` instances, it might be worth doing.)
Fortune for cpprng's current commit: Blessing − 吉
3 years ago
Avril
ed966944b8
Added likeliness annotations to some nullptr checks
...
Fortune for cpprng's current commit: Great blessing − 大吉
3 years ago
Avril
ef25f978ff
Added attrs to internal-exported C API header
...
Remove -fanalyzer: Too many false positives
Fortune for cpprng's current commit: Middle blessing − 中吉
3 years ago
Avril
595fd74a97
_jr_st_resolv() now takes pointer to the xsub union instead of the whole state.
...
Fortune for cpprng's current commit: Future blessing − 末吉
3 years ago
Avril
b35c0f705d
Added internal visibility modifier to internal C APIs
...
Fortune for cpprng's current commit: Future small blessing − 末小吉
3 years ago
Avril
8e20b86365
crand::_sample() uniformly distributes between 0..1
...
Fortune for cpprng's current commit: Blessing − 吉
3 years ago
Avril
c21c7e77e9
crand::next_u64() now correctly returns uniformly between 0..=RANGE_MAX
...
Fortune for cpprng's current commit: Small blessing − 小吉
3 years ago
Avril
b59c0671d2
Added ranges to Random base.
...
Added crand::RANGE_MIN/MAX, overriden required base ranges to point to them.
crand::next_u64() returns within this range but discards the negative result
Fortune for cpprng's current commit: Small blessing − 小吉
3 years ago
Avril
977e32c711
crand: started integer rng overrides
...
Fortune for cpprng's current commit: Half blessing − 半吉
3 years ago
Avril
c8622410d8
crand: raw sample ok
...
Fortune for cpprng's current commit: Middle blessing − 中吉
3 years ago
Avril
ea4538231e
Fix incorrect uint48_t sizing.
...
Resolve xsubi via ifunc if bitfield is placed in unexpected location within union.
Fortune for cpprng's current commit: Middle blessing − 中吉
3 years ago
Avril
2b24ab0408
All that aligned_ptr<bullshit> work for nothing huh...
...
Fortune for cpprng's current commit: Half blessing − 半吉
3 years ago
Avril
3b1628d396
Added mem::aligned_ptr<T> wrapper
...
Fortune for cpprng's current commit: Future blessing − 末吉
3 years ago
Avril
5ac7fc5e11
start: c Random subclass (jrand48_r())
...
Fortune for cpprng's current commit: Curse − 凶
3 years ago
Avril
ff8c729ef7
Initial commit
...
Added `Random` interface.
Fortune for cpprng's current commit: Blessing − 吉
3 years ago