uutils AWK progress report
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
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.
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.
- Dominant language
- Rust
- Stars
- 27
- Forks
- 7
- Avg merge
- 4h 32m
- Merged PRs (30d)
- 11
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.
More from uutils/awk
-
Difficulty 3/5 1-2 days Newbie friendliness 48/100
-
GNU bug
Difficulty 3/5 1-2 days Newbie friendliness 62/100
-
Add pwcat command Open
Difficulty 3/5 1-2 days Newbie friendliness 45/100
-
Add grcat command Open
Difficulty 4/5 3-5 days Newbie friendliness 42/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
Similar issues
-
bug github_actions
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
registrystack/registry-stack#1393 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
longbridge/gpui-kit#3223 ·
-
bug engine
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
rocky-data/rocky#2181 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
oasisprotocol/oasis-sdk#2523 ·
-
[indexer] [QA] Add a focused test for the new NonRetryableError / assertSocketAlive() behavior. Openbot:ai-assisted component:indexer QA-roadmap status:untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
midnightntwrk/midnight-indexer#1557 ·