Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
laurenth
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
NLnet announces funding for 67 more open-source projects
(nlnet.nl)
141 points
by
laurenth
3mo ago
|
30 comments
2.
▲
A reproducible C toolchain rooted on POSIX shell
(umontreal.scholaris.ca)
3 points
by
laurenth
6mo ago
|
0 comments
3.
▲
by
laurenth
6mo ago
A shell is almost always used to setup the bootstrap environment, so the dependency on a shell is more or less always there. Otherwise, something special with POSIX shell is its large number of independent implementations, making it the ide
4.
▲
A reproducible C toolchain rooted on POSIX shell
(umontreal.scholaris.ca)
1 points
by
laurenth
7mo ago
|
0 comments
5.
▲
A Reproducible C Toolchain Rooted on POSIX Shell [pdf]
(github.com)
6 points
by
laurenth
9mo ago
|
1 comments
6.
▲
A Dynamic Graph Approach to Immediate Cycle Collection
(dl.acm.org)
9 points
by
laurenth
1y ago
|
1 comments
7.
▲
Turing-Drawings
(github.com)
142 points
by
laurenth
1y ago
|
42 comments
8.
▲
Static Basic Block Versionning Visualization
(olimel.net)
2 points
by
laurenth
1y ago
|
0 comments
9.
▲
Float Self-Tagging
(arxiv.org)
87 points
by
laurenth
2y ago
|
50 comments
10.
▲
by
laurenth
2y ago
Author here, > assuming the resulting shell script is as inscrutably as binary executable It's quite the opposite, pnut generates shell code that's close to the original C code to make it easy to audit the code. A useful way to
11.
▲
by
laurenth
2y ago
We haven't found this to be an issue for Pnut. One of the metric we use for performance is how much time it takes to bootstrap Pnut, and dash takes around a minute which is about the time taken by bash. This is with Pnut allocating aro
12.
▲
by
laurenth
2y ago
That's the idea! As you point out, it moves the trust from the binary to the shell executable, but the shell is already a key piece of any build process and requires a minimum level of trust. The technique of bootstrapping on multiple
13.
▲
by
laurenth
2y ago
You're right, thanks for the bug report. It should now be fixed :)
14.
▲
by
laurenth
2y ago
It seems ShellCheck errs on the side of caution when checking arithmetic expansions and some of its recommendations are not relevant in the context they are given. For example, on `cat.sh`, one of the lines that are marked in red is: In
15.
▲
by
laurenth
2y ago
From our experience, ksh is generally faster, and dash sits between ksh and bash. One reason is that dash stores variables using a very small hash table with only 37 entries[0] meaning variable access quickly becomes linear as memory usage
16.
▲
by
laurenth
2y ago
One of the example we include is a base64 encoder/decoder: https://github.com/udem-dlteam/pnut/blob/main/examples/compiled/base64.sh It doesn't support NULs as you pointed out, b
17.
▲
by
laurenth
2y ago
Author here, That's correct! Unlike Bash and other modern shells, the POSIX standard doesn't include arrays or any other data structures. The way we found around this limitation is to use arithmetic expansion and indexed shell var
18.
▲
by
laurenth
2y ago
Author here, Because all shell variables in code generated by pnut are numbers, variables never contain whitespace or special characters and don't need to be quoted. We considered quoting all variable expansions as this is generally se