@edwintorok.bsky.social
13 followers 12 following 40 posts
Posts Media Videos Starter Packs
edwintorok.bsky.social
Nice protocol, it seems to finally solve the problem of rendering Unicode on a terminal by putting the client in charge of determining the width of a character (grapheme cluster), avoiding disagreements between the terminal emulator and client in determining the width of Unicode text.
Reposted
anil.recoil.org
To be clear, @satnam6502.bsky.social is talking about chip design here but feel free to meme this as you wish #icfpsplash25
edwintorok.bsky.social
Although objects are not used often in OCaml, they'd work in this case, `< show : t -> string; ...>`. Then any object that has a 'show' method with the right signature would be accepted there.
You could also use a module instead of a record, and cast it to a module type containing only show.
edwintorok.bsky.social
The downside with that is that if you get logged out, because the login token expired, you might only realize that half a year later when you wonder why it suddenly got all quiet.
edwintorok.bsky.social
I used Openvibe, but couldn't find the source code.
I don't have good answers for using multiple IM protocols, but one approach that kind of works on a desktop is to open the web interface for each system in a separate tab, enable desktop notifications and *pin it*. That ensures it opens on startup.
edwintorok.bsky.social
Long ago I used Pidgin for exactly this reason. Everyone had their favourite IM protocol, and I didn't really mind, as long as I was able to use a *single* client to talk to all of them.
In theory Matrix bridges were also supposed to solve this. Maybe I need to try Pidgin again.
Reposted
sabine.sh
going to speak at Open Source Conference Luxembourg later today 🥹

about Gospel, the emerging specification language for OCaml that aims to enable a formally verified open source ecosystem
edwintorok.bsky.social
The complicated part is `ocamllex`/`menhir` support actually (although I think regular Vim would have the same problem).
There is a 5 year old PR on the vim-ocaml repository that'd fix it (unfortunately it is a breaking change, but 5 years is probably enough notice and time to merge?)
edwintorok.bsky.social
OCamlformat is not wired up in the default keybindings correctly, so typing `gq` does something completely unrelated and wrong. I've got a fix for that by rebinding 'gq' to call the appropriate LSP function, but I haven't pushed it yet.
edwintorok.bsky.social
Here are my dotfiles. I use nvim-treesitter and nvim-lspconfig, and with those plugins it is only a few lines to enable LSP support: gitlab.com/edwintorok/d...
I'll have to try and extract a minimal working config out of that though.
gitlab.com
edwintorok.bsky.social
This is quite timely. Just noticed that if you use the dune package management preview it ends up compiling ocaml 3 times : once for the project, once more for ocamlformat, and once more for ocaml-lsp. With your work it could build it once globally and share it?
Reposted
xvw.lol
Roadmap and project for OCaml/security !
Reposted
yminsky.bsky.social
I'm pleased to announce OxCaml!

OxCaml is Jane Street's branch of OCaml. We've given it a new name and a snazzy logo, and done a bunch of work to make it easy for people to try.
edwintorok.bsky.social
Also another issue is that NaN and Infinity do not have a defined encoding in JSON. Some encode it as a string, and I guess you could use null, but you need to know how the other side parses it. Whatever you do don't let jsonm encode it as unquoted 'nan', because nothing outside of OCaml can parse.
edwintorok.bsky.social
There is more than one NaN, and you can encode a small error code in the spare bits, so it is more like Result than Option (this isn't exposed at the OCaml level unless you manipulate the bits of float with int64 conversions).
edwintorok.bsky.social
Can you assign both uniqueness and linearity modes to a value?
Reposted
dra27.uk
1994 (and earlier): select text in one “app”, copy, paste to another “app”
2025: select text in one app, copy, switch to other app and discover they’ve disabled paste on the input fields. Return to other app. Write information on piece of paper. Type into other app.
#progress #modern
edwintorok.bsky.social
Along those lines:
* Now which clipboard was it? Cmd-V, Ctrl-V, or Shift-Ctrl-V, or middle click?
* why does the command prompt keep freezing on Windows? Oh selection mode...
* get an error from Chrome Enterprise that pasting is disabled
* get a 30s popup that your paste is checked against policy
edwintorok.bsky.social
This is becoming really interesting. Is it possible to gradually introduce this in a project? E.g. use the extended compiler in the CI, and use regular OCaml for building releases (if the extended compiler has checked the modality properties, then we erase them, the properties should still hold?)