Re: executionContexts

2006-10-15 Thread Andre Garzia

Richmond,

by poking around the IDE source you'll find lots of little gems,  
specially functions and code that can teach you how to do many things  
but having access to the inner bowels of the RunRev IDE does not  
means that this is something you can rely on. The executionContexts  
is one example, there are others. They are a part of the private  
interface of Rev, functions to be used by them, meaning they can and  
probably will change in future releases. It's like you're building  
your code for a customer, a nice little application full of functions  
for it to work and when you deliver to the guy, he disassemble it and  
start asking around why you didn't document that private handler used  
by your own code. You could say to him: "hey, this are inner  
functions of the software, you're not supposed to be here, and in the  
following releases this might change." which is the case of Runtime  
Revolution.


If RunRev IDE was coded in C/C++ then you would have ZERO of this  
undocumented features you talk about, they are not features, they are  
not hidden, they are not undocumented. They are just a side effect of  
coding the IDE in the same language as the one being distributed.  
What you see as new properties to tap and handlers to call are  
nothing but how RunRev team worked to build their own IDE, they are  
not for public comsumption.


Dar Scott was very wise in the words that he didn't bought  
executionContexts. Thats true, the thing he bought (damn, I can't  
spell that word in english) is Runtime Revolution with it's  
Transcript Language, executionContexts is just a side effect of how  
the RunRev team implemented such language and IDE.


To give you an example where I acted like you till I realized what  
was really happening.


I once, in Release 1.1 (I think) was coding a little database app and  
was using the Database Query Builder for it. The DQB appeared to me  
to be very inflexible since the SQL statements were hard coded during  
the development periods till it was revealled to me some functions  
that would allow me to update the SQL statement in a given query. I  
was like in the computer developer equivalent of samadhi or some less  
important bliss state. Such power, hidden!!! I asked for  
documentation too till I realized that the function I was calling was  
an inner function of runtime revolution, it was in fact (In my  
guessing) the actual function used by the Database Query Builder to  
create those SQL statements in the first case. I was not tapping into  
some hidden function to be used by the initiates of the order of the  
sacred xtalk or something, I was actually using the side effect of  
Database Query Builder being done in the same transcript language I  
was coding and leeching on some of its function for my profit and fun.


I came to realize that I was using some function of the RunRev IDE, I  
was only able to use such function due to the message path nature of  
Revolution. Rev having no namespace or protection allows anyone to  
use anything that is put into use. Those things can change as RunRev  
team finds new ways of doing stuff, and again in each release as they  
change their codebase, as long as we're allowed to explore the  
source, we'll keep finding little side-effect-gems but trusting them  
to be present in every release or asking for documentation is not the  
right path here.


I think what we're discussing here is not undocumented functions but  
in fact clever side effects of the message path mixed with having  
access to IDE sources. A much more colorful discussion would be "What  
cool thing did you learned by looking into the IDE sources?" where  
people could say how looking into the IDE scripts they learned things  
and styles of coding that made them a better coder. There are people  
here that are coding xTalk for decades, by looking into their scripts  
a newbie such as me and the others can learn much about proven  
practices that work.



Andre
___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: executionContexts

2006-10-15 Thread Mark Smith

The point here is surely a practical one.
RR have built executionContexts into the language for their own  
purposes, having written the IDE in transcript/revolution (eating  
their own haggis, as they put it), and presumably they needed it for  
some aspect of writing an IDE.


Assuming that they put it in there with the expectation that they may  
need to change the way it works, or even what it does, they chose not  
to include it in the general documented description of the language.


We are all free to use it, but RR have no responsibility to ensure  
that it will work as we expect in future, unlike the documented  
features of the language, which they must be very careful of changing.


We all have bought Revolution, and all versions, AFAIK, 'contain' all  
sorts of things to which we do not have access, and wouldn't expect to.



Best,

Mark




On 15 Oct 2006, at 09:40, Richmond Mathewson wrote:


I do not really understand Dar Scott's

"As a product Revolution does NOT have
executionContexts except maybe as a reserved word of
some sort.  This is not an underdocumented feature of
the product.  I did not buy executioncontexts."

I bought 2 varieties of Runtime Revolution and the
both contain the 'term'

executionContexts

now this may be what Dar Scott terms an "intramural"
part of RR, HOWEVER:

it is part of what I have bought, and as such it would
seem that documenting it might not be a bad thing -
after all if I stumble across it and use it
incorrectly all sorts of unintended results may ensue.

Dar Scott's argument seems to imply that I may not
open my G4 Mac and poke around inside it because some
of the components are "intramural" - sure they are -
they are all 'inside the walls', but I don't see what
that has to do with it - I own the machine;

and, similarly, I own my copies of Dreamcard and
RRMedia.

Needless to say, this discussion leads us,
willy-nilly, towards whether, because I own an
instantiation of a programming environment I am
allowed to muck around with the source-code.

It does seem, however, that if Runtime Revolution (the
company) did not want folks like me to access stuff
like 'executionContexts' they would have built a
'wall' around it so that it was truly intramural.

A secondary point is what Dar Scott means by
"underdocumented" - executionContexts seems not to be
mentioned at all in the documentation.

sincerely, Richmond Mathewson



"Philosophical problems are confusions arising owing to the  
fluidity of meanings users attach to words and phrases."

   Mathewson, 2006


Send instant messages to your online friends http:// 
uk.messenger.yahoo.com

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your  
subscription preferences:

http://lists.runrev.com/mailman/listinfo/use-revolution


___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: executionContexts

2006-10-14 Thread Dar Scott


On Oct 14, 2006, at 12:46 PM, Richmond Mathewson wrote:


  Just tried to find "executionContexts" in the
documentation for DC 2.6.1 and RRMedia 2.7.2 and found
nothing.

...


I wonder why there seems to be some resistance to
documenting these things?


I try to refrain from insisting somebody gives me something that I  
didn't buy.


As a product Revolution does NOT have executionContexts except maybe  
as a reserved word of some sort.  This is not an underdocumented  
feature of the product.  I did not buy executioncontexts.


It is a feature of the engine in some sense.  It is used by at least  
one library and maybe the IDE, but those are RunRev intramural.  By  
the use being intramural, RunRev can tweak the behavior as needed  
without legacy concerns.


Given that, things get muddy.  Bugzilla 1242 is an enhancement to  
make exectionContexts a feature.  It is one of only 21 enhancement  
suggestions that have been marked not-a-bug.  Some of the discussion  
was related to the ability to make callbacks in the same style as the  
sockets capability.  That has been specifically requested in bz 1954  
(and 2839) with the suggestion that a new function be added.  This  
function could be built out of executionContexts (even if the bug I  
mentioned is fixed), but it would be based on something that might go  
away in the future, so I'm hesitant to do that for deliverables.  The  
executionContexts could also be handy in throwing something that  
looks just like engine error or rethrowing an engine error so that it  
looks just like it was never caught (see bz 3757).  These commands  
built on executionContexts, too, would be based on a nonfeature.   
Providing these more specific functions and commands would make  
blessing executionContexts less important, but I'm sure others would  
come up with uses I have not mentioned.


Some future version could potentially make that a supported feature.   
That would have a cost for RunRev.  It would have to be documented.   
It then would receive bugzilla submissions, such as one for the bug I  
mentioned earlier.  There would be the cost of support in explaining  
to use that we are using it wrong.  It would also mean that if they  
need some variation, they would have to build a new private property  
or function.


Dar

___
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution