Saturday, May 23, 2009

cl-cairo2 interface poll

It seems that what I considered a wart is a feature to some people. I would like to make the users of cl-cairo2 happy, so I am considering reverting to the older interface. Also, I experimented with some other code I am using, and I think that wrapping my code in (let ((*context* context1)) ...) is not too much of a hassle anyway. So I am conducting an informal poll: please comment below. If you like the
(move-to context ...)
interface, say explicit, if you prefer the
(move-to ... &key (context *context*))
interface, say global. If you are indifferent, just state that. You can also tell me if you have code that already uses either interface, and whether you it would be a great inconvenience to change that (but I can't imagine that very many people have a lot of code using the explicit interface at this stage). I have listened to your arguments, so you won't need to repeat them, unless you feel that you have something crucual to add. I will take a look at the results on Tuesday, May 26, and update the library (and cl-2d) if necessary. I would rather complete the transition quickly, as I want the API to be relatively stable. I do know that in the previous post I said that there will be no more changes, guess I am dynamically inconsistent :-P


  1. Only a small addition: The idiom (let ((*context* context1)) ...) can also be simplified and expressed concisely by a trivial macro WITH-CONTEXT.

  2. Forgot my vote: as stated earlier I am in strong favor of the implicit calling convention.

    Inconvenience of migrating code: none.

  3. Looks like I am past the deadline, but just in case you are running late :)

    I vote for the global interface also.

  4. better late then never.. global please.

  5. I don't care that much about deadlines :-) I will make cl-cairo2's *context* global, I already made the changes, but I will only push it when cl-2d is done, which will happen in the next few days.