>> Just to follow up on my last comment, I wonder if there is anything to >> be gained by adding a full interpreter? > > The action syntax suggests that adding a TCL or scheme interpreter > would be fairly trivial - except that actions don't have "return > values" (other than pass/fail). I suspect scheme is a better fit, due > to the list-y nature of data within pcb.
I agree. It's also a defacto standard with gEDA/gaf, another reason to use it. Although Scheme has generated some complaints from heavy-duty EDA guys (who prefer TCL), I think if we can get away from guile and it's problems, then the objection to Scheme is greatly reduced. >> The only thing I can think of is programmability, allowing users to >> write scripts *inside* of PCB which will automate repetitive layout >> jobs. However, my assumption is that most users who want to script >> PCB will just write *external* Perl programs to generate the action >> files, and then just read them into PCB. Is this a good assumption? >> Or do users prefer writing command scripts inside of their CAD tool? > > I think we really want full scripting within pcb. Sounds good. That's a "selling point", and is likely what commercial layout guys are used to. But we still want the ability to write the script outside of PCB and just read it in and have it executed. (As well as possibly enter the script *inside* of PCB, into a command window for example. That's what Tim Edwards did with PCB-3.0 after all. Maybe we could steal some of his code? But this is a work item for much later, IMO.) > I just don't know > what the right step is to get there from what we've got. But knowing this stuff is why you get paid the big bucks! ;-) > Wrapping a tiny-tcl around the existing action stuff is certainly one > way, or even a tiny-scheme. Just assume all actions return #f or #t. For now, sure. Putting tiny-scheme into PCB would make your life easy since it's already written & is meant for exactly this purpose. > The tricky part is making them useful - we'd need some way to *query* > the board, loop across elements/traces/layers, etc. Yup. Stuart _______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
