[plt-scheme] Interacting w/ MzScheme

From: Robby Findler (robby at cs.uchicago.edu)
Date: Fri Dec 10 14:08:10 EST 2004

At Fri, 10 Dec 2004 13:08:30 -0500, Don Blaheta wrote:
> I'm not sure about "just patently false", but my information was
> incomplete: while *in general* I can get editor<%> and text% from mred
> (mred -z if I want it at the command line), the way novel snips are
> added is such that DrScheme can get them without mred getting them---
> as is the case with the ProfessorJ widgets (java-interactions-box% in
> particular).  It's been a few months since I played with it, so I didn't
> remember all the steps in the argument, but the consensus was that this
> was something wrong with how MrEd was loading the ProfJ libraries.  So
> at least in some cases, some of the snips are drscheme-only.

There is a known bug in Profj. Last time we talked about this, was when
it came to light. I hope you aren't holding up bugs (incomplete
programs technically, in this case) as design flaws! FWIW, there are
many other snips used in other parts of drscheme where this works fine.

> > > > and I can't write a script in some other language because there is
> > > > no documentation of the format.  This is annoying when major
> > > > corporations do it, and it's not really any less annoying here.
> 
> And this is not false at all, patently or otherwise.  You've admitted
> yourself that the format is not documented.  If it were, I bet I could
> reverse-engineer the java-interactions-box% format without too much
> difficulty.

I don't think that I suggested that this was false. But yes. The
external format isn't documented. I have tried to explain this before,
but I think that I'm just not doing a good job.

The way to manipulate these files is _not_ to write a tool that reads
the binary format, but instead use the existing tool that reads the
binary format (mred). MrEd gives you back an object you can manipulate
directly to do whatever you want with the "file". It's the same
information, but directly accessible. It's like writing a parser, to do
whatever, but without actually having to write the parser. Code Re-use!
Does it make any more sense this time?

Thanks,
Robby



Posted on the users mailing list.