-
My first — and only — 0201 part
For fun, I put some 0201 capacitors behind a BGA part in this board. I decided to try it, and surprisingly it was possible. Not something I want to do again though.
-
DirtyPCBs and OSH Park: comparison
Long story short, I decided to try out an interesting new PCB-manufacturer, dirtypcbs.com. I decided to compare it against my current go-to, OSH Park, so I ran a new 4-layer board of mine through both. The 4-layer service at dirtypcbs was only just launched, and I had to ask Ian to let me in on […]
-
Playing with OSH Park tolerances
In some of my recent boards, which I will hopefully blog about soon, I decided to add some DRC-violating sections to test how well they would come out. OSH Park has pretty good tolerances — 5/5 trace/space with 10 mil holes and 4 mil annular rings, for their 4-layer boards — but they’re not *quite* […]
-
Breaking out the 3D printer again
It’s been almost exactly a year since I first got a 3D printer, and a couple things have conspired recently to convince me to take it off the shelf and try using it again. The most pressing need is for more parts boxes for organizing SMD parts: I use coin envelopes for storing cut strips […]
-
What does this print, #1
I feel like I spend a fair amount of time investigating corner cases of the Python language; Python is relatively well-documented, but the documentation falls very short of a full language specification, so often the only recourse is to write a test case and run against CPython as a reference. Sometimes the answers are pretty […]
-
Results of GIL experiments in Pyston
Today I decided to end my recent experiments with removing the GIL from Pyston. A couple things happened to prompt me to do this: the non-GIL version is able to beat the GIL-version performance with 2 threads, and profiling is showing that any further work will be fairly involved. I’ve been experimenting with a prototype […]
-
Python, the GIL, and Pyston
Lately, I’ve been thinking a bit about supporting parallelism in Pyston — this has been on my “wish list” for a long time. The state of parallelism in CPython is a bit of a sore subject, since the GIL (“global interpreter lock”) essentially enforces single-threaded execution. It should be noted that a GIL is not […]
-
Update on Pyston
This blog’s been pretty neglected lately, so I thought I’d post about progress on Pyston, since that’s where most of my time has been going. The main two goals for Pyston are performance and language compatibility; for the 0.1 launch (the original blog post) I focused on the main performance techniques, and recently I’ve switched gears […]
-
Progress on implementing exceptions for Pyston
I have to say, implementing exceptions for Pyston has been considerably harder than any of the other features I’ve implemented, including what seem like hard techniques such as inline caches and on-stack-replacement. I’d say it’s hard because 1) coming up with an IR representation of exceptions is difficult, and 2) actually implementing the exception-handling is […]
-
Digging into exception handling
I’m currently working on implementing exceptions for Pyston, and this is a post about the process. My thought has always been to implement them “using native exceptions”, which I vaguely understood to involve personality functions and stack unwinding. Most Python internal protocols are exception-based (think: AttributeError or StopIteration), so any Python implementation will need some ability […]