Paul Bone

Blog

— Mentoring
Recently I had the opportunity to do some mentoring and would like to reflect and share some insights.
— A Simple Bytecode Interpreter
In this article I'm going to explain how basic bytecode interpreters work, such as the first one written for Plasma's bytecode format.
— Plasma and WebAssembly
Considerations for supporting WebAssembly in Plasma.
— Calls for papers
A list of CFP lists, and an idea for finding them more easilly
— More on closures
I describe two papers describing how closures are compiled in some other languages and describe how this relates to Plasma.
— Compiling closures
When a function pointer takes a single machine word, and a closure two or more, how can you represent closures in a polymorphic way?
— Low vision and how I see the web
I finally wrote about my eye sight and how this affects my use of the web.
— icecc and ccache - Compiling lots of C++ quickly
Firefox is a big project and takes quite some time to compile. I've set up icecc and ccache to help speed up these compilations. This article may guide anyone wanting to set up these tools to speed up their own lengthy C/C++ compilations.
— Scoping ideas for Plasma
A reddit discussion led me to write down some ideas I'd been considering for scopes in Plasma.
— GC vs other memory management techniques
In response to a question on reddit, I share my thoughts about GC vs ref counting and Rust's object lifetime system.
— Tail Recursion, do I have it? how to get it?
We're introduced to tail recursion early in our functional programming journey. But it is well worth revisiting for the seasoned or advanced functional programmer, it can be more subtle than you know.
— Back in the USA
I took a trip to the USA for a job interview and also took a look around San Francisco.
— More about Memory Fragmentation in BDW GC
This is a follow up article about memory fragmentation. I show how heap usage and utilisation changes over time for Prince and demonstrate the kind of information that can be extracted from BDW GC without too much effort.
— How to Allocate Memory — Code Generation
How do you generate code that allocates memory? This isn't about memory management algorithms, or language design concepts. But how to translate Plasma code that allocates memory (like use of a data constructor) into PZ abstract machine code.
— Explaining GADTs
In this article I work through a problem that can be solved elegantly with GADTs
— Memory Fragmentation in The Boehm-Demers-Weiser Garbage Collector
In this article I explore an interesting memory fragmentation situation in the BDW Garbage Collector. This covers a program that crashes due to fragmentation (despite 288MB free within the heap), BDWBC's heap organisation and why the 288MB cannot be used for this allocation and some potential solutions.
— Code Loading and Security
In this article I explain the interaction between execute protection and code loading.
— Compose :: Melbourne Conference
Today I attended and presented at Compose Melbourne
— Conversation with William Byrd
I had an interesting chat with William Byrd about logic programming, relational programming and parallelism.

Subscribe using RSS.