d69a567431
tuple/index: add some index sequence generators and manipulators
2018-04-05 15:18:30 +10:00
c570d6ad2f
tap: guard against users ignoring status return code
2018-04-05 13:55:07 +10:00
5f2b1a5c36
tuple: split tests into separate units
2018-04-05 13:54:42 +10:00
8f2f623520
tuple/value: add zip implementation
2018-04-05 12:23:12 +10:00
5c2b52b30b
tuple/value: prefer std::invoke over manual calls
2018-04-05 12:22:44 +10:00
190307acb8
typeidx: use atomic variables for thread safety
2018-04-05 12:14:11 +10:00
cd06fdcd67
debug: add assertions_enabled variable
2018-04-05 12:13:37 +10:00
de247c7e7b
cpp: add basic C preprocessor emulator
2018-04-01 14:49:10 +10:00
49ebbec37f
string: don't use const members for tokeniser::iterator
...
this allows us to provide an assignment operator more easily
2018-04-01 14:47:33 +10:00
f404598edc
string: add advance operator for tokeniser::iterator
2018-04-01 14:46:32 +10:00
5028de600a
string: add indirection operator for tokeniser::iterator
2018-04-01 14:44:43 +10:00
bfa5700df0
view: add string comparison operators
2018-04-01 14:44:15 +10:00
41cf6c3d51
view: slice should be const
2018-04-01 14:44:08 +10:00
5b9eae9b25
posix/except: add templated error_code
2018-04-01 14:43:28 +10:00
cc54d23998
gitignore: add pretty printer python cache
2018-03-29 14:16:55 +11:00
a4634a771b
g/frustum: simplify aabb intersection test
2018-03-28 20:42:43 +11:00
48e007c545
debug: add gdb pretty printers for coord types
2018-03-28 14:55:54 +11:00
4f10505d09
build: fix warnings from -Wparentheses
2018-03-27 20:16:32 +11:00
5642ff43b8
README: note all the environment variables we use.
2018-03-27 16:21:38 +11:00
47613c5ec2
string: remove unneeded rval-ref qualifier
2018-03-27 16:21:20 +11:00
62920f36f4
job/dispatch: retain the supplied function if forwarded to us
2018-03-27 16:20:56 +11:00
45fa54a5ee
job/dispatch: don't unconditionally cast parameters
2018-03-27 16:16:35 +11:00
d941188dd5
job/queue: add default constructor
2018-03-27 16:16:13 +11:00
429c0151db
singleton: add comments
2018-03-27 16:15:54 +11:00
473556f9ed
maths/fast: use relatively_equal for tests
2018-03-27 16:15:21 +11:00
046e6182e7
maths: avoid division by zero in relatively_equal
2018-03-27 16:14:41 +11:00
8777d32b94
debug: don't enable float exceptions by default
...
sometimes we just power through computations with invalid results to
simplify conditionals.
2018-03-27 16:14:01 +11:00
5532f90de7
vector: note what each component in spherical corresponds to
2018-03-27 16:11:49 +11:00
951b160d0d
parse: instantiate unsigned in parsing
2018-03-27 16:11:04 +11:00
14e2fc5bd5
geom/ray: use infinity, not nan, to signal no intersection
2018-03-27 16:06:34 +11:00
048cffaee7
extent;string: return references in iterators
2018-03-27 16:05:46 +11:00
67c8c9c69c
debug: enable debugging features by default
2018-03-27 15:50:29 +11:00
1b023f7c8d
iterator: improve reference semantics
2018-03-27 15:49:47 +11:00
93185775e6
coord/simd: template on arity and type
2018-03-23 17:52:08 +11:00
3409d39fc9
job/dispatch: add chunked image job queueing
2018-03-23 16:59:09 +11:00
490aab08bc
iterator: retain rvalue sources when constructing zip/izip
2018-03-23 16:41:11 +11:00
86b1fa38c7
variadic: add filter call
2018-03-23 16:40:30 +11:00
cceadcba40
tuple/value: add explanatory comment for map
2018-03-23 16:39:35 +11:00
af77aad894
extent/region: simplify iteration over ranges
2018-03-23 16:38:54 +11:00
7568e34649
view: don't force const iterators for cbegin/cend
2018-03-23 14:40:40 +11:00
58843fb0c7
view: use trivial constructors and assignment
...
this allows us to fulfil the requirements of TriviallyCopyable which is
useful particularly in dumb allocators and job queues.
2018-03-23 14:10:57 +11:00
36f4ba035c
thread: rename thread primitives from job namespace
2018-03-23 14:10:20 +11:00
6cd2bef17d
tap: send output to the recorded stream, not cout
2018-03-22 16:11:13 +11:00
2d7e3e5d7d
build: prefer iosfwd over iostream
2018-03-22 16:11:13 +11:00
40da3f8df7
singleton: add trivial implementation
2018-03-22 15:06:48 +11:00
9bfefb3dab
job/queue: use a reaper thread to clear finished tasks
...
clearing the tasks on the worker threads can cause the queue to stall
while the cookie is notified, released, and deleted. we punt the cleanup
off to a reaper thread so that the workers can continue.
2018-03-22 14:59:03 +11:00
3689b08535
parallel/queue: add nodiscard to push/pop
...
Users _must_ check the return value otherwise they've no indication
whether anything happened... This is a pretty common mistake because it
looks a lot like a typical push/pop operation.
2018-03-22 14:57:34 +11:00
4f4b812356
parallel/queue: add capacity query
2018-03-22 14:57:24 +11:00
53255ca4a0
job/semaphore: add multi-release
2018-03-22 13:39:16 +11:00
848b9951e8
job/semaphore: add multi-acquire
2018-03-22 13:37:28 +11:00