Re: lbstanza still active?


 

Hi Shaiful,

I looked through your slides, and they look very interesting! Jonathan and I learned a lot of lessons from our work on Chisel and FIRRTL, and we brought a lot of the same techniques over to Stanza and JITX. To answer your questions:

1) Stanza has an extremely powerful macro system which allows us to design a sophisticated seamless DSL focused on circuit board design. One of the problems we had writing Chisel was that we were limited by Scala's expressivity, and had trouble getting our system as seamless as we wanted.

2) In my opinion, the fundamental concept that makes CLOS such a great object system is generic functions, and Stanza's multimethod system provides the same expressivity and more. Because of Stanza's optional type system and function overloading, Stanza's multimethod system actually feels much more natural than CL's CLOS system, IMO.

3) Stanza's multimethod system supports standard OO design just fine. That was a design goal from the very start. One major difference is that we allow subtyping but deliberately do not allow subclassing. I.e. We have an equivalent for Java's "implements" keyword, but no equivalent for the "extends" keyword.

4) The REPL will have a built-in procedure for updating existing instances when the 'class' definition changes, however we will not allow users to hook into this procedure the same way that CLOS does. Our current focus is on making the REPL a very useful development tool, but not so much a persistent always-on system like Lisp.

Cheers, Patrick

Join lbstanza@groups.io to automatically receive all group messages.