[-] arendjr@programming.dev 7 points 2 weeks ago

I’m not the person you responded to, but I can try to take a stab at that…

for a concept that prohibits proof as part of it's definition, how do you determine that one faith (or system) is better than another?

Objectively, you don’t. But people’s experiences go beyond the objective, and we all have our subjective experiences too. Faith is how we make sense of those.

The question then isn’t, which one is better, but whose other experiences and faiths do we relate to? We build friendships and alliances based on those. Not because they’re better, per se, but because we feel comfortable or safe with them.

From that perspective it makes a lot of sense that we value other humans, because they can make us feel understood and appreciated, and we can exchange ideas with them which in turn refines our faith. Now, some people get tricked into thinking you can do the same with machines, but well, I think you can guess where I too stand on that idea.

[-] arendjr@programming.dev 7 points 1 year ago

Captchas are getting out of hand.

[-] arendjr@programming.dev 7 points 1 year ago

That’s fair, although technically you could catch SIGSEGV and release resources that way too.

Also, given that resources will be reclaimed by the OS regardless of which kind of crash we’re talking about, the effective difference is usually (but not always) negligible.

Either way, no user would consider a panic!() to be not a crash because destructors ran. And most developers don’t either.

[-] arendjr@programming.dev 7 points 1 year ago

Great points, except:

People can’t leave for anything smaller.

They can and some do. It’s still a choice.

[-] arendjr@programming.dev 7 points 2 years ago

I think that’s very team/project dependent. I’ve seen it done before indeed, but I’ve never been on a team where it was considered idiomatic.

[-] arendjr@programming.dev 7 points 2 years ago

and that burden is as far as I’ve seen being forced on those long term contributors.

This is not what is happening. The current long term contributors were asked to clarify semantics about C APIs, so the Rust maintainers could take it from there. At no point were the C maintainers asked to help maintain the Rust bindings.

[-] arendjr@programming.dev 7 points 2 years ago

Sorry, I don’t understand. Do you mean there have to be 6 digits of Pi in there, or the sixth character must be π? I’m down either way.

[-] arendjr@programming.dev 7 points 2 years ago

Yeah, it was the first line of the linked PR:

This PR replaces the sort implementations with tailor-made ones that strike a balance of run-time, compile-time and binary-size, yielding run-time and compile-time improvements.

It was also repeated a few paragraphs later that the motivation for the changes was both runtime and compile time improvements. So a little bit bumped to hear the compile time impact wasn’t as good as the authors hoped apparently. I’m not even sure I fully endorse the tradeoff, because it seems the gains, while major, only affect very select use cases, while the regressions seem to affect everyone and hurt in an area that is already perceived as a pain point. But oh well, the total regression is still minor so I guess we’ll live with it.

[-] arendjr@programming.dev 7 points 2 years ago* (last edited 2 years ago)

From what I understand as I skimmed over the stable sort analysis (https://github.com/Voultapher/sort-research-rs/blob/main/writeup/driftsort_introduction/text.md), it lost out against driftsort.

[-] arendjr@programming.dev 7 points 2 years ago

For a little bit I thought this library might be a subtle joke, seeing the #define _SHITPRESS_H at the start. That combined with the compress() and decompress() not taking any arguments and not having a return value, I thought we were being played. Not to mention the library appears to be plain C rather than C++... surely the author should know the difference?

Then I saw how the interface actually works:

// interface for the library user, implement these in your program:
unsigned int SPR_in(); // Return next byte from input or value > 255 on EOF.
void SPR_out(unsigned char); // Output byte.

This seems extremely poorly thought out. Calling into global functions for input and output means that your library will be a pain to use in any program that has to (de)compress anything more than a single input.

[-] arendjr@programming.dev 7 points 2 years ago

Smart pointers are really really nice, I do recommend getting used to them (and all other features from c++11 forward).

You’re recommending him to give up his sanity and/or life?

[-] arendjr@programming.dev 6 points 2 years ago

Thanks, that solves it indeed!

view more: ‹ prev next ›

arendjr

0 post score
0 comment score
joined 2 years ago