HNHacker News
TopNewBestAskShowJobs

teo_zero

1,544 karma · joined August 14, 2022

submissionscomments
teo_zero··on Tail-call optimization in C is relatively recent (2025)
Ah, now I see that indeed we agree without understanding each other. The source is a misinterpretation of your sentence far up the thread:

> I can't see why the calling convention could matter.

The "could matter" was understood as "would influence TCO" and so the rest of the thread was devoted to explain how the two are connected, while you meant "should be fixed and not be changed at the compiler's whims".

And you are right, of course: if a function is static and its address is never taken, the compiler can choose whatever calling strategy it wants, possibly one that facilitates TCO.

teo_zero··on Itadakimasu: A word you say to the food, not the cook
Thank you. Sometimes I forget that for each and every significant experience in life there's probably an XKCD page that captured its essence!
teo_zero··on Itadakimasu: A word you say to the food, not the cook
If I have read the article, then reached the comments sections, it's because I have found the subject interesting. It's like watching a movie and someone trying to tell me unsolicited news about the director's private life. I don't care: tell me about the movie, instead.

Comment about the content, not the form.

teo_zero··on Tail-call optimization in C is relatively recent (2025)
The example you set up was about f() calling into g() calling into h(). Why do you mention h() calling into g() now?

The whole thread is about how the traditional calling convention makes it difficult to implement TCO in C. Functions with different arity having different stack layout is indeed one of the roadblocks, so I think we agree here, no?

teo_zero··on Itadakimasu: A word you say to the food, not the cook
> But I think your comment "this is AI" is warranted.

Clue: it's never warranted.

Nobody wants to hear it. Even when it's true. Even when it's evident (actually less so when it's evident).

teo_zero··on Itadakimasu: A word you say to the food, not the cook
> There is a Japanese word that almost everyone reading this has already heard

I had never heard this word. It's the second time in a row that I encounter something unknown to me that is characterized as being universal. Curiously enough, both cases were related to Japan. So either I belong in a minority who ignores well-known elements of that culture, or someone overestimates how widespread such elements actually are.

teo_zero··on Tail-call optimization in C is relatively recent (2025)
h() can't have more arguments than g(): that's an important limitation.
teo_zero··on The title cards in Blade Runner are amazing
Yes, no doubts. But why does the author think that in this case such process was followed, and was so successful to deserve the "amazing" adjective? How did this specific design manage to convey the intended feeling? Was it better than the proto version that was never released?

It's like someone recommending a restaurant saying "tastes good", with no details to back up such assertion.

teo_zero··on The title cards in Blade Runner are amazing
No, I don't find anything amazing in Blade Runner's title sequence, and the article does nothing to convince me.

Yes, they got small-caps spacing right: hardly amazing. And what about the "feeling" the article talks about? Where is it and where does it come from?

teo_zero··on Show HN: Shitty – fast terminal. Memory-unsafe and faster than yours
Technically true.

Practically, to make a substantial profit, what you sell must be more worthy than something you can also download for free. So you must sell an enhanced version of the original software. And that is what the GPL wants you to give back and not keep for yourself.

teo_zero··on Show HN: Shitty – fast terminal. Memory-unsafe and faster than yours
Absolutely. That's how coding used to work in the 70s. Then software passed from people to companies, which proved alien to the cultural values that had hold so far. At the end of the 80s Stallman designed something to address the corporate world with a language they would understand. They had copyright, he created copyleft.

Now, please reread your post replacing "people" with "corporations" and check if it still sounds reasonable.

teo_zero··on Show HN: Shitty – fast terminal. Memory-unsafe and faster than yours
I'm confused. You begin your post with a stance that's typical of copyleft proponents, then you end it in the opposite direction.

There is a trait in human nature that pushes us to share our knowledge. But we would like this sharing to be mutual.

When I publish a piece of software for free, I would like others to read it, comment it, give me suggestions on how to make it better, and the whole community can benefit from the process.

Unfortunately, someone might instead take it, start making profit out of it, and never giving anything back to me or the community.

As a device to get the former effect and avoid the latter, a sort of "contract" was created that mimicks a copyright licence. It is called copyleft and says that you can do whatever you want with my work except profit.

Now, someone might say that stopping a third party from profiting out of something they have not made is correct, someone might say it nevertheless means removing a freedom from them.

Whose side are you on?

teo_zero··on Fasttracker II clone in C using SDL 2
> 16-bit Commodore Amiga era

The Motorola 68000 was a 32-bit processor. What Commodore Amiga was 16 bits?

teo_zero··on Fasttracker II clone in C using SDL 2
Does anybody know why the site is called 16-bits? Aren't trackers an expression of the first 32-bit computers?
teo_zero··on EYG: A Programming Language for Humans
I thought "makers" all used Python. What's the friction that EYG is supposed to remove?
teo_zero··on Show HN: Writemark, a dependency free web component for inline Markdown editing
LOL, and an internet connection, too!

But, seriously, of course "web" requires internet and a computer and an operating system. But since when "web" also means Node.js?

If a web component is advertized as dependency free, I expect something that I can include in a <script> tag and it works. Am I wrong?

teo_zero··on Show HN: Writemark, a dependency free web component for inline Markdown editing
Do you mean I don't need Node.js on the machine where I run it?
teo_zero··on Show HN: Writemark, a dependency free web component for inline Markdown editing
How can it be defined dependency free if it depends on Node.js?
teo_zero··on Everyone should know SIMD
Good article!

I just wouldn't start off with bold sentences as

> SIMD can be simple to understand

and

> writing SIMD is just about as easy as a for loop

and then the first example requires 12 lines to replace one line of scalar code.

Be honest and say SIMD is hard but the results are worth it!

(Another nitpick: if this article is for newbies, don't use SIMD-only words and concpts before explaining them. Step 5 is good: scalar tails are mentioned and described. Step 1 is bad: nobody is supposed to know what broadcast mean.)

teo_zero··on Businesses with ugly AI menu redesigns
> if you’re careless about one thing like that you’re probably careless about other things

I'm not convinced. This rule holds only if the two "things" are related. But one can have a passion for serving the best quality coffee, and be a total wreck in graphic arts.

teo_zero··on I wrote an bash enumerator because I was sick of xargs
Good idea but strange syntax. It would be more idiomatic if the command came first and the list of globs last.

Additionally the use of "--" is not what everybody expects: here it is used to introduce one argument, the command, while it's usually meant to introduce multiple arguments without worrying if they have a leading "-".

A possible revised syntax with command as the first argument followed by a list of globs optionally introduced by "--" would allow to enumerate all files with a leading "-", which the current syntax cannot:

  enumerate 'whatever {}' -- '-*'
I'm assuming "-f" for simplicity, but the same reasoning holds for "-L" too.
teo_zero··on AI, Vim, and the Illusion of Flow
> nobody can tell from reading my code whether I wrote it in Vim

You mean, except for the spurious :w here and there...

teo_zero··on I started a “dirt notebook”
But why? What's wrong with a tidy notebook?
teo_zero··on Teardown: A Generic 7-Port USB 3.0 Hub That Wasn't
> I don't get why I'm downvoted

Because your comment was addressing the author instead of the article itself. Tell-tale words are "you" and "people".

It would have been different if you said, for example, "I have developed a rule that if something is too cheap, it must be rubbish". See how this delivers your opinion without suggesting stupidity about the others who don't share it?

teo_zero··on Your 'app' could have been a webpage (so I fixed it for you)
> Few know that they can create an "app-icon" from any Web page

Let's say from most web pages. Some sites will hijack your browser and install their PWA instead of the page you requested.

teo_zero··on Ask HN: Add flag for AI-generated articles
If you are allergic to AI-generated articles, I can't stand syntactic mistakes.

The day you get your "AI generated" flag, I'll want my "lousy with mistakes", too.

teo_zero··on Croc: Securely transfer files and folders between two computers
Thank you. I imagined that the 3 words were just a rendez-vous token that the receiving end must hand to the relay to retrieve the right data. I understand that it also includes a password to validate the key.

Are 32 bits enough to serve both functions?

teo_zero··on Croc: Securely transfer files and folders between two computers
How can one be sure that the relay does not record all the data flowing through it? There's not a second independent channel where the key is exchanged between sender and receiver.
teo_zero··on GhostLock, a stack-UAF that has existed in all Linux distributions for 15 years
I'm glad someone else asked. :)

It's not so widely used and it's not explained in the first couple screenfuls of TFA (which by itself is weirdly structured, taking entire paragraphs to explain when it was introduced, when it was discovered, etc. before even explaining what it actually is).

Of course the title was chosen when the article was first published on a site dedicated to security, where probably everyone knows it. This suggests that insisting on unmodified titles when republishing in HN is a poor rule.

teo_zero··on Cache-Conscious Data Layout in Rust: Field Zoning, False Sharing, 128-Byte Rule
I don't get it. If the ring structure has 4 field (excluding the cold ones), and all 4 have alignment constraints, doesn't it define 4 zones in 4 cache lines, and not 2?

I expected head and cached_tail, for example, to share the same line, but since they are both 128-byte aligned, they end up in separate lines. Granted, both lines are dedicated to only one side of the producer-consumer pipe, but we're wasting cache lines for nothing.

← PreviousPage 3 of 31Next →