Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-11-17 | automated platform specific code parsing | Nicholas Noll | |
2021-11-17 | update: sys | Nicholas | |
2021-11-17 | fix: mkfile names | Nicholas | |
2021-11-17 | checkin | Nicholas | |
2021-11-16 | checkin | Nicholas Noll | |
2021-11-16 | Feat: added fd duplications | Nicholas Noll | |
2021-11-16 | chore: integrated redir code | Nicholas Noll | |
2021-11-16 | Feat: added heredocs | Nicholas Noll | |
Heredocs are simply strings written to tmp files. There was minimal bug testing here. Also, various bug fixes are included | |||
2021-11-15 | Feat: added functions | Nicholas | |
2021-11-15 | Feat: added match keyword | Nicholas | |
However, it is not tested in the slightest. | |||
2021-11-15 | Feat: globbing | Nicholas | |
Introduced shell globbing | |||
2021-11-15 | Fix: Qsort had bad macro capture | Nicholas | |
2021-11-15 | Feat: prototype of self-hosted library | Nicholas | |
This is very much a work in progress. Still ruminating on the structure of the library. It feels right but I want a more "social" presence - namely the ability to link to a libc seemlessly. The solution is most likely weak aliasing that musl uses - but musl itself weak aliases global symbols, e.g malloc. We would have to define weak internal symbols that musl defines as strong links but this knows too much about the internals of musl... | |||
2021-11-15 | Feat: added if/else branching and switch statement | Nicholas | |
Unsure about my modification to the language. I found the parsing of the case body within switches to be odd - specifically that it parses liberally and then checks that it has case -> cmd structuring while it walks the code. This means the language is more permissive than the semantics. I modified it to be more explicit, but at the cost of having to end each case statement with a semicolon. I wanted a colon, but this is a valid word character and thus will be lexed as part of the word. | |||
2021-11-15 | Chore: updated build paths | Nicholas | |
2021-11-12 | chore: error->int | Nicholas | |
2021-11-12 | chore: simplified organizational structurelaptop | Nicholas | |
2021-11-11 | chore: merge master into laptop | Nicholas | |
2021-11-11 | chore: split up base library into individual files for smaller binaries | Nicholas Noll | |
2021-11-11 | feat: libfmt prototype added from plan9 | Nicholas Noll | |
2021-11-11 | chore: update desktop | Nicholas Noll | |
2021-11-11 | chore: updated old copy of mkrunewidth | Nicholas | |
2021-11-11 | chore: forgot to move old generators | Nicholas | |
2021-11-11 | feat: added libfmt | Nicholas | |
2021-11-11 | chore: libunicode -> libutf | Nicholas | |
2021-11-11 | feat: added libfmt | Nicholas | |
2021-11-10 | chore: libunicode -> libutf | Nicholas | |
2021-11-08 | feat(rc): added back functionality of prompt, now unicode aware | Nicholas Noll | |
2021-11-07 | config changes for laptop | Nicholas | |
2021-11-04 | Feat: input readline now unicode aware | Nicholas Noll | |
Updated our assumptions of readline to handle valid unicode input. This required integrating with an explicit library to handle unicode knowledge. | |||
2021-10-29 | fix(unicode): emoji widths and readline now moves in a more unicode aware manner | Nicholas Noll | |
2021-10-29 | checkin | Nicholas Noll | |
2021-10-29 | implemented functionality to compute rune widths from unicode data | Nicholas Noll | |
2021-10-29 | chore: stop tracking auto-gen file | Nicholas Noll | |
2021-10-29 | Prototype of unicode readline support | Nicholas Noll | |
The readline functionality operated on the assumption that 1 byte = 1 character. This is obviously wrong if you input a non-ascii character. This commit temporarily removes a lot of functionality but parses input bytes in a unicode-aware manner. The outstanding problem now is 1 unicode rune != 1 column. There are double wide characters, as well as zero width runes, that further break our assumption that 1 rune = 1 character = 1 column. This is the next iteration. | |||
2021-10-29 | Exposed some unicode values to library users. | Nicholas Noll | |
I was hiding too many important constants. This commit moves them to the main exported header. | |||
2021-10-28 | Feat(libunicode): cleaned up decode/encode | Nicholas Noll | |
Additionally, decode can now apply backwards on a byte string. | |||
2021-10-26 | fix(unicode): renamed functions to be easier to understand their functions | Nicholas Noll | |
2021-10-26 | Feat(libunicode): Added an explicit unicode library | Nicholas Noll | |
Refactored code to pull out utf8 functions from base into a standalone library. Also left the required function inside arg.c so that code that calls ARG_BEGIN doesn't have to link to libunicode. | |||
2021-10-26 | fix(rc): prompt during command entry | Nicholas Noll | |
2021-10-26 | feat(rc): keywords now recognized. for and while loop | Nicholas Noll | |
Prototypes for loops sketched. This required recognizing keywords and returning from yylex. Debugging/testing will be required. | |||
2021-10-26 | chore: space | Nicholas Noll | |
2021-10-26 | chore(rename): libn -> base | Nicholas Noll | |
2021-10-26 | proto(rc): control structures | Nicholas Noll | |
2021-10-26 | feat(rc): added index operations | Nicholas Noll | |
2021-10-21 | feat(rc): added a few builtins | Nicholas Noll | |
2021-10-21 | feat(rc): added andand and oror operators | Nicholas Noll | |
2021-10-21 | Fix: attempted to access stale memory upon exec failure. | Nicholas Noll | |
Now correctly prints out argv[1] | |||
2021-10-21 | feat(rc): string join operator | Nicholas Noll | |
2021-10-21 | feat(rc): string concatenation works | Nicholas Noll | |