Sign in

Vsevolod Tolstopyatov

@qwwdfsad.bsky.social
189 followers 101 following 54 posts

Kotlin @ JetBrains. API and language design, concurrency, performance

PostsRepliesMedia
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/07/2026
...so even without as_rvalue it is UB in cases like here (because `bringBackToLive` is a mutating op):
120 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/07/2026
Kind of! The intention here is to move rather than copy. The real offender is the `filter` that basically expects iterators to be multi-use *and* stable, and thus can dereference and/or evaluate a predicate multiple times.
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/07/2026
This one (P3725R3) is surprisingly tricky!
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/07/2026
:]
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/07/2026
Tired: we have a bug Wired:
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/07/2026
Out of context C++26
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 25/05/2026
Mill is amazing! I especially like the Task trick -- it is a macro whose body is parsed during "configuration" time -- thus no 'flatMap', 'onEach', 'dir()' etc. as all dependencies are inferred during parsing. The most practical application of dataflow programming I've seen
010 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 01/03/2026
In today's findings: vaguely menacing graph
120 0
Reposted by Vsevolod Tolstopyatov
Jesse Wilson @swank.ca · 30/11/2025
Today’s the last day to submit a talk for @kotlinconf.com. Go submit one! Teaching something is a great way to deepen your understanding of it.
0116 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 14/11/2025
Additionally, GraalJIT consistently yields higher throughput than the stock JDK, with a similar warmup time
030 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 14/11/2025
Native Image is an *amazing* technology! Having a 150mb+ JAR full of weird compiler stuff (from jrtfs to Swing!) in kotlinc quite easily built with Native Image, and immediately yielding this kind of improvement is outstanding. Looking forward to what's next 👀
192 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 25/10/2025
Dima is a brilliant engineer, and the way he structures any discussion (be it internal or external) is always thoughtful and insightful. Every time I read his musings or talk to him, I learn something new or connect new dots
040 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/08/2025
\\Special\acknowledgement\goes\to\Windows\path handling\
030 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 06/08/2025
New Kotlin Language Server goodies are out: github.com/Kotlin/kotli...! A lot of work ahead, but it starts getting its shape 👀
github.com
Release v0.253.10629 · Kotlin/kotlin-lsp
🧪 Kotlin for VS Code Extension Includes the Kotlin Language Server bundled for use with Visual Studio Code. Download  |  SHA-256 Checksum 🗂️ Kotlin Language Server (Standalone ZIP) Standalone ver...
1274 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 01/07/2025
Random quote of the day: income taxes 'required an element of understanding as to why they were needed on the part of the individuals subject to said taxes and this understanding was usually widely lacking'
010 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 20/06/2025
My *by far* the most favourite talk this year. @Sellmair did an amazing job -- explaining dynamic classloading, DCEVM, continuous builds, Compose internals, anonymous classes naming policy, and more in a deeply technical yet engaging manner
030 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 23/05/2025
Such things rarely can happen individually, often they cannot even happen within a single team or a product. I am eternally grateful to have @stukalov.bsky.social on my side. Congrats! That's your achievement as much as it's Kotlin's 💜
120 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 23/05/2025
We poured the real effort, broke really thick walls, had heated debates and pitches, stretched IntelliJ limits (sometimes as far as using test infra to make it work in the LSP), and damn we did it! And there is still more to come :)
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 23/05/2025
Not only was that a hell of a team effort, pushing the IJ codebase to its limits, but it is also a great step forward for Kotlin and a huge shift within JetBrains that we made happen.
100 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 23/05/2025
There is plenty of amazing stuff announced at KotlinConf. But the thing I am most proud of is our release of Kotlin LSP along with VSC support: github.com/Kotlin/kotli... Damn that was some action!
github.com
GitHub - Kotlin/kotlin-lsp: Kotlin Language Server and plugin for Visual Studio Code
Kotlin Language Server and plugin for Visual Studio Code - Kotlin/kotlin-lsp
190 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 20/02/2025
Futurama was definitely released ahead of its time
020 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 20/02/2025
If you want to participate in a naming battle, here's your chance! I'd even say it might have an effect similar to deprecating String.capitalize(), but this time with a (hopefully) properly-named replacement
091 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 14/02/2025
gist.github.com/qwwdfsad/eb3... Something like that can do the trick (for less trivial chains still, similar to streams). By the way, beware of benchmarks not consuming (returning) the result from the @Benchmark function, maybe it's worth remeasuring the original bench (especially the small one)
gist.github.com
Sequences.kt
GitHub Gist: instantly share code, notes, and snippets.
020 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 13/02/2025
Thinking about it more, we can potentially provide a push-based sequence almost seamlessly, but it will require quite some tweaks. And for trivial use cases (small collections, trivial transformations) unlikely to be *much* faster
030 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 13/02/2025
Iterator-based protocol (which sequence is) is really unfortunate, the constant field-spilling and hasNext-next pair (which is strict with its contract) absorbs all the CPU :( Also, a nice showcase of why we picked the push-based Flow model!
240 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 07/02/2025
totally deserved!
010 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 05/02/2025
Is it going to deadlock because of the clinit "deadlock" where lambda body (private static fun) cannot be invoked from another thread ("parallel") unless clinit is completed which in turn awaits parallel operator to complete?
160 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 19/12/2024
Not all notes are that useful though
030 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 18/12/2024
...and today is one of these days. Thank you, Seva from the past, I guess
170 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 18/12/2024
When dealing with concurrency problems, I leave comments with my findings even if they aren't really that meaningful (e.g. "don't do X, X leads to logical races" What races? Why?). I used to feel uneasy about that, but damn, every now and then, they save me hours of debugging
1110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 12/12/2024
By the way, @volebamor.bsky.social suggested a really beautiful solution -- count all the junctions (i.e. ▢▢ has two junctions: ⊥ and ⊤) and subtract the number from the perimeter. I am still mad that it actually works!
010 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 12/12/2024
Damn these modern business practices! Who on earth counts discounts LIKE THAT?!
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 12/12/2024
you can probably guess what the section is about :)
010 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 12/12/2024
Came up with this one when writing an internal blogpost about performance work
140 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 12/12/2024
Sorry for that, I promise I'll switch back to technical content
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 12/12/2024
An update to the posting: www.jetbrains.com/careers/jobs... Now with Germany and Netherlands on the table!
jetbrains.com
Kotlin Libraries Senior/ Staff Software Developer (Kotlin) - Kotlin Libraries - Careers
1103 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
Also, the job description is supposed to be that :) There is, of course, regular maintenance, OSS, and compatibility work, things like that one cannot escape %)
000 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
That's up to you for sure. Usually, what we care about (apart from the usual stuff) is the broad understanding of the JVM ecosystem and the taste for DX/ergonomics. Quite a few Kotlin developers (me included :)) were not really savvy with Kotlin beforehand
100 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
(I assumed you are in the UK, for some reason I remember it. Sorry if that's incorrect)
000 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
I think we can hire in the UK (under the umbrella company) in some specific circumstances (i.e. it's obligatory to already have a residence there), and _maybe_ we are in the process of opening a legal entity there. So it is up to you, you might as well consider applying without moving anywhere 🙂
100 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
And we are also trying to fix or report things when it is possible mail.openjdk.org/pipermail/ho...
mail.openjdk.org
Bimorphic inlining not applied at a call site that was initially monomorphic
030 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
...updates to UUID RFC after 19 goddamn years of radiosilience but right after we finished our design work on it, the word 'digit' in 'isDigit' including '٩' and JIT not able to inline the trivial thing that makes our parser 20% slower
140 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
Examples of dragons include but are not limited to such wonderful things as lost days in the calendar, official Windows file paths that even Internet Explorer does not support, a JSON spec (jokes on you, there is no spec)...
150 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 09/12/2024
Kotlin libraries team is hiring: www.jetbrains.com/careers/jobs... If you are eager to write something you are going to regret (if you are lucky, also be proud of) in 10 years, want to tinker with Kotlin and not afraid of dragons (also: performance, concurrency), drop me a line!
jetbrains.com
Kotlin Libraries Senior Software Developer (Kotlin) - Kotlin Libraries - Careers
14116 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 07/12/2024
Indeed it is a tooling company, but our business is not language support (i.e. not syntactic highlighting and symbol navigation) but, indeed, the actual tooling and integrations. In that sense, LSP is not *that* different from i.e. a command line compiler, even though IDEA supports both
020 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 26/11/2024
@shipilev.bsky.social WDYT, does it make sense, in theory, to have something like `@AdaptiveOutputTimeUnit`?
000 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 26/11/2024
I have a weird quirk about benchmarks -- when I see the JMH score not in the 2-4 digits range, I have to change the output unit so the result would be in the range. Otherwise, I have *really* hard time interpreting/comparing the numbers and error margins. Does anybody else have this at all?
110 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 26/11/2024
Nice talk!
120 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 25/11/2024
The whole post is hilarious: ssoready.com/blog/enginee...
ssoready.com
Australia/Lord_Howe is the weirdest timezone | SSOReady
Timezones are weird. But only finitely so. Here's the exact conceptual model you should have of them.
120 0
Vsevolod Tolstopyatov @qwwdfsad.bsky.social · 25/11/2024
TIL there is a timezone named "Antarctica/Troll". And it delivers on its name, its daylight saving time transition is two hours.
152 0