Re: [Zope-dev] RFC : AnyScripts

2002-03-10 Thread Adrian Hungate

This sounds like a security acident waiting to happen. I wouldn't want to be
the one to have to ensure there were no security holes in the surrounding
code that might allow the script to get rewritten.

Adrian...

--
The difficulty of tactical maneuvering consists in turning the devious into
the direct, and misfortune into gain.
- Sun Tzu


- Original Message -
From: Jerome Alet [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Friday, March 08, 2002 7:27 PM
Subject: [Zope-dev] RFC : AnyScripts


 Hi,

 I'm finally toying, after having stalled a too long time,
 with the creation of ZShellScripts, which would be for ZShell
 commands what PythonScripts are for Python...

 The current, not yet available, incarnation is very highly
 based on PythonScripts, however I wondered if something
 better couldn't be done, because it seems to me to be an
 unneeded repetition of most of the PythonScripts' code :

 AnyScripts

 AnyScripts would have a mandatory first line similar to the one
 of any Unix shell script. By unix shell script I mean any script
 which can be launched directly under Unix, not only bash or csh scripts,
 but also perl, tcl, etc...

 So an AnyScript would contain a first line like :

 #! /scripts/interpreter

 And the execution of this script in the context on which it
 is applied would be delegated to another object present in
 the path which was set on this very first line, i.e.
 /scripts/interpreter

 So you could put any interpreter object of your choice in
 for example the /scripts folder (no path would mean
 search the interpreter object within the acquisition path)

 For example PythonScripts would contain something like :

 #! /builtins/python

 or something like that.

 Out of my mind I can already think of a ZShell interpreter
 object, but why not other types of interpreter objects :

 perl
 tcl
 C (the language ! Why not after all)
 etc...


 Each interpreter object would have at least two methods :

 compile() = returns a code object from source code, if meaningful
  (otherwise returns the source unchanged), to be
  stored in the AnyScript object which calls the
  compile() method.

 execute() = executes the above code object. This method of the
  Interpreter object would be called by the AnyScript
  object at run time, passing it the code object
  obtained with compile()

 Of course all of this come straight out of my mind, and there would
 probably be some problems I'm not able to understand yet...

 Bound variables would be like for PythonScripts, with the exception of
their
 content would be the best format for the Interpreter in question, so
 each Interpreter object would probably also have a bind() method which
 would bind vars in the preferred format for the AnyScript object which
 calls this method, and would be accessible using the
 preferred syntax of the langage in question, e.g. :

 for PythonScripts, vars like context would be Zope Objects, like they
 currently are.

 for ZShell AnyScripts, vars like context, would be paths to Zope
 Objects, and accessible with names like $context for example.

 for C AnyScripts, vars would probably be something like PyObjects
 pointers.

 etc...

 So AnyScripts objects would interact with their interpreter object of
 choice to compile their source code, bind their vars, then finally
 execute the code and get the result back.

 What do you all think about this idea ?

 Are any of you interested ?

 I admit I don't know anything about the feasability of such a project
 with other languages than ZShell, however if a single implementation
 could be done, then anyone could add his own interpreter later...

 PS : I'll do ZShellScripts anyway...

 bye,

 Jerome Alet





 ___
 Zope-Dev maillist  -  [EMAIL PROTECTED]
 http://lists.zope.org/mailman/listinfo/zope-dev
 **  No cross posts or HTML encoding!  **
 (Related lists -
  http://lists.zope.org/mailman/listinfo/zope-announce
  http://lists.zope.org/mailman/listinfo/zope )



___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



[Zope-dev] RFC : AnyScripts

2002-03-08 Thread Jerome Alet

Hi,

I'm finally toying, after having stalled a too long time, 
with the creation of ZShellScripts, which would be for ZShell 
commands what PythonScripts are for Python...

The current, not yet available, incarnation is very highly 
based on PythonScripts, however I wondered if something 
better couldn't be done, because it seems to me to be an
unneeded repetition of most of the PythonScripts' code :

AnyScripts

AnyScripts would have a mandatory first line similar to the one
of any Unix shell script. By unix shell script I mean any script
which can be launched directly under Unix, not only bash or csh scripts,
but also perl, tcl, etc...

So an AnyScript would contain a first line like :

#! /scripts/interpreter

And the execution of this script in the context on which it
is applied would be delegated to another object present in
the path which was set on this very first line, i.e. 
/scripts/interpreter

So you could put any interpreter object of your choice in
for example the /scripts folder (no path would mean
search the interpreter object within the acquisition path)

For example PythonScripts would contain something like :

#! /builtins/python

or something like that.

Out of my mind I can already think of a ZShell interpreter
object, but why not other types of interpreter objects :

perl
tcl
C (the language ! Why not after all)
etc...


Each interpreter object would have at least two methods :

compile() = returns a code object from source code, if meaningful
 (otherwise returns the source unchanged), to be 
 stored in the AnyScript object which calls the
 compile() method.

execute() = executes the above code object. This method of the
 Interpreter object would be called by the AnyScript 
 object at run time, passing it the code object
 obtained with compile()

Of course all of this come straight out of my mind, and there would
probably be some problems I'm not able to understand yet...

Bound variables would be like for PythonScripts, with the exception of their
content would be the best format for the Interpreter in question, so
each Interpreter object would probably also have a bind() method which
would bind vars in the preferred format for the AnyScript object which
calls this method, and would be accessible using the
preferred syntax of the langage in question, e.g. :

for PythonScripts, vars like context would be Zope Objects, like they
currently are.

for ZShell AnyScripts, vars like context, would be paths to Zope 
Objects, and accessible with names like $context for example.

for C AnyScripts, vars would probably be something like PyObjects
pointers.

etc...

So AnyScripts objects would interact with their interpreter object of 
choice to compile their source code, bind their vars, then finally 
execute the code and get the result back.

What do you all think about this idea ?

Are any of you interested ?

I admit I don't know anything about the feasability of such a project
with other languages than ZShell, however if a single implementation
could be done, then anyone could add his own interpreter later...

PS : I'll do ZShellScripts anyway...
 
bye,

Jerome Alet





___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )