Log of the #nice channel on irc.freenode.net

Using timezone: Central European Time
* bonniot joins16:30
* ArtemGr joins17:14
* arjanb joins17:38
<DRMacIver>Hi18:05
<bonniot>hey18:06
<DRMacIver>bonniot: By the way, I don't think I've congratulated you on how amazing Nice is yet. :) So, congratulations.
(And to all the other contributors)
<bonniot>thanks :-)
* DRMacIver is amazed how often I come across something in Java that annoys me and think "I wonder if Nice fixes this?" only to discover the answer is yes.18:07
<bonniot>:-)
<DRMacIver>On an unrelated point, I had a thought about Nice constructors. I think the semantics are subtly wrong (or at least limited) and would like a second opinion.18:08
<bonniot>sure, let's hear it18:09
<DRMacIver>I think the behaviour of the constructor call at the end should be like return. Currently it doesn't allow branching. i.e. I can't do if (foo) { this(baz); } else { this(bar); }
Well, not like return, but closer to return.
<bonniot>yes, i think i agree with that, and that it's not possible yet simply because it's not implemented18:10
<DRMacIver>Cool. I figured that would be the case. :)
Thanks18:11
<bonniot>it should be as return in the way that one must make sure it is called once in all possible flows
<DRMacIver>Yeah
The sketching out of my compiler module project is proving interesting. I keep getting myself stuck in these ridiculous increasing spirals of features that I should add in order to do what I want. :)18:17
* DRMacIver is having to restrain himself.
<bonniot>yes, that can be a wise thing18:18
at least to design a first version that can reach a usable state
it can always be built upon later...
<DRMacIver>Yeah
I think the first version of the modules will not be as easy to use and dynamic as I'd like unfortunately.18:19
In particular it will probably require the compiler to recompile a small subset of itself to link in new modules, which is going to be fun.
<bonniot>sounds fun indeed!
<DRMacIver>Unless I can come up with a good way of enlarging the dispatch for a multimethod at runtime anyway.18:20
<bonniot>ah, that's very tricky indeed18:21
<DRMacIver>I think, ironically, it would be much easier without multimethods. :)
<bonniot>plus you would have problems with not checking if the new set of implementation is complete and unambiguous
so calling the compiler sounds like it makes some sense18:22
<DRMacIver>Yeah
* ArtemGr leaves
<DRMacIver>Basically what I have in mind is that a compiler module provides a new parser component that emits some subclass of the abstract syntax tree class (I've not sorted out the exact datatypes here) and an implementation for transforming things of that class into a AST for the language without that extra parser component. 18:24
(Modulo details about expressions)
So what needs to be added is the case for the new class on the multimethods which do the transformation.18:25
All rather up in the air though
* ArtemGr joins19:55
* ArtemGr leaves21:48
* markha joins22:28
<DRMacIver>Hm.23:39
* DRMacIver contemplates JParsec instead of Hadrian
Oh. Hi markha
Hm00:06
So is Nice basically compiling down to Scheme and then compiling to the JVM via kawa?
If so, that seems slightly mad. :)
But I guess Scheme is a pretty decent compilation target.00:07
Oh, I see. Kawa isn't just a scheme implementation.00:08
It's also the underlying framework.
<arjanb>Nice is targetting the intermediate stage of kawa compiler00:12
<DRMacIver>Yeah, I realise this now. I was just getting confused by the fact that kawa also refers to the kawa scheme implementation.00:13
My mistake. :)
<arjanb>i think it was the intention to make the expr.* packages a seperate thing but that turned out impractical or too much work00:15
<DRMacIver>Fair enough.
<arjanb>i find the code in it quite hard to read because of the combination of jvm and scheme pecularities and terminology00:17
* DRMacIver hasn't dared venture in there yet. :)00:19
Nicec is the first non-trivial compiler I've looked at, so I'm rather intimidated by the whole thing.00:20
(Which makes my whole plan rather ambitious, but I'd get bored if it weren't. :) )
<arjanb>:)00:24
<markha>hi DRMacIver01:04
speaking of compiler work, anybody got their hands on the second edition of the "Dragon Book" yet?01:05
<DRMacIver>Second edition? Isn't it on its fourth?01:08
(Whichever it's on, I bought the latest a few weeks ago)
<markha>no, second01:12
the second edition is a long time coming01:13
yeah, you probably got the new one then
does the cover of yours have a purple dragon, and purple "principles, techniques, and tools"?01:14
<DRMacIver>Yes01:31
Ah, I see. The first dragon book had a different title.01:32
So this is the third dragon book, but the second edition of Compilers: Principles, Techniques and Tools.
<markha>i only know of one dragon book01:36
<DRMacIver>Principles of Compiler Design preceded it.
(Two of the same authors)01:37
* bonniot leaves01:49