Christopher Allan Webber

Guile as a newish hacker, continued

Christopher Allan Webber at

I woke up at like 5:30AM this morning so I leisurely got ready and snuck some time into the deployment system I'm working on written in Guile, Opstimal.

I spent some time last night re-reading the Geiser manual (which provides a scheme development environment in emacs akin to what SLIME for common lisp) and have a better sense of what's going on. Damn! It's so comfortable to hack in Guile, especially now that I have my package actually set up. Geiser does a great job of documenting things and letting you jump around and eval code on the fly. Code feels so much more alive here than in anywhere else I've hacked (actually, maybe excepting emacs lisp, but it's nice to write something outside of emacs... but no wonder extending emacs is so often done, right?).

I've also now finally got it so that tests can run. I kind of miss the really nice output of the test suite systems in Python (py.test and nosetests)... I'm using SRFI 64 in a pretty low-level way and it's pretty bare-bones feeling. It does work though, and has one upside: any time I'm testing out the things I write in the REPL and verifying that things work, I can pretty much just copy and paste that into a test file and wrap it with (test-equals) or (test-assert) which is pretty damned good for building up a test suite without thinking about it too much. I'm going to miss the organization in the long run probably.

Diving into Guile has been a steep learning curve, but it's starting to get to the point when I'm not hacking in Guile now, I'm wishing I was. However, there's still quite a few downsides:

  1. I still really do not enjoy the autotools system. I feel like a grouch about this, but GNU and Guile deserve something way better. I have an automake file set up thanks to the friendly help of the community, but without that help and without referencing other projects, how could I figured it out? Automake means writing magic files which generate gobbletygook that seem to work with the right incantations, but I'm afraid some sorceror's apprentice bullshit is going to happen and I'm going to wake up drowning in autogenerated shell code some day.
  2. Still not enough libraries, and the userbase is so small.

There was some good talk about how to improve #2, and I promised to write a blogpost about the plan, and it's half-drafted. I'm optimistic!

Anyway, lots more serious "real work" to be done at the moment but thought I'd journal where I'm at!

RiveraValdez, Charles Stanhope, David Thompson likes this.

David Thompson shared this.

as far as build systems go, I've found cmake to be quite nice, I had to pull example files from another project I hack on (but not in the build system) and edit those to fit my new project.  But once I did that and customized, I understood the entire process and all but one file, and that was one of the find this particular dependency library and headers magic files (normally the dependency would supply this in some system wide way so that I wouldn't have to care about it, but this one didn't)

David "Judah's Shadow" Blue at 2015-04-03T15:53:10Z