Our great sponsors
frawk | awk | |
---|---|---|
23 | 32 | |
1,073 | 1,590 | |
- | - | |
4.8 | 4.1 | |
5 days ago | about 2 months ago | |
Rust | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
frawk
-
Awk: Power and Promise of a 40 yr old language (2021)
It does, just go to the "Benchmarks" link: https://github.com/ezrosent/frawk/blob/master/info/performan...
-
What's the software you couldn't live without?
and frawk for good measure
-
What is yay situation?
frawk ["frawk" in aur] - a fancier awk with support for CSV files
- Fd: A simple, fast and user-friendly alternative to 'find'
- Command-line Tools can be 235x Faster than your Hadoop Cluster
-
Awk implementation?
https://github.com/ezrosent/frawk - awk like language in rust
-
Hacker News top posts: Feb 15, 2022
Frawk: A fast, JITted, statically-typed AWK written in Rust\ (27 comments)
-
Frawk: A fast, JITted, statically-typed AWK written in Rust
Interesting (and a bit surprising) that the cranelift backend keeps up with LLVM backend reasonably well, especially with parallelism enabled https://github.com/ezrosent/frawk/blob/master/info/performan...
In the example I noticed a PREPARE block in addition to the well known BEGIN and END blocks. After a few minutes of searching it appears to be frawk specific:
https://github.com/ezrosent/frawk/blob/master/info/paralleli...
"Because the repeated map references are both annoying to write and inefficient to execute, frawk has a PREPARE block which executes in the worker threads at the end of its input"
awk
-
[2022 all days][Awk] AoC in 101 lines of Awk
I also wrote a small program to benchmark and check the solutions across different Awk implementations (see the image). I use the macos system awk (which is pretty close to https://github.com/onetrueawk/awk if I'm not mistaken) as a reference (the first column), so all solutions had to work with that.
-
Where is keyword behavior defined?
A simpler Yacc grammar is awk/awkgram.y.
-
-🎄- 2022 Day 11 Solutions -🎄-
Neat, this is now the third year I'm using awk and still learning new tricks. (I'm using awk as the reference, so I don't use gnu extensions.)
-
Coffee with Brian Kernighan – Computerphile [video]
BWK’s commit and test files (mentioned in the video)
https://github.com/onetrueawk/awk/commit/d3a19e6f2533d479841...
-
Unix legend Brian Kernighan, who is the "k" in "awk" and is 80 years old, keeps fixing things. He has added Unicode support to awk, but he couldn't figure out how use git, so he just emailed his changes to the current maintainer
The Unicode branch: https://github.com/onetrueawk/awk/tree/unicode-support
-
Hacker News top posts: Aug 21, 2022
Brian Kernighan adds Unicode support to Awk\ (143 comments)
-
Brian Kernighan adds Unicode support to Awk (May, 2022)
Alas, Unicode support isn't working (yet). Unless I am missing something:
$ git clone https://github.com/onetrueawk/awk
I'm not kidding. Just look at the code:
https://github.com/onetrueawk/awk/commit/d322b2b5fc16484affb...
I am talking about that. You are not.
It needs the length for operations such as substring, or to apply length modifiers on regular expressions (such as \w{3,5}), which is a common thing in awk programs.
In fact, the return value of the u8_rune as implemented in the branch we are discussing (https://github.com/onetrueawk/awk/compare/unicode-support) returns a length to be used as an offset later.
This is not me saying, it's the author. There is a code comment there:
> For most of Awk, utf-8 strings just "work", since they look like null-terminated sequences of 8-bit bytes. Functions like length(), index(), and substr() have to operate in units of utf-8 characters. The u8_* functions in run.c handle this.
I know there might be different ways of doing it, but we're talking about a specific implementation.
I was wrong to assume he is storing stuff in UTF-32. He could have, but there was already code in place there to make the UTF-8 storage easier to implement.
What are some alternatives?
clojure-rust-graalvm - An example of Clojure program calling a Rust library, all combined into one executable using GraalVM.
awka - Revive awka - Awk to C Compiler
pawk - PAWK - A Python line processor (like AWK)
tui-rs - Build terminal user interfaces and dashboards using Rust
bwk - Kernighan's Awk a.k.a. "One True Awk"
makesure - Simple task/command runner with declarative goals and dependencies
tectonic - A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
awk-ward.nvim
goawk - A POSIX-compliant AWK interpreter written in Go, with CSV support
DOOM - DOOM Open Source Release
calendar - print upcoming events
2048.wasm - 2048 written in C and compiled to WebAssembly