1
0
forked from Alepha/Alepha
Commit Graph

394 Commits

Author SHA1 Message Date
d8689b85e8 Make the underlying streambuf private in stacks. 2024-04-03 15:01:52 -04:00
8250680e6c Modernize some of how program options emits help.
Alepha IOStreams supports adaptors for most of what used to be
temporary string functions.
2024-04-03 14:24:03 -04:00
7410245314 Input stream stacking with line numbers!
This should help when building custom language parsers.  An input
stream can be augmented with this stackable streambuf to track
the current line number.  This can (and should) be done low in
the stack, so that any variable expansion and comment stripping
stages will not affect line number count.

The stage bolts on a stream state sidecar to point back to itself.
The observer for the current line peeks into the sidecar to see
the current line number tracking object for the stream and then
gets the current line number from that object.

The line number is the current line the input cursor is on.
Newline characters are treated as-if they're part of the current
line.  The newly created line will start on the first character
after the newline character.  This helps keep line-index counts
accurate too.  (Idea for a further stage?  Line index cursor
too?)
2024-04-03 08:29:10 -04:00
373b07e1c4 Apply the newer namespace rules and layout/formatting. 2024-04-02 23:32:02 -04:00
53a4d91a23 Add a unique pointer dynamic cast utility. 2024-03-31 10:33:03 -04:00
f9553de81f Fix some issues with the initial pull request for number printing. 2024-03-21 17:18:46 -04:00
e901aaedda Merge in some reflection improvements.
This is some of the reflection improvements I've implemented.
I do need to solve a few issues with arity (perhaps?)  I also
would like to introduce more requires clauses and retire some
C++17 "concepts" hacks.  However, it seems that the way that
requires clauses expand things is in such a way that it
prevents friend injection?
2024-03-21 16:43:15 -04:00
ca5b198c6d Accept some type lisp improvements.
This also introduces some tuple concatenation primitives.

Closes #7
2024-03-21 16:38:18 -04:00
5438ae9312 Add a repeat function to type lisp. 2024-03-21 16:21:38 -04:00
5242aa340a Tuple concatenation. 2024-03-21 16:21:38 -04:00
d9b2362b54 Start introducing more requires clauses. 2024-03-21 16:21:08 -04:00
c6f86ed4ba Add a repeat function to type lisp. 2024-03-21 16:20:26 -04:00
3259543c30 Tuple concatenation. 2024-03-21 16:13:30 -04:00
892a557ce7 Modernize a bit with some requires statements. 2024-03-21 15:36:54 -04:00
1e3b3707e2 Fixed tagged ctor argument inspection code. 2024-03-21 15:31:02 -04:00
3707ec5cc2 We can use requires clauses here.
But it does seem that I can't remove the repeated defns for
the argument extraction.
2024-03-19 15:21:59 -04:00
35e6089a80 Terminating condition for ctor count. 2024-03-19 15:02:17 -04:00
626a341821 Tagged ctor count. 2024-03-18 16:14:15 -04:00
d0fc98de71 The has_tagged_ctor header should have been properly named. 2024-03-18 16:13:51 -04:00
696e1b56f6 Add tagged ctor check support. 2024-03-18 15:49:23 -04:00
e25b171e6b Simple number-printing utility function.
4271 -> "Four thousand two hundred seventy one"

Why?  Well, for one it permits the generation of larger
strings from simple 32-bit seed numbers.  This permits
sort of a "decompression" of string data from simple
inputs to do some fuzz testing or other things.
2024-03-04 15:33:59 -05:00
5ce131114f Unify the grade checking. 2024-02-21 20:38:47 -05:00
ad8690769e Merge 'doxy_setup'
Tony and I walked thru this on the phone.  Looks good, for now.
2024-02-01 22:03:24 -05:00
130bb48111 fix type in readme 2024-02-01 21:51:37 -05:00
985da4d921 basic doxygen setup for Alepha 2024-02-01 21:33:58 -05:00
9183514469 Merge branch 'capabilities-rewrite' 2024-01-27 05:14:21 -05:00
185ce3cc06 Type List concatenation for type-lisp. 2024-01-27 05:13:43 -05:00
60ed507e8d Capabilities clauses can now be repeated. 2024-01-27 05:12:43 -05:00
9224e98616 Type List concatenation for type-lisp. 2024-01-27 05:12:07 -05:00
3afe19965d Describe tests which are skipped.
This helps prevent silent test skipping on normal runs.
2024-01-27 04:49:05 -05:00
9c9ed65312 I think this makes capabilities much simpler and more reliable.
But the capabilities are now limited to a single param -- Time to change that?
2024-01-27 04:21:27 -05:00
e8b41a0116 Started a rewrite... but now I'm going to try it with friends? 2024-01-26 23:17:22 -05:00
08654a9a86 Deal with last-item-in-the-queue bug. 2024-01-06 01:46:34 -05:00
da34142bf1 Fix stalls due to lacking custom terminal notifications.
`Dropbox` and `Mailbox` should be roughly the same interface, but
with different stall semantics.  However, terminal operations don't
wait.  `finish( custom )` should be a handoff without wait.

`Dropbox`'s primary thread-coordination works in terms of an
acquire/release semantic whereby `release` doesn't block, so this
naturally works.  However, `Mailbox` works in terms of the `Interlock`
primitive which allows for a terminal-case `checkpoint`.  Therefore
`finish( custom )` has to call the `checkpoint` api in `Mailbox`
2024-01-05 23:57:47 -05:00
5a67b8d0ec Make an observer const. 2024-01-05 14:28:15 -05:00
45f48df5a9 Unify would block names. 2024-01-04 01:06:03 -05:00
005b5f8730 Mailbox wouldBlock primitive. 2024-01-04 00:37:46 -05:00
7253432198 Add a new mailbox alternative 2024-01-03 23:57:31 -05:00
8ce3bd8bdf Add notification primitive to Mailbox. 2024-01-02 04:59:54 -05:00
c1c217146c Fix compiling error. 2023-12-28 22:56:55 -05:00
9424fbd193 Add some compile time checking for abuse of error. 2023-12-27 16:19:25 -05:00
fbc731dec9 Thread Group (More needs to be done, but this is a start). 2023-12-27 16:19:09 -05:00
7225a7759c Some thread interruption defensiveness. 2023-12-13 00:10:05 -05:00
c04fc7be3c Non-blocking states and documentation for Interlock. 2023-12-12 23:56:17 -05:00
94596d0d7d Interlock for mailbox. 2023-12-12 17:37:03 -05:00
bf207244b6 Fix some bugs in iostream exception handling for expansions. 2023-12-02 04:25:32 -05:00
b9de163083 Exception state masking. 2023-12-02 04:18:58 -05:00
6b5cfa246d Fix some bugs I discovered in StringMap
I found these in an executable use case.
2023-12-02 01:36:24 -05:00
7a569f9b58 IWYU 2023-12-01 21:14:29 -05:00
a28c99cca7 Fix the aliasing of what in exceptions. 2023-12-01 17:40:52 -05:00