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
5b607b5b1f
configure.ac: Add __int128 support.
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