Why LLVM is slow; inst select, one pass, unrolling. gcc vs clang. PGO. Array init IR, try catch finally, throws, unwind tables, deopt, exceptional control flow. interior pointers. Stack unwinding vs branching checks
Why LLVM is slow; inst select, one pass, unrolling. gcc vs clang. PGO. Array init IR, try catch finally, throws, unwind tables, deopt, exceptional control flow. interior pointers. Stack unwinding vs branching checks
CCC Simple modules, no imports,
Simple ref types nullability, val/var, default init/clinit.
Compiletime eval, constexpr, rmw vs atomic vs ordering.
CCC Simple modules, no imports,
Simple ref types nullability, val/var, default init/clinit.
Compiletime eval, constexpr, rmw vs atomic vs ordering.
New endeavors. Class def, static, clinit, init, singletons, structural vs nomative typing. Match/switch syntax, class instances, overloading oper (). Overloading + for float, mixing float and decimals, 4bit floats, AI compilers
New endeavors. Class def, static, clinit, init, singletons, structural vs nomative typing. Match/switch syntax, class instances, overloading oper (). Overloading + for float, mixing float and decimals, 4bit floats, AI compilers
C++ code explosion, destructors, finalizers, lifetimes, scopes. Value vs Ref semantics vs references. Hylo value semantics with no copy on write. Ben update parser generator.
C++ code explosion, destructors, finalizers, lifetimes, scopes. Value vs Ref semantics vs references. Hylo value semantics with no copy on write. Ben update parser generator.
Modules, std lib, abi, portable ELF, cffi, build systems, dependencies, project root, xtc modules, as directories, diff in “module” impls, meaning of “import”, foreign modules. Typechecking dead code? Combinatorial explosion build targets
Modules, std lib, abi, portable ELF, cffi, build systems, dependencies, project root, xtc modules, as directories, diff in “module” impls, meaning of “import”, foreign modules. Typechecking dead code? Combinatorial explosion build targets
C++ debugging, -Og, safepoints, adr sanitization. kefir (from scratch C compile), SCCP in Simple, graph DSL. Strict aliasing, implicit conversions. Pointer comparison. GPU Kernels DSLs (Triton, Gluon, TLX), Object layout, NUMA. Distributed random forest
C++ debugging, -Og, safepoints, adr sanitization. kefir (from scratch C compile), SCCP in Simple, graph DSL. Strict aliasing, implicit conversions. Pointer comparison. GPU Kernels DSLs (Triton, Gluon, TLX), Object layout, NUMA. Distributed random forest
Burning Man, boats diving between dust devils. LSP, C backend, debug info, codegen , zydis, ASM. Ryan/quxlang update - literal types, bitwise operators, keywords, functions, containers. LLVM LogicalResult. GCC and LLVM funding, Triton, Cuda, ML , Mojo
Burning Man, boats diving between dust devils. LSP, C backend, debug info, codegen , zydis, ASM. Ryan/quxlang update - literal types, bitwise operators, keywords, functions, containers. LLVM LogicalResult. GCC and LLVM funding, Triton, Cuda, ML , Mojo
C++/11,20,26; partial -g code; Java vs C++ speed with debugging. x86/arm vs java mem model. x86 intrinsics in Java. LSPs. C++ vs Java containers. Compile-time alloc size. UI frameworks. Teaching programming via games. C++ default copy/move opers
C++/11,20,26; partial -g code; Java vs C++ speed with debugging. x86/arm vs java mem model. x86 intrinsics in Java. LSPs. C++ vs Java containers. Compile-time alloc size. UI frameworks. Teaching programming via games. C++ default copy/move opers
C++ copy/move constructors;
oper overloading semantics;
primitives as defined in stdlib or built-in;
All About Register Allocation (SSA chordal graph property; graph-color vs linear scan)
C++ copy/move constructors;
oper overloading semantics;
primitives as defined in stdlib or built-in;
All About Register Allocation (SSA chordal graph property; graph-color vs linear scan)
Modular, async memcopy, hyperthreading, Mill, Belt. LSTM, H2O, std libs, bulk search, SoA/AoS layout, indexes. Conditional types, const, views. Strong/weak/static types, C/C++ aliasing. C++ slow build times, overlay linkers, GPU mem limits, lang vs lib, layers upon layers
Modular, async memcopy, hyperthreading, Mill, Belt. LSTM, H2O, std libs, bulk search, SoA/AoS layout, indexes. Conditional types, const, views. Strong/weak/static types, C/C++ aliasing. C++ slow build times, overlay linkers, GPU mem limits, lang vs lib, layers upon layers
Trinary op parsing; && || XOR; Simon shrinking ptrs and obj headers; int size overflow; Class cardinality, erasure, vtables, gc bits, opaque types, sentinels, Stack traces, debug info, safe points, Java virtual threads, priorities, fair scheduling, gc
Trinary op parsing; && || XOR; Simon shrinking ptrs and obj headers; int size overflow; Class cardinality, erasure, vtables, gc bits, opaque types, sentinels, Stack traces, debug info, safe points, Java virtual threads, priorities, fair scheduling, gc
List of Cliff talks. Blockchain vs law. 10 hours LLVM setup, lldb, VSCode, Bazel bugs, Autosave, AI. Facebook Php to Hack. Repl, eval, JIT-per-GPU, tiered compiles. Twitter war story. Register & inline keywords, Simple/SoN on MLIR, MOJO self host
List of Cliff talks. Blockchain vs law. 10 hours LLVM setup, lldb, VSCode, Bazel bugs, Autosave, AI. Facebook Php to Hack. Repl, eval, JIT-per-GPU, tiered compiles. Twitter war story. Register & inline keywords, Simple/SoN on MLIR, MOJO self host
Modular; LLVM , PyPy , Mojo; JIT hints keywords, specializations, comp speed; vs Python3; vs gc, linear types. JVM chips. FFI. Self-hosting. Cuda, AI chips, PTX, MLIR. Targeting different levels; FFI vs ILP vs cpu vs gpu, fusion; FP precision. Keyboards
Modular; LLVM , PyPy , Mojo; JIT hints keywords, specializations, comp speed; vs Python3; vs gc, linear types. JVM chips. FFI. Self-hosting. Cuda, AI chips, PTX, MLIR. Targeting different levels; FFI vs ILP vs cpu vs gpu, fusion; FP precision. Keyboards
Simple update, Logging (for debugging, perf, h2o debug, rust serde, microservices dep graph discovery). Modules in Simple, classfile approach, imports, headers Dependency management: fetch vs Build, Imports, resolution, lock files
Simple update, Logging (for debugging, perf, h2o debug, rust serde, microservices dep graph discovery). Modules in Simple, classfile approach, imports, headers Dependency management: fetch vs Build, Imports, resolution, lock files
Simple ch23 methods; equality, copy-on-write, Hylo[1], Mojo[3], PTX[4], Spegion[5]. IR in .o files, keeping type info, separate compilation, symbol tables, constructors, AST, IRGen, Formal types, parsing, sem analysis, parse speed, Carbon[7], fuzzers
Simple ch23 methods; equality, copy-on-write, Hylo[1], Mojo[3], PTX[4], Spegion[5]. IR in .o files, keeping type info, separate compilation, symbol tables, constructors, AST, IRGen, Formal types, parsing, sem analysis, parse speed, Carbon[7], fuzzers
github.com/SeaOfNodes/S...
Notice this is *branch* ch23 not main's README.
Also, any review any chapter is fair game in main branch. Email me cliffc at acm.org.
Thanks!
github.com/SeaOfNodes/S...
Notice this is *branch* ch23 not main's README.
Also, any review any chapter is fair game in main branch. Email me cliffc at acm.org.
Thanks!
Quxlang, number literal highlighting & precedence,
Simple update, Generics in Quxlang, composition over inheritance, Impl vs interface inheritance. All About Equals, ==, eq, &a==&b, user-defined
Quxlang, number literal highlighting & precedence,
Simple update, Generics in Quxlang, composition over inheritance, Impl vs interface inheritance. All About Equals, ==, eq, &a==&b, user-defined
Simple cyclic types; also in Inko & C2 cyclic types; eq, cyclic_eq, printing cycles. Inko update - http stack, http1 .1 , io interface. Haskell’s unboxed types. XTC class loading java backend, static vars in XTC, H2O.
Simple cyclic types; also in Inko & C2 cyclic types; eq, cyclic_eq, printing cycles. Inko update - http stack, http1 .1 , io interface. Haskell’s unboxed types. XTC class loading java backend, static vars in XTC, H2O.
Cyclic & self types; hashing cycles. De bruijn indexes, java reflection field order, interning, serialization, compression. Dfa min. Finding new opts, escape analysis, opt patterns, profilers, wait states, perf analysis, bandwidth limits - latency, gc
Cyclic & self types; hashing cycles. De bruijn indexes, java reflection field order, interning, serialization, compression. Dfa min. Finding new opts, escape analysis, opt patterns, profilers, wait states, perf analysis, bandwidth limits - latency, gc
Abstract interp & partial eval, typing. Tracing JITs, interps, Animorphic and Java early years. Forth (do one!). Range checks & RCE, control, casting. Simple methods, CProp, cyclic types, this, forward refs, REPL, symbol resolution, self type. Job hunt.
Abstract interp & partial eval, typing. Tracing JITs, interps, Animorphic and Java early years. Forth (do one!). Range checks & RCE, control, casting. Simple methods, CProp, cyclic types, this, forward refs, REPL, symbol resolution, self type. Job hunt.
Simple update, code showcase, FFI, bindings. RiscV call & RPC, stackless exec, trade offs. Outlining. XTC runtime, duck types, interface lookup. JS dyn lookup, mono vs megamorphic calls. Modules, JS iterators, generators. Analytic GC solutions
Simple update, code showcase, FFI, bindings. RiscV call & RPC, stackless exec, trade offs. Outlining. XTC runtime, duck types, interface lookup. JS dyn lookup, mono vs megamorphic calls. Modules, JS iterators, generators. Analytic GC solutions
Simple update, strings, imports, nested types, const final fields as libc FFI “extern”. (im)mut ptrs & arrays, immut public of mut private, refs vs value, german strings. Remove Rust 'mut'. c++ constexpr. ULP math. Allan presents; exec strats & opts
Simple update, strings, imports, nested types, const final fields as libc FFI “extern”. (im)mut ptrs & arrays, immut public of mut private, refs vs value, german strings. Remove Rust 'mut'. c++ constexpr. ULP math. Allan presents; exec strats & opts
Simple portable IR, Reg Alloc, Spills, machine IR, ABI. AST vs graph. Chapter 22: FFI, by value or ref, object inlining, unify struct and arrays, strings. Hashcodes vs moving GC. Design choices for structures, names. Arenas, headerless objects.
Simple portable IR, Reg Alloc, Spills, machine IR, ABI. AST vs graph. Chapter 22: FFI, by value or ref, object inlining, unify struct and arrays, strings. Hashcodes vs moving GC. Design choices for structures, names. Arenas, headerless objects.
Simple ch21 bugs, RiscV, ARM emul, ELF, ABI, BB layout, swapping CMP operands vs negate. Ch22 - String, GC vs free, hello world compiler, method calls. New HLL nodes&opts, Mojo, transact mem, finding containers. Queries. More data struct opts, RPO
Simple ch21 bugs, RiscV, ARM emul, ELF, ABI, BB layout, swapping CMP operands vs negate. Ch22 - String, GC vs free, hello world compiler, method calls. New HLL nodes&opts, Mojo, transact mem, finding containers. Queries. More data struct opts, RPO