Filip Jerzy Pizło Profile
Filip Jerzy Pizło

@filpizlo

Followers
2,303
Following
725
Media
180
Statuses
5,698

PL/VM/compilers @ Epic Games

Joined September 2008
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
@filpizlo
Filip Jerzy Pizło
1 month
Memory-safe SQLite, everyone. It took a 15KB patch to SQLite to get this far. Fil-C is where it's at, holy fugc!
Tweet media one
6
17
186
@filpizlo
Filip Jerzy Pizło
6 years
Some folks get religious about C versus C++. I love both languages. Favorite thing about C: transparency - every expression has a clear meaning. Favorite thing about C++: abstraction - you can say so much with so few bytes. What's important is they're both better than Rust.
4
18
153
@filpizlo
Filip Jerzy Pizło
2 years
So I wrote a malloc once
6
19
106
@filpizlo
Filip Jerzy Pizło
4 months
Memory safe OpenSSH client just made its first login and it was beautiful. Also memory safe OpenSSL. And libc. It all works in Fil-C.
Tweet media one
3
18
105
@filpizlo
Filip Jerzy Pizło
7 years
Introducing Riptide: WebKit's Retreating Wavefront Concurrent Garbage Collector.
0
46
102
@filpizlo
Filip Jerzy Pizło
3 years
10 years at the fruit company. :-)
4
0
96
@filpizlo
Filip Jerzy Pizło
7 years
I came up with a scheme that makes it possible to add threads to JavaScript with super low overhead!
5
40
92
@filpizlo
Filip Jerzy Pizło
5 years
This was a fun project to watch. And what a gloriously huge patch. Our bet that certain interpreter speed optimizations are inconsequential to JIT perf and so only cost memory paid off.
4
24
93
@filpizlo
Filip Jerzy Pizło
1 year
I just wrote a concurrent GC. It doesn’t work at all lol. Life is good. 🤘
4
3
88
@filpizlo
Filip Jerzy Pizło
6 years
What Spectre And Meltdown Mean For WebKit.
1
56
86
@filpizlo
Filip Jerzy Pizło
1 month
Memory-safe CPython running in Fil-C has something to say!
Tweet media one
2
15
75
@filpizlo
Filip Jerzy Pizło
22 days
Memory-safe C++! Thanks to Fil-C now being able to compile libcxxabi and libcxx and being able to handle the (pizlonated version of the) Itanium C++ ABI, including member function ptrs, vtables with virtual base classes, etc.
Tweet media one
1
6
72
@filpizlo
Filip Jerzy Pizło
2 years
@jarredsumner That’s not programming. This is programming.
Tweet media one
0
1
64
@filpizlo
Filip Jerzy Pizło
2 months
I wrote a concurrent GC in one hour and it's 333 lines long. New personal record.
9
0
62
@filpizlo
Filip Jerzy Pizło
8 years
WTF happened to locks:
4
43
57
@filpizlo
Filip Jerzy Pizło
5 years
Fun fact: JSC’s top tier JIT, the FTL, executes our bytecode instructions faster than the CPU it’s running on executes machine code instructions.
4
9
55
@filpizlo
Filip Jerzy Pizło
3 months
I've got a memory-safe OpenSSH sshd that just accepted a connection from a memory-safe OpenSSH ssh client. Fil-C is the real deal, y'all. Fuck yeah!
4
9
57
@filpizlo
Filip Jerzy Pizło
1 month
Rust is a fad.
14
2
53
@filpizlo
Filip Jerzy Pizło
26 days
Fil-C wouldn't be possible without the awesomeness of the clang/llvm codebase. I love how anytime I have a complex question about how C or C++ semantics are handled, the answer is in the code, clear as day, written in a wonderful hacker-friendly style.
2
5
52
@filpizlo
Filip Jerzy Pizło
4 years
2020 is handing me one bad hand after another. Could use y’all’s support.
10
1
52
@filpizlo
Filip Jerzy Pizło
5 years
This doesn’t get said enough: the ES spec is really great. The best language spec I’ve had the pleasure of implementing to. So unambiguous, even when that wasn’t the easiest thing to do.
2
2
50
@filpizlo
Filip Jerzy Pizło
8 years
Introducing the WebKit B3 compiler: Includes lots of details and empitical evaluations.
4
38
49
@filpizlo
Filip Jerzy Pizło
6 years
Spectre means that you now need next-level talent to write a secure language VM. It’s game changing. It’s the most exciting thing I have seen in my life.
1
9
46
@filpizlo
Filip Jerzy Pizło
3 years
JSC GC validation just got a lot cooler:
0
7
41
@filpizlo
Filip Jerzy Pizło
6 years
My view: I prefer to publish blogs these days because I get *more* peer review than if I submitted for publication. I get reviews faster, from more people, and those reviews lead to more constructive conversations. That's how peer review should be.
4
12
41
@filpizlo
Filip Jerzy Pizło
6 years
:-)
Tweet media one
8
0
40
@filpizlo
Filip Jerzy Pizło
4 years
Ever wanted to know how polymorphic inline caches work in JSC? This post about `delete` is a really good tour:
2
17
38
@filpizlo
Filip Jerzy Pizło
3 years
@kipperrii Reading code is an underrated skill.
0
1
37
@filpizlo
Filip Jerzy Pizło
6 years
WebKit IsoHeap = C++ template program that generates a first-fit amortized O(1) malloc with atomicless fast paths specialized for a type (size + alignment), which guarantees that once a virtual address gets used for a type, it never gets used for any other type.
2
4
35
@filpizlo
Filip Jerzy Pizło
7 years
Throwing exceptions just got 2x faster in JSC.
1
6
33
@filpizlo
Filip Jerzy Pizło
4 years
For-of in JSC just got a lot better.
1
3
32
@filpizlo
Filip Jerzy Pizło
2 months
This is what UAF looks like with FUGC. This is guaranteed. It'll always trap. No tagging. No probabilities. No shenanigans. No way around it. Your program just gets fugced.
Tweet media one
1
2
32
@filpizlo
Filip Jerzy Pizło
4 years
@NovallSwift My philosophy: If you make a mistake in production just remind yourself how cool it is that your code is in production and then skip the part where you fault/blame.
1
2
32
@filpizlo
Filip Jerzy Pizło
6 years
Fun fact: JavaScriptCore’s concurrent/parallel JIT and concurrent/parallel GC use “cowboy races” liberally. They would not work in TSAN, Rust, clang thread safety analysis or anything that ties types/fields to mutexes or uses the classic definition of races.
6
5
29
@filpizlo
Filip Jerzy Pizło
1 year
My concurrent GC is so awesome right now that I get concurrent crashes in the main thread and the GC thread, and hilariously, neither threads' crash is caused by the third bug, where the GC deletes the entire heap (we don't get far enough to crash from that UAF). VICTORY!!!
2
1
29
@filpizlo
Filip Jerzy Pizło
6 years
:-)
Tweet media one
4
0
26
@filpizlo
Filip Jerzy Pizło
14 days
Fil-C on FreeBSD/X86_64 is now at parity with Darwin/AArch64. Here's a memory-safe ssh client on my Mac connecting to a memory-safe sshd server on my FreeBSD ec2 instance.
Tweet media one
0
3
27
@filpizlo
Filip Jerzy Pizło
3 months
We are now live with Verse runtime error telemetry! See bottom of for more info. Or, just go to , click the Verse tab, and if your project has errors in live, they will show up there. Happy debugging!
3
6
27
@filpizlo
Filip Jerzy Pizło
4 years
So proud right now. :-) Wow.
2
1
26
@filpizlo
Filip Jerzy Pizło
7 years
Nothing like writing a patch that spans malloc, GC, and the JITs. I fucking love WebKit.
0
2
26
@filpizlo
Filip Jerzy Pizło
2 months
My favorite thing about POSIX C programming is how many headers you have to include to do things. Makes me feel so accomplished and professional for knowing all their stupid names. Am I crazy?
3
0
25
@filpizlo
Filip Jerzy Pizło
3 years
So much awesome:
0
8
25
@filpizlo
Filip Jerzy Pizło
6 years
Everyone say hi to Grace Zofia Pizlo. :-)
3
0
25
@filpizlo
Filip Jerzy Pizło
20 days
If you have an Apple Silicon Mac and you want to try memory-safe Fil-C and Fil-C++, here's a binary release. Just untar and run ./setup.sh. LMK if you run into problems, but no guarantees since nobody is paying me to work on this.
4
3
24
@filpizlo
Filip Jerzy Pizło
6 years
@migueldeicaza Because sausages don’t have a borrow checker. You can build binary trees with sausages, for example.
0
0
22
@filpizlo
Filip Jerzy Pizło
8 years
The JSC concurrent GC just ran Octane/splay to completion. 10x reduction in pause times already.
0
9
21
@filpizlo
Filip Jerzy Pizło
2 months
I just wrote the world's shittiest liveness analysis an I'm so proud of myself. (Yes, doing an accurate GC means writing a liveness analysis over llvm IR. No, llvm IR doesn't want you to do that. But I don't care what llvm thinks.)
3
0
22
@filpizlo
Filip Jerzy Pizło
3 years
I went to Hell for 3.5 years and came back with a tasty malloc. Worth it.
0
1
22
@filpizlo
Filip Jerzy Pizło
1 month
This jpeg was encoded using memory-safe IJG libjpeg-6b. It only took a one line change to get it to build and run with Fil-C (ALIGN_TYPE in jmemmgr.c).
Tweet media one
1
0
21
@filpizlo
Filip Jerzy Pizło
1 month
BTW, this is what it looks like for Fil-C to find that bug. What a cool stacktrace! 😲😍
Tweet media one
2
0
21
@filpizlo
Filip Jerzy Pizło
2 years
@munificentbob To its credit, it would still be a great language even if they were called “butt” and “potato”.
1
0
21
@filpizlo
Filip Jerzy Pizło
17 days
I've got Fil-C on FreeBSD/x86_64 working well enough to print hello, but so far with out a stdlib (I haven't gotten a libc working yet, just libpizlo/libfilc_mincrt).
Tweet media one
2
2
21
@filpizlo
Filip Jerzy Pizło
15 days
curl+openssl now work on Fil-C/FreeBSD/X86_64. Getting closer to parity with Fil-C/Darwin/AArch64!
Tweet media one
1
2
21
@filpizlo
Filip Jerzy Pizło
3 years
@thingskatedid It’s the state of the art of probabilistic GCs. Because there is some probability that it will work for some program, and that program will experience unbelievably short GC pauses with this technology.
0
0
19
@filpizlo
Filip Jerzy Pizło
5 years
Achievement unlocked: I taught Molly enough about programming that she's now able to understand what kind of programming I do (and she was curious enough to ask).
4
0
20
@filpizlo
Filip Jerzy Pizło
3 years
a monster years in the making
1
2
19
@filpizlo
Filip Jerzy Pizło
5 years
@agent_cooper I think it's actually a super popular opinion held by a folks who are too busy building real systems instead of bitching on twitter/hackernews. I ❤️ C.
0
0
18
@filpizlo
Filip Jerzy Pizło
6 years
Pretty cool article about some shit I did. #gchell
3
6
19
@filpizlo
Filip Jerzy Pizło
7 years
I've been thinking about the algorithms in for about six years now. Feels good to have finally shared it.
2
2
18
@filpizlo
Filip Jerzy Pizło
4 years
Really proud of where I work and who I get to work with :-)
1
1
19
@filpizlo
Filip Jerzy Pizło
4 years
2020 is hard.
1
0
19
@filpizlo
Filip Jerzy Pizło
8 years
I wanted to know what it's like to use ES6 so I rewrote part of B3 in it. What fun! It's my new favorite language.
0
6
19
@filpizlo
Filip Jerzy Pizło
5 years
Undefined behavior is so dumb lol
1
1
16
@filpizlo
Filip Jerzy Pizło
8 years
The WebKit retreating wavefront concurrent/parallel/generational GC is enabled on 64-bit as of r209694. Hopefully for good this time!
1
4
17
@filpizlo
Filip Jerzy Pizło
5 months
The best part of my personal project is that every commit message can be "more shit".
2
0
17
@filpizlo
Filip Jerzy Pizło
2 months
My compiler compiles. I am terrified of seeing the horror of what will happen when my compiled compiler tries to compile something. My bet: segfault in the InstCombine that runs downstream from me. 😆
2
0
17
@filpizlo
Filip Jerzy Pizło
5 years
Here's a pretty good explanation of how I like to do SSA, which decouples Phi from the CFG and ties it to effects:
0
1
17
@filpizlo
Filip Jerzy Pizło
8 years
It's called "Proper Tail Calls", not "Tail Call Optimization". It's not an optimization. It's a guarantee regarding asymptotic space usage.
1
3
17
@filpizlo
Filip Jerzy Pizło
16 days
Fil-C++ now works on FreeBSD/X86_64.
Tweet media one
2
3
16
@filpizlo
Filip Jerzy Pizło
6 years
The Pizlo girls.
Tweet media one
0
0
15
@filpizlo
Filip Jerzy Pizło
21 days
@seanbax You know how sometimes folks claim they are doing things for reason X but really they are doing it for reason Y? Folks claim to push for Rust because it's memory-safe, but really it's because new languages are funner. What you and I are doing faces an inherently uphill battle.
10
2
16
@filpizlo
Filip Jerzy Pizło
8 years
DOMJIT is a thing! @Constellation
1
11
15
@filpizlo
Filip Jerzy Pizło
5 years
Undefined behavior is bad for security because it creates a disconnect between programmer expectation and reality, and the reality is always in flux. It’s crazy that we still have UB in widely used languages.
0
2
15
@filpizlo
Filip Jerzy Pizło
6 years
@fniephaus @ICOOOLPS By the way, slides (PDF or Keynote) are available here:
3
1
15
@filpizlo
Filip Jerzy Pizło
8 years
Awesome write-up on some of JSC's optimizations for object-oriented programs:
0
6
14
@filpizlo
Filip Jerzy Pizło
8 years
I can do my holiday shopping with a browser that has a concurrent GC. As a long-time concurrent GC nerd, that's pretty fucking neat.
0
0
15
@filpizlo
Filip Jerzy Pizło
1 year
Current status: I thought my concurrent GC was working, but it was just a favorable race condition. Sometimes race conditions really are the best conditions!
0
0
14
@filpizlo
Filip Jerzy Pizło
4 years
Hacker fueling station 9000
Tweet media one
1
0
15
@filpizlo
Filip Jerzy Pizło
4 years
Engineer #1 : “how big is your patch?” Engineer #2 : “about 700kb” Engineer #1 : “oh then that’s not so crazy!” I love my team. :-)
0
1
15
@filpizlo
Filip Jerzy Pizło
3 years
I love working with this team. :-)
@zerointerupt
RichL
3 years
Still time to apply for people who are interested :) #apple #hiring #security #redteam #howdoashtagswork ?
0
8
14
0
1
14
@filpizlo
Filip Jerzy Pizło
3 years
@martinwoodward JavaScript? That’ll never take off, Java applets are clearly the future.
0
0
14
@filpizlo
Filip Jerzy Pizło
8 years
Don't let anyone tell you that tail calls are hard for debugging. They're not in JSC!
1
15
14
@filpizlo
Filip Jerzy Pizło
8 years
Concurrent GC looks like it's a 5% improvement on splay-throughput and a 4.4x improvement on splay-latency. That's neat!
1
1
14