Tuesday, May 11, 2004

Felton Industries

Heyo. The weather gets hot, nobody wants to blog any more. I get it. It's hot. Let's keep this short.
  • My job is boring the shits off me. I've been slinking out at the earliest acceptable time every day.
  • We're moving. Most of you already know, but yeah, we're getting a bigger place, down by the Park, on 12th St., it's $200 more per month for each of us. We're doing it June 1st. Hopefully we can keep our phone number. I like it.
  • Took the cone off the cat's head because she'd figured out a way to get around it and she promptly chewed a hole in her stomach. We started slathering this bitter ointment on her, and it might be working. At the very least, she's is extremely ticked off.
  • Way to go, Ogrish, on posting the head-chopping video. Some (nu-)media outlet just referred to them as "once-again courageous." I remember when their layout looked a heck of a lot like Stile's and their content was a heck of a lot more like Steak n' Cheese's.
And now for the long part:

Finished the Scheme core, I think -- had to relearn a lot of Scheme syntax. For some reason, I thought it would be okay to put parentheses around everything. Not cool. Sometimes, like when you're setting up a catch block or using 'begin', you don't want to over-evaluate. Of course, Guile won't tell you this until someone throws a type exception further down the line, so... so. Anyway, the Big Frustrating Thing I fixed this weekend was yet another COOP-threads SNAFU, this time that on account of the behavior of the garbage collector, Guile threads will hang if the Guile-controlling C thread goes to sleep. It is hard to make the C thread go dormant without busy-waiting and without making Guile sleep also. The epiphanous moment occurred while I was staring at this Guile console I'd opened to test out some threading stuff by hand -- I remembered that the little command-prompt interface (they call it PREC, I think), is written in Scheme, and that threads can run while it's waiting for input! So, in C, I created a named pipe (thank you, unistd.h) and had the work-submitting function put '0's into one end of the pipe and had Guile doing a blocking read on them, one at a time, semaphore-style, through a Scheme port wrapping the other end.

Good luck on your finals, M-biddy, if you have any more, even!