it's hard to put it into words but #jj-vcs has rewired my brain into thinking about commits more "meaningfully". i think gitโand to a large extent githubโhave made commits feel "cheap", something you don't put much thought into. just a thing you have to do before you "push your change".
26.05.2025 12:23 โ ๐ 13 ๐ 2 ๐ฌ 2 ๐ 0
Things are always changing, and a lot is different from 2024, give it another try sometime :)
26.07.2025 17:20 โ ๐ 2 ๐ 0 ๐ฌ 0 ๐ 0
However weโve also been considering different forms of definition identity, like an embedded ID or something (separate from the hash).
At any rate, as it is now upgrades between libraries work fine and still allow having multiple versions of a library if you want ๐
26.07.2025 16:36 โ ๐ 6 ๐ 0 ๐ฌ 1 ๐ 0
Weโre still figuring out exactly how to do upgrades in the most ergonomic way, but what has been working so far is to map corresponding hashes between versions using names, then auto-propagate through the dependencies.
26.07.2025 16:36 โ ๐ 4 ๐ 0 ๐ฌ 2 ๐ 0
Just curious, are you able to quantify what was less than ideal about the LSP? If you can point at anything specific Iโd love to get it patched up!
26.07.2025 16:30 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 0
@unison-lang.org kind of accomplishes this, all code is identified by hash, so if you contribute a given definition, when itโs adopted the hashes will match and nothing complains.
26.07.2025 16:28 โ ๐ 8 ๐ 0 ๐ฌ 1 ๐ 0
A deployment pipeline that ships your code to staging, and hides the โDeploy to prodโ button somewhere in your app on staging. You have to dig through your app, running your new code, to find it.
26.07.2025 06:16 โ ๐ 6 ๐ 0 ๐ฌ 0 ๐ 0
Iโd love to make the type search global across projects in UCM!
24.07.2025 21:29 โ ๐ 3 ๐ 1 ๐ฌ 0 ๐ 0
Very cool!
16.07.2025 07:40 โ ๐ 10 ๐ 3 ๐ฌ 0 ๐ 0
Unison uses this system to propagate changes in dependencies, but you can imagine a system which uses a similar method to propagate changes to function colouring
16.07.2025 05:59 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0
And yes, time grows with the number of dependents, but Unison only needs to recompile actual dependencies, whereas most languages will recompile entire upstream modules when thereโs a change.
16.07.2025 05:57 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0
Itโs unidirectional, changes in a definition propagate to the definitions which depend it.
You donโt need to imagine it though you can try it out if you like: @unison-lang.org
16.07.2025 05:57 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0
Youโd still need to handle the newly propagated code if it somehow fails to compile of course, but I think what annoys people the most is just that they have to reannotate the entire function stack
16.07.2025 00:31 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0
Unison doesnโt have an async keyword, so such a system that propagates function colouring like that is hypothetical, but definitely possible.
16.07.2025 00:30 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0
It depends!
For almost all languages yes, itโs an issue, but Iโm spoiled by Unison, it can handle and auto-propagate even some type-changing updates, so sometimes you can upgrade a library and have it propagate updates through your codebase ๐
16.07.2025 00:30 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0
Also, IMO function colouring is great and desirable, the bad part is that the user has to update all the call sites and signatures manually. Any sufficiently advanced code storage system should be able to automate this, but alas, most programs are still stored as plain text in a file somewhere.
14.07.2025 18:22 โ ๐ 3 ๐ 0 ๐ฌ 1 ๐ 0
STM is smart too; so it won't spam like a busy-wait would, it only prints a trace once per block.
25.06.2025 17:53 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 0
-- Hack for finding blocking points in your complex concurrent systems,
-- you can literally just print where in the system you're blocked!
readQ :: String -> STM.TBMQueue a -> STM.STM (Maybe a)
readQ qName q = do
STM.readTBMQueue q <|> do
traceM $ "Blocked Reading from " <> qName
retry
writeQ :: Text -> STM.TBMQueue a -> a -> STM.STM ()
writeQ qName q val = do
STM.writeTBMQueue q val <|> do
traceM $ "Blocked Writing to " <> qName
retry
Cool trick for finding bottlenecks in your concurrent systems; sometimes you can just literally print where you're currently blocked.
25.06.2025 17:24 โ ๐ 13 ๐ 1 ๐ฌ 1 ๐ 1
When people talk about 'inherent' complexity they're probably talking about an authorization system or a notification system ๐ตโ๐ซ
I will say that designing flexible and performant versions of each of these has been a great design challenge though, a lot of fun to figure out ๐
11.06.2025 23:35 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0
Building Industrial Strength Software without Unit Tests
Unit tests aren't the only way.
Did you know that #Unison Share is a full-featured code-repository and collaboration platform that *doesn't have a single unit test*?
Here's how that works:
chrispenner.ca/posts/transc...
(*spoiler*: it's great!)
@unison-lang.org
03.06.2025 16:57 โ ๐ 7 ๐ 1 ๐ฌ 0 ๐ 0
Saw someone asking about a Haskell debugger on Reddit today and realized how _weird_ it is that Haskell doesn't really have a good story here, but also how weird it is that I don't ever find myself reaching for one.
Maybe I'm sufficiently stockholmed into TDD (Trace driven development) by now?
08.05.2025 02:42 โ ๐ 7 ๐ 0 ๐ฌ 3 ๐ 0
3 things other languages should steal from Unison
Some things other languages should steal from Unison
๐ We encourage everyone to take inspiration from Unison's core ideas and practices. The more programming languages and tools challenge the status quo, the faster "outlandish" becomes "obviously better." Here's @chrispenner.ca on three things other languages should steal from Unison:
28.04.2025 18:00 โ ๐ 13 ๐ 6 ๐ฌ 1 ๐ 0
Pandoc - index
Pandoc is dope too! pandoc.org
20.04.2025 00:31 โ ๐ 3 ๐ 0 ๐ฌ 0 ๐ 0
Yeah the secret is to collect as many obscure languages as possible :)
I'm planning to learn Gleam at some point
10.04.2025 17:02 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 0
#Python devs get sad #Haskell doesn't have examples, but I'll take reliable type information and generated docs over the haphazard python docs situation every day of the week.
01.04.2025 23:07 โ ๐ 5 ๐ 0 ๐ฌ 0 ๐ 0
It is absolutely bonkers to me that there still isn't a standard way to just see which functions a python module exposes. I know it's dynamic enough to generate new ones at runtime, but like, I'm just tryin' to look at docs!
01.04.2025 23:07 โ ๐ 5 ๐ 0 ๐ฌ 2 ๐ 0
AMAZING, thanks for sending this my way, I'll definitely be checking this out!!
31.03.2025 16:26 โ ๐ 2 ๐ 0 ๐ฌ 0 ๐ 0
I'm officially adding Notification Systems to my list of inherently hard problems. I've got:
* Cache invalidation
* Authorization
* Notification Systems
What's on your list?
27.03.2025 19:11 โ ๐ 4 ๐ 0 ๐ฌ 1 ๐ 0
๐ค We've just added collaborator support to Unison Share!
You can now add fellow Unison devs to your projects with these roles:
๐๏ธ View โ Read & download
๐ง Maintain โ Read, download, merge & write
๐ Admin โ Full admin permissions
Try it out here: share.unison-lang.org/
25.03.2025 17:39 โ ๐ 8 ๐ 4 ๐ฌ 0 ๐ 0
As always, my problem was solved with yet another layer of abstraction :P
24.03.2025 19:36 โ ๐ 2 ๐ 0 ๐ฌ 0 ๐ 0
Menswear writer. Editor at Put This On. Words at The New York Times, The Washington Post, The Financial Times, Esquire, and Mr. Porter.
If you have a style question, search:
https://dieworkwear.com/ | https://putthison.com/start-here/
Senior Member of the Technical Staff
at Draper Laboratory, Programming Language Theory & Gamedev are my jam
25 / UX enthusiast and Front-End Dev in freelance / Nintendo fanboy
Currently building stuff with ATProto. Looking to interact with other devs/creative people
Change my avatar : avatar.nornoe.net
๐ฎ Death Stranding 1
๐ฎ Donkey Kong Bananza
Dissident computer scientist
Berkeley professor, former Secretary of Labor. Co-founder of @inequalitymedia.bsky.social and @imcivicaction.bsky.social.
Substack: http://robertreich.substack.com
Preorder my new book: https://sites.prh.com/reich
Visit my website: https://rbreich.com/
Working on having better frameworks at Google ๐ง๐ฌ๐บ๐ธ
Principal software engineer. I post about code, frontend stuff, web components, my career in tech, various nerdery.
PC gaming, math, music, Simpsons, astrophotography, dad/married life.
https://anerdguy.now
Software Engineer. Dad. Surfer. Non-Fiction Bookworm. Not necessarily in that order. Creator of http://http.cat. Blogging at https://rogeriopvl.com.
Linguagens, compiladores e verificaรงรฃo. Trabalho numa linguagem de especificaรงรฃo chamada Quint e dou aula de mรฉtodos formais na UDESC. 26 aninhos, Joinville - SC.
@dixie3flatline from twitter
head of dev advocacy @ minimus.io
kubernetes release team subproject lead, sig docs tech lead, uwubernetes, edinburgh via memphis
she/they
Please don't use unroller bots on my threads.
ADHD, TTRPGs, Queer Shit, Nerd Shit, History, Animals. Will yell about Star Trek on demand.
Queer, Disabled, He/Him
๐ฆ@NomeDaBarbarian
๐ฐ https://ko-fi.com/nomedabarbarian
๐ Denver
Building a local-first music app overtone.pro with @livestore.dev. Host @localfirst.fm. DX Effect. Founded @prisma.io. schickling.dev
A podcast about local-first software development. Hosted by @schickling.dev.
just this guy, you know? (director of research @ ink & switch, coined "local-first", contributor to automerge, former postgres guy, heroku staff, ex-game developer, arctic oceanographer.)
Principal Investigator at @inkandswitch.com
Formerly at Alan Kay's research groups (YCR/HARC, CDG, VPRI), and Google
Creator of OMeta, co-creator of ohmjs.org
todepond.com
โต London เทด @tldraw.com
An independent research lab exploring the future of tools for thought.
We envision a new computer that amplifies human intelligence. A system that helps you think more clearly, collaborate more effectively, and is available anywhere and anytime.