The Curious Engineer

All blogs / Compilers

wingolog

wingolog.org

wingolog: A mostly dorky weblog by Andy Wingo

CompilersLisp / Clojure / SchemePerformance / optimizationSociety / politics / economy

Posts
554 from 31 May 2002 to 16 May 2026
Posting
monthly (16 in the last year)
Kind
personal blog
Feed
https://wingolog.org/feed/atom

2026 14

  1. soot, solar, sedimentation, sin, & 'centers
  2. on hayek's bastards
  3. wastrel milestone: full hoot support, with generational gc as a treat
  4. the value of a performance oracle
  5. wastrelly wabbits
  6. free trade and the left, quater: witches
  7. nominal types in webassembly
  8. free trade and the left, ter: mises and my apostasy
  9. free trade and the left, bis: from cobden to lenin
  10. two mechanisms for dynamic type checks
  11. free trade and the left
  12. six thoughts on generating c
  13. ahead-of-time wasm gc in wastrel
  14. pre-tenuring in v8

2025 18

  1. in which our protagonist dreams of laurels
  2. the last couple years in v8's garbage collector
  3. wastrel, a profligate implementation of webassembly
  4. whippet hacklog: adding freelists to the no-freelist space
  5. guile lab notebook: on the move!
  6. whippet in guile hacklog: evacuation
  7. whippet lab notebook: guile, heuristics, and heap growth
  8. guile on whippet waypoint: goodbye, bdw-gc?
  9. a whippet waypoint
  10. partitioning ambiguous edges in guile
  11. whippet lab notebook: untagged mallocs, bis
  12. whippet lab notebook: on untagged mallocs
  13. tracepoints: gnarly but worth it
  14. whippet at fosdem
  15. baffled by generational garbage collection
  16. here we go again
  17. an annoying failure mode of copying nurseries
  18. ephemerons vs generations in whippet

2024 26

  1. preliminary notes on a nofl field-logging barrier
  2. needed-bits optimizations in guile
  3. fedi is for losers
  4. whippet progress update: feature-complete!
  5. conservative gc can be faster than precise gc
  6. on taking advantage of ragged stops
  7. whippet update: faster evacuation, eager sweeping of empty blocks
  8. javascript weakmaps should be iterable
  9. whippet progress update: funding, features, future
  10. finalizers, guardians, phantom references, et cetera
  11. copying collectors with block-structured heaps are unreliable
  12. enable persistent history in gdb
  13. cps in hoot
  14. hoot's wasm toolkit
  15. growing a bootie
  16. on hoot, on boot
  17. partitioning pitfalls for generational collectors
  18. hacking v8 with guix, bis
  19. on the impossibility of composing finalizers and ffi
  20. guix on the framework 13 amd
  21. family bike transportation
  22. nombrilliant, actually
  23. micro macro story time
  24. missing the point of webassembly
  25. scheme modules vs whole-program compilation: fight
  26. v8's precise field-logging remembered set

2023 27

  1. service update
  2. sir talks-a-lot
  3. a simple hdr histogram
  4. v8's mark-sweep nursery
  5. the last 5 years of V8's garbage collector
  6. colophonwards
  7. tree-shaking, the horticulturally misguided algorithm
  8. a whiff of whiffle
  9. whiffle, a purpose-built scheme
  10. i accidentally a scheme
  11. requiem for a stringref
  12. on safepoints
  13. a negative result
  14. on « the ministry for the future »
  15. parallel futures in mobile application development
  16. approaching cps soup
  17. structure and interpretation of ark
  18. structure and interpretation of flutter
  19. structure and interpretation of nativescript
  20. structure and interpretation of react native
  21. structure and interpretation of capacitor programs
  22. sticking point
  23. a world to win: webassembly for the rest of us
  24. pre-initialization of garbage-collected webassembly heaps
  25. whippet: towards a new local maximum
  26. three approaches to heap sizing
  27. parallel ephemeron tracing

2022 16

  1. ephemeral success
  2. i'm throwing ephemeron party & you're invited
  3. we iterate so that you can recurse
  4. a simple semi-space collector
  5. are ephemerons primitive?
  6. ephemerons and finalizers
  7. the sticky mark-bit algorithm
  8. on "correct and efficient work-stealing for weak memory models"
  9. new month, new brainworm
  10. accessing webassembly reference-typed arrays from c++
  11. just-in-time code generation within webassembly
  12. coarse or lazy?
  13. unintentional concurrency
  14. an optimistic evacuation of my wordhoard
  15. blocks and pages and large objects
  16. defragmentation

2021 6

  1. webassembly: the new kubernetes?
  2. cross-module inlining in guile
  3. guile's reader, in guile
  4. sign of the times
  5. here we go again
  6. 99% spam

2020 9

  1. on "binary security of webassembly"
  2. malloc as a service
  3. a baseline compiler for guile
  4. understanding webassembly code generation throughput
  5. multi-value webassembly in firefox: a binary interface
  6. multi-value webassembly in firefox: from 1 to n
  7. firefox's low-latency webassembly compiler
  8. state of the gnunion 2020
  9. lessons learned from guile, the ancient & spry

2019 5

  1. thoughts on rms and gnu
  2. fibs, lies, and benchmarks
  3. pictie, my c++-to-webassembly workbench
  4. lightening run-time code generation
  5. bigint shipping in firefox!

2018 7

  1. heap object representation in spidermonkey
  2. correct or inotify: pick one
  3. lightweight concurrency in lua
  4. design notes on inline caches in guile
  5. notes from the fosdem 2018 networking devroom
  6. instruction explosion in guile
  7. spectre and the end of langsec

2017 8

  1. a new interview question
  2. the hardest thing about hiring is avoiding the fash
  3. a new concurrent ml
  4. growing fibers
  5. an early look at p4 for software networking
  6. guile 2.2 omg!!!
  7. it's probably spam
  8. encyclopedia snabb and the case of the foreign drivers

2016 9

  1. An incomplete history of language facilities for concurrency
  2. is go an acceptable cml?
  3. concurrent ml versus go
  4. a simple (local) solution to the pay gap
  5. a lambda is not (necessarily) a closure
  6. guile compiler tasks
  7. talks i would like to give in 2016
  8. unboxing in guile
  9. the half strap: self-hosting and guile

2015 9

  1. embracing conway's law
  2. two paths, one peak: a view from below on high-performance language implementations
  3. type folding in guile
  4. amores prohibidos
  5. developing v8 with guix
  6. loop optimizations in guile
  7. cps soup
  8. Pfmatch, a packet filtering language embedded in Lua
  9. arrow functions coming to chrome 45!

2014 18

  1. state of js implementations, 2014 edition
  2. there are no good constant-time data structures
  3. scheme workshop 2014
  4. on yakshave, on color, on cosines, on glitchen
  5. generators in firefox now twenty-two times faster
  6. ffconf 2014
  7. ffs ssl
  8. high-performance packet filtering with pflua
  9. a wingolog user's manual
  10. revisiting common subexpression elimination in guile
  11. on gnu and on hackers
  12. flow analysis in guile
  13. effects analysis in guile
  14. stack overflow
  15. es6 generator and array comprehensions in spidermonkey
  16. compost, a leaf function compiler for guile
  17. elf in guile
  18. a continuation-passing style intermediate language for guile

2013 16

  1. optimizing let in spidermonkey
  2. a register vm for guile
  3. scheme quiz time!
  4. es6 generators and iteration in spidermonkey
  5. time for money
  6. but that would be anarchy!
  7. ecmascript generators from a performance perspective
  8. no master
  9. generators in v8
  10. inside full-codegen, v8's baseline compiler
  11. thoughts on blink
  12. sexuality and sexism
  13. on generators
  14. closedgl particle simulation in guile
  15. knocking on private back doors with the web browser
  16. an opinionated guide to scheme implementations

2012 19

  1. corps: bespoke text codecs
  2. Geneva
  3. quasiconf 2012: lisp @ froscon
  4. lakewards
  5. inside javascriptcore's low-level interpreter
  6. dltool mines dwarf
  7. rococo, and then rubble
  8. 10 years of wingolog
  9. inline cache applications in scheme
  10. list of ian lance taylor's linker articles
  11. stranger in these parts
  12. doing it wrong: cse in guile
  13. the merry month of ma
  14. an in-depth look at the performance of guile's web server
  15. for love and $
  16. palindromically delimited carnival
  17. unexpected concurrency
  18. eval, that spectral hound
  19. javascript eval considered crazy

2011 31

  1. webkittens! lexical scoping is in danger!
  2. fscons 2011: free software, free society
  3. JavaScriptCore, the WebKit JS implementation
  4. the user in the loop
  5. what's your C migration plan?
  6. partial evaluation in guile
  7. a schemer at jsconf.eu
  8. from ssa to native code: v8's lithium language
  9. the gnu extension language
  10. to guadec!
  11. a closer look at crankshaft, v8's optimizing compiler
  12. static single assignment for functional programmers
  13. v8: a tale of two compilers
  14. guile 2.0.2: building the guildhall
  15. security implications of jit compilation
  16. on-stack replacement in v8
  17. V8 is faster than GCC
  18. what does v8 do with that loop?
  19. value representation in javascript implementations
  20. javascript in 2011
  21. meta: per-tag feeds
  22. new beginnings
  23. git-brunch(1)
  24. storage primitives for the distributed web
  25. bart and lisa, hacker edition
  26. /usr/local, fedora, rpath, foo
  27. ports, weaks, gc, and dark matter
  28. guile 2.0 is out!
  29. gnu at fosdem
  30. "free as in beer"?
  31. types and the web

2010 23

  1. doing it wrong
  2. on the new posix
  3. meta data
  4. words that don't mean what you want them to: limn
  5. cap a la vaga general
  6. abusing the c compiler
  7. planetary rotations
  8. shoptalk
  9. living in a (hac)k-hole
  10. slouching towards bethlehem
  11. towards a gnu autonomous cloud
  12. code not burgers
  13. recent developments in guile
  14. ides of march
  15. with the prophetic voice
  16. guile and delimited continuations
  17. lunches and lunches
  18. sidelong glimpses
  19. sindicat, dia zero
  20. nukular
  21. readings
  22. twenty ten
  23. girations

2009 34

  1. gnu, gnome, and the fsf
  2. maxwell's equations of software
  3. in which our protagonist forgoes modesty
  4. codification
  5. hacker culture, permaculture
  6. class redefinition in guile
  7. optionals, keywords, oh my!
  8. case-lambda in guile
  9. digital interfaces
  10. rememberings
  11. read what i wrote on my shirt
  12. thigh fives
  13. wikipedia & guile
  14. goto 1965
  15. farewell, amat ciutat
  16. the good hack
  17. guadec ho!
  18. the chosen one
  19. in the beginning was the word
  20. hospitalized for approaching perfection
  21. poverty, riches
  22. the very merry month of may
  23. international lisp conference 2009, day three, part 1
  24. international lisp conference -- day two
  25. international lisp conference 2009 -- day one
  26. libreplanet 2009
  27. on psyntax
  28. notes from the city margins
  29. call/cc and ecmascript
  30. ecmascript for guile
  31. visualizing statistical profiles with chartprof
  32. days, months, years
  33. a brief history of guile
  34. git and bzr

2008 53

  1. i, lucifer
  2. another (turkey) bites the dust
  3. things I did
  4. dangling pointers
  5. ((lambda (x) ((compile x) x)) '(lambda (x) ((compile x) x)))
  6. whoisi impressions
  7. barna dispatch
  8. election night drinking games
  9. guile bar mitzvah
  10. dynamic dispatch: a followup
  11. dispatch strategies in dynamic languages
  12. libtool + gdb, a cure for pain
  13. merging in unrelated git branches
  14. breadcrumbs for future me
  15. the economy, stupid
  16. breaking silence, innocuously
  17. on the many roads to perdition
  18. introducing griddy
  19. so you want to build a compositor
  20. equanimity
  21. guile ? clutter ? quoi ?
  22. how to choose between equivalent options
  23. notes from the bosphorus
  24. stable guile-gnome released
  25. sunset skies; a plea for help; an outgrowing
  26. red pill
  27. pompous notes from the passive tense
  28. regarding decadence
  29. gnome in the age of decadence
  30. bounce!
  31. iraq veterans against the war; guile-vm
  32. an admission
  33. catching memory leaks with valgrind's massif
  34. a preview look at quagmire
  35. spamming the world into submission
  36. metablog
  37. object closure and the negative specification
  38. readings, and expoundings thereon
  39. git: a transcriptional database
  40. allocate, memory (part 2 of n)
  41. allocate, memory (part one of n)
  42. hear, memory
  43. fedora is the new ubuntu
  44. breathe it out, let it in
  45. how to vanish the hour
  46. random rules
  47. remorse
  48. using newfangled version control systems from emacs
  49. si cuela, cuela
  50. biting the hand that feeds
  51. I'm telling you
  52. hackings
  53. readings

2007 43

  1. yuletide notes
  2. in which our protagonist changes jobs
  3. convert a bazaar repository to a set of patches
  4. eeeevil
  5. when the mike is in my hand, i'm never hesitant
  6. reducing the footprint of python applications
  7. myopic ajuntament
  8. looking at the working week
  9. quarterly shmorterly
  10. the wax wing bits
  11. brought to you by torres viña sol
  12. random things
  13. b-b-b-barcelona
  14. vignettes
  15. monday evening dispatches
  16. unas merecidas vacaciones
  17. go put it in a washing machine
  18. happy birthday gnome!
  19. roundup
  20. dealing with mail
  21. documenting language bindings
  22. to birmingham!
  23. on the wire
  24. fold, xml, presentations
  25. mixed nuts
  26. rest in peace, anthony.
  27. bread crumbs
  28. foreign interfaces
  29. -*- text -*-
  30. the phoneless
  31. steal our code
  32. mayday, mayday
  33. random rules: ombliguismo
  34. How to switch a wordpress installation to use Debian packages
  35. photophonic updates
  36. positive
  37. fosdem, presentations, foo
  38. presentations and svg
  39. catalan dispatches
  40. Facts
  41. (pop! stack) => 'guadec-archives
  42. mucosidad
  43. refrigerator

2006 41

  1. songs about pottery
  2. why god made buttermilk
  3. radical adults
  4. autumn sweater
  5. high on sodium vapor
  6. curiosity and the catechism
  7. spottie ottie
  8. poetic notes of highschool journal keepers
  9. from france to the new continent, via galicia and barcelona
  10. the wild green yonder
  11. exciting papers!
  12. dissemination
  13. Irimi
  14. group w bench
  15. for every action
  16. sittin in a park in paris france
  17. rain on tin
  18. the verb calificar and the dance sardana
  19. the world is our clique
  20. Tunage
  21. pleasantries
  22. cypherpunks writecode
  23. cashing in your policy
  24. divendres
  25. passing through unconscious states
  26. So you want to stream a conference?
  27. feverish days, sleepless nights
  28. inside and outside
  29. pallet on the floor
  30. tenuous verticality
  31. tape ate the player
  32. it can't be all that pretty
  33. lost my wallet and feeling fine
  34. come on feet
  35. american dispatches
  36. quickly
  37. enjoying the widening gyre
  38. cvs-bisect
  39. bang bang
  40. Musical roundup of 2005 (yee ha)
  41. Slime

2005 48

  1. Craft; deceitful cunning; &c.
  2. plane from spain
  3. pos-pavo
  4. turkey preparations
  5. alice and bob
  6. post-harvest moon
  7. Google profiler a nice gesture but.
  8. Profiling
  9. Roundup
  10. Muneca
  11. dv capture
  12. eclipse
  13. Suboptimality
  14. Collected works
  15. buggin out
  16. new orleans
  17. lost days
  18. August fulcrum
  19. updates
  20. muntanya
  21. up to the date
  22. Zmake
  23. ppc ruminations
  24. and the jets
  25. Lists
  26. computerisation
  27. meeting morning from night
  28. Headed home
  29. how to know your visit is too long
  30. much ado
  31. sunday collection
  32. american updates
  33. text relocations and malicious media
  34. continuations
  35. pretending we're bunny rabbits
  36. odds and evens
  37. vaquero
  38. advogato plugin for wordpress 1.5
  39. Rollin the dice
  40. Inversion of inversion of control
  41. chocolate?
  42. purity of intent
  43. Powda
  44. Regarding Mr. Schaller
  45. Down settleage
  46. deceptive labelling
  47. spanish diaries
  48. canonical source

2004 52

  1. advogato importer for wordpress
  2. end of the year clearance
  3. notes from the +1 country code
  4. compound fractures
  5. culture and code
  6. turkles
  7. cromulation
  8. weenies
  9. bonobo-slay
  10. photobloggin
  11. nine months with arch
  12. wp-advogato
  13. Anarchists now and then
  14. Antelopes
  15. All Aboard
  16. SXML and authoring
  17. Precipitation
  18. XAML Schmaml
  19. Driving Mr. Schaller
  20. heading out
  21. literate programming with guile-lib
  22. oh, the luck!
  23. project updates
  24. schoolnet, guile-gnome
  25. cornucopioid
  26. advogato plugin for wordpress
  27. meta-notes
  28. classroom notes
  29. still hackin
  30. notes from the computer lab
  31. it shouldn't be this way
  32. random meditations
  33. post-advogato.
  34. posting from gnome-blog
  35. first post!
  36. administrative note
  37. 22 May 2004
  38. channeling satan
  39. pulling knuthes
  40. oversized crania
  41. canine consumption
  42. where we're at
  43. call the batmobile
  44. africasource postmortem
  45. africasource
  46. season of omagongo
  47. ondjuhwa oto lika po
  48. to be juiced
  49. cage writings
  50. Advogato 29
  51. liquid from the sky
  52. roasted baby jesus

2003 10

  1. catching chickens
  2. failure to fail
  3. hereby dubbed
  4. why texinfo?
  5. a first stab at modern texinfo
  6. graphical repl, one year moAfrica
  7. perfectly good airplanes
  8. farther on, still go farther
  9. Advogato 17
  10. computers in africa

2002 12

  1. speculations
  2. namibia
  3. mastery
  4. Advogato 11
  5. to the dark continent
  6. post-boston
  7. in praise of the break
  8. beatbox, communities, unemployment.
  9. gst-editor again
  10. bigass truck
  11. stackpusher
  12. first post