Commit Graph

742 Commits (master)

Author SHA1 Message Date
Daniel Kolesa 2286235786 fix dynamic linking with ostd::build, ostd::fs 2021-05-04 03:21:49 +02:00
Daniel Kolesa 6d53597d9a make slices constructible from matching string_view 2021-03-20 02:23:13 +01:00
Daniel Kolesa 2077ff0752 correctly enforce symbol visibility 2020-09-19 04:16:26 +02:00
Daniel Kolesa 78ffcafc00 fix warning 2020-09-11 23:40:56 +02:00
Daniel Kolesa 3cc97f6fab fix some dumb gcc warnings 2019-01-28 02:53:09 +01:00
Daniel Kolesa 1ac481d887 generalized handling of stack freeing, remove coroutine swap
Swap makes no sense because coroutines are not movable.
2019-01-28 02:45:30 +01:00
Daniel Kolesa 6935e62d06 do not store stack allocator in the stack memory itself
Context calls for a page aligned stack pointer, this is problematic
on systems with 64k pages.
2019-01-28 02:13:24 +01:00
Daniel Kolesa 8a7a4d6914 fix includes 2018-12-02 03:38:02 +01:00
Daniel Kolesa 256a35697a move directory range structural details into implementation 2018-12-02 03:24:52 +01:00
Daniel Kolesa 648273747a add path equality checks 2018-05-05 21:58:23 +02:00
Daniel Kolesa 3bdb789b7a predefined API for generating simple depend callbacks 2018-05-04 21:02:55 +02:00
Daniel Kolesa 08e8dc3f19 pass real target to dependency callbacks 2018-05-02 21:00:37 +02:00
Daniel Kolesa 3673438e8c build: dynamic dependencies using dependency callbacks 2018-05-02 20:32:47 +02:00
Daniel Kolesa 6845f5a8d8 add a way to conditionally use rules according to predicate 2018-05-01 20:46:21 +02:00
Daniel Kolesa 0915a9e6b5 prepare for more elaborate build rule matching 2018-04-30 19:51:02 +02:00
Daniel Kolesa 11a366f469 only mutable ranges are iterable 2018-04-26 00:44:42 +02:00
Daniel Kolesa e0986692ef make body fix 2018-04-26 00:42:48 +02:00
Daniel Kolesa 3506facc61 move make impl bits into a source file 2018-04-24 01:24:48 +02:00
Daniel Kolesa 8c40f335a7 add make_task_simple that does not use coroutines 2018-04-23 22:33:37 +02:00
Daniel Kolesa edd60babdd separate make coroutines into their own header 2018-04-23 21:57:59 +02:00
Daniel Kolesa 846b11e4d1 allow flexible make task types via factory funcs 2018-04-23 21:23:56 +02:00
Daniel Kolesa 4fd81d83ef no need to store substring within rule_inst 2018-04-23 00:09:47 +02:00
Daniel Kolesa 4c4c06228e collect all deps during rlist resolution 2018-04-22 23:13:35 +02:00
Daniel Kolesa 568a51c489 subtask registration in make_task 2018-04-22 21:14:18 +02:00
Daniel Kolesa d4037f9c1d split out coroutine stuff into make_task 2018-04-22 21:07:22 +02:00
Daniel Kolesa 097722b1ed add API to get the number of threads in a threadpool 2018-04-22 17:40:37 +02:00
Daniel Kolesa 230ece9fb6 relax add_depend a little 2018-04-22 17:35:15 +02:00
Daniel Kolesa 4b4839acb8 initial impl for ostd::build, an extensible buildsystem framework 2018-04-22 16:52:25 +02:00
Daniel Kolesa 493f31fabf make coroutines immovable (moving invalidates inside pointers)
If you move a coroutine, all references to the coroutine from
inside of it become invalid, including e.g. yielders. Therefore,
make coroutines immovable to prevent weird bugs...

but also, make the guts of coroutine context a bit more move
friendly (like, do not change current status after context switch
and always do it outside), in case a solution is found in the
future.
2018-04-21 22:39:07 +02:00
Daniel Kolesa 77814ca08f fix coroutine resume 2018-04-21 19:06:32 +02:00
Daniel Kolesa bf8657e141 document the rest of path.hh 2018-04-20 02:45:18 +02:00
Daniel Kolesa a85cf13c56 add status/symlink_status/file_size/hard_link_count 2018-04-20 01:22:28 +02:00
Daniel Kolesa 7cd42186a7 empty() should be noexcept 2018-04-19 00:09:11 +02:00
Daniel Kolesa dfc95fb6eb doc fixes 2018-04-19 00:00:23 +02:00
Daniel Kolesa 0bed9a9850 document paths 2018-04-18 23:57:00 +02:00
Daniel Kolesa 90f9285b16 path conversion operators, simplify usage 2018-04-18 18:40:45 +02:00
Daniel Kolesa 049ce44d3a replace path aborts with exceptions 2018-04-18 10:58:02 +02:00
Daniel Kolesa 9aa03b8a9f remove c++ std::filesystem stuff 2018-04-18 03:57:22 +02:00
Daniel Kolesa 307675731c add fs APIs for creating/removing/renaming, mtime and globs 2018-04-18 03:40:03 +02:00
Daniel Kolesa 64a529254c add checking file types to directory entry 2018-04-17 23:13:46 +02:00
Daniel Kolesa 4c0c4e8f41 directory entries are for one-time read only, remove assign/clear 2018-04-17 03:05:00 +02:00
Daniel Kolesa 83dc828a89 re-add directory_entry 2018-04-17 03:02:51 +02:00
Daniel Kolesa 77b267a34b file_status -> file_mode, directory_entry -> file_info 2018-04-17 02:54:05 +02:00
Daniel Kolesa d011daad3b implement path cwd/home/temp/absolute/relative/canonical/existence/equivalence 2018-04-17 02:26:45 +02:00
Daniel Kolesa 0d0655b09e add APIs for checking file types and permissions 2018-04-16 03:10:15 +02:00
Daniel Kolesa f395562734 memory-safe dir ranges 2018-04-16 01:59:10 +02:00
Daniel Kolesa ad635c8a23 add recursive directory range 2018-04-16 00:19:48 +02:00
Daniel Kolesa 4ef512effa add a range to iterate a directory 2018-04-15 23:23:43 +02:00
Daniel Kolesa 1ade11b936 always store path format concretely as either posix or windows 2018-04-15 21:24:14 +02:00
Daniel Kolesa a2fd106580 add a range to get all parents of a path + parent check fixes 2018-04-15 20:37:37 +02:00