Filip Jerzy Pizło Profile
Filip Jerzy Pizło

@filpizlo

Followers
2,469
Following
773
Media
200
Statuses
5,999

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
5 months
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
5
17
182
@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
149
@filpizlo
Filip Jerzy Pizło
2 years
So I wrote a malloc once
6
19
107
@filpizlo
Filip Jerzy Pizło
8 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
103
@filpizlo
Filip Jerzy Pizło
8 years
Introducing Riptide: WebKit's Retreating Wavefront Concurrent Garbage Collector.
0
46
99
@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
91
@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
23
91
@filpizlo
Filip Jerzy Pizło
2 years
I just wrote a concurrent GC. It doesn’t work at all lol. Life is good. 🤘
4
3
88
@filpizlo
Filip Jerzy Pizło
7 years
What Spectre And Meltdown Mean For WebKit.
1
56
83
@filpizlo
Filip Jerzy Pizło
6 months
Memory-safe CPython running in Fil-C has something to say!
Tweet media one
2
15
74
@filpizlo
Filip Jerzy Pizło
5 months
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
71
@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
7 months
I wrote a concurrent GC in one hour and it's 333 lines long. New personal record.
9
0
60
@filpizlo
Filip Jerzy Pizło
3 months
Fil-C is now only 10x slower than C on average. Best case, XZ utils decompress, is only 3x slower. Recall I started at 200x slower. And I'm not done optimizing. This is only the beginning of my rampage.
1
1
58
@filpizlo
Filip Jerzy Pizło
7 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
8 years
WTF happened to locks:
4
42
56
@filpizlo
Filip Jerzy Pizło
3 months
I ported zsh to Fil-C and got it to work well enough that Oh My Zsh works. Say hello to my super feature-rich and totally memory-safe Linux shell!
Tweet media one
1
5
55
@filpizlo
Filip Jerzy Pizło
6 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 got Lynx to compile with Fil-C. Only had to disable one case of a pool allocator to get there. Say hello to my totally memory safe web browser. 🕺🤘🙃
Tweet media one
2
4
56
@filpizlo
Filip Jerzy Pizło
5 months
Rust is a fad.
13
2
54
@filpizlo
Filip Jerzy Pizło
5 months
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
50
@filpizlo
Filip Jerzy Pizło
4 years
2020 is handing me one bad hand after another. Could use y’all’s support.
10
0
51
@filpizlo
Filip Jerzy Pizło
6 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
49
@filpizlo
Filip Jerzy Pizło
9 years
Introducing the WebKit B3 compiler: Includes lots of details and empitical evaluations.
4
38
48
@filpizlo
Filip Jerzy Pizło
7 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 months
Just made Fil-C ~10x faster. Less than a week of work (started on Saturday). Just two optimizations got me there, and there's still a ton of obvious stuff to do.
2
4
46
@filpizlo
Filip Jerzy Pizło
4 months
This is what I'm building.
Tweet media one
0
2
46
@filpizlo
Filip Jerzy Pizło
4 years
JSC GC validation just got a lot cooler:
0
7
41
@filpizlo
Filip Jerzy Pizło
7 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
5 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
4 years
@kipperrii Reading code is an underrated skill.
0
1
36
@filpizlo
Filip Jerzy Pizło
7 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
2 months
Fil’s Unbelievable C Compiler now runs an inlining pipeline before the program gets pizlonated. This makes Fil-C ~40% faster than before on the PizBench benchmark suite geomean. On stepanov_container, Fil-C++ is now only ~2x slower than Yolo-C++.
2
2
35
@filpizlo
Filip Jerzy Pizło
4 months
Great news everyone. My compiler can compile hello.cpp with exceptions enabled without crashing! (Don't ask me if it actually runs. I'm too scared to find out. I'll save that for another day.)
1
0
34
@filpizlo
Filip Jerzy Pizło
7 years
Throwing exceptions just got 2x faster in JSC.
1
6
33
@filpizlo
Filip Jerzy Pizło
4 months
Fil-C++ now supports exceptions. Cool fact: even the libc++abi personality function is memory safe (if it gets anything wrong then filc panic).
Tweet media one
1
3
34
@filpizlo
Filip Jerzy Pizło
4 years
For-of in JSC just got a lot better.
1
3
32
@filpizlo
Filip Jerzy Pizło
3 months
Fugc it, I'm moving my development to Linux. And shooting for a PoC that involves an Awesome App (TM).
Tweet media one
0
2
33
@filpizlo
Filip Jerzy Pizło
6 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
31
@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
4 months
I can now compile *and* run hello.cpp with exceptions enabled. Note that this means I can compile and run libc++ and libc++abi with exceptions enabled. Now.... I just need to see what happens when I actually throw an exception. 🙈😱
Tweet media one
1
0
30
@filpizlo
Filip Jerzy Pizło
2 years
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
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
4 months
Working on adding “zero cost” C++ exception handling, libunwind, and setjmp/longjmp to Fil-C. Longjmp from signal handlers will be especially interesting. Wish me luck!
1
1
29
@filpizlo
Filip Jerzy Pizło
7 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
5 months
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
Fil-C now works on Linux/x86_64, too.
0
2
27
@filpizlo
Filip Jerzy Pizło
20 days
Holy cow, XZ decompress with Fil-C is now only 1.4x slower than native C (since I started getting SIMD to work in Fil-C). That's seriously cool!
2
1
27
@filpizlo
Filip Jerzy Pizło
6 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
24
@filpizlo
Filip Jerzy Pizło
6 years
:-)
Tweet media one
4
0
25
@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
6 years
Everyone say hi to Grace Zofia Pizlo. :-)
3
0
25
@filpizlo
Filip Jerzy Pizło
4 years
So much awesome:
0
8
25
@filpizlo
Filip Jerzy Pizło
4 months
Fil-C now supports memory-safe setjmp/longjmp. 🤣😂🥳
2
4
24
@filpizlo
Filip Jerzy Pizło
5 months
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
4 months
DO IT DO IT GO GO GO!!!
Tweet media one
1
0
22
@filpizlo
Filip Jerzy Pizło
7 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
4 months
@jarredsumner My view of why JSC has a cheaper and better embedding interface is that it's all about JSC's use of nonmoving, conservative-on-the-stack GC. That was a conscious bet on my part >10 years ago and I'm happy to see that it paid off.
2
2
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
30 days
My abstract interpreter has won the practice round. In a program like `int foo(int* x) { return x[0]+x[1]+x[2]+x[3] }`, it schedules only one combined check for all four accesses. Lots of work remains before it can handle anything more complex...
1
0
22
@filpizlo
Filip Jerzy Pizło
5 months
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
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
4 months
FilBSD buildworld is starting to build libc! 😂🤘🎉
Tweet media one
1
1
21
@filpizlo
Filip Jerzy Pizło
5 months
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
0
0
20
@filpizlo
Filip Jerzy Pizło
6 months
BTW, this is what it looks like for Fil-C to find that bug. What a cool stacktrace! 😲😍
Tweet media one
2
0
20
@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
21
@filpizlo
Filip Jerzy Pizło
5 months
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
20
@filpizlo
Filip Jerzy Pizło
3 months
OK, Fil-C is now a Linux/X86_64 project. Darwin and FreeBSD support is dropped. This allows me to use the Musl Sando architecture: same version of musl below and above libpizlo, allowing much cleaner syscall support. This will let me support a lot more stuff than before.
2
2
20
@filpizlo
Filip Jerzy Pizło
6 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
4 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
18
@filpizlo
Filip Jerzy Pizło
7 years
Pretty cool article about some shit I did. #gchell
3
6
19
@filpizlo
Filip Jerzy Pizło
3 months
Super tempted to move all Fil-C development to Linux/x86_64. If it becomes successful there, then it can always be ported to other platforms.
1
1
18
@filpizlo
Filip Jerzy Pizło
3 years
a monster years in the making
1
2
19
@filpizlo
Filip Jerzy Pizło
4 years
2020 is hard.
1
0
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
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
4 years
Really proud of where I work and who I get to work with :-)
1
1
19
@filpizlo
Filip Jerzy Pizło
2 months
Cool story: process shared pthread primitives work great in Fil-C! And it is in fact totally memory safe (the shared memory has int type, which is enough for pshared mutex/cond since they use int futexes for coordination).
Tweet media one
0
2
18
@filpizlo
Filip Jerzy Pizło
6 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
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
9 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
5 months
Fil-C++ now works on FreeBSD/X86_64.
Tweet media one
2
3
17