I don’t understand this comment. Are you implying omitting the chicken is some sort of conspiracy?
HN user
asibahi
Bored architect
Writing a C Compiler is really good. I enjoyed myself doing it with Rust and Zig.
I like this article. It puts to words something that has been in my mind for a while.
I love this. Any chance of having this be a downloadable application somehow?
right handed presents some challenges too (my hand will come over letters I've just written and there's a risk of smudging them
You’re supposed to place your hand under the line you’re writing. Not to the right of it.
I’d argue that was active aggressive, actually.
Not to get into an argument, but most of the population in the Middle East are Muslim who don't give two shits who killed Jesus because they don't believe he was killed to begin with.
Over the past few days I have been making a spell checking TUI app. I used AI (meaning: free Gemini web interface) to discuss various aspects about the apps and debug compiler errors ang suggest useful rust crates for various problems.
Just a more helpful discord chat generally. It also gaslights you too!
Here is the tool: https://git.sr.ht/~asibahi/hoopoe
This can’t be serious.
It’s hacking when it’s someone you don’t like.
You made me curious. Has anyone invented new ways to ride horses in the age of the automobile?
It’s definitely a great tinkering language but .. eh .. the Zig team and community are extremely opinionated about how to use the language correctly.
I am saying as far as anyone other that the Bytecode Alliance is concerned it is custom API for Bytecode Alliance projects.
The component model is still in phase 1 (standardization is phase 5) and the Bytecode Alliance are its sponsors and the ones pushing it into the ecosystem with wasmtime.
I’m confused. Why not start the conversation in Polish?
Submitting a patch requires talking to other people.
His initials
This was a very interesting read. I wonder if similar techniques can apply to Turkish or Japanese dictionaries?
It works if you use Noto Emoji as the font.
No it is not. If you were introduced to the term via LLMs doesnt mean everyone was.
I do, but where does it say so in the spec?
This is the wat2wasm tool I have been playing with: https://webassembly.github.io/wabt/demo/wat2wasm/
It refuses to accept the following
(module
(func (export "addTwo") (param i32 i32) (result i32)
(i32.add
local.get 0
local.get 1
)
)
)
which based on my reading should be accepted.I will try the tools you mentioned but I personally settled on generating the unfolded ones for my experiments as they just seem easier.
This `dup` seems entirely useless it actually supports the case for omitting it fron the instruction set.
I am saying that textual wasm uses `a b +` (justl ike binary wasm) and `(+ a b)` is just a nicety.
It is explicity sugar for the stack operations, per my reading of the spec.
I dont really disagree with the main premise of the article, which is that WASM is not really a stack language, but this part just gave me pause:
In textual Wasm, for example, they are instead represented in a LISP-like notation – not any less or more efficient
The Text format, at least when it comes to instructions, it 1 to 1 with the binary format. The LISP-like syntax is mainly just syntax sugar[1].
‘(’ plaininstr instrs ‘)’ ≡ instrs plaininstr
So (in theory, as far as I understand it) you can just do `(local.get 2 local.get 0 local.get 1)` to mean `local.get 0 local.get 1 local.get 2`, and it works for (almost) any instruction.Unfortunately, in my limited testing, tools like `wat2wasm` and Binaryen's `wasm-as` don't seem to adhere to (my perhaps faulty understanding of) the spec, and demand all instructions in a folded block be folded and have the "correct" amount of arguments, which makes Binaryen do weird things like
(return
(tuple.make ;; Binaryen only pseudoinstruction
(local.get 0) ;; or w/e expression
(local.get 1) ;; or w/e expression
)
)
when this is perfectly valid local.get 0
local.get 1
return
tl;dr: the LISP syntax is just syntax sugar. The textual format is as "stack-like" as the binary format.Edit: An example that is easily done with the stack syntax and not with lisp syntax is the following:
call function_that_returns_multivalue
local.set 2 ;; last return
local.set 1 ;;
local.set 0 ;; first return
In LISP syntax this would be (local.set 0
(local.set 1
(local.set 2
(call function_that_returns_multivalue
( ;; whatever input paramters
)))))
I have not yet tried this with Binaryen but I doubt it flies.[1] https://webassembly.github.io/spec/core/text/instructions.ht...
`local.tee` doesn't duplicate. it just doesn't remove the value from the stack. (so it is "just" `local.set` followed by `local.get`)
When I read this article a few days ago it inspired me to create my own hex viewer : https://ar-ms.me/thoughts/3sl-a-sweet-hex-utility/
The cool thing about it imo (outside of colors) is a `--windows` flag. Which separates the hex view into partitions: so `-w 2:-3:5` shows the first two bytes on a line, then skips three bytes, then shows the next 5 bytes on a line, then the rest of the file. Easy to use combined with a terminal's up arrow.
Previously: https://news.ycombinator.com/item?id=45248558. Switched domains since then.
It’s one code point that’s (in theory) meant to hold the ligature of the whole phrase. As it stands it’s only used as a demonstration of Unicode difficulty.
Slightly related: I am an Arab who speaks Arabic and reads Arabic and the only place I ever see the unicode character ﷽ is by programmers giving an example of "unicode is too hard".
Perhaps as a graphical element at the beginning of books, too.
It is a part of the Arabic Presentation Forms block which explicitly is for supporting legacy encodings and should not be used.