Jason Volk
dd80b127b4
ircd::buffer: Fix the closure type so it's not too strict.
2017-10-11 20:54:01 -07:00
Jason Volk
3425659d7f
ircd::fs: Add very preliminary aio and ircd init for such.
2017-10-11 20:54:01 -07:00
Jason Volk
9b1e76e242
ircd::util: Add a classic is_zero functor.
2017-10-11 20:54:01 -07:00
Jason Volk
14e5306713
ircd::util: Add uninterruptible_syscall() for use with some POSIX syscalls.
2017-10-11 20:54:01 -07:00
Jason Volk
dffe222a78
ircd: Improve date utils; add date formatted string output; related.
2017-10-11 20:54:01 -07:00
Jason Volk
5936504f3b
ircd::ctx: Make promise/future accessible in ircd::.
2017-10-11 20:54:01 -07:00
Jason Volk
b9f13ed2c2
ircd: Remove cruft.
2017-10-11 20:54:01 -07:00
Jason Volk
e3963da007
ircd: Various comments added/modified.
2017-10-11 18:18:20 -07:00
Jason Volk
c44970427a
ircd: Minor cleanup.
2017-10-11 18:18:20 -07:00
Jason Volk
2839eb4b50
ircd::log: Make logger threadsafe by injecting other thread's messages into ios.
2017-10-11 18:18:20 -07:00
Jason Volk
eb56befef0
ircd: Improve thread id related; add public functions to post to ios.
2017-10-11 18:18:19 -07:00
Jason Volk
15b67799b3
ircd::json: Add a buffer.
2017-10-11 18:18:19 -07:00
Jason Volk
5c69d3df5a
ircd::crh: Improve hash related interface; comments etc.
2017-10-11 18:18:19 -07:00
Jason Volk
deb40ae5c1
ircd::ed25519: Use fixed_buffers.
2017-10-11 18:18:19 -07:00
Jason Volk
51f5045c06
ircd::buffer: Add fixed_buffer with construction closure; minor cleanup.
2017-10-11 18:18:19 -07:00
Jason Volk
d83ea848da
ircd: Fix comment.
2017-10-11 18:18:19 -07:00
Jason Volk
d98abc9b17
ircd::log: Add #ifdef's around debug functions and hope for DCE on production builds...
2017-10-11 18:18:18 -07:00
Jason Volk
f32a984722
ircd::json: Add support for tuple indexing by hash; add c++11 literal hasher.
2017-10-11 18:18:18 -07:00
Jason Volk
55a4377d49
ircd: Evade type-punning the iov list node.
2017-10-11 18:18:18 -07:00
Jason Volk
b7f1f04412
ircd: Add $() hash convenience; comments on ircd::crh.
2017-10-11 18:18:18 -07:00
Jason Volk
87771b00ba
ircd::fmt: Add bsprintf(): all-in-one printf and buffer.
2017-10-11 18:18:18 -07:00
Jason Volk
6c04739634
ircd::json: Add mutable_buffer print() overload.
2017-10-11 18:18:18 -07:00
Jason Volk
fb498ed2f2
ircd::json: Fix error.
2017-10-11 18:18:18 -07:00
Jason Volk
fccfa03308
ircd: Add mutable_buffer ctor to parse::buffer; cleanup parse related.
2017-10-11 18:18:17 -07:00
Jason Volk
20869309a2
Checkpoint matrix with preliminary federation client and keyserver related.
2017-10-03 04:27:15 -07:00
Jason Volk
3a9696fb6c
ircd: Ⓜ️ Add all spec'ed event fields to event tuple.
2017-10-03 04:27:15 -07:00
Jason Volk
5073096335
ircd: Ⓜ️ Improve id construction / validation related.
2017-10-03 04:27:15 -07:00
Jason Volk
0399ddf3e3
ircd: Add stringops for counting starting and ending occurrences.
2017-10-03 04:27:14 -07:00
Jason Volk
8c4925419a
ircd: Improve base64 suite.
2017-10-03 04:27:14 -07:00
Jason Volk
c722ff6e71
ircd::json: Better handling and message for assignment failure to tuple.
2017-10-03 04:27:14 -07:00
Jason Volk
67dba9c471
ircd::crh: Fix buffer argument types; cleanup.
2017-10-03 04:27:14 -07:00
Jason Volk
234f7e34d7
ircd::ed25519: Add filesystem related for sk; add seed constructor; various.
2017-10-03 04:27:14 -07:00
Jason Volk
d7406d47cc
ircd::db: Better hack handling for not-found integer values.
2017-10-03 04:27:14 -07:00
Jason Volk
4cf197d263
ircd: Add chrono::hours; various cleanup; comments.
2017-10-03 04:27:14 -07:00
Jason Volk
47f3167479
ircd::buffer: Move array constructors down a level.
2017-10-03 04:27:14 -07:00
Jason Volk
4954c90e27
ircd::fs: Improve basic file read/write/append into buffers.
2017-10-03 04:27:14 -07:00
Jason Volk
0eb10c0495
ircd: Add b64encoded_unpadded variant.
2017-10-03 04:27:13 -07:00
Jason Volk
7745082fb0
ircd: Ⓜ️ Add preliminary matrix README.
2017-10-03 04:27:13 -07:00
Jason Volk
cc8a835ab7
ircd::db: Minor cleanup; fix identation.
2017-10-03 04:27:13 -07:00
Jason Volk
0cef42895c
ircd::buffer: Patch alignment related on unique_buffer.
2017-10-03 04:27:13 -07:00
Jason Volk
9c712486a1
ircd: Split up lexical.h; comments; cleanup.
2017-10-03 04:27:13 -07:00
Jason Volk
1502b973da
ircd: Add ed25519 dsa; reorg sodium related.
2017-10-03 04:27:13 -07:00
Jason Volk
2982166072
ircd: Ⓜ️ ircd::buffer conversions for id::bufs.
2017-10-03 04:27:13 -07:00
Jason Volk
0d71f8013a
ircd: Use chrono_literals.
2017-10-03 04:27:12 -07:00
Jason Volk
dd0de82e16
ircd: Add startswith_any() complement to endswith_any().
2017-10-03 04:27:12 -07:00
Jason Volk
4a6b3f5fcc
Add support for libsodium (NaCl) cryptography.
2017-10-03 04:27:10 -07:00
Jason Volk
c91c1e39e8
ircd::buffer: de-template required conversions; cleanup.
2017-10-03 04:26:28 -07:00
Jason Volk
a901256bcc
ircd: rename for brevity.
2017-10-03 04:17:11 -07:00
Jason Volk
19451ab914
ircd::ctx: shared_mutex; peek / view / shared_view; fixes.
2017-10-03 04:17:10 -07:00
Jason Volk
eeceba51b8
ircd::buffer: Add some doc; fixes.
2017-10-03 04:17:10 -07:00
Jason Volk
84d7746165
ircd: Add net; various asio related.
2017-10-03 04:17:10 -07:00
Jason Volk
aeef1aeef5
ircd: Add an adl's size(string_view).
2017-10-03 04:17:10 -07:00
Jason Volk
a46bba20a5
ircd: Fix date/time related.
2017-10-03 04:17:10 -07:00
Jason Volk
b9d657924d
ircd::http: Various fixes; add urldecode; chunked encoding content.
2017-10-03 04:17:10 -07:00
Jason Volk
71e92e9f47
ircd::buffer: Improve interface / conversions / type decls.
2017-10-03 04:17:09 -07:00
Jason Volk
d0fe0218f4
ircd::fmt: mutable_buffer overloads for *snprintf().
2017-10-03 04:17:09 -07:00
Jason Volk
6558af5639
ircd: Improve vector_view construction; cleanup.
2017-10-03 04:17:09 -07:00
Jason Volk
90f9c0e39d
ircd::util: Add an unlock_guard.
2017-10-03 04:17:09 -07:00
Jason Volk
ade7a138c4
ircd::db: Simplify the db::row using vector_view<cell>.
2017-10-03 04:17:09 -07:00
Jason Volk
c47be3008a
ircd::ctx: Add a shared_mutex.
2017-10-03 04:17:09 -07:00
Jason Volk
4090b80d60
ircd::json: Add missing serialized() participants.
2017-10-03 04:17:09 -07:00
Jason Volk
688f31afd3
ircd::buffer: Fix constness.
2017-10-03 04:17:09 -07:00
Jason Volk
f2264b02e6
ircd::http: Preliminary support for chunked encoding; improve header args.
2017-10-03 04:17:09 -07:00
Jason Volk
5d7eee1937
ircd: Ⓜ️ Simplify the event query interface by making more internal decisions from query data.
2017-10-03 04:17:08 -07:00
Jason Volk
c4a6addd5a
ircd::ctx: Add critical_assertion debugging tool.
2017-10-03 04:17:08 -07:00
Jason Volk
3649843950
ircd::json: Add conditional transform to tuple during serialization.
2017-10-03 04:17:08 -07:00
Jason Volk
9e2910aa1f
ircd: Attempt to add these hacks to string_view.
2017-10-03 04:17:08 -07:00
Jason Volk
dc1281a17c
ircd::db: Fix iov related.
2017-10-03 04:17:08 -07:00
Jason Volk
f8d6e2dddc
ircd::db: Update docs.
2017-10-03 04:17:08 -07:00
Jason Volk
dacff8eb9f
ircd::db: Rename where to query.
2017-10-03 04:17:08 -07:00
Jason Volk
8ceafd4281
Update README.
2017-10-03 04:17:08 -07:00
Jason Volk
016ff64dbb
ircd: Ⓜ️ Preliminary efficient membership query object.
2017-10-03 04:17:08 -07:00
Jason Volk
ec18d81d56
ircd::db: These can be public.
2017-10-03 04:17:07 -07:00
Jason Volk
92a8d8e2bf
ircd: Ⓜ️ Improve interfaces; Add prelim sync loop; Add send resource handler.
2017-10-03 04:17:07 -07:00
Jason Volk
b2f7e360a1
ircd::db: Allow empty query to index through cursor.
2017-10-03 04:17:07 -07:00
Jason Volk
b309793ed0
ircd::ctx: Add some docs; minor cleanup.
2017-10-03 04:17:07 -07:00
Jason Volk
95f67312cf
ircd: This exception is already named in the boost what() string.
2017-10-03 04:17:07 -07:00
Jason Volk
816b5125b2
ircd: Improve/cleanup ircd::init()/ircd::stop() related.
2017-10-03 04:17:07 -07:00
Jason Volk
e69cb9c2e9
ircd::json: Assume this conversion to match the byte_view<string_view> specialization.
2017-09-24 23:52:48 -07:00
Jason Volk
d4508e157f
ircd: Ⓜ️ Deduplicate user related in m::user. Update various resource related.
2017-09-24 20:48:53 -07:00
Jason Volk
ca1f5bbbe5
ircd: Ⓜ️ Fix some id constructor behavior.
2017-09-24 20:48:53 -07:00
Jason Volk
c032c686f6
Checkpoint matrix application basis.
2017-09-24 18:16:45 -07:00
Jason Volk
50eda73d7d
ircd::db: Consistent row validity tests for cursor.
2017-09-24 18:16:45 -07:00
Jason Volk
f060bd4fc5
ircd: Support resource response json::value for array/object values; cleanup.
2017-09-24 18:16:45 -07:00
Jason Volk
fd53e5589a
ircd: Add non-standard explicit bool operator to string_view.
2017-09-24 18:16:45 -07:00
Jason Volk
95657d96de
ircd: Fix semantics.
2017-09-24 18:16:44 -07:00
Jason Volk
2c07ed673a
ircd::fmt: Add snstringf() suite.
2017-09-24 18:16:44 -07:00
Jason Volk
a65a033c3b
ircd::db: Add reverse long int comparator; fix reverse string comparator; cleanup.
2017-09-24 18:16:44 -07:00
Jason Volk
f4682522a8
ircd::util: Rename stopped overload to nostart.
2017-09-24 18:16:44 -07:00
Jason Volk
0b1c37c585
ircd::db: Fix reverse iteration; cleanup seek; add ORDERED flag (prelim).
2017-09-24 18:16:44 -07:00
Jason Volk
7f7ef9a4bf
ircd: Add client request timer related.
2017-09-24 18:16:44 -07:00
Jason Volk
befb76a9d9
ircd::util: Improve timer.
2017-09-24 18:16:44 -07:00
Jason Volk
c138c53449
ircd::db: Log snapshot sequence numbers.
2017-09-24 18:16:44 -07:00
Jason Volk
061e1fa485
ircd::util: timer; add this.
2017-09-24 18:16:44 -07:00
Jason Volk
1a35514653
ircd::db: Fixes for reverse iteration.
2017-09-24 18:16:43 -07:00
Jason Volk
703121f867
ircd::db: Add reverse string_view comparator.
2017-09-24 18:16:43 -07:00
Jason Volk
08a3ccc7ff
ircd: Cleanup vintage string suite.
2017-09-24 18:16:43 -07:00
Jason Volk
7eaffc3188
ircd: Ⓜ️ Fix subobject linkage.
2017-09-24 18:16:43 -07:00
Jason Volk
798f87cac9
ircd::buffer: Minor cleanup.
2017-09-24 18:16:43 -07:00
Jason Volk
b29224aa3a
ircd::db: Cleanup comparator related.
2017-09-24 18:16:43 -07:00
Jason Volk
57bcae7a32
ircd: Update notes.
2017-09-24 18:16:42 -07:00
Jason Volk
b2bf6116b8
ircd::buffer: Improve conversion hierarchy.
2017-09-24 18:16:42 -07:00
Jason Volk
c87934cd4d
ircd::crh: Support SHA256.
2017-09-24 18:16:42 -07:00
Jason Volk
4b17211a04
ircd::buffer: Add raw_buffer for binary data; lexical: simplify a2u/b64 related.
2017-09-24 18:16:42 -07:00
Jason Volk
d7def063b6
ircd: Add tools for binary/hex/b64 conversions.
2017-09-24 18:16:42 -07:00
Jason Volk
ed59ef6e8e
ircd::buffer: Add array operators.
2017-09-24 18:16:41 -07:00
Jason Volk
9acdb31349
ircd::util: Move these macros up the file out of obscurity.
2017-09-24 18:16:41 -07:00
Jason Volk
b207b9e909
ircd: Rename ircd::scope to ircd::unwind.
2017-09-24 18:16:41 -07:00
Jason Volk
b7e1b3cf43
ircd: Split off hash.h from util.h; reorder stdinc headers.
2017-09-24 18:16:41 -07:00
Jason Volk
56074325a1
ircd::db: Use extern const comparators and expose them in headers.
2017-09-24 18:16:41 -07:00
Jason Volk
69eab27209
ircd::db: Complete reverse iterations.
2017-09-24 18:16:41 -07:00
Jason Volk
34be7b1d77
ircd::util: Add enum-flag accumulator util.
2017-09-24 18:16:41 -07:00
Jason Volk
dae391a578
ircd::db: Refactor opts to not store ilists; cleanup index/column relationship; cleanup where.
2017-09-24 18:16:41 -07:00
Jason Volk
48877a31c8
ircd::json: Add until() with two tuple arguments (for comparisons).
2017-09-24 18:16:40 -07:00
Jason Volk
fc753f7440
ircd::db: Add constant time seek to column in row by index number.
2017-09-24 18:16:40 -07:00
Jason Volk
59f9a51404
ircd::db: Cleanup json::tuple assignment related.
2017-09-24 18:16:40 -07:00
Jason Volk
2dece299c0
ircd: Improve resource request body template.
2017-09-24 18:16:40 -07:00
Jason Volk
234a34086f
ircd::db: Improve where semantics.
2017-09-24 18:16:40 -07:00
Jason Volk
15173a1d06
ircd::allocator: Fix namespacing.
2017-09-24 18:16:40 -07:00
Jason Volk
841567bdf8
ircd: Default argument ctor for byte_view.
2017-09-24 18:16:40 -07:00
Jason Volk
46588d0ae8
ircd::db: Public functions to get the descriptor for a column.
2017-09-24 18:16:39 -07:00
Jason Volk
44f3d2cd27
ircd::json: Recursive tuple members.
2017-09-24 18:16:39 -07:00
Jason Volk
7f548cee1c
ircd: Make asio header; comments; add special continuation for yielding to asio.
2017-09-24 18:16:39 -07:00
Jason Volk
a9ac3f9956
ircd: Move ircd::mods::demangle() to ircd::demangle().
2017-09-24 18:16:39 -07:00
Jason Volk
3a56a30d77
ircd: Support char overloads for all tokenizers.
2017-09-24 18:16:38 -07:00
Jason Volk
0d393c58dd
ircd::db: Various cleanup / movements.
2017-09-24 18:16:38 -07:00
Jason Volk
b24d36c70d
ircd: Update date utils.
2017-09-24 18:16:38 -07:00
Jason Volk
1acd278632
ircd::ctx: Updates; add ctx::view; add preliminary ctx::fault; various reorg.
2017-09-24 18:16:38 -07:00
Jason Volk
4c50b2794f
ircd::json: Various fixes/cleanup/conversions.
2017-09-24 18:16:38 -07:00
Jason Volk
38c1d2e195
ircd::json: Complete serialize/stringify for object/object::member.
2017-09-24 18:16:37 -07:00
Jason Volk
676baec73d
ircd::db: Better cursor comparison.
2017-09-24 18:16:37 -07:00
Jason Volk
5e137c676f
ircd::db: Use vector for descriptors.
2017-09-24 18:16:37 -07:00
Jason Volk
92548464d3
ircd::db: Enumerate all deltas.
2017-09-24 18:16:37 -07:00
Jason Volk
c50461c4c6
ircd::db: Rename txn to iov.
2017-09-24 18:16:37 -07:00
Jason Volk
fb026f58a7
ircd::db: Add features to txn.
2017-09-24 18:16:37 -07:00
Jason Volk
d7e9c9182a
ircd::db: Add txn
class to compose a transaction in stages.
2017-09-24 18:16:37 -07:00
Jason Volk
b27a2a6423
ircd::db: Support constant-time column lookup by id; various cleanup/fixes.
2017-09-24 18:16:37 -07:00
Jason Volk
e427caf544
ircd: vector_view<> typdef'ing.
2017-09-24 18:16:36 -07:00
Jason Volk
21b6f5d065
ircd::util: Iterator pair.
2017-09-24 18:16:36 -07:00
Jason Volk
5261f9dd25
ircd::db: row cleanup / fixes.
2017-09-24 18:16:36 -07:00
Jason Volk
7d61dc4441
ircd::db: Reflect with string_view.
2017-09-24 18:16:36 -07:00
Jason Volk
276a902a62
ircd::db: Improve valid checking and valid() suite.
2017-09-24 18:16:36 -07:00
Jason Volk
1f8fb24e8d
ircd: Update various comments.
2017-09-24 18:16:36 -07:00
Jason Volk
c58836ed56
ircd::db: Move set() for json::tuple; check for undefined.
2017-09-24 18:16:36 -07:00
Jason Volk
65802d3e47
ircd::resource: Cleanup JSON iov related; Add exception handlers.
2017-09-24 18:16:36 -07:00
Jason Volk
ceb172a958
ircd::string_view: Add glue constructor and resize().
2017-09-24 18:16:36 -07:00
Jason Volk
8efa3ca438
ircd: Add surrounds() lexical util.
2017-09-24 18:16:36 -07:00
Jason Volk
e71d650d83
ircd::buffer: Add member iterator concept.
2017-09-24 18:16:36 -07:00
Jason Volk
296fd9183b
ircd::util: Add ctype() template for testing string ranges.
2017-09-24 18:16:35 -07:00
Jason Volk
ccbd507c35
ircd::db: Fix issues with cell.
2017-09-24 18:16:35 -07:00
Jason Volk
eaca7429b6
ircd::json: Simplify grammar / various cleanup.
2017-09-24 18:16:35 -07:00
Jason Volk
0a9d7e2ec8
ircd::buffer: Add comment / fix error / minor cleanup.
2017-09-24 18:16:35 -07:00
Jason Volk
04e83c6b90
ircd::buffer: Add copy() overloads.
2017-09-24 18:16:35 -07:00
Jason Volk
8e9a25aa96
ircd::db: Default init invalid row values.
2017-09-24 18:16:35 -07:00
Jason Volk
d3feb23a25
ircd: Add resource response json::iov related conversions for members lists.
2017-09-24 18:16:35 -07:00
Jason Volk
12c7999172
ircd::db: Include a difference_type for distance.
2017-09-24 18:16:35 -07:00
Jason Volk
79cb0b0fd3
ircd::db: Move items out of delta.h
2017-09-24 18:16:35 -07:00
Jason Volk
ca9ea5ac0c
ircd::db: Simplify/fix seek(row).
2017-09-24 18:16:34 -07:00
Jason Volk
b9f6871f1b
ircd: Add string_view strlcat().
2017-09-24 18:16:34 -07:00
Jason Volk
6aacf73dfa
ircd: Remove the tokens container.
2017-09-24 18:16:34 -07:00
Jason Volk
6503d28006
ircd: Simplify this service stack for now.
2017-09-24 18:16:34 -07:00
Jason Volk
6a5159499f
ircd::json: Use ircd::iov for json::iov.
2017-09-24 18:16:34 -07:00
Jason Volk
f8fc03e57b
ircd::json: Improve value semantics and various fixes.
2017-09-24 18:16:34 -07:00
Jason Volk
6c9ad5e513
ircd::db: Remove cruft.
2017-09-24 18:16:34 -07:00
Jason Volk
a0aeb2de2d
configure.ac/Makefile: Add debug conditionals.
2017-09-24 18:16:34 -07:00
Jason Volk
6fb3b44c05
ircd::iov: Support default construction and nullification.
2017-09-24 18:16:34 -07:00
Jason Volk
54d6793f59
Update various documentation and comments.
2017-09-24 18:16:33 -07:00
Jason Volk
7cc4ed56ab
ircd: Support both iov and ilist for socket and buffer related.
2017-09-24 18:16:33 -07:00
Jason Volk
6f29784573
ircd: Fix json::member alias.
2017-09-24 18:16:33 -07:00
Jason Volk
f2bbd9b23e
ircd::buffer: Add missing default constructor for const_buffer.
2017-09-24 18:16:33 -07:00
Jason Volk
2ee4d67b68
ircd: Add iov.
2017-09-24 18:16:33 -07:00
Jason Volk
2003a803ce
ircd::allocator: Add node allocator / reorg fixed/dynamic.
2017-09-24 18:16:33 -07:00
Jason Volk
583432d35b
ircd::mods: Add template to demangle by type.
2017-09-24 18:16:33 -07:00
Jason Volk
aa6cd82fbc
ircd::db: Rename file tuple.h to json.h
2017-09-24 18:16:33 -07:00
Jason Volk
8ad134c565
ircd::json: Rename builder to iov.
2017-09-24 18:16:33 -07:00
Jason Volk
c3a88edeee
ircd: Split string_view out of util::.
2017-09-24 18:16:33 -07:00
Jason Volk
6cd58b0d6a
ircd: Update various comments / minor cleanup.
2017-09-24 18:16:32 -07:00
Jason Volk
e95fe7fbd9
ircd::json: Improve tuple/builder related.
2017-09-24 18:16:32 -07:00
Jason Volk
db748cae81
ircd::resource: Accept json::member for response for now.
2017-09-24 18:16:32 -07:00
Jason Volk
dd12f013cf
ircd::buffer: Proper reference types for buffer / array ctor / cleanup.
2017-09-24 18:16:32 -07:00
Jason Volk
147a49a86c
ircd::json: Improve stringification interface et al.
2017-09-08 07:47:07 -07:00
Jason Volk
77ba8696d9
ircd::json: Commentary / minor cleanup.
2017-09-08 03:47:53 -07:00
Jason Volk
ace878b887
ircd::json: Rename tuple member to property.
2017-09-08 03:47:53 -07:00
Jason Volk
b715b99b0c
ircd::json: Upgrade index::member to json::member.
2017-09-08 03:47:53 -07:00
Jason Volk
1a59218bad
ircd::json: Add builder.
2017-09-08 03:47:53 -07:00
Jason Volk
85b699c286
Various makefile cleanup.
2017-09-08 03:47:53 -07:00
Jason Volk
1cea631f60
ircd::m modules: Matrix reinterface checkpoint.
2017-09-08 03:47:53 -07:00
Jason Volk
a89a8dfa5f
ircd::db: Add preliminary cursor and where clause query.
2017-09-08 03:47:52 -07:00
Jason Volk
d219858e73
ircd::db: Improve commitment stack.
2017-09-08 03:47:52 -07:00
Jason Volk
3ef01bad59
ircd::db: Move enum pos
so the definition is available.
2017-09-08 03:47:52 -07:00
Jason Volk
5f25d90fd2
ircd::db: Add index interface.
2017-09-08 03:47:52 -07:00
Jason Volk
0ffaa0d3d6
ircd::db: Add preliminary tuple specific interface.
2017-09-08 03:47:52 -07:00
Jason Volk
4a24b57035
ircd: Add string_view modern overloads to classic BSD strl*() iface.
2017-09-08 03:47:51 -07:00
Jason Volk
0c145d0fbd
ircd::util: Add complement to std::for_each with our ircd::until().
2017-09-08 03:47:51 -07:00
Jason Volk
481eff3baa
ircd::util: Rename binary_view to byte_view.
2017-09-08 03:47:51 -07:00
Jason Volk
e7650334dc
ircd::util: Move operator!() functions / minor cleanup.
2017-09-08 03:47:51 -07:00
Jason Volk
4eeb1c093d
ircd::http: Proper exception when parse buffer is too small.
2017-09-08 03:47:51 -07:00
Jason Volk
c627095f51
ircd: Add date.h header for date and time utilities.
2017-09-08 03:47:51 -07:00
Jason Volk
b829c5d7ba
ircd::json: Extend interface with some hackses for now but this has to be revisited eventually.
2017-09-08 03:47:51 -07:00
Jason Volk
d99b927c4a
ircd::db: Allow empty delta value with default argument param.
2017-09-08 03:47:51 -07:00
Jason Volk
1e7c0daed2
ircd::db: Improve opts, snapshot, and conversions for column::iterator.
2017-09-08 03:47:51 -07:00
Jason Volk
5eaae24559
m: Improve error/exception.
2017-09-08 03:47:50 -07:00
Jason Volk
96d121c82a
m: Improve mxid class
2017-09-08 03:47:50 -07:00
Jason Volk
892ad69f5b
ircd::util: Add IRCD_USING_OVERLOAD macro; minor cleanup.
2017-09-08 03:47:50 -07:00
Jason Volk
fd3bb037c7
ircd::json: Add value constructor template to attempt cast to string_view.
2017-09-08 03:47:50 -07:00
Jason Volk
dc78c4743d
ircd::util: Simplify.
2017-09-08 03:47:50 -07:00
Jason Volk
f98be1582d
ircd::ctx: Expose stack usage functions to user.
2017-09-08 03:47:50 -07:00
Jason Volk
cbdd176819
ircd::db: Remove unnecessary shared_ptr for column instance.
2017-09-08 03:47:50 -07:00
Jason Volk
e46faaf882
ircd::db: Support prefix indexing.
2017-09-08 03:47:50 -07:00
Jason Volk
69917f153f
ircd::db: Add json::tuple related and utils to row.
2017-09-08 03:47:50 -07:00
Jason Volk
0ca1ebba61
ircd::db: Fix valid condition bugs and minor cleanup.
2017-09-08 03:47:49 -07:00
Jason Volk
4013c301e5
ircd::util: Add binary_view utility.
2017-09-08 03:47:49 -07:00
Jason Volk
19c5e6c83b
ircd::db: Add generalized database delta interface.
2017-09-08 03:47:49 -07:00
Jason Volk
f729fd0917
ircd::db: Expose enum class pos.
2017-09-08 03:47:49 -07:00
Jason Volk
e583c0885d
ircd::db: Improve seek() interface suite.
2017-09-08 03:47:49 -07:00
Jason Volk
fa0ad99df6
ircd: Add fixed alignment to dynamic allocator for now.
2017-09-08 03:47:49 -07:00
Jason Volk
62a68d8931
ircd::db: Use pointers in the delta tuple for more flexible semantics.
2017-09-08 03:47:49 -07:00
Jason Volk
81bd73f6f0
ircd::json: Add boolean constructor for literal rep.
2017-09-08 03:47:49 -07:00
Jason Volk
d9a4f06bf6
ircd: Employ namespace scope extensions from c++1z/gnu++14.
...
This is not a move to c++17. If the compiler happens to have support
for c++17 namespace scope resolution, they have been kind enough to
backport it to gnu++14. This limits our support for really old c++14
compilers, but that was limited anyway. GCC 6.1 and clang 3.6 tested.
2017-09-08 03:47:46 -07:00
Jason Volk
28cf226c3a
ircd::mods: Add cxx abi name demangling.
2017-09-08 03:46:43 -07:00
Jason Volk
f7c1e43ae9
ircd::db: Abort the object.
2017-09-08 03:45:09 -07:00
Jason Volk
121670d1a8
ircd::json: Minor comment cleanup.
2017-09-08 03:45:09 -07:00
Jason Volk
7f92c1243c
ircd::json: Refactor tuple and settle for extern member name strings.
2017-09-08 03:45:09 -07:00
Jason Volk
bc19a795d8
ircd::json: Rename parse to tuple.
2017-09-08 03:45:09 -07:00
Jason Volk
7bfaa5ec08
ircd::json: Commentary on array.
2017-08-25 15:36:29 -07:00
Jason Volk
e567293dde
ircd: Add commentary to life_guard.
2017-08-25 13:21:52 -07:00
Jason Volk
207ac4ef53
ircd: Various improvements to client and socket related.
2017-08-23 15:52:15 -06:00
Jason Volk
2411cc5b9d
ircd: Add stdinc.h commentary.
2017-08-23 15:52:15 -06:00
Jason Volk
d9f13ee3f1
fixup! ircd::db: Various improvements to DB subsystem.
2017-08-23 15:52:15 -06:00
Jason Volk
a9f52a70b2
ircd::json: Add commentary; Add path related.
2017-08-23 15:52:15 -06:00
Jason Volk
413d5d22a9
ircd::http: Add minor commentary.
2017-08-23 15:52:15 -06:00
Jason Volk
f1111b2695
fixup! ircd::db: Various improvements to DB subsystem.
2017-08-23 15:52:15 -06:00
Jason Volk
b16dc9598a
ircd::util: Add additional array-based constructors to string_view.
2017-08-23 15:52:15 -06:00
Jason Volk
1121d99f18
ircd::util: Fix typo.
2017-08-23 15:52:15 -06:00
Jason Volk
ca608402f5
ircd::db: Various improvements to DB subsystem.
2017-08-23 15:52:15 -06:00
Jason Volk
00b27909a0
ircd: Make client enable_shared_from_this.
2017-08-23 15:52:15 -06:00
Jason Volk
823387da4e
fixup! ircd::json: Improve object interface; remove dot traversal.
2017-08-23 15:52:15 -06:00
Jason Volk
74da170996
fixup! ircd::json: Add comment for struct object
2017-08-23 15:52:15 -06:00
Jason Volk
df87d820e1
ircd::json: Improve object interface; remove dot traversal.
2017-08-23 15:52:15 -06:00
Jason Volk
e99b22de6f
ircd::json: Add comment for struct object
2017-08-23 15:52:15 -06:00
Jason Volk
9bbe7b8b4d
ircd::db: Add schema_error exception; use for bad column names.
2017-08-23 15:52:15 -06:00
Jason Volk
8acd5f5ec9
ircd::util: Add binary_view convenience cast to string_view.
2017-08-23 15:52:15 -06:00
Jason Volk
48148c640c
ircd: Add std::random subsystem and utils.
2017-08-23 15:52:15 -06:00
Jason Volk
fa41c1db5f
ircd: Ⓜ️ Reorg location of database descriptions.
2017-08-23 15:52:14 -06:00
Jason Volk
88201f4e32
ircd::db: Additional comments and explanations.
2017-08-23 15:52:14 -06:00
Jason Volk
5fe03e5c0a
ircd::mods: Add unpostfixed() and postfixed() for module names.
2017-08-23 15:52:14 -06:00
Jason Volk
fe5614387e
ircd::listen: Add string options overload.
2017-08-23 15:52:14 -06:00
Jason Volk
6db3c55f74
ircd::fs: Add directory creation.
2017-08-23 15:52:14 -06:00
Jason Volk
7a9f765faa
ircd::util: Minor clarifications to va_rtti.
2017-08-23 15:52:14 -06:00
Jason Volk
77a6bc2d51
ircd::util: Simplify unique_iterator related.
2017-08-23 15:52:14 -06:00
Jason Volk
ad611c5aa5
Complete the unique_buffer semantics.
2017-08-23 15:52:14 -06:00
Jason Volk
77900b61af
ircd: Remove unnecessary lexical template specialization declaration.
2017-08-23 15:52:14 -06:00
Jason Volk
0149610bb2
ircd: Various matrix library / modules / database development.
2017-08-23 15:51:34 -06:00
Jason Volk
10472684f2
ircd: Cleanup client/ircd main. Fixes for exit notification.
2017-08-23 15:50:37 -06:00
Jason Volk
a32210a64d
ircd: Support proper socket disconnect for SSL.
2017-08-23 15:49:33 -06:00
Jason Volk
30d838aec3
fixup! ircd::json/modules: Rename various types.
2017-08-23 15:47:21 -06:00
Jason Volk
a7cb94d042
ircd: Add listener device.
2017-08-23 15:42:53 -06:00
Jason Volk
b5c72c38f0
fixup! fixup! ircd: Remove aborted cruft.
2017-08-23 15:41:20 -06:00
Jason Volk
b0f5020c19
ircd: Cleanup/comment stdinc.h; move init util to util.h
2017-08-23 15:40:33 -06:00
Jason Volk
e09f272592
ircd::db: Improve/comment DB subsystem; Add version identification.
2017-08-23 15:38:51 -06:00
Jason Volk
ec8349bf4f
ircd::mods: Add better interface to execute function from imported symbol.
2017-08-23 15:35:11 -06:00
Jason Volk
48045d5b23
fixup! ircd::js: Upgrade SpiderMonkey to esr52 from esr45.
2017-08-23 15:34:55 -06:00
Jason Volk
3610dd9f9b
ircd::ctx: Minor fix.
2017-08-23 15:34:22 -06:00
Jason Volk
4fd787d9d5
ircd::json/modules: Rename various types.
2017-08-23 15:32:28 -06:00
Jason Volk
c9e947e66f
ircd: Remove aborted cruft.
2017-08-23 15:27:41 -06:00
Jason Volk
4d4a56fe9c
ircd::js: Upgrade SpiderMonkey to esr52 from esr45.
2017-08-23 15:25:22 -06:00
Jason Volk
6e44074bad
ircd: Various client / listener / main related.
2017-08-23 15:13:57 -06:00
Jason Volk
c1ef99c0cd
ircd::conf: Doomed conf related.
2017-08-23 15:12:16 -06:00
Jason Volk
a3117391b5
ircd/modules: Preliminary matrix scaffold.
2017-08-23 15:10:28 -06:00
Jason Volk
30fb1d59d7
ircd: Preliminary resource handler infrastructure.
2017-08-23 15:06:14 -06:00
Jason Volk
2172b39f9e
ircd::js: Minor fixes to JS subsystem.
2017-08-23 15:04:45 -06:00
Jason Volk
6dbc9201f1
ircd::json: Add preliminary map and object.
2017-08-23 15:01:58 -06:00
Jason Volk
a880e2e43e
ircd::ctx: Add minor commentary.
2017-08-23 14:59:27 -06:00
Jason Volk
7197491364
ircd::util: Add constexpr kronecker delta.
2017-08-23 14:58:21 -06:00
Jason Volk
3d536d26b6
ircd::util: Fixes to constexpr tuple utils.
2017-08-23 14:57:58 -06:00
Jason Volk
9ea5eceb0e
ircd::fs: Add function to read file from local filesystem.
2017-08-23 14:56:52 -06:00
Jason Volk
22419a2087
ircd::util: Improve tuple related utils and iterations.
2017-04-07 16:00:18 -07:00
Jason Volk
39ab4d1c68
fixup! ircd::fmt: Cleanup grammar; fixes; support std::exception type to %s.
2017-04-06 18:34:09 -07:00
Jason Volk
5b40a9ad91
ircd: Assurances the full-transfer socket methods do just that.
2017-04-06 17:46:26 -07:00
Jason Volk
8955328479
ircd::util: Add basic STL map transformation functors.
2017-04-06 17:45:50 -07:00
Jason Volk
229a222ff6
fixup! ircd: Add more HTTP status mappings.
2017-04-06 17:08:40 -07:00
Jason Volk
6097e82974
ircd: Add more HTTP status mappings.
2017-04-06 16:54:20 -07:00
Jason Volk
a79d1ab342
ircd::util: Add pop_back()/pop_front() to string_view.
2017-04-04 16:10:29 -07:00
Jason Volk
15d9b638f6
ircd::mods: Better support for std::shared_ptr import between modules.
2017-04-04 16:10:29 -07:00
Jason Volk
760e47247e
ircd: QoA on conventional semantics of some lexical functions.
2017-04-04 16:10:29 -07:00
Jason Volk
669c12418a
ircd: Add functors for iless/iequals/igreater.
2017-04-04 16:10:29 -07:00
Jason Volk
e43b67d146
ircd::util: Add RAII container for iterators.
2017-04-04 16:10:29 -07:00
Jason Volk
bd772a4452
ircd::buffer: Add std::ostream support.
2017-04-04 16:10:29 -07:00
Jason Volk
ca98521265
fixup! fixup! ircd: Minor cleanup.
2017-04-04 16:10:29 -07:00
Jason Volk
fe90841b8a
ircd::mods: Minor cleanup.
2017-04-04 16:10:29 -07:00
Jason Volk
17926e095f
ircd::mods: Add workaround for dlclose() recursion issue.
2017-04-04 16:10:29 -07:00
Jason Volk
e7844a0771
ircd::db: Database system developments.
2017-04-04 16:10:29 -07:00
Jason Volk
bcccddbf3f
ircd::http: Add query string support; cleanup grammar; minor cleanup.
2017-04-04 16:10:28 -07:00
Jason Volk
cb96d59579
ircd::http: Update status codes.
2017-04-04 16:10:28 -07:00
Jason Volk
673c8ca068
ircd::json: Add val::empty() and full default initialization.
2017-04-02 20:54:35 -07:00
Jason Volk
ff84531ea3
ircd::json: Add get<string_view>() to doc.
2017-04-02 20:53:56 -07:00
Jason Volk
b579d7dfc3
ircd::ctx: Add strand()/notify() with threadsafe_t.
2017-04-02 20:52:30 -07:00
Jason Volk
a89d499557
ircd::ctx: Bring sleep() into ircd:: namespace.
2017-04-02 20:51:47 -07:00
Jason Volk
35587a5c9c
ircd: Add another allocator.
2017-04-02 20:50:59 -07:00
Jason Volk
5f70ce28d0
ircd::util: Document string_view::insert().
2017-04-02 20:50:32 -07:00
Jason Volk
0a1bf7f47f
ircd::util: Add iterator pair type.
2017-04-02 20:18:54 -07:00
Jason Volk
a8e6f4fb0a
ircd::util: Add vector_view.
2017-04-02 20:18:38 -07:00
Jason Volk
bd383562fd
ircd: Fix semantic error.
2017-04-01 18:02:46 -07:00
Jason Volk
a2625b9f4b
fixup! ircd::db: Develop object-store out of db system.
2017-03-30 18:18:28 -07:00
Jason Volk
16c1326d40
ircd::db: Develop object-store out of db system.
2017-03-30 16:04:20 -07:00
Jason Volk
2ffab411df
ircd::json: Various fixes to JSON subsystem.
2017-03-30 16:04:20 -07:00
Jason Volk
1a4139ffaf
ircd::mods: Improve symbol pointer.
2017-03-30 16:04:20 -07:00
Jason Volk
acf948ef8f
ircd: Add unquote() for rvalue references to strings (won't copy).
2017-03-30 16:04:20 -07:00
Jason Volk
13862c6f2a
ircd: Swap the allocator/allocator::state object for better usability.
2017-03-30 16:04:20 -07:00
Jason Volk
3a31c62681
ircd: Minor cleanup.
2017-03-30 16:04:20 -07:00
Jason Volk
2e7dd1e5ad
ircd::fs: Fixes/renames to local filesystem support subsystem.
2017-03-30 16:04:19 -07:00
Jason Volk
c604b391be
ircd::ctx: Support direct context switching without enqueueing with ios.
2017-03-30 16:04:19 -07:00
Jason Volk
8ef53f2640
ircd: Move and improve socket listener device.
2017-03-30 16:04:19 -07:00
Jason Volk
ad47435876
ircd: Complete linkage requirements for lex_cast template.
2017-03-30 16:04:19 -07:00
Jason Volk
a366731a4b
ircd::db: Support column families.
2017-03-30 16:04:19 -07:00
Jason Volk
3ad1851388
ircd: Additional lexical utils/overloads; increase lex_cast buffers.
2017-03-30 16:04:19 -07:00
Jason Volk
c2ca0637a7
ircd::util: Expand the va_rtti array to 12 elements (192 bytes).
2017-03-30 16:04:19 -07:00
Jason Volk
c8953c038d
ircd::util: Add non-const overloads to tuple iterations.
2017-03-30 16:04:19 -07:00
Jason Volk
5a7852a0d4
ircd: Various cleanup.
2017-03-30 16:04:19 -07:00
Jason Volk
1f6d83b5b1
ircd::db: additional support: stats, callbacks and merge operator.
2017-03-30 16:04:18 -07:00
Jason Volk
7ae5785431
ircd::json: Add merge constructor.
2017-03-30 16:04:18 -07:00
Jason Volk
4d2e41970b
ircd::json: Add has()/get() to json::doc.
2017-03-30 16:04:18 -07:00
Jason Volk
0d09170507
ircd::db: Leverage the RocksDB WriteBatch with an initializer_list.
2017-03-30 16:04:18 -07:00
Jason Volk
21db4baab3
ircd: Various cleanup.
2017-03-30 16:04:18 -07:00
Jason Volk
6a0e5e4de5
ircd::mods: Add sym_ptr/sym_ref to link symbols with a typed object.
2017-03-20 21:29:29 -07:00
Jason Volk
9ed8716569
fixup! What is the Matrix? Control.
2017-03-20 19:24:18 -07:00
Jason Volk
91cd0327bd
ircd::fmt: Remove rfc1459 builtin specifiers; various/cleanup.
2017-03-20 19:20:33 -07:00
Jason Volk
e061f7326f
ircd::util: Follow up for_each() with tuple until().
2017-03-20 19:13:12 -07:00
Jason Volk
fdfefff72e
ircd: Various additional commentary.
2017-03-20 18:04:57 -07:00
Jason Volk
99eacb0932
ircd::util: Add tuple for_each iterator.
2017-03-20 18:04:19 -07:00
Jason Volk
7c09e801ef
fixup! ircd::lexical: Split params into header.
2017-03-20 04:31:58 -07:00
Jason Volk
1c27e4e4c7
ircd: Add split()/rsplit() char delim overload.
2017-03-20 04:29:57 -07:00
Jason Volk
31904bafc0
fixup! ircd: Add lex_cast wrapper interface; various cleanup.
2017-03-20 04:29:34 -07:00
Jason Volk
3badb2ff90
ircd: JSON subsystem related.
2017-03-20 04:27:11 -07:00
Jason Volk
95a52a4ab7
ircd::util: Add scope::nominal and scope::exceptional constructs.
2017-03-19 23:59:11 -07:00
Jason Volk
50b2942131
ircd::buffer: Add iov serializers.
2017-03-19 23:58:26 -07:00
Jason Volk
24fb856ac4
ircd::lexical: Split params into header.
2017-03-19 23:46:36 -07:00
Jason Volk
f07c677613
ircd: Remove rogue include.
2017-03-19 23:45:58 -07:00
Jason Volk
99a4e523b8
fixup! fixup! fixup! fixup! ircd: Add the va_rtti construct.
2017-03-17 23:30:09 -07:00
Jason Volk
501ff60276
fixup! fixup! fixup! ircd: Add the va_rtti construct.
2017-03-17 23:29:25 -07:00
Jason Volk
52e010174c
fixup! ircd: Add lex_cast wrapper interface; various cleanup.
2017-03-17 23:02:43 -07:00
Jason Volk
96ff6c8a4d
fixup! fixup! ircd: Add the va_rtti construct.
2017-03-17 22:37:54 -07:00
Jason Volk
3c38aeb96e
ircd: Nest this ep initializer for now.
2017-03-17 20:35:00 -07:00
Jason Volk
710d959a63
ircd::json: Cleanup/improve grammar; improve linear array parse (incomplete).
2017-03-17 20:33:47 -07:00
Jason Volk
4b7372c4a8
fixup! ircd: Add labeled-params tokenizer; fix bad lexical cast exception type.
2017-03-17 20:30:55 -07:00
Jason Volk
1016e993e9
ircd: Optimal HTTP status code and content length parsing.
2017-03-17 20:29:27 -07:00
Jason Volk
6a8393ec02
ircd: Add unquote() util for quoted string views.
2017-03-17 20:26:21 -07:00
Jason Volk
8ef0b50131
ircd: Add tokens_after() util.
2017-03-17 20:25:42 -07:00
Jason Volk
a0e7002dde
ircd::log: Drop in ircd::fmt.
2017-03-17 20:24:25 -07:00
Jason Volk
fa1c393d7a
fixup! ircd: Add the va_rtti construct.
2017-03-17 20:05:36 -07:00
Jason Volk
9c137d7c50
ircd::mapi: Remove linkage of MAGIC value.
2017-03-17 17:46:20 -07:00
Jason Volk
e64ca2827d
ircd: Drop in ircd::fmt for stdarg for ircd::exception.
2017-03-17 17:37:40 -07:00
Jason Volk
86804755c8
ircd: Add the va_rtti construct.
2017-03-17 17:36:09 -07:00
Jason Volk
33b5dc21b7
ircd::fmt: Support string_view; updates to the format string system.
2017-03-17 17:00:41 -07:00
Jason Volk
03ee560c13
ircd: Add aggregate spirit header (without pch at this time).
2017-03-16 13:35:37 -07:00
Jason Volk
7ff20d061d
ircd::json: Add stronger value typing with runtime visitor switching.
2017-03-16 13:32:42 -07:00
Jason Volk
03cf816bb7
ircd: Add labeled-params tokenizer; fix bad lexical cast exception type.
2017-03-16 13:31:17 -07:00
Jason Volk
c9ddf4f6ab
ircd: Add lex_cast wrapper interface; various cleanup.
2017-03-14 15:03:15 -07:00
Jason Volk
55be9a9f6d
ircd: Loop the whole input tape before returning to async.
2017-03-13 18:44:08 -07:00
Jason Volk
e849897cc0
ircd::parse: Capstan.
2017-03-13 18:44:08 -07:00
Jason Volk
472ee2c648
ircd: HTTP interface function-objects et al.
2017-03-13 18:44:00 -07:00
Jason Volk
03528ebf67
ircd::parse::buffer: Add basic convenience functions.
2017-03-13 14:43:39 -07:00
Jason Volk
bac30f93d1
ircd::http: Add a few more protocol codes.
2017-03-13 14:43:35 -07:00
Jason Volk
f2ac156e6a
ircd::buffer: Functions for a non-const iov to keep xfer state using the iov.
2017-03-13 14:43:35 -07:00
Jason Volk
2147832658
ircd::util: Add scope::uncaught conditioned on std::uncaught_exception().
2017-03-13 14:43:35 -07:00
Jason Volk
49c2a5361c
ircd: Various fixes.
2017-03-13 14:43:27 -07:00
Jason Volk
60ce08d0df
ircd::client: http protocol dispatch.
2017-03-10 18:03:10 -08:00
Jason Volk
44ade2612c
ircd::socket: Add scope_timeout for timing out synchronous operations.
2017-03-10 17:51:19 -08:00
Jason Volk
b592b69b86
What is the Matrix? Control.
2017-03-10 17:51:18 -08:00
Jason Volk
d90312bf10
ircd::js: Improve exception system flow.
2016-11-27 21:48:24 -08:00
Jason Volk
96ad8aa4cf
ircd::js: Add object::clone(); minor object interface cleanup.
2016-11-27 21:46:08 -08:00
Jason Volk
ea4d74de2b
ircd::js: Import operator<< from ircd:: to optimize implicit conversions.
2016-11-27 19:05:40 -08:00
Jason Volk
6156d8eb92
ircd::js: Split version functions into file.
2016-11-27 19:02:23 -08:00
Jason Volk
7fd111487d
ircd::js: Add a branch in trap::function handler for constructors.
2016-11-25 22:53:31 -08:00
Jason Volk
a149d56afa
ircd::js: Swap the flags and arity argument order for trap::function.
2016-11-25 22:52:56 -08:00
Jason Volk
f2340367be
ircd::js: Add vector CallArgs related conversions.
2016-11-25 22:52:11 -08:00
Jason Volk
062e013617
ircd::js: GC Weak pointer callback logging stubs.
2016-11-25 19:23:49 -08:00
Jason Volk
a4f55b4627
ircd::mods: Reorganize and distill interface.
2016-11-25 19:23:49 -08:00
Jason Volk
abf1dda3a6
ircd::js: Customize GC; emancipation from template types.
2016-11-25 19:23:49 -08:00
Jason Volk
01d814ea1a
ircd::js: Add trap::property; Improve trap construction interface.
2016-11-25 19:23:49 -08:00
Jason Volk
8d92c8a9c4
ircd::js: Improve trap debug formatting.
2016-11-25 19:23:49 -08:00
Jason Volk
1e1b7c8ce9
ircd::js: Workaround SpiderMonkey linkage bug when DEBUG is defined.
2016-11-25 19:23:48 -08:00
Jason Volk
fbbe8e604a
ircd::js: Add reflection and decompilation at the task level.
2016-11-25 19:23:48 -08:00
Jason Volk
fb06cd3567
ircd::js: More effective empty string handling in constructions.
2016-11-25 19:23:48 -08:00
Jason Volk
66c28da325
ircd::js: Add bytecodes support to Object.
2016-11-25 19:23:48 -08:00
Jason Volk
4c6e182241
ircd::js: Add script bytecode and compile-test utils.
2016-11-25 19:23:48 -08:00
Jason Volk
6c54215336
ircd::js: Add handler for runtime Preserve Wrapper callback.
2016-11-25 19:23:48 -08:00
Jason Volk
36a7ffba37
ircd::js: Add an overload for hash(string) -> ircd::util::hash().
2016-11-25 19:23:48 -08:00
Jason Volk
3ec62bba09
ircd::js: Attempt at an ObjectExpression with an initializer list.
2016-11-25 19:23:48 -08:00
Jason Volk
3e8aaf0c13
ircd::js: #define DEBUG
internally for JS when RB_DEBUG is also set.
2016-11-25 19:23:48 -08:00
Jason Volk
f2a395b879
ircd::js: Improve for_each().
2016-11-25 19:23:48 -08:00
Jason Volk
4edfd51106
ircd::js: Various fixes for conversions and root-ordering through calls.
2016-11-25 19:23:48 -08:00
Jason Volk
044259f841
ircd::locale: Add an std::ostream convenience for std::u16string in our ns.
2016-11-25 19:23:48 -08:00
Jason Volk
0e47468e63
ircd::js: Add JSON support.
2016-11-25 19:23:47 -08:00
Jason Volk
3e4a9e58f7
ircd::js: Improve trap function interface.
2016-11-25 19:23:47 -08:00
Jason Volk
88fd6971ec
ircd::js: Improve private data slot interface related.
2016-11-25 19:23:47 -08:00
Jason Volk
6aae248357
ircd::js: Fix various debug log messages.
2016-11-25 19:23:47 -08:00
Jason Volk
254f5b921a
ircd::js: Fixes to async state related.
2016-11-25 19:23:47 -08:00
Jason Volk
411bed10b1
ircd::js: Fix trap object production / object construction.
2016-11-25 19:23:47 -08:00
Jason Volk
61017f4cdc
ircd::js: Add tracing support for GC.
...
ircd::js: Add template constexprs for jsapi handle types.
2016-11-25 19:23:47 -08:00
Jason Volk
20e62f04df
ircd::js: Minor context interface cleanup; prevent task struct address change.
2016-11-25 19:23:47 -08:00
Jason Volk
8554fc858b
ircd::log: Add function to logger with facility argument.
2016-11-25 19:23:47 -08:00
Jason Volk
e3f3543d65
ircd::ctx: Zero the interruption flag before the throw to user handler.
2016-11-25 19:23:47 -08:00
Jason Volk
90f81bb871
ircd::js: Return undefined for args::operator[]; bounds check on args::at().
2016-11-25 19:23:46 -08:00
Jason Volk
a44e6f701f
ircd::js: Fix pending exception propagation on interleaving stack.
2016-11-25 19:23:46 -08:00
Jason Volk
c558df48bc
ircd: Add convenience templates for shared_from()/weak_from().
2016-11-25 19:23:46 -08:00
Jason Volk
ae4057b1d5
ircd::js: Use std::string for trap mapping.
2016-11-25 19:23:33 -08:00
Jason Volk
a3c06466fb
ircd::js: Add an inefficient std::u16string conversion for string.
2016-11-13 16:34:27 -08:00
Jason Volk
559bc530c8
ircd::js: Improve off-thread compilation error handling.
2016-11-13 16:34:27 -08:00
Jason Volk
c8402577c3
ircd::js: GC related fixes.
2016-11-13 16:34:27 -08:00
Jason Volk
c3e6c52192
ircd::js: Improve private slot access.
2016-11-13 16:34:27 -08:00
Jason Volk
7a99d919d6
ircd::js: Improve reserved data access.
2016-11-13 16:34:27 -08:00
Jason Volk
25a2dd906c
ircd::util: Strengthen the strong typedef.
2016-11-13 16:34:27 -08:00
Jason Volk
84383d41d8
ircd::js: Fix unconditional cast of this
to object
type in trap::on_call handlers.
2016-11-13 16:34:24 -08:00
Jason Volk
fcc654699d
ircd::locale: Add char16_t conversion overloads for unterminated strings.
...
ircd::js: Use sized conversions when calling ircd::locale.
2016-11-13 16:34:06 -08:00
Jason Volk
e6ba493bd3
ircd::js: Improve script compilation exceptions.
2016-11-13 16:34:06 -08:00
Jason Volk
290fa43c43
ircd::util: Add bernstein hash overloads for 16bit chars.
2016-11-13 16:34:06 -08:00
Jason Volk
e3e0d81828
ircd::js: Add string internal-data observer via closure.
2016-11-13 16:34:06 -08:00
Jason Volk
12e11445c3
ircd::js: Add overload to construct prototyped trap object.
2016-11-13 16:34:06 -08:00
Jason Volk
b8f5366f52
ircd::js: Improve trap callback arguments; add this
value.
2016-11-13 16:34:00 -08:00
Jason Volk
292b3fc8e8
ircd::js: Get/Set object prototype.
2016-11-13 16:33:25 -08:00
Jason Volk
67d9f11fbc
ircd::js: Add constructible-id overload for get()/set()/has()/del().
2016-11-13 16:33:25 -08:00
Jason Volk
da78598d86
ircd::mapi: Rectify linkage of the header symbol name string.
2016-11-13 16:33:25 -08:00
Jason Volk
0d2d21b49f
ircd::js: Add asynchronous/concurrent compilation.
2016-11-13 16:33:24 -08:00
Jason Volk
ee5f48672f
ircd::js: Various type and conversion tweaks.
2016-11-13 16:33:24 -08:00
Jason Volk
6cc89f2613
ircd::js: Add uninitialized constructor for cheap object handle creation.
2016-11-13 16:33:24 -08:00
Jason Volk
edd77d2265
ircd::js: Add asynchronous state and completion target mechanism.
2016-11-13 16:33:22 -08:00
Jason Volk
bfb5948191
ircd::js: Allow value copy.
2016-11-13 16:32:42 -08:00
Jason Volk
333b0dca5a
ircd::js: Use a script object in the task (more flexible than function).
2016-11-13 16:32:42 -08:00
Jason Volk
f54c4215b4
ircd::ctx: Add queue: amalgam of a standard queue container with a dock.
2016-11-13 16:32:42 -08:00
Jason Volk
b0bc025ced
ircd::ctx: Add notify() to dock to rotate the waiters in contrast to notify_one().
2016-11-13 16:32:42 -08:00
Jason Volk
6f7dde8fdf
ircd::js: Quadword value construction.
2016-11-13 16:32:41 -08:00
Jason Volk
0e541cd3a9
ircd::js: get()/set()/has()/del() for array object indexes.
2016-11-13 16:32:41 -08:00
Jason Volk
d5fd794511
ircd::js: Add JSProp flags as arguments for constructing trap.
2016-11-13 16:32:41 -08:00
Jason Volk
f2b59a57dc
ircd::js: Variadic arguments for object construction via trap.
2016-11-13 16:32:41 -08:00
Jason Volk
0fbbed7daf
ircd::js: Vector construction from Object of array type.
2016-11-13 16:32:41 -08:00
Jason Volk
d2b3bedca6
ircd::js: Task identification (PID) and reference counted management.
2016-11-13 16:32:41 -08:00
Jason Volk
cca79d87fc
ircd::js: Assertions for pending exceptions.
2016-11-13 16:32:41 -08:00
Jason Volk
e214d6e40c
ircd::js: Remove boolean return type from trap hook for enumeration.
2016-11-13 16:32:41 -08:00
Jason Volk
bf540caead
ircd::js: Order arguments to call() more intuitively.
2016-11-13 16:32:41 -08:00
Jason Volk
42f0c6b06b
ircd::js: Additional object utils; array-object type support.
2016-11-13 16:32:41 -08:00
Jason Volk
8a3f592753
ircd::js: Add property flag reflection.
2016-11-13 16:32:41 -08:00
Jason Volk
3fcd3d2bb0
ircd::js: Trap find() overload with JSString type.
2016-11-13 16:32:40 -08:00
Jason Volk
5ebd15c983
ircd::js: Persistent string for trap map to be sure.
2016-11-13 16:32:40 -08:00
Jason Volk
64057fc101
ircd::js: Script decompilation; check if function is ctor; interning for string.
2016-11-13 16:32:40 -08:00
Jason Volk
12c1755899
ircd::js: Functions to get current zone; debug callbacks for zone; etc.
2016-11-13 16:32:40 -08:00
Jason Volk
c70ddd5a80
ircd::js: Allow setting the ECMA version for a compartment.
2016-11-13 16:32:40 -08:00
Jason Volk
771907127e
ircd::js: Add string tokenizer; fix split; minor cleanup.
2016-11-13 16:32:40 -08:00
Jason Volk
845e81e446
ircd::locale: Move char16_t conversions into namespace.
2016-11-13 16:32:40 -08:00
Jason Volk
cff506e0be
ircd::js: Add global/task struct.
2016-11-13 16:32:40 -08:00
Jason Volk
d0ec6497c7
ircd::js: Add object private/reserved getters and setters.
2016-11-13 16:32:40 -08:00
Jason Volk
d5abc39e49
ircd::js: Template the string type passed to overloaded JS::CompileFunction()
2016-11-13 16:32:40 -08:00
Jason Volk
2846f80a8d
ircd::js: Make trap tree root thread local near rt/cx.
2016-11-13 16:32:40 -08:00
Jason Volk
e2ae907dfa
ircd::util: Improve the timer to start/stop with accumulation.
2016-11-13 16:32:39 -08:00
Jason Volk
5e81c26fdf
ircd::js: Add and use calls for current_compartment().
2016-11-13 16:32:39 -08:00
Jason Volk
639dd7903b
ircd::js: Move TLS assignment out of runtime/context (though this doesn't matter).
2016-11-13 16:32:39 -08:00
Jason Volk
96d4bb4775
ircd::js: Add convenience functions to struct args.
2016-11-13 16:32:39 -08:00
Jason Volk
ac14c2a4db
ircd::js: Add generator state class.
2016-11-13 16:32:39 -08:00
Jason Volk
3bfb3d3319
ircd::js: Argument forwarding for function call operator.
2016-11-13 16:32:39 -08:00
Jason Volk
b9137fd475
ircd::js: Disambiguate vector<value> initializer list constructor.
2016-11-13 16:32:39 -08:00
Jason Volk
7e18e32ce4
ircd::js: Improve/cleanup exception string generaton related.
2016-11-13 16:32:39 -08:00
Jason Volk
72eb8ff8da
ircd::js: Add conversions for JS::Heap<> type to handle types.
2016-11-13 16:32:39 -08:00
Jason Volk
164f650a0f
ircd::js: Use JS::Heap<> container for exception value.
2016-11-13 16:32:39 -08:00
Jason Volk
6b5bab0871
ircd::js: Convert all JS type wrappers into templates and typedef on requsted GC.
...
Templates are now in the namespace basic:: i.e `basic::value<>`
Typedefs are in ircd::js:: matching the original non-template types.
Ex. stack-duration type in template form is: `basic::value<lifetime::stack>`
Ex. stack-duration type in typedef form is `value`
Ex. heap-duration type in template form is: `basic::value<lifetime::heap>`
Ex. heap-duration type in typedef form is: `heap_value`
2016-11-13 16:32:39 -08:00
Jason Volk
7e66df914a
ircd::js: Add debug dump() calls from JS_DEBUG ifdef'ed api.
2016-11-13 16:32:39 -08:00
Jason Volk
54c8044ca1
ircd::js: Add trap_function alternative to full object trap.
2016-11-13 16:32:38 -08:00
Jason Volk
56d8e429a2
ircd::js: Add pointer_value() to store external host pointers in JS::Value.
2016-11-13 16:32:38 -08:00
Jason Volk
21e96eaedf
ircd::js: id creation constructors and comparison.
2016-11-13 16:32:38 -08:00
Jason Volk
5de2622bd1
ircd::js: Add string literal constructor to prevent any alloc/copy/free.
2016-11-13 16:32:38 -08:00
Jason Volk
fcc9cdee74
ircd::js: Function to get JSFunction arity.
2016-11-13 16:32:38 -08:00
Jason Volk
1dcbfb5c33
ircd::js: Add wide character string constructions.
2016-11-13 16:32:38 -08:00
Jason Volk
118fc20bbc
ircd::js: Use js strings in trap tree mappings.
2016-11-13 16:32:38 -08:00
Jason Volk
be48466ef3
fixup! [temp] Checkpoint test.
2016-11-13 16:32:38 -08:00
Jason Volk
50e38b5a82
ircd::js: Add rudimentary string utils.
2016-11-13 16:32:38 -08:00
Jason Volk
3df49d4bf4
ircd::js: Add string index operator; empty(); clarify size(); relax ctor.
2016-11-13 16:32:38 -08:00
Jason Volk
04a919820a
ircd::js: Improve string comparison suite; add transparent less.
2016-11-13 16:32:38 -08:00
Jason Volk
4c62795aeb
ircd::js: Use jsapi external string facilities for string constructions.
2016-11-13 16:32:38 -08:00
Jason Volk
6a1fb4e8fb
ircd::local: Add additional char/char16_t buffer conversion.
2016-11-13 16:32:37 -08:00
Jason Volk
97c0d3df7d
ircd::js: Support trap dtors on GC.
2016-11-13 16:32:37 -08:00
Jason Volk
ae40f9c016
ircd: Move all signal handling to charybdis executable.
2016-11-13 16:32:37 -08:00
Jason Volk
50ce286a3c
fixup! fixup! ircd::util: Add string() convenience to 'to_string' an object stream.
2016-11-13 16:32:37 -08:00
Jason Volk
7f12f1cce5
ircd::js: Disambiguate and improve value/object conversions.
2016-11-13 16:32:37 -08:00
Jason Volk
91d11f391b
ircd::js: Add recursive tree semantics to object trap system.
2016-11-13 16:29:47 -08:00
Jason Volk
b44eb91437
ircd: Add stringops rsplit().
2016-11-13 16:29:47 -08:00
Jason Volk
fedeab2ddd
ircd: Add locale:: namespace for portable internationalization.
2016-11-13 16:29:47 -08:00
Jason Volk
8f8f747628
ircd::js: Add additional secondary object constructions.
2016-11-13 16:29:47 -08:00
Jason Volk
fd0f925459
ircd::js: Add handle typedefs in object wrappers to clean up arguments.
2016-11-13 16:29:47 -08:00
Jason Volk
87eee25953
ircd::js: Add JS::CallArgs wrapper.
2016-11-13 16:29:46 -08:00
Jason Volk
6d7e1157b1
ircd::js: Add recursive has(), get(), set(), del().
2016-11-13 16:29:46 -08:00
Jason Volk
9f85b39506
ircd::js: Improve function information + decompile.
2016-11-13 16:29:46 -08:00
Jason Volk
b69444138f
ircd::js: Reflect JSType + value type tests.
2016-11-13 16:29:46 -08:00
Jason Volk
1ae9f4ffa4
ircd::js: Add function_literal convenience.
2016-11-13 16:29:46 -08:00
Jason Volk
c2f23a01bd
ircd::js: Support more debug and statistics from js engine.
2016-11-13 16:29:46 -08:00
Jason Volk
8f9465764d
ircd::js: Construct compartment from more implicit information.
2016-11-13 16:29:46 -08:00
Jason Volk
c704c67aa5
ircd: Add more stringops tokenizer overloads.
2016-11-13 16:29:46 -08:00
Jason Volk
9ecb26d27e
ircd::js: Simplify the interrupt(context) call.
2016-11-13 16:29:46 -08:00
Jason Volk
b6ba71b6a0
ircd::js: Add ctor/call functionality to object trap.
2016-11-13 16:29:46 -08:00
Jason Volk
f8600a562a
ircd::js: Improve various type conversions and constructions.
2016-11-13 16:29:46 -08:00
Jason Volk
83fbbc6462
ircd::js: Fix compartment acquire; trap JSClass delete; debug related.
2016-11-13 16:29:46 -08:00
Jason Volk
9a0753d7f8
ircd::js: Relax value construction from host types.
2016-11-13 16:29:45 -08:00
Jason Volk
5069df70c0
ircd::js: Add string comparison, equality operator and empty on null.
2016-11-13 16:29:45 -08:00
Jason Volk
aae1264d7f
ircd::js: Add some GC related stats/controls.
2016-11-13 16:29:45 -08:00
Jason Volk
2d89f0e97c
ircd::js: Improve exception sequence / Add script and line data.
2016-11-13 16:29:45 -08:00
Jason Volk
f9848b0494
ircd::js: Add wait-free (for the user) timer.
2016-11-13 16:29:45 -08:00
Jason Volk
ad1fef4247
ircd::js: Add wait-free execution interruption.
2016-11-13 16:29:45 -08:00
Jason Volk
2f645941a8
ircd::ctx: Move ctx headers into directory.
2016-11-13 16:29:45 -08:00
Jason Volk
e6c8025ae0
ircd::ctx: Add yield() allowing other contexts to run before returning.
2016-11-13 16:29:45 -08:00
Jason Volk
b289c63b99
ircd::js: Improve the exception translation.
2016-11-13 16:29:45 -08:00
Jason Volk
a8ee379ac2
ircd::js: Add vector semantic wrapper.
2016-11-13 16:29:45 -08:00
Jason Volk
4872883860
ircd::js: Improve value construction / string related.
2016-11-13 16:29:45 -08:00
Jason Volk
23318a2b4f
ircd::js: Add script object + caller / deinline function caller.
2016-11-13 16:29:44 -08:00
Jason Volk
8108773021
ircd::js: Wrap JSAPI objects for better semantics.
2016-11-13 16:29:44 -08:00
Jason Volk
4f34311f5f
ircd::js: Fix inline linkage on context wrapper functions.
2016-11-13 16:29:44 -08:00
Jason Volk
79c054c535
ircd::js: Add basic priv()/get() object manip functions.
2016-11-13 16:29:44 -08:00
Jason Volk
7fa3777a57
ircd::js: Improve trap exceptions; noexcept all jsapi callbacks.
2016-11-13 16:29:44 -08:00
Jason Volk
4171a9c834
ircd::js: Add js exception hierarchy.
2016-11-13 16:29:44 -08:00
Jason Volk
2c231ac187
ircd: Add exception message generation bypass constructor.
2016-11-13 16:29:44 -08:00
Jason Volk
dffb39f8cc
ircd::js: Add string utf conversions; improve string related.
2016-11-13 16:29:44 -08:00
Jason Volk
7b5629e4a5
ircd::js: Add basic trap debug / rename trap.res -> trap.has.
2016-11-13 16:29:44 -08:00
Jason Volk
34881325bb
ircd::js: Develop object compartment related.
2016-11-13 16:29:43 -08:00
Jason Volk
0e2b8600e5
ircd::js: Moz people recommend thread_local JSRuntime/JSContext;
...
There is no reason to clutter most arguments with contexts. Additionally
these will be merged in the future SpiderMonkey. There is only one
JSRuntime/JSContext per thread and it must be locked when in use.
2016-11-13 16:29:43 -08:00
Jason Volk
6db6b2a975
ircd::js: Add trap to define JSObject functionality in C.
2016-11-13 16:29:43 -08:00
Jason Volk
e6c6137fcb
ircd::js: Add id/value/string conversion convenience utils.
2016-11-13 16:29:43 -08:00
Jason Volk
c7ea23bece
ircd::js: Add debug / reflection for JSErrorReport; deinline other debug.
2016-11-13 16:29:43 -08:00
Jason Volk
517097b534
ircd::js: Add basic object utils: string, foreach, type debug.
2016-10-25 01:55:50 -07:00
Jason Volk
01e6e732cc
ircd::js: Stub runtime/context callback framework.
2016-10-25 01:55:50 -07:00
Jason Volk
c1fd6391c6
ircd::js: Add barebones accoutrements.
2016-10-25 01:55:50 -07:00
Jason Volk
191258cea5
ircd::js: Add main runtime and main context.
2016-10-25 01:55:50 -07:00
Jason Volk
95068c7d06
Introduce Mozilla SpiderMonkey.
2016-10-25 01:55:50 -07:00
Jason Volk
afc23fa235
ircd::util: Add noexcept specifier to custom_ptr deleter prototype.
2016-10-13 21:55:53 -07:00
Jason Volk
fde4626fce
ircd::cmds: Minor cleanup of cmds:: related.
2016-10-11 03:30:11 -07:00
Jason Volk
43b07d1180
ircd: Add more token related stringops.
2016-10-11 03:30:11 -07:00
Jason Volk
02146880f8
fixup! ircd::util: Add string() convenience to 'to_string' an object stream.
2016-10-10 22:38:24 -07:00
Jason Volk
5ad9f96b2a
ircd::util: Add string() convenience overloads for sized char buffer.
2016-09-28 14:19:18 -07:00
Jason Volk
d4bcf904c3
ircd: Add single char overloads for startswith()/endswith() stringops.
2016-09-28 14:16:14 -07:00
Jason Volk
a018eab293
ircd: Add a protocol type enumeration.
2016-09-28 14:15:44 -07:00
Jason Volk
f7e6fd1b31
ircd: Improve network buffers utils.
2016-09-28 14:15:09 -07:00
Jason Volk
757d7e10a8
[temp] checkpoint some crap which isn't going to stick.
2016-09-27 17:29:06 -07:00
Jason Volk
39a7518a82
ircd: Rename fs.h -> path.h
2016-09-27 17:28:24 -07:00
Jason Volk
bbd73746c3
ircd::ctx: Abstract the db::work subsystem into ctx::ole OffLoad Engine (OLE).
2016-09-27 17:28:24 -07:00
Jason Volk
33cc4c19d7
ircd::db: Add standard iteration + caching/options improvements.
2016-09-27 17:27:48 -07:00
Jason Volk
2251595551
ircd::ctx: Add preliminary profiling system to mitigate silent degradation.
...
This system alerts the developer when something blocks a context from yielding
for too long or exceeds stack usage limits. More profiling can be added for
further optimization.
2016-09-27 17:27:48 -07:00
Jason Volk
acd5593aac
ircd::db: Develop basic key/value API.
2016-09-27 17:27:48 -07:00
Jason Volk
3083bb8e62
ircd::db: Add logging mask for db subsys and improve handle opening messages.
2016-09-27 17:27:48 -07:00
Jason Volk
34eae9a829
ircd::db: Develop options system for database.
2016-09-27 17:27:48 -07:00
Jason Volk
5df4bf6da2
ircd::db: Add database interface. Support RocksDB.
2016-09-27 02:20:42 -07:00
Jason Volk
1da6aa2b93
ircd::mapi: Improve the stuck-module message by showing it immediately.
2016-09-27 02:20:42 -07:00
Jason Volk
6d2d5a71f5
ircd::fs: Add function to build path.
2016-09-26 16:06:56 -07:00
Jason Volk
0913873b30
ircd::fs: Generalize DBPATH.
2016-09-26 16:06:56 -07:00
Jason Volk
b373081646
ircd::ctx: Reduce duplicated future<> function with a template friend.
2016-09-24 16:40:14 -07:00
Jason Volk
9de2b00e34
ircd::ctx::pool: Add async() member functions to post to a pool.
2016-09-24 16:40:14 -07:00
Jason Volk
284bad47e9
ircd: Add mods::init; a subsystem init/fini singleton held by ircd::main().
2016-09-24 16:40:02 -07:00
Jason Volk
a4d186b6a1
ircd: Refactor hook system.
2016-09-23 00:01:00 -07:00
Jason Volk
2d494d8924
charybdis: Move getopt out from ircd::.
2016-09-23 00:01:00 -07:00
Jason Volk
f7f9d87df0
ircd::ctx: Add context pool.
2016-09-23 00:01:00 -07:00
Jason Volk
5e8c4bb2a1
ircd::ctx: Add async() function.
2016-09-22 16:18:33 -07:00
Jason Volk
8f9e6c93d6
ircd::ctx: Add promise and future primitives.
2016-09-22 16:18:33 -07:00
Jason Volk
a6466631ce
ircd::ctx: Add a mutex primitive.
2016-09-22 16:18:32 -07:00
Jason Volk
e2d115a97a
ircd::ctx: Add sleep() suite, or a wait() which ignores notification.
2016-09-22 16:18:32 -07:00
Jason Volk
1a367399d3
ircd::rfc1459: Replace gather() with charset() for use with spirit char_().
2016-09-22 16:18:32 -07:00
Jason Volk
581ca84439
ircd: sendf() directly to client (prelim).
2016-09-22 16:18:32 -07:00
Jason Volk
5dd280bb3b
ircd::fmt: snprintf -> category.
2016-09-22 16:18:32 -07:00
Jason Volk
fb50f82b6e
ircd::rfc1459: Allow generation of single character params, and empty strings.
2016-09-22 16:18:32 -07:00
Jason Volk
a42765f0f3
ircd::rfc1459: Relax construction of primitive structures.
...
Allows cleaner bracket-notated aggregate initialization through pfx.
2016-09-22 16:18:32 -07:00
Jason Volk
21aacf6509
ircd::fmt: Add syntax for specifier forced-termination.
...
This is available for a particular corner case due to our use of full-
word format specifiers.
Case: "%couch" is that %c followed by ouch, or is that the handled
format specifier '%couch' ?
If '%couch' is not registered there is no fallback to finding '%c'
(maybe one day), so in this case one must write "%c$ouch" and '%c'
becomes the specifier and the output for 'p' will be "pouch" and for
"%c$$ouch" the output will be "p$ouch."
2016-09-22 16:18:32 -07:00
Jason Volk
d82c013552
ircd::fmt: Develop format string basics.
2016-09-22 16:18:32 -07:00
Jason Volk
2b8bf0a4d1
ircd::fmt: Add modular format specifiers.
2016-09-22 16:18:32 -07:00
Jason Volk
d698b8a4a8
ircd: Break up rfc1459::
2016-09-22 16:18:32 -07:00
Jason Volk
1837f55d11
ircd::rfc1459: Output grammar [part 2: protocol-safe format strings].
2016-09-22 16:18:32 -07:00
Jason Volk
1e2ce3617d
ircd::rfc1459: Output grammar [part 1: structure streams].
2016-09-22 16:18:31 -07:00
Jason Volk
d8d2fe1564
ircd: Add scope 'life_guard' util for references in reentrant contexts.
2016-09-22 16:18:31 -07:00
Jason Volk
8f9a4bd6db
ircd::util: Add util to test is type is complete.
2016-09-21 16:29:30 -07:00
Jason Volk
417594d0cd
mapi: Add check for "stuck modules" and display warning for developer.
2016-09-21 16:29:30 -07:00
Jason Volk
0096a4a8c6
mapi: Reincarnate MAPI III key-value metadata, C++ style.
2016-09-21 16:29:30 -07:00
Jason Volk
ca4e04d85f
ircd::vm: Introduce vm; temp demo an immediate context.
2016-09-21 16:29:30 -07:00
Jason Volk
fcd410d656
ircd::client: Add timer logic to client socket/io.
...
Note: Not sure if I like two reference counters for each client,
ideally, but we'll see where it goes after abstractions.
2016-09-21 16:29:30 -07:00
Jason Volk
a9f967d16a
ircd: Feed received tape into the machine.
2016-09-21 16:29:30 -07:00
Jason Volk
c706357db7
ircd: Add empty() for empty line checks; retune ircd::line typedef.
2016-09-21 16:29:29 -07:00
Jason Volk
e87a8cc5d2
ircd: Add low-level net utils for client (non-abstract).
2016-09-21 16:29:29 -07:00
Jason Volk
221145b31b
ircd: Remove operhash.
2016-09-21 16:29:29 -07:00
Jason Volk
ec283711c2
ircd: Rename ircd_getopt.h.
2016-09-21 16:29:29 -07:00
Jason Volk
5cc056e68c
ircd: Remove privset.
2016-09-21 16:29:29 -07:00
Jason Volk
dd1ef4fecf
ircd: Remove dns, packet/parse, reject.
2016-09-21 16:29:29 -07:00
Jason Volk
922337386e
ircd: Remove authproc, sslproc, wsproc, bandbi.
2016-09-21 16:29:29 -07:00
Jason Volk
d36541bb86
ircd: Remove old listener. (note to readd ban logic).
2016-09-21 16:29:29 -07:00
Jason Volk
d098a524e1
ircd: Remove msgbuf.
2016-09-21 16:29:29 -07:00
Jason Volk
847cb12d35
ircd: Add preliminary u::id struct.
2016-09-21 16:29:29 -07:00
Jason Volk
26a3cd8441
Preliminary new client. Reorg/renames for ircd::client struct symbol.
2016-09-21 16:29:29 -07:00
Jason Volk
a4e810d1c8
ircd::util: Prevent scope copying / minor cleanup.
2016-09-21 16:29:28 -07:00
Jason Volk
a023048419
ircd::util: Add weak typedef util.
2016-09-21 16:29:28 -07:00
Jason Volk
59982cff43
ircd: Add utils for manipulating boost iov's.
2016-09-21 16:29:28 -07:00
Jason Volk
4f6b56c3af
ircd::util: Add std::chrono timer for benching.
2016-09-21 16:29:28 -07:00
Jason Volk
eb1d8fd8e6
ircd: Add convenience to test if line has a param number.
2016-09-21 16:29:28 -07:00
Jason Volk
9d558e5eb4
ircd: Rename cmd.h/cc files to cmds.h/.cc
2016-09-21 16:29:28 -07:00
Jason Volk
556ceba8a0
ircd: new client; start over.
2016-09-21 16:29:28 -07:00
Jason Volk
89c2e74f3b
ircd::ctx: Improve context interface.
2016-09-21 16:29:26 -07:00
Jason Volk
090def32d2
ircd::mods: Add unload() to unload all modules.
2016-09-21 16:28:52 -07:00
Jason Volk
0dbb0d4af5
ircd::util: Split lex_cast into header (otherwise the ifdef will never be true).
2016-09-21 16:28:52 -07:00
Jason Volk
f71a7a5fb9
ircd::rfc1459: Reorganize grammar for better reuse. Add tape parser.
2016-09-21 16:28:52 -07:00
Jason Volk
07177e8a6b
ircd/charybdis: Add at_main_exit() callback to indicate IRCd has finished
...
to the host program. Without any indication, the outer program's handlers
will continue to keep ios.run() from returning.
2016-09-21 16:28:51 -07:00
Jason Volk
cd92e5ed91
ircd: Split cmd.h to line.h
2016-09-21 16:28:51 -07:00
Jason Volk
aca6eefcd9
ircd: Improve exception reporting on newconf parsing.
2016-09-21 16:28:51 -07:00
Jason Volk
f25cb78588
ircd: Enumerate non-standard but ubiquitous mIRC colors.
2016-09-21 16:28:51 -07:00
Jason Volk
0115433a84
Convert the console to a context.
2016-09-21 16:28:51 -07:00
Jason Volk
2742547826
Introduce modular configuration system.
2016-09-21 16:28:51 -07:00
Jason Volk
d2bb8cd8a7
ircd::ctx: Add primary features to context.
2016-09-21 16:28:49 -07:00
Jason Volk
249ba02faa
Introduce userspace contexts.
2016-09-09 16:17:36 -07:00
Jason Volk
6674648590
ircd::util: Add util for template based nothrow overloading.
2016-09-09 16:17:36 -07:00
Jason Volk
88a15924ed
ircd::log: Add console_quiet to suppress log messages to console.
2016-09-09 16:17:36 -07:00
Jason Volk
9275429ee1
Replace command system.
2016-09-09 16:17:36 -07:00
Jason Volk
7ae8449078
ircd::util: Add util to output the sizeof() something at compile time.
...
This produces an error which stops compilation, but the result of sizeof()
is given in the error message.
2016-09-09 16:17:03 -07:00
Jason Volk
8eeb6af31f
ircd::util: Define user literals for space units.
2016-09-09 16:17:03 -07:00
Jason Volk
94acd49766
ircd::util: Obligatory bernstein hash.
2016-09-09 16:17:03 -07:00
Jason Volk
55d3b7ec0c
ircd::util: Add logical not convenience for std::string (in our ns).
2016-09-09 16:17:03 -07:00
Jason Volk
68a1d161b9
mapi: Add alternate simple constructor.
2016-09-09 16:17:03 -07:00
Jason Volk
db3d770b9d
ircd::rfc1459: Introduce formal grammar.
2016-09-09 16:17:03 -07:00
Jason Volk
7bc7d37052
ircd::util: Add string() convenience to 'to_string' an object stream.
2016-09-09 16:17:03 -07:00
Jason Volk
f446081021
ircd::rfc1459: Add util to build string of characters by attribute.
2016-09-09 16:17:03 -07:00
Jason Volk
22587f465d
ircd::util: Make the flag enum operators constexpr.
2016-09-09 16:17:02 -07:00
Jason Volk
f076b33724
ircd: Trivial type clarifications in rfc1459.
2016-09-09 16:17:02 -07:00
Jason Volk
2c854124af
ircd::conf: Add newconf to oldconf translation.
2016-09-09 16:17:02 -07:00
Jason Volk
3e1bf93a22
ircd: Move reconstruct_parv() from parse.cc to stringops.cc
2016-09-09 16:17:02 -07:00
Jason Volk
670990a215
Upgrade newconf parser to boost::spirit.
2016-09-09 16:17:02 -07:00
Jason Volk
5aeeb73e20
ircd: Introduce ASIO; stub for signal handling and console UI.
2016-09-09 16:17:02 -07:00
Jason Volk
baa60ed253
ircd: Add booltype to getopts parser.
2016-09-09 16:17:02 -07:00
Jason Volk
4b9dc5bff4
ircd: Populate path:: with boost::filesystem wrapping.
2016-09-09 16:17:02 -07:00
Jason Volk
4b62a704bf
charybdis: Establish main entry point.
2016-09-09 16:17:02 -07:00
Jason Volk
4399c1e2c3
ircd: Populate stringops with some general utils.
2016-09-09 16:17:01 -07:00
Jason Volk
a8ed3d2dc2
Simplify ircd::fs::path related to ircd::path.
2016-09-09 16:17:01 -07:00
Jason Volk
102c15d768
ircd: Remove fs path relocations for windows.
2016-09-09 16:17:01 -07:00
Jason Volk
153b017358
ircd: Remove pidfile.
2016-09-09 16:17:01 -07:00
Jason Volk
9d0a959bb5
MAPI IV. This iteration leverages the C++11 standardized RTTI.
...
* Simplifies the export declarations for module developers. While
MAPI III utilized a flexible key-value vector to eliminate positional
arguments in a header initializer, now the developer simply makes
a list of pointers to what they want to export for injection into
IRCd. Example:
mapi::header IRCD_MODULE
{
"mymod",
"My module adds a command, a hook, and a CLICAP",
&my_cmdtab,
&some_hook,
&clicaptab
};
* Distributes the handlers for items passed to the above vector.
Anyone can add a type-handler to the module system from anywhere in IRCd
(and other modules?) When your type is encountered a handler is called
providing the symbol name to read out of the module. Example in parser.cc:
mods::add_loader<Message>([]
(mod &loading, const std::string &symbol)
{
auto &msg(get<Message>(loading, symbol));
add_command(msg.name, msg);
});
2016-09-09 16:17:01 -07:00
Jason Volk
5994fa3f21
ircd: static_assertion for critical unsigned mode mask value.
2016-09-09 16:17:01 -07:00
Jason Volk
e052b0ed06
ircd: Reuse umode template code here and there.
2016-09-09 16:17:01 -07:00
Jason Volk
3ebde4ab50
Convert umodes to mode_lease mechanism.
2016-09-09 16:17:01 -07:00
Jason Volk
127378b57c
Refactor logger.
2016-09-09 16:17:00 -07:00
Jason Volk
052a6c8d22
Refactor snomask.
2016-08-28 01:48:25 -07:00
Jason Volk
ef1a01b752
Introduce the abstract mode_lease mechanism to acquire and release slots.
2016-08-28 01:48:25 -07:00
Jason Volk
248497505b
Introduce the abstract mode table template.
2016-08-28 01:48:25 -07:00
Jason Volk
883dada3d4
ircd: Rename hostmask to mask; add pretty_mask() from chmode.
2016-08-27 20:57:36 -07:00
Jason Volk
8cca1190ec
ircd: Deinline stringops.h
2016-08-27 20:57:36 -07:00
Jason Volk
e586d268fc
ircd::util: Add microtime() util.
2016-08-25 21:48:16 -07:00
Jason Volk
4e8fd35341
ircd::util: Add enum for_each closure for conforming enums.
2016-08-25 20:43:40 -07:00
Jason Volk
004d60658b
ircd: Remove unused patchlevel.h header.
2016-08-25 06:32:52 -07:00
Jason Volk
e4673b3fc0
ircd: Remove the restart.h header (temp merge into ircd.h).
2016-08-25 06:32:52 -07:00
Jason Volk
1f91909181
ircd: Remove unused ircd_linker.h header.
2016-08-25 06:27:20 -07:00
Jason Volk
3846579e59
ircd: Remove ircd_signals.h header (temp merge into ircd.h).
2016-08-25 06:27:10 -07:00
Jason Volk
d9e90e8937
ircd::cache: Convert send function arguments client* -> client&
2016-08-25 04:57:23 -07:00
Jason Volk
5f79420c29
Refactor isupport.
2016-08-25 03:01:45 -07:00
Jason Volk
9c16de2d41
Refactor whowas.
2016-08-25 02:34:28 -07:00
Jason Volk
5f218cdbb2
Refactor scache.
2016-08-25 02:07:11 -07:00
Jason Volk
fdf396862b
ircd: Move inline/stringops.h out of inline/
2016-08-25 02:07:11 -07:00
Jason Volk
fa3d3badb7
ircd::rfc1459: Add less comparison for char pointer.
2016-08-25 02:07:11 -07:00
Jason Volk
3e26e7ab44
ircd: Move tgchange related into namespace.
2016-08-25 02:07:11 -07:00
Jason Volk
b85b33d668
ircd: Scaffold some fnv_hash overloads for now.
2016-08-25 02:07:11 -07:00
Jason Volk
9eaf1c80d1
ircd::client: Split client.
2016-08-25 02:07:11 -07:00
Jason Volk
f33b369609
Refactor umodes.
2016-08-23 15:25:09 -07:00
Jason Volk
f081f4b7cb
ircd::client: Disallow copying client struct.
2016-08-23 05:22:38 -07:00
Jason Volk
b7cb55a58a
ircd::client: Pop the cork.
2016-08-23 05:22:38 -07:00
Jason Volk
b65c5430f2
Refactor client flags.
2016-08-23 05:22:38 -07:00
Jason Volk
ab9a8e5c04
Convert all client handler arguments to reference type.
2016-08-23 05:22:38 -07:00
Jason Volk
3847a3e30a
Add basic bitflag-enum operator relaxation utilities.
2016-08-23 05:22:38 -07:00
Jason Volk
dd9124b687
Preliminary Client refactor.
...
Add client to ircd::client:: namespace.
Also move former struct User and struct Server into client.cc as
opaque structure demo.
2016-08-22 15:56:12 -07:00
Jason Volk
90093b82e6
Upgrade user struct.
2016-08-21 15:30:22 -07:00
Jason Volk
9a22cfd393
ircd::chan: Add some basic protocol ERR exceptions.
2016-08-21 15:30:22 -07:00
Jason Volk
68b8a83419
ircd: Reduce is_chanop_voiced().
2016-08-21 15:30:22 -07:00
Jason Volk
a6dccc4419
ircd: Add ircd::err exception namespace for throwable protocol errors.
2016-08-21 15:30:22 -07:00
Jason Volk
fd4af9c02a
Forward declare to prevent ltdl.h inclusion.
2016-08-20 20:39:31 -07:00
Jason Volk
9835d43977
Upgrade channels structure.
2016-08-20 20:39:29 -07:00
Jason Volk
271aa22aee
ircd: Add rfc1459::less overload on string pointers.
2016-08-20 19:30:35 -07:00
Jason Volk
3be7557d53
ircd: Disable ircd_linker.h on _WIN32.
2016-08-20 19:30:35 -07:00
Jason Volk
5752be41b8
Upgrade channel membership lists.
2016-08-20 19:30:35 -07:00
Jason Volk
276cad4275
Upgrade the channel invite list.
2016-08-20 19:30:35 -07:00
Jason Volk
a84fe8a09b
Upgrade bqeI channel lists.
2016-08-20 19:30:35 -07:00
Jason Volk
c5224c8142
ircd::chan: Add convenience operators for channel mode structure.
2016-08-20 19:30:35 -07:00
Jason Volk
4f7eeaa60c
ircd: Add select preliminary inlines for future client refactor.
2016-08-20 19:30:35 -07:00
Jason Volk
125e3b21f2
ircd: Improve/rename channel name check related.
2016-08-20 19:30:34 -07:00
Jason Volk
7d44e271f7
Better names for some channel mode convenience former-macros.
2016-08-20 19:30:34 -07:00
Jason Volk
d064881b2d
Upgrade deprecated std comparators.
2016-08-20 19:30:34 -07:00
Jason Volk
e1cccd482b
Updates to match utilities.
2016-08-20 19:30:34 -07:00
Jason Volk
1e07182f3e
Remove CheckEmpty() from macro scope.
2016-08-20 19:30:34 -07:00
Jason Volk
2352528ffb
ircd: rename mask_match() to match_mask().
2016-08-20 19:30:34 -07:00
Jason Volk
f5143fbf73
Add channel structure into namespace + remove related rb_banheaps.
2016-08-20 19:30:34 -07:00
Jason Volk
03660fc4b0
Refactor chmode into namespace.
...
She's still a bit of a mess.
2016-08-20 19:30:34 -07:00
Jason Volk
f112111e51
Add rfc1459:: case compliance namespace.
2016-08-20 19:30:34 -07:00
Jason Volk
3f6d567285
ircd: Improve/refactor version.cc -> info.cc related.
2016-08-20 19:30:34 -07:00
Jason Volk
1f11e88ea5
ircd: Add a place for imports into namespace ircd.
2016-08-20 19:30:33 -07:00
Jason Volk
60c044d78a
Fix redundant/conflicting namespace labels.
2016-08-20 19:30:33 -07:00
Jason Volk
7405910c2e
ircd: Add lex_cast/boost::lexical_cast util.
2016-08-20 19:30:33 -07:00
Jason Volk
61b517ca3c
Precompile and remove most include directives. Notes:
...
* To benefit from the precompiled-header (PCH) it MUST provide "the first C token."
Advantages:
Never worry about the include stack again. Remember, this means one less thing
for random module developers, community people learning C++, and new developers
to deal with. It should reduce the learning curve and barrier for participation.
Disadvantages:
Makes overall compilation a bit slower, especially without any additional
work to improve it again. There are several opportunities, places where the
PCH is probably being ignored, etc that can be addressed.
2016-08-20 19:30:33 -07:00
Jason Volk
029a83a17d
ircd: Update exception macro to ensure format string checks.
2016-08-20 19:30:32 -07:00
Jason Volk
a1ee5034a2
Organize fs/path related into namespace.
2016-08-19 22:39:34 -07:00
Jason Volk
43575fff5b
Add compile-time expression num_of<> for conforming enums.
2016-08-19 22:39:34 -07:00
Jason Volk
dd270c9d78
Fix some typoed include guard/define names.
2016-08-19 22:39:34 -07:00
Jason Volk
90c9fe686e
ircd: Namespace and partially modernize ircd::cache.
2016-08-19 22:39:34 -07:00
Jason Volk
31328e4759
Add missing RAII scope util.
2016-08-19 22:39:34 -07:00
Jason Volk
a71a4551ae
ircd: Insert into ircd:: namespace.
2016-08-13 02:43:42 -07:00
Jason Volk
0e62b5a91a
Add PIC/PCH condition in stdinc.h.
2016-08-13 02:43:41 -07:00
Jason Volk
3dafbeaf21
ircd: Convert defaults to constexprs.
...
Also cleanup unused defaults.
Also move single-use defaults to a tighter scope.
2016-08-13 02:43:41 -07:00
Jason Volk
fb8792da3d
ircd: Towards a comprehensive capability C -> C++ refactor.
2016-08-13 02:43:41 -07:00
Jason Volk
10946db85e
Remove unused function prototype.
2016-08-12 17:02:37 -07:00
Jason Volk
f6199d5d12
Reduce redundant includes.
2016-08-12 16:41:40 -07:00
William Pitcock
09d19cbbd3
capability: clean up CAP_REQUIRED and CAP_ORPHANED flags, use bool variables instead
2016-07-31 18:39:19 -05:00
William Pitcock
e7a768ca22
capability: fix capability stats dumping
2016-07-31 18:10:31 -05:00
William Pitcock
d0a59d58a0
capability: major rewrite for C++ support.
...
- no rb_dictionary use anymore
- CapabilityIndex converted into a proper class
- proper RAII lifecycle management
2016-07-31 03:18:22 -05:00
William Pitcock
ddd9920f5b
util: memory, not unique_ptr header :)
2016-07-31 02:14:37 -05:00
William Pitcock
6fb9a722a2
fix build on clang++ 3.8
2016-07-31 01:59:57 -05:00
William Pitcock
10ff2d192c
alias: convert to RAII/std::string/etc, no more rb_dictionary use (ref #202 )
2016-07-31 01:57:04 -05:00
William Pitcock
1c77b054a8
parse: move cmd_dict to a std::set
2016-07-31 01:36:14 -05:00
William Pitcock
c7135bdf9a
cache: adopt proper RAII pattern
2016-07-31 01:03:05 -05:00
William Pitcock
1c813cee95
cache: rough conversion of help system to std::map (ref #202 )
2016-07-30 22:13:29 -05:00
William Pitcock
d18e5dc54f
util: add std::map helpers for using case-insensitive strings/irccmp strings
2016-07-30 21:54:48 -05:00
William Pitcock
12ef3b15d6
fs: use normal ETCDIR for now
2016-07-30 21:02:24 -05:00
William Pitcock
f9a4adc03b
headers: make ircd namespace inline in more places
2016-07-30 20:52:41 -05:00
William Pitcock
d60c03c28f
Revert "headers: don't use inline namespaces"
...
This reverts commit 51a75f00be
.
2016-07-30 20:50:27 -05:00
William Pitcock
51a75f00be
headers: don't use inline namespaces
2016-07-30 20:47:44 -05:00
Jason Volk
625fb277ca
Add root exception + basic utilities.
2016-07-25 19:43:26 -07:00
Jason Volk
73297c988b
Preliminary defaults/paths namespacing.
...
The namespace is inline to mimic the C namespace for now.
2016-07-25 16:49:00 -07:00
Jason Volk
d1edbc0e58
Complete the C++ linkage with flex/bison.
2016-07-25 00:54:38 -07:00
Jason Volk
78ad65f386
ircd/rb: Move some remaining macros to rb.
2016-07-24 21:15:47 -07:00
Jason Volk
1a8ed13747
ircd: Make Chm::mode_type unsigned long.
2016-07-22 19:46:28 -07:00
Jason Volk
e7e7f8ff9f
Convert bison.
...
NOTE: This only has "C" linkage right now.
2016-07-22 19:46:27 -07:00
Jason Volk
834964c659
Convert IRCd to C++
...
Happy 28th birthday. You're all grown up.
2016-07-22 19:46:27 -07:00
Jason Volk
7cea4c784d
ircd: Merge the defaults/ircd_defs stuff for now.
...
ircd/rb: Move some lowish level macros down to rb.
2016-07-21 20:51:02 -07:00
Jason Volk
ffb2f63850
ircd: newconf: Fix const correctness.
2016-07-21 20:51:02 -07:00
Jason Volk
ea53aab823
Refactor repository layout.
...
* librb is no longer a separately configured subproject.
* charybdis is now a standalone directory with a binary.
* Include path layout now requires a directory ircd/ rb/ etc.
2016-07-21 20:51:02 -07:00