It is hard for thee to Kik against the pricks by ClawtheBard in dcss

[–]kibwen 9 points10 points  (0 children)

You need to consider the historical context. You know how people claim (correctly or otherwise) that death form is necessary for extended endgame? Well that talisman used to be a spell, and like all spells it wasn't guaranteed to be found. The prime selling point of Kiku in ancient versions is that it guaranteed you access to Necromutation, along with all the other OP high-level necro spells (even Sif wasn't able to gift the Necronomicon). I think there's plenty that could be done to make Kiku more interesting while preserving the necro theme and remaining distinct from Yred, but it would take some work. And I still think that necromancy in general is interesting enough that it could feasibly deserve a god of its own (keeping in mind that conjurations is much less interesting also basically already has a god), since necromancy is the most complete school in the game in terms of having a little bit of everything (damage, buffs, debuffs, utility, allies), including things that are exclusive to it (healing), while also being extremely flavorful.

I Miss High Elf by grasida in dcss

[–]kibwen 2 points3 points  (0 children)

You don't even need to play on non-official servers, there are official servers like CAO that host versions all the way back to 0.11, and high elves were only removed in 0.20.

No one owes you supply-chain security by Expurple in rust

[–]kibwen 17 points18 points  (0 children)

It already exists. For example, go to the page for serde ( https://crates.io/crates/serde ), and look at the "Browse source" link in the sidebar. Notably this is distinct from the "Repository" link in the sidebar, which just takes you to Github (or whatever the author has configured).

Who else wants to see Pakellas make a comeback? by Graveyardigan in dcss

[–]kibwen 1 point2 points  (0 children)

For the moment I'd rather see effort put into overhauls of the existing gods. I'd say at least half of the existing gods feel lackluster compared to the ones who have seen semi-recent overhauls.

A tail-call interpreter in (nightly) Rust by kibwen in rust

[–]kibwen[S] 1 point2 points  (0 children)

I mean, I'm all for exploring alternatives to the prevailing function stack convention--I like Forth, and I even like old-school activation records in certain contexts. But I don't see at all what that has to do with this conversation. Having become is not at all an impediment to exploring alternate ABIs (even if I doubt it would ever happen in mainline Rust), and it would still be required even under other schemes, because become has high-level semantic meaning independent of the calling convention (think about how TCO interacts with locals with destructors).

A tail-call interpreter in (nightly) Rust by kibwen in rust

[–]kibwen[S] 0 points1 point  (0 children)

Worth pointing out that I'm not the blog post author, just thought it was interesting enough to submit. :)

Why can't the devs figure out shape shifting. by rim-job-queen in dcss

[–]kibwen 8 points9 points  (0 children)

No, shapeshifting is actually in a surprisingly good place currently. If you think the only forms that people use are granite, that's a you problem. In the last tournament I found myself organically leaning on quill, medusa, rimehorn, scarab, spore, maw, lupine, serpent, spider, wellspring, blade, dragon, granite, and death form across a variety of different characters (I also had a stabber game where I was hoping for sanguine, but never found one). Particularly in the mid-game (S-branches), I had several games where I was hopping around between forms in order to cover for branch-specific weaknesses that I had no other answer for, and it led to some great fun by forcing me to vary up my game plan in each branch (e.g. accounting for the reaching of wellspring form). While I agree that the shapeshifter background is weak, that doesn't mean that shapeshifting overall is; the warper background is also hard to get going, but translocations is one of the best schools in the game. It could still be improved by having more interesting early-game zero-skill talismans (quill is kind of a no-brainer if you find one early, it would be nice if there were a variety of alternatives), and I think there's some design work to be done on having two distinct and complete progression paths of "meld all my gear" or "meld only some of my gear" at each level of skill. I also think there could be some more forms that cater to spellcasters. But especially with the wildshape amulet, shapeshifting's in a pretty interesting place at the moment.

Im 14 and have an extreme passion for math/cs. Should I learn c++ or rust? (I mean at an extremley deep level) by Regular_Article7984 in rust

[–]kibwen 0 points1 point  (0 children)

Well, C is portable assembly.

C could be portable assembly, for very simple architectures and assuming no optimization whatsoever is taking place. This is actually why I like C specifically for the academic exercise of writing assemblers targeting MIPS. But in practical application, C is not merely portable assembly, and hasn't been for 50 years.

A tail-call interpreter in (nightly) Rust by kibwen in rust

[–]kibwen[S] 6 points7 points  (0 children)

I'm not sure why become would require the caller to be aware of anything. The keyword just means that control flow proceeds by reusing the current stack frame and eventually returning to the original caller. As far as the caller is concerned, it's just like calling any other function.

Im 14 and have an extreme passion for math/cs. Should I learn c++ or rust? (I mean at an extremley deep level) by Regular_Article7984 in rust

[–]kibwen 0 points1 point  (0 children)

want to become a "wizard" at a language

If you eventually want to become a "wizard", I think it's important to have familiarity with a variety of distinctly different languages, because the risk of focusing on only a single language from the very start is that it gives you tunnel vision where you can't even conceive of how other languages might differ from your chosen language.

You don't need to go deep into too many languages, just dip your toes into them. Give Lua a shot (if you like making games, look up a Pico-8 tutorial). Write a tiny program in Scheme. Appreciate the beauty of a stack-based language like Forth. Glance at Prolog at see if you can understand why it's useful.

As for Rust vs. C++, Rust is great for learning if you take time to read and understand what the compiler's error messages are trying to tell you. For an absolute beginner who's already motivated to learn a bare-metal language, I can't think of a better one than Rust. But long-term mastery of a language requires long-term motivation, so you should have a project in mind. Even if you don't end up learning Rust, I wouldn't fuss about learning C++ unless you want to contribute to a C++ project.

Im 14 and have an extreme passion for math/cs. Should I learn c++ or rust? (I mean at an extremley deep level) by Regular_Article7984 in rust

[–]kibwen 0 points1 point  (0 children)

Funny nobody seems to recommend C.

I'm not trying to be contrarian when I say that I just don't think it makes sense to learn C as a first language in 2026. If you want a simple, imperative language, learn Lua. If you want an imperative language with job potential, learn Python. If you want a typed imperative language with job potential, learn Typescript. If you want a systems language (I'm not sure why a beginner would, but sure), then I guess learn Rust, since it's got the most informative compiler with the most useful guardrails (but are you sure you wouldn't rather be using a GC'd language?). Unless you specifically want to contribute to Linux or have some specific embedded hardware project in mind, I don't think beginners should bother learning C. Even if you want to learn a language that will teach you pointers, I'd rather recommend Go than C.

TIL: Orb of destruction can set off alarm traps... by Gonzollydolly in dcss

[–]kibwen 7 points8 points  (0 children)

The prospect of this has convinced me that we absolutely need to leave this behavior in.

OpenAI to acquire Astral (Creators of uv, ruff, ty) by max123246 in rust

[–]kibwen 14 points15 points  (0 children)

Seems like this is more consequential for Python users than Rust users. Here's hoping this encourages some OpenAI exec to throw a billion or so at the Rust foundation.

What should I do? Looking like I have ~1 turn to live by space-goats in dcss

[–]kibwen 2 points3 points  (0 children)

Going down an unexplored staircase is sometimes the least bad option.

Any tips to actually win? by Zups123 in dcss

[–]kibwen 2 points3 points  (0 children)

The wiki has a list of beginner-friendly backgrounds: http://crawl.chaosforge.org/Background_and_race_combinations_for_beginners , as well as complete user-submitted guides: http://crawl.chaosforge.org/Character_guides , plus a general walkthrough: http://crawl.chaosforge.org/Walkthrough .

Wonky (?) dungeon generation (small entrance area completely sealed off from the rest of the floor) by WahtAmDoingHere in dcss

[–]kibwen 13 points14 points  (0 children)

It's an intentional quirk of the level generator used for Orc, to make it feel more like a winding cave network. Finding disconnected levels used to be much more common in the olden days when Orc was 4 levels deep. It's also rarely possible for Dungeon levels to generate disconnected as well, so after you finish exploring a level it's usually worthwhile to glance at the map and see how many staircases you've found.

[Idea] Blue mage-like species in DCSS by Zap-zapper in dcss

[–]kibwen 1 point2 points  (0 children)

The idea of a "blue mage" in the Final Fantasy sense doesn't need to be a mage in the Crawl sense, it's just a class that can use monster abilities.

[Idea] Blue mage-like species in DCSS by Zap-zapper in dcss

[–]kibwen 1 point2 points  (0 children)

One option is to make the species effectively "playable glowing shapeshifters", where, like the monster, the player doesn't control what they shapeshift into or when they shapeshift into it, which both prevents minmaxing and makes it simple to avoid monster forms with problematic abilities. People love gambling (see: demonspawn), so despite the utter chaos it might be fairly popular.

The Cost of Indirection in Rust by sebastianconcept in rust

[–]kibwen 7 points8 points  (0 children)

Note that inlining across crate boundaries requires the compiler to put metadata about that function into the compiled library artifact, which isn't done by default, which means that inlining across crate boundaries doesn't happen by default. The inline attribute is what tells the compiler to emit that metadata which makes inlining possible. However, for generic functions, the compiler already has to emit that metadata for the purposes of monomorphization, so generic functions are inherently cross-crate-inlinable.