The old lab system was great in its time. I now think we'd be better off with a simpler and more direct mechanism. I've taken a stab at the direction I think we should go the the 'simple project managed execution' facility in JHS (which can be used in any front end). I think it makes for adeguate, but much simpler labs, and has the advantage it can be used for managed execution with any script.
On Tue, Sep 18, 2012 at 9:34 PM, Ian Clark <earthspo...@gmail.com> wrote: > Mac "Spotlight" shows me several Labs in j602 base libraries have > PREPARE-blocks, eg lapack.ijt -- I count some 40 others. > > I may be adopting an unpopular stance here, but having only yesterday > discovered this facility, I don't like it, and wouldn't commend its > use. It's sneaky. And I don't accept it offers any facility that can't > be done in an open way, and done better. > > Lab: lapack.ijt, for example, uses it exclusively to define and > execute transient verbs via (3 : 0)'' embedded in the Lab (.ijt) file > itself. These verbs look innocuous enough to me, so no blame accrues > to the Lab author. But that's not the point. > > One of the attractions of the Labs facility to the end-user is that it > lets the user retain full control of the J session, whilst delivering > (on-demand) a series of session input lines, which are faithfully > echoed in the IJX session. In other words, it gives the appearance of > an invisible teacher leaning over my shoulder and (with my permission, > of course!) typing on my keyboard. > > An illusion, I know, but a comforting one. Really we know that _jlab_ > has been loaded in the background... and my! -- it's busy. > > But this is subtly yet vitally different from having the Lab .ijt file > itself executing arbitrary verbs silently on its own authority. It's > not a matter of the Labs facility being *unable* to execute such > silent verbs, but of assuring the user that it never will. Even if > that assurance is implicit, and has no legal substance. > > Having a PREPARE-block undermines that assurance. It means a Lab can > deploy trojans, leaving no record of their having been executed. To > detect such code, and discover what it actually does, I need to > locate, and peruse, the .ijt file itself. > > Let me argue for PREPARE *not* to be migrated to j701 in its present > form, and for the facility to be "detoxified" in j602. I don't say > "withdrawn", because that would break a lot of fine Labs. May I > suggest that a PREPARE-block *never* conceals its content from IJX, > though perhaps tagging it with: "for system use only, please ignore"? > > Ian > > On Tue, Sep 18, 2012 at 10:31 PM, bob therriault <bobtherria...@mac.com> > wrote: >> Hey everybody, >> >> In J602 there was a markup Instruction used in labs called PREPARE that >> would bracket J commands to allow you to do things behind the scenes when >> running a lab file .ijt >> >> I wonder if this would be an option to have scripts load without having the >> learner aware of it. I think that the opengl lab works this way. The actual >> lab script is in 602/system/extras/labs/graphics/opengl.ijt and you can see >> PREPARE working on the first page. The authoring lab touches on this as I >> remember. I am not sure that this facility has transferred to 701 but if it >> hasn't it would be nice if that functionality was retained. >> >> Cheers, bob >> >> On 2012-09-18, at 1:39 PM, Ric Sherlock wrote: >> >>> On Wed, Sep 19, 2012 at 7:52 AM, Ian Clark <earthspo...@gmail.com> wrote: >>>> >>>> Yes, I too would like to combine the whole thing in one single addon. >>>> You'll recall the extensive correspondence (17 posts) that followed my >>>> original proposal to do just this, and how best to do it? >>>> http://www.jsoftware.com/pipermail/programming/2012-September/029259.html >>>> The LAPACK way would be to keep separate "loader" scripts in >>>> format/zulu and run them like this: >>>> load 'format/zulu/lite' >>>> load 'format/zulu/bare' >>>> ...etc. >>>> I can have as many loader scripts as I can fancy a need for. A lot >>>> less trouble than releasing and maintaining three separate addons. But >>>> I got the hint from the forum that using load/require in this way is >>>> "untidy", and that the preferred programmer interface for using any >>>> addon is quite simply: >>>> load 'category/addon' >>> >>> I don't think you should see this as untidy. I don't believe that this >>> functionality is undesirable or unintended. I suggest you have the >>> main/default package named zulu.ijs, but that you include your other >>> scripts in the same addon. Then (load 'format/zulu') will work and >>> load the script most users will need, but (load 'format/zulu/lite') >>> and (load 'format/zulu/bare') will work too if the user needs them. >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm