uutils AWK progress report
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 27
- Forks
- 7
- Avg merge
- 4h 32m
- Merged PRs (30d)
- 11
Description
I will be updating this issue as we make progress. Please feel free to take down good first issues here and in the issue tracker.
Interpreter Tasklist
for-eachloops. May be complicated to get right due to the configurable order, so I'm putting it off a bit.- Field splitting mode of
FIELDWIDTHS. - Some other record splitting modes.
- Support for
getlineandprint/printredirections in the VM. - General I/O in the event loop and VM dispatch.
- Wire in lexer/parser in the interpreter for robust indirect call parsing + built-in funs disambiguation, libloaded funs disambiguation.
- Remaining built-in vars auto-setting.
- Magic around
SYMTAB,FUNCTAB,PROCINFO. I'm handling this. - Range patterns. Requires either allocating a register for the duration of the program or doing so as an internal symbol in the symbol table.
- Etc.
Various
- One or two parser differentials I've got written down and should get to fixing. God I hate AWK's grammar. It would be neat to refactor/rewrite the parser into using
chumskycombinators. - More robust
--pretty-printing, with more precedence disambiguation and default args expansion for built-in functions. - Fully wire in compatibility modes and ensure they are enforced.
- Library loading (via
libloading) and C/FFI function calls. - Debugger.
- Get
clapto behave properly. - Sanity.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or single entry point. Choose one unchecked item from the Interpreter Tasklist, then trace the relevant interpreter, VM, event-loop, lexer, or parser area named in the task. Done requires completing that narrowly selected item and verifying its behavior against the project's existing checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- awk, rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100