random-state.net

Nikodemus Siivola

<< next | top | previous >>

Crowdfunding Success, Work In Progress #
hacking, September 1st 2011

My SBCL crowdfunding campaign at IndieGoGo is over, with $16,507 raised and all goals met! (There were some folks who wanted to donate either after the deadline or via a different channel who aren't included in that sum, so the actual number is closer to $17k before IndieGoGo's, PayPal's, and taxman's cuts. I expect my final share to be around $12-13k after dust settles.)

Thank You, Everyone. I can't say this often enough. Your support has been overwhelming, and is greatly appreciated.

Sorting out all the perks is probably going to take most of today and tomorrow, then it's back to work on the project.

To summarize, here are the things that are going to happen, in the approximate order I expect to commit them. (This is a superset of the list at IndieGogo, because it includes some intermediate steps which are likely to get their own commits.)

  • DONE AND MERGED. SB-THREAD:MUTEX outside futex-platforms to be built on top of userspace spinlocks. CONDITION-WAIT is also getting a userspace implementation when futexes are not available. This will fix interrupt-safety issues with locks on non-futex platforms such as Darwin and Solaris.
  • DONE AND MERGED. CONDITION-WAIT, WAIT-ON-SEMAPHORE, and JOIN-THREAD in SB-THREAD, and RECEIVE-MESSAGE, RECEIVE-PENDING-MESSAGES in SB-CONCURRENCY to support timeouts and deadlines on all platforms.
  • DONE AND MERGED. Lock unification: SB-THREAD::SPINLOCK to become an alias for mutexes. Old names will be supported for a while, being deprecated gradually.
  • DONE AND MERGED.CAS support extended to SLOT-VALUE, STANDARD-INSTANCE-ACCESS, FUNCALLABLE-STANDARD-INSTANCE-ACCESS, and made user-extensible.
  • DONE AND MERGED.Allegro-style gates to be added to SB-THREAD or SB-CONCURRENCY.
  • Mostly done, merge pending.SB-THREAD:MUTEX to be renamed SB-THREAD:LOCK with similar renamings in the functions and macros. This is mainly motivated by the need for incompatible API-changes to lock acquisition and release. Old names will be supported for a fair while, being deprecated very gradually. Feature :SB-THREAD-LOCK can be used to detect the presence or absence of the new API.
  • Bughunt in progress. Locks outside futex-platforms are to be mostly fair by default.
  • Work in progress.Read/write locks to be added to SB-THREAD or SB-CONCURRENCY.
  • Work in progress.Sempahore notification objects to be added to SB-THREAD or SB-CONCURRENCY.
  • Other threading API change/enhancement, to be specified later.
  • A new portability library called Madeira will be implemented. I'll blog more on it once I'm starting to work on it in earnest. (Not started yet.)
  • SBCL's big compiler lock will be removed, so that parallel compilation is possible. Again, I'll blog more on this when it's time. (Not started yet.)

I will update this post as work progresses.