capacity problem with eprime?

David McFarlane mcfarla9 at msu.edu
Thu Nov 20 19:30:58 UTC 2008


Rick,

>As a follow-up to this, I seem to have fixed my problem by deleting
>unreferenced objects.

Glad you fixed your problem and reported back, I would not have 
thought of this.

>I had assumed that these were essentially ignored
>by Eprime and that unreferenced objects was a holding area for bits
>already created. But given that removing some elements (done without
>reference to whether any had errors within them--I was simply tidying up
>the script/file) fixed an error, it seems I am wrong in this assumption?
>Or am I correct that the whole lot was overloading Eprime?

You are correct insofar as all those unused unreferenced objects are 
not ignored and they do affect your program.  All the Unreferenced 
E-Objects get added to the full script and compiled whether or not 
your program uses them.  You can tell this a couple of ways:  First, 
any object that raises a compile-time error will still raise a 
compile-time error even after you "delete" it to Unreferenced 
E-Objects.  Second, you can just look in the full generated script -- 
View > Script, select the Full tab, and scroll down to Sub 
InitObjects, you will see that E-Prime has dutifully added all of 
your Unreferenced E-Object to be initialized every time you run your program.

This is one reason that I scrupulously remove any unused E-Objects 
before I release my programs for general use, I just assumed 
everybody else did the same.  I also do this because it greatly 
clarifies reading the program later -- if anybody later has to read 
my program, all those unused objects will get in the way, especially 
if some Unreferenced E-Objects get used while others do not.  It is 
my duty to clean up my mess before I set the program loose.

So what are Unreferenced E-Objects for, and why does "delete" send 
objects there instead of actually deleting them?  "Unreferenced 
E-Objects" is really a misnomer.  It really means "objects that might 
be used but are not referenced in any simple way by objects in the 
main E-Studio structure", and we do not have a simpler word phrase to 
say that.  For instance, you might have an object that gets invoked 
only by inline script, and E-Prime has no good way to indicate that 
in the Structure view.  Or, you have a nested list that gets assigned 
only at run time via an attribute reference, so the Structure has no 
good way to show this at design time.  So these objects really do get 
"referenced" in inline script or at run time, but in general E-Prime 
has no neat way to show this in the Structure view, hence 
"Unreferenced E-Objects" (well what would *you* call 
them?).  Follow?  So how do you make these "unreferenced" but really 
referenced E-Objects?  You could drag the appropriate toolbox icon 
straight into Unreferenced E-Objects, but many folks find it easier 
to drag a toolbox icon over onto a Procedure object, and then 
"delete" it to get it over into Unreferenced E-Objects.  Still 
following?  Because of this practice, when you "delete" an object 
from a Procedure, E-Studio never knows whether you really mean to 
delete the object or just use it in some "unreferenced" way.  As you 
and most users soon discover, to really delete an object you must 
delete it from Unreferenced E-Objects.

Well, you got more from me than you bargained for.  I hope I said 
something useful in there somewhere, I just sort of wanted to lay 
that all out for future reference for myself if no one else.

-- David McFarlane, Professional Faultfinder


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en
-~----------~----~----~----~------~----~------~--~---



More information about the Eprime mailing list