justin garcia
banner
purefunctor.me
justin garcia
@purefunctor.me
purescript @ oxfordabstracts.com
core team @ purescript.org
organiser @ functional.org.ph

I work on web, compilers, and type systems using FP

🇵🇭 he/him
July 11, 2025 at 9:41 AM
Reposted by justin garcia
i think it's mostly not actually about syntax, it's just that the people saying that don't know how to express their actual concerns.
e.g. with rust it's usually not about the syntax as much as its about the complexity of the language even with things that are much simpler in other languages
June 9, 2025 at 2:50 PM
ah, I could've called thing_from_single 👀
May 18, 2025 at 11:15 AM
that's a great point actually!
May 16, 2025 at 9:33 AM
Granted it'll be very niche—if your source files are big enough for reallocations to be a problem then the problem is that your source files are unreasonably big
April 14, 2025 at 5:28 PM
Like, in an IDE context where you're repeating analysis for at most every keystroke surely it's better to allocate once and overshoot than have to do the same growth reallocations every time
April 14, 2025 at 5:26 PM
thus, I've decided on a few soft rules:
- avoid referencing arcs between query results
- try to implement "weak references" where possible
- otherwise, simply flatten the data structures
April 2, 2025 at 6:30 PM
the effort of writing a graph-like data structure for linked export lists. I also had the worry that if I used a graph structure (through Arc) I'd end up accumulating garbage as changes propagate through the incremental computation engine.
April 2, 2025 at 6:30 PM
a "smart" alternative is "weak references" to export lists of other modules, rather than:

union(Lib, Internal)

the idea is to do:

Lib + Id(Internal)

however, in order to detect name clashes we still need to traverse both modules. I figured that the memory tradeoff of flattening is worth...
April 2, 2025 at 6:30 PM
in an ideal world the export map is structurally shared such that no keys are allocated twice. this is fine for now, export lists aren't that big to begin with
April 2, 2025 at 6:18 PM
Still nice to have if I ever have a burning desire for 60fps gaming but I'll wait until SteamOS makes it a plug-and-play thing. I can't be bothered fiddling with Windows drivers or having to install 10 different game launchers.
April 2, 2025 at 4:17 PM
types when you write _help / ?help:
April 2, 2025 at 12:57 PM