IAm_A_Complete_Idiot

joined 2 years ago
[–] [email protected] 6 points 1 year ago

No, rust is stricter because you need to think a lot more about whether weird edge cases in your unsafe code can potentially cause UB. For ex. If your data structure relies on the Ord interface (which gives you comparison operators and total ordering), and someone implements Ord wrong, you aren't allowed to commit UB still. In C++ land I'd venture to guess most any developer won't care - that's a bug with your code and not the data structure.

It's also more strict because rusts referencing rules are a lot harder then C's, since they're all effectively restrict by default, and just turning a pointer into a reference for a little bit to call a function means that you have to abide by those restrictions now without the help of the compiler.

[–] [email protected] 2 points 1 year ago

For context for other readers: this is referring to NAT64. NAT64 maps the entire IPv4 address space to an IPv6 subnet (typically 64:ff9b). The router (which has an IPv4 address) drops the IPv6 prefix and does a normal IPv4 NAT from there. After that, you forward back the response over v6.

This lets IPv6 hosts reach the IPv4 internet, and let you run v6 only internally (unlike dual stack which requires all hosts having v6 and v4).

[–] [email protected] 3 points 1 year ago

There's a transaction fee, the higher you pay the more priority you have (since miners get a cut).

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

It's not complicated until your reputation drops for a multitude of reasons, many not even directly your fault.

Neighboring bad acting IPs, too many automated emails sent out while you were testing, compromised account, or pretty much any number of things means everyone on your domain is hosed. And email is critical.

[–] [email protected] 6 points 1 year ago (1 children)

git commit -a --amend

[–] [email protected] 4 points 1 year ago (1 children)

Not in this one, iirc they actually reverse engineered and were working off of apple libraries, rather than proxies.

[–] [email protected] 2 points 1 year ago

As a Linux user (and ex arch user btw), I'm deeply offended.

[–] [email protected] 1 points 1 year ago

The data model there is fundamentally different. That would break how git would work because operations that worked one way before would now no longer work that way. You'd functionally have rewritten and mapped all the old functionality to new functionality with subtle differences, but at that point is it even git? You have a wrapper with similar but subtly different commands and that's it. It's like saying "instead of reinventing functionality by building both ext4 and btrfs, why don't we just improve ext4"?

The two are practically entirely different.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (2 children)

It being objectively better then SVN or CVS doesn't mean that it's the best we can do. Git has all sorts of non-ideal behaviors that other VCS's don't. Pijul's data structure for instance is inherently different from git and it can't be retrofitted on top. Making tooling only support git effectively kills off any potential competitors that could be superior to git.

One example is pijul specifically let's you get away from the idea that moving commits between branches changes their identity, because pijul builds a tree of diffs. If two subtrees of diffs are distinct, they can always be applied without changing identity of those diffs. This means "cherry picking" a commit and then merging a commit doesn't effectively merge that commit twice resulting in a merge conflict.

That's one example how one VCS can be better.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (4 children)

Not OP, but personally yes. Every code forge supporting only git just further enforces git's monopoly on the VCS space. Git isn't perfect, nor should be treated as perfect.

The above is probably the reason why so many alternative VCS's have to cludge themselves onto git's file format despite likely being better served with their own.

Interesting new VCS's, all supporting their own native format as well for various reasons:

  • pijul
  • sapling
  • jujutsu

Sapling is developed by meta, jujutsu by an engineer at Google. Pijul is not tied to any company and was developed by an academic iirc. If you're okay with not new:

  • mercurial
  • fossil
  • darcs

VCS's are still being itterated on and tooling being super git centric hurts that.

[–] [email protected] 3 points 1 year ago (2 children)

It's not battle tested on massive projects nor does it have the prior mindshare git has. It doesn't have a lot of tooling either. (Does any CI/CD system support pijul?) It has nice properties, but ultimately git with all it's terrible warts is well understood.

[–] [email protected] 2 points 1 year ago

Yeah, good commit messages are about intent and context of a change - not what the change itself is. We can look at the diff for that. Just write a single line or two summarizing what the commit does, and everything else should be adding context on top that doesn't directly exist in the codebase.

view more: next ›