Jason Volk
2411cc5b9d
ircd: Add stdinc.h commentary.
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
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
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
2e7dd1e5ad
ircd::fs: Fixes/renames to local filesystem support subsystem.
2017-03-30 16:04:19 -07:00
Jason Volk
21db4baab3
ircd: Various cleanup.
2017-03-30 16:04:18 -07:00
Jason Volk
7c09e801ef
fixup! ircd::lexical: Split params into header.
2017-03-20 04:31:58 -07:00
Jason Volk
c9ddf4f6ab
ircd: Add lex_cast wrapper interface; various cleanup.
2017-03-14 15:03:15 -07:00
Jason Volk
b592b69b86
What is the Matrix? Control.
2017-03-10 17:51:18 -08:00
Jason Volk
a4f55b4627
ircd::mods: Reorganize and distill interface.
2016-11-25 19:23:49 -08:00
Jason Volk
c558df48bc
ircd: Add convenience templates for shared_from()/weak_from().
2016-11-25 19:23:46 -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
fedeab2ddd
ircd: Add locale:: namespace for portable internationalization.
2016-11-13 16:29:47 -08:00
Jason Volk
9a0753d7f8
ircd::js: Relax value construction from host types.
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
95068c7d06
Introduce Mozilla SpiderMonkey.
2016-10-25 01:55:50 -07:00
Jason Volk
a018eab293
ircd: Add a protocol type enumeration.
2016-09-28 14:15:44 -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
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
3083bb8e62
ircd::db: Add logging mask for db subsys and improve handle opening messages.
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
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
d698b8a4a8
ircd: Break up rfc1459::
2016-09-22 16:18:32 -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
ca4e04d85f
ircd::vm: Introduce vm; temp demo an immediate context.
2016-09-21 16:29:30 -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
26a3cd8441
Preliminary new client. Reorg/renames for ircd::client struct symbol.
2016-09-21 16:29:29 -07:00
Jason Volk
4f6b56c3af
ircd::util: Add std::chrono timer for benching.
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
f71a7a5fb9
ircd::rfc1459: Reorganize grammar for better reuse. Add tape parser.
2016-09-21 16:28:52 -07:00
Jason Volk
cd92e5ed91
ircd: Split cmd.h to line.h
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
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
9275429ee1
Replace command system.
2016-09-09 16:17:36 -07:00
Jason Volk
2c854124af
ircd::conf: Add newconf to oldconf translation.
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
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
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
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
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
3e26e7ab44
ircd: Move tgchange related into namespace.
2016-08-25 02:07:11 -07:00
Jason Volk
b65c5430f2
Refactor client flags.
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
a6dccc4419
ircd: Add ircd::err exception namespace for throwable protocol errors.
2016-08-21 15:30:22 -07:00
Jason Volk
a84fe8a09b
Upgrade bqeI channel lists.
2016-08-20 19:30:35 -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
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
0e62b5a91a
Add PIC/PCH condition in stdinc.h.
2016-08-13 02:43:41 -07:00
Jason Volk
f6199d5d12
Reduce redundant includes.
2016-08-12 16:41:40 -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
78ad65f386
ircd/rb: Move some remaining macros to rb.
2016-07-24 21:15:47 -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
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