freenode/#clasp - IRC Chatlog
Search
4:11:04
karlosz
so im describing the problem of putting create cell instructions at the top of all enter instructions, instead of where they come in scope
4:11:16
karlosz
Bike was suggesting we create special ast node subclasses to denote where a variable comes in scope
4:12:34
karlosz
right, but that way of fixing things would preclude us from doing any drastic graph modifications between ast->hir and closure conversion, since graph modifications can invalidate the scope information easily
4:13:45
karlosz
yeah, when this is fixed we should be able to compile (loop with x do (block nil (if (null x) (setf x (lambda () (return))) (funcall x)))) correctly
4:14:54
karlosz
beach: do you know what has happened to the clim channel? i havent been able to connect to it recently. something about freenode getting lots of spam recently
4:16:41
beach
I had to use Clouseau on the ENTER-INSTRUCTION, but the combination was enough to find the problem.
4:17:21
karlosz
yes, that sounds like exactly what we need. any other ambiitious plans for it you plan on implementing in the near future?
4:18:09
beach
Not really. I was thinking of adding features as they are needed. It is a small program and since it is CLIM, it should be easy to add new features.
4:20:18
beach
As with HIR, for ASTs we have a better idea than GraphViz does what layout we would like to see.
4:22:15
beach
Right. But the particular bug I had the other day was that there was an FDEFINITION-AST that should not have been there, and I would have seen it immediately because the AST was quite small.
4:23:09
beach
As it was, I wasn't sure whether it was in the AST or whether the FDEFINITION-INSTRUCTION was introduced by some HIR transformation.
4:26:45
karlosz
right, you'd have to keep track of the object identities and draw the graph on paper or something to have a good picture
6:14:21
karlosz
::notify Bike I found a possible cause. Code like this (let ((*x* (or ... ...)))) can introduce a lexical location that is defined in two branches. Thus, we have our no dominating definer case we were looking for. I generalized the code to handle placing it in the lowest common ancestor node in the dominance tree.
6:16:12
karlosz
::notify Bike i meant that the let can introduce a lexical location which can be captured and has no dominating definer.
6:30:23
beach
The extraction of macro expanders to separate files turned out to have an interesting twist to it. Several such macro expanders call GET-SETF-EXPANSION, and if the expander code is executed by the host, the host version of that function will be called with a Cleavir environment, which does not work of course.
6:30:24
beach
The fix was simple: just replace calls to GET-SETF-EXPANSION by calls to the SICL-specific equivalent.
9:04:52
frgo
::notify beach Could I look at the code you wrote for the HIR visualizer? I would like to learn a thing or two ...
9:07:43
Colleen
beach: frgo said 2 minutes, 51 seconds ago: Could I look at the code you wrote for the HIR visualizer? I would like to learn a thing or two ...
9:09:13
beach
It is in the SICL repository in the directory Code/Cleavir/Intermediate-representation/Visualizer
9:13:28
beach
CLIM is something that most Common Lisp people seem to want to ignore in favor of some FFI-based solution instead. I think they are making a mistake.
9:13:54
beach
Plus, McCLIM is now being worked on by a significant number of people, so it is improving every day.
9:14:42
beach
But I guess most people don't care about improving the common tool set. They just want to get their own job done.
9:15:45
frgo
I tried several things, including Qt and what not. What I am trying to accomplish is a GUI like this: https://www.youtube.com/watch?v=PrVVo4tQY50
9:19:10
beach
However, it is usually very tricky to start with a particular desire for a look-and-feel and then try to twist the GUI toolkit into behaving like that.
9:19:45
frgo
Well, see https://www.youtube.com/watch?v=dgvz4foO49k - at about 30 sec into the video. That waterfall and spectrum display will display near-realtime data to be read from a port (ethernet connection).
9:20:22
beach
Having said that, I must point out that CLIM uses a layered design, making it possible (though perhaps not trivial) to substitute a custom layer for a standard one.
9:21:37
frgo
I've been trough jackdaniel's videos and tutorials. I am starting with the basic button stuff and working my way to the more complicated things ...
9:22:50
frgo
Yeah - I am ok with OpenGL and low-level graphics stuff. Now the bis question is how to make both things work together such that it fits the CLIM way.
9:25:54
beach
Both loke and jackdaniel hang out in #clim (as do I), and they are both doing some sophisticated stuff with it. You may want to ask your questions there.
9:26:43
beach
The IR visualizer is a simple program so it can use most of the default high-level features of CLIM. You may need to put in some more work.
9:27:47
beach
Also, McCLIM is not just an implementation of the CLIM II spec. It is meant to be a collection of GUI tools. So if you need something that is not already in McCLIM, your addition would be welcome.
9:36:01
jackdaniel
inpolygon sounds about right (exactly like this shapo-coloro-patterno design mess I'm dealing with now:)
9:36:57
jackdaniel
(add transformations and output records to that, and you need to transform ink and reply that transformation, what's exactly what I'm doing)