At 07:07 PM 7/24/01 -0000, you wrote:
>Hello,
>
>--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
>> Is there any documentation that covers the syntax of the output and
>input
>> files?
>[stuff deleted]
>
>It would be great if you could start providing me some feedback about
>the usability of the language because I think it is important to
>determine its future success. Please go ahead and make any
>constructive criticisms or suggestions that you would feel that are
>appropriate as you experience using the language.
>
>Regards,
>Manuel Lemo
By documentation, I meant do you have written down any where a grammar for
specifying input and output files? If not, we need to write one down.
Afterwards, we can analyze the expressiveness of MetaL.
Rod
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
Hello,
--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
> Is there any documentation that covers the syntax of the output and
input
> files?
No, sorry, I did not have the time to start documenting the stuff for
people to use. But I really want you to play with it so you can
provide useful feedback about the language usability.
In the latest version of my presentation, the slides contain note
links for a sample of input and output files for the helloworld test
program.
Basically it works like this:
First you use bindings definition file that defines which compiler
modules are meant to be used. There is one standard one for PHP in the
metal repository named metal/include/php.bindings, an other for Java
named metal/include/java.bindings .
You need to specify one or the other in the build.php script that
calls the compiler. You also need to pass the file name of the input
and output files as you may see in the build.php script of the
metal/test/helloworld project .
You may start with empty input and output files that would like
respectively like this:
<?xml ?>
<input>
</input>
<?xml ?>
<output>
</output>
Then you start adding commands that you want you MetaL program to use.
- For each command that you use in the output file, you need to have a
function definition in the input file.
- For each function you define in the input file, you need to have a
compiler object that will be in charge of implementing that command.
- For each compiler object you use, you need to specify a compiler
module that will be use to instanciate in order to create each
compiler object.
- The compiler class definitions are in the bindings file. If you just
a pre-defined bindings file of those specified above for either PHP or
Java.
Now let's say you need to use the script command as in the helloworld
test in order to generate a file with your MetaL program generated in
a given target language, for instance PHP.
First you define in the input file, the compiler object that you want
to use like this:
<object>
<name>script</name>
<class>script</class>
<attributes>
</attributes>
</object>
It uses the class script that is described in the bindings files.
Then you define a function for instance named script which will be the
name that your XML tag will have in the your output files.
<function>
<name>script</name>
<object>script</object>
<call>output</call>
<arguments>
<name>helloworld</name>
<file>helloworld.php</file>
<skipwhitespace>1</skipwhitespace>
</arguments>
</function>
This definition means that a function named script will be implemented
by the script compiler object defined above to be implemented by the
script compiler class.
It will call the script compiler class function named output. The
arguments defined several arguments. The name argument is not used in
PHP but it is important for Java as it defines the name of the class
that will be generated to work as a script.
The file argument defines the path of the file that will be created
with your script code in the target language.
The skipwhitespace argument is not important right away, but it lets
you tell the XML parser to only consider tags that will be inside of
your script tag in the output file.
You don't need to type all these definitions every time you want to
generate a script. All you need to do is to include a ready to use
standard input include file like this:
<include>metal/include/script.input</include>
So, now you can create an output file with something more like this:
<?xml ?>
<output>
<script>
</script>
</output>
Now you just compile you Metal script like this:
$success=$compiler->Compile(array(
"Output"=>"build.output",
"Input"=>"build.input",
"Bindings"=>"include/php.bindings",
"TargetLanguage"=>"PHP"
),&$result);
I think this is now suficient to get you start playing with this
language.
What you would do after is to start using other MetaL tag commands
inside the <script> tag, like in the helloworld example.
Just let me know if you have any doubts or questions.
It would be great if you could start providing me some feedback about
the usability of the language because I think it is important to
determine its future success. Please go ahead and make any
constructive criticisms or suggestions that you would feel that are
appropriate as you experience using the language.
Regards,
Manuel Lemos
Is there any documentation that covers the syntax of the output and input
files?
Rod
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
Hello,
--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
> At 01:27 AM 6/25/01 -0300, Manuel Lemos wrote:
> >Hello,
> >
> >I have just uploaded the materials that I will use in my session of
> >presentation of MetaL at O'Reilly Open Source convention.
> >
> >Please, take a look at them and review them in order to let me know
if you
> >feel that it may need any changes or anything else to be added.
> >
>
>
> I believe by now, Manuel, you probably have given your presentation
on
> MetaL at the O'Reilly Open Source convention. After reading over the
slides
No, the convention is this week. I just arrived in San Diego.
Is anybody coming? If so, mail me or page me by the ICQ UIN 15699174.
> of your presentation, however, I think your overview of how MetaL
works
> could be clearer. Below, I refined your overview. I apologize for
getting
> back to you after the presentation, but I was only to skim my email
for the
> past month.
>
> How MetaL works.
> MetaL can be used as a compiler for performing source-to-source code
> translation. To use MetaL to generate code, you first have to
provide a
> specification of the object language. The specification consists of
the
> syntactic terms of the object language. These terms are encoded as
MetaL
> commands. Also the specification of the object language specifies
how each
> term should be translated into code of the target language. Each
syntactic
> term of the object language is associated with a module that
performs the
> translation of the syntactic term to source code of the target
language.
> The specification of the object language is encoded as a MetaL input
file.
> The MetaL compiler uses an input file to translate a program of the
object
> language into a program of the target language. The program of the
object
> language is specified as a MetaL output file. MetaL uses XML for
encoding
> output files. (I'm not sure how input files are encoded.)
Thanks. The presentation materials are kind of sealed. I'll try to
express the ideas the way you mentioned. BTW, the version that is in
the site http://www.meta-language.net/ is more up to date.
Regards,
Manuel Lemos
At 01:27 AM 6/25/01 -0300, Manuel Lemos wrote:
>Hello,
>
>I have just uploaded the materials that I will use in my session of
>presentation of MetaL at O'Reilly Open Source convention.
>
>Please, take a look at them and review them in order to let me know if you
>feel that it may need any changes or anything else to be added.
>
I believe by now, Manuel, you probably have given your presentation on
MetaL at the O'Reilly Open Source convention. After reading over the slides
of your presentation, however, I think your overview of how MetaL works
could be clearer. Below, I refined your overview. I apologize for getting
back to you after the presentation, but I was only to skim my email for the
past month.
How MetaL works.
MetaL can be used as a compiler for performing source-to-source code
translation. To use MetaL to generate code, you first have to provide a
specification of the object language. The specification consists of the
syntactic terms of the object language. These terms are encoded as MetaL
commands. Also the specification of the object language specifies how each
term should be translated into code of the target language. Each syntactic
term of the object language is associated with a module that performs the
translation of the syntactic term to source code of the target language.
The specification of the object language is encoded as a MetaL input file.
The MetaL compiler uses an input file to translate a program of the object
language into a program of the target language. The program of the object
language is specified as a MetaL output file. MetaL uses XML for encoding
output files. (I'm not sure how input files are encoded.)
Rod
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
Hello,
Finally the proof of concept of MetaL meta-programming technology is almost
done!
I have just made the helloworld test project build to generate either in
PHP or Java.
It is not enough to do this to demonstrate the capabilities of MetaL as a
meta-programming language because only a few functions of two modules were
change to generate in PHP and Java, but this is the beginning of making the
proof of concept of MetaL.
I will keep working as my time allows to develop the Java and the Perl
bindings so MetaL can be used as a serious meta-programming language soon.
The latest developments are available under the CVS repository as usual.
Regards,
Manuel Lemos
Web Programming Components using PHP Classes.
Look at: http://phpclasses.UpperDesign.com/?user=mlemos@acm.org
--
E-mail: mlemos@...
URL: http://www.mlemos.e-na.net/
PGP key: http://www.mlemos.e-na.net/ManuelLemos.pgp
--
Hello,
This email message is a notification to let you know that
a file has been uploaded to the Files area of the metal-dev
group.
File : /metal.pdf
Uploaded by : mlemos@...
Description : MetaL presentation slides for the O'Reilly Open Source
Convention: XTech 2001
You can access this file at the URL
http://groups.yahoo.com/group/metal-dev/files/metal.pdf
To learn more about file sharing for your group, please visit
http://help.yahoo.com/help/us/groups/files
Regards,
mlemos@...
Hello,
This email message is a notification to let you know that
a file has been uploaded to the Files area of the metal-dev
group.
File : /metal.zip
Uploaded by : mlemos@...
Description : MetaL presentation for the O'Reilly Open Source Convention:
XTech 2001
You can access this file at the URL
http://groups.yahoo.com/group/metal-dev/files/metal.zip
To learn more about file sharing for your group, please visit
http://help.yahoo.com/help/us/groups/files
Regards,
mlemos@...
Hello,
This email message is a notification to let you know that
a file has been uploaded to the Files area of the metal-dev
group.
File : /metal.tar.gz
Uploaded by : mlemos@...
Description : MetaL presentation for the O'Reilly Open Source Convention:
XTech 2001
You can access this file at the URL
http://groups.yahoo.com/group/metal-dev/files/metal.tar.gz
To learn more about file sharing for your group, please visit
http://help.yahoo.com/help/us/groups/files
Regards,
mlemos@...
Hello,
I have just updated the repository with a newer version of MetaL and other
project modules. This newer version features improved compiling speed by
removing all commands that required attributes in XML tags, so tag
attributes are no longer stored by the parser thus saving compiling time
and memory.
The newer version now consistently names input files instead of contents
files as before.
I am also already working in the development of other languages bindings
besides PHP. I will be looking for support to Perl and Java first. Inside
the CVS metal module there is now a test/helloworld project that will be
soon be generating code in these other language besides PHP as it generates
now.
Please keep me informed of tests or difficulties that you are having.
Regards,
Manuel Lemos
Web Programming Components using PHP Classes.
Look at: http://phpclasses.UpperDesign.com/?user=mlemos@acm.org
--
E-mail: mlemos@...
URL: http://www.mlemos.e-na.net/
PGP key: http://www.mlemos.e-na.net/ManuelLemos.pgp
--
Hello,
--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
> At 03:46 AM 5/17/01 -0000, mlemos@a... wrote:
> >Hello,
> >
> >I have just started a CVS server from where those that requested
> >accounts may login and download all modules needed to run MetaL.
> >
> >First login using the command:
> >
> >cvs -d :pserver:youraccounthere@m...:/opt2/ena/metal
> >login
> >
> >and then check out the modules using:
> >
> >cvs -z3 -d :pserver:cvsread@m...:/opt2/ena/metal metal
> >integral metabase PHPlibrary
>
> Do any of these modules contains examples of input and output files?
Yes, the integral module is the integrated system application
completely written in MetaL.
Anyway, the input files are currently named contents files but that
will change soon to be consistent with the previous explanations.
Currently I am developing a SOAP server class in MetaL because I need
it to control ezmlm based mailing lists remotely. The class itself it
be stuffed in integral due to a current lack of organizing base
classes is MetaL components library. That will change too later.
Manuel Lemos
Hello,
--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
> At 03:46 AM 5/17/01 -0000, mlemos@a... wrote:
>
> >cvs -z3 -d :pserver:cvsread@m...:/opt2/ena/metal metal
> >integral metabase PHPlibrary
> >
>
>
> Should be cvs -z3 -d
> :pserver:yourcvsuserid@m...:/opt2/ena/metal checkout metal
> integral metabase PHPlibrary
>
> My version of cvs didn't like the -z3 option with checkout.
That's odd. Anyway, it is not necessary, it is a compression
parameter.
Manuel Lemos
At 12:31 PM 5/24/01 -0400, you wrote:
>At 03:46 AM 5/17/01 -0000, mlemos@... wrote:
>>Hello,
>>
>>I have just started a CVS server from where those that requested
>>accounts may login and download all modules needed to run MetaL.
>>
>>First login using the command:
>>
>>cvs -d :pserver:youraccounthere@...:/opt2/ena/metal
>>login
>>
>>and then check out the modules using:
>>
>>cvs -z3 -d :pserver:cvsread@...:/opt2/ena/metal metal
>>integral metabase PHPlibrary
>
>Do any of these modules contains examples of input and output files?
>
>Rod
I just reread the intro to MetaL. Integral contains an example.
Rod
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
At 03:46 AM 5/17/01 -0000, mlemos@... wrote:
>Hello,
>
>I have just started a CVS server from where those that requested
>accounts may login and download all modules needed to run MetaL.
>
>First login using the command:
>
>cvs -d :pserver:youraccounthere@...:/opt2/ena/metal
>login
>
>and then check out the modules using:
>
>cvs -z3 -d :pserver:cvsread@...:/opt2/ena/metal metal
>integral metabase PHPlibrary
Do any of these modules contains examples of input and output files?
Rod
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
At 03:46 AM 5/17/01 -0000, mlemos@... wrote:
>cvs -z3 -d :pserver:cvsread@...:/opt2/ena/metal metal
>integral metabase PHPlibrary
>
Should be cvs -z3 -d
:pserver:yourcvsuserid@...:/opt2/ena/metal checkout metal
integral metabase PHPlibrary
My version of cvs didn't like the -z3 option with checkout.
Rod
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
--- In metal-dev@y..., mlemos@a... wrote:
> Hello,
>
> I have just started a CVS server from where those that requested
> accounts may login and download all modules needed to run MetaL.
>
> First login using the command:
>
> cvs -d :pserver:youraccounthere@m...:/opt2/ena/metal
> login
>
> and then check out the modules using:
>
> cvs -z3 -d :pserver:cvsread@m...:/opt2/ena/metal metal
> integral metabase PHPlibrary
Sorry, there is a checkout command missing here. It should be:
cvs -z3 -d :pserver:cvsread@m...:/opt2/ena/metal checkout metal
integral metabase PHPlibrary
>
> You need to setup some symbolic links to the directories of each of
> the CVS modules but as soon you will see the compiler complaining
you
> will realize what links are missing.
>
> To build the Integral project, go into the integral directory and
do:
>
> php -q build.php
>
> Have fun,
>
> Manuel Lemos
Hello,
--- In metal-dev@y..., Roy Nasser <roy@v...> wrote:
> Hi Manuel, hi everyone...
>
> Justo some introduction on em before I pose me threat, errr... i
mean:
> question...
>
> I am Roy Nasser, from São Paulo Brazil. I have been doing PHP stuff
for
> over 3 years, and I have recently had the oportunity to meet Manuel
Lemos,
> here in São Paulo... (For those of you interested, he occupies a
prestigious
> job at one of our leeding portals! :D)... I currently have a
Internet
> Services company which provides consulting and technology to
companies
> seeking a web presence, or seeking to imporve this presence... One
of our
> business cards is one of Brazil's leading search sites - recently
voted
> "Best Meta-search" by a local magazine (Info-Exame).... I am eager
to work
> with MetaL because I believe it can drastically decrese
time-to-market of
> web applications, and, to us, this is the cruicial point.
>
> Anyways, My question is, would it be possible to "reverse" and input
fil?
> Basically, instead of having the preparation for XML -> PHP, to
convert back
> from PHP -> XML... This is very important, in my opinion, because
PHP is
> already very popular... MetaL is not only for new projects, in my
opinion...
> At least it shouldnt! There is so much code that must be developped
and
> expanded, that a way to convert TO MetaL, instead of only FROM
metal.... I
> would be interested in looking into this if nothing has been
developped or
> thought of, as of yet...
>
> Would it be as simple as a different "input" file?
MetaL could be used for virtually anything. As for reverse engineering
it would take the development of a parser that knows the target
language and map it back to files that MetaL could compile to generate
the source files that you want to convert.
I believe that would be a great thing for some body to develop, but
for the time being my development on MetaL is not focused on reverse
engineering code in other languages.
Manuel Lemos
Hello,
I have just started a CVS server from where those that requested
accounts may login and download all modules needed to run MetaL.
First login using the command:
cvs -d :pserver:youraccounthere@...:/opt2/ena/metal
login
and then check out the modules using:
cvs -z3 -d :pserver:cvsread@...:/opt2/ena/metal metal
integral metabase PHPlibrary
You need to setup some symbolic links to the directories of each of
the CVS modules but as soon you will see the compiler complaining you
will realize what links are missing.
To build the Integral project, go into the integral directory and do:
php -q build.php
Have fun,
Manuel Lemos
Justo some introduction on em before I pose me threat, errr... i mean: question...
I am Roy Nasser, from São Paulo Brazil. I have been doing PHP stuff for over 3 years, and I have recently had the oportunity to meet Manuel Lemos, here in São Paulo... (For those of you interested, he occupies a prestigious job at one of our leeding portals! :D)... I currently have a Internet Services company which provides consulting and technology to companies seeking a web presence, or seeking to imporve this presence... One of our business cards is one of Brazil's leading search sites - recently voted "Best Meta-search" by a local magazine (Info-Exame).... I am eager to work with MetaL because I believe it can drastically decrese time-to-market of web applications, and, to us, this is the cruicial point.
Anyways, My question is, would it be possible to "reverse" and input fil? Basically, instead of having the preparation for XML -> PHP, to convert back from PHP -> XML... This is very important, in my opinion, because PHP is already very popular... MetaL is not only for new projects, in my opinion... At least it shouldnt! There is so much code that must be developped and expanded, that a way to convert TO MetaL, instead of only FROM metal.... I would be interested in looking into this if nothing has been developped or thought of, as of yet...
Would it be as simple as a different "input" file?
Hello,
--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
> At 03:12 AM 5/16/01 -0000, mlemos@a... wrote:
> >Hello,
> >
> >--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
> >> Hi, Manuel. I read your introduction to MetaL. I have several
> >questions.
> >> Due to time constraints I can't post them all know. I'll post a
few
> >now and
> >> some other next week.
> >>
> >> >MetaL is a language defined with XML tags. Each MetaL XML tag
has
> >a
> >> >meaning that depends of the context within it is used.
> >>
> >> Are there a predefined set of MetaL XML tags? If so, what are
they?
> >
> >Soon you will see that very few things are hardcode in MetaL.
> >
> >Basically you will have input files and output files. Input files
> >define the name of the commands of the language and which module
> >implements them. The output files are your MetaL programs. In MetaL
> >programs you use the commands you defined in the input files in the
> >form of XML tags.
>
> So the the input files contain a specification of the object
language and
> the output files are the programs in the object language. The input
files
> specify the abstract syntax of the language (the commands) and the
modules
> that implement the semantics of the language. Programs of the object
Not exactly. The input files just map which XML tags are implemented
by each module.
> language are encoded using MetaL programs. MetaL programs are
specified
> using XML tags. Therefore, if you were to look at a MetaL program,
you
> would see tags representing the constructs of the object language
and tags
> representing constructs of MetaL. When executing a MetaL program,
the tags
> representing the constructs of the object language are interpreted
using
> the modules that implement the semantics of the object langauge.
(The
> modules are specified in the input files.)
>
> Manuel, is this correct?
More or less. Each mode implements a part of the functionality of the
language. One implements the logic flow (loops and branches), another
the expression and variable management, another the OOP support
(classes and objects), etc.. There is no tight coupling between
modules.
Each function of each module processes XML tags and data that are
inside of the tag that triggered the module call. There is no
translation of data, just eventuallly nested processing.
Manuel Lemos
At 03:12 AM 5/16/01 -0000, mlemos@... wrote:
>Hello,
>
>--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
>> Hi, Manuel. I read your introduction to MetaL. I have several
>questions.
>> Due to time constraints I can't post them all know. I'll post a few
>now and
>> some other next week.
>>
>> >MetaL is a language defined with XML tags. Each MetaL XML tag has
>a
>> >meaning that depends of the context within it is used.
>>
>> Are there a predefined set of MetaL XML tags? If so, what are they?
>
>Soon you will see that very few things are hardcode in MetaL.
>
>Basically you will have input files and output files. Input files
>define the name of the commands of the language and which module
>implements them. The output files are your MetaL programs. In MetaL
>programs you use the commands you defined in the input files in the
>form of XML tags.
So the the input files contain a specification of the object language and
the output files are the programs in the object language. The input files
specify the abstract syntax of the language (the commands) and the modules
that implement the semantics of the language. Programs of the object
language are encoded using MetaL programs. MetaL programs are specified
using XML tags. Therefore, if you were to look at a MetaL program, you
would see tags representing the constructs of the object language and tags
representing constructs of MetaL. When executing a MetaL program, the tags
representing the constructs of the object language are interpreted using
the modules that implement the semantics of the object langauge. (The
modules are specified in the input files.)
Manuel, is this correct?
Rod
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
Hello,
--- In metal-dev@y..., Rod Moten <rod@c...> wrote:
> Hi, Manuel. I read your introduction to MetaL. I have several
questions.
> Due to time constraints I can't post them all know. I'll post a few
now and
> some other next week.
>
> >MetaL is a language defined with XML tags. Each MetaL XML tag has
a
> >meaning that depends of the context within it is used.
>
> Are there a predefined set of MetaL XML tags? If so, what are they?
Soon you will see that very few things are hardcode in MetaL.
Basically you will have input files and output files. Input files
define the name of the commands of the language and which module
implements them. The output files are your MetaL programs. In MetaL
programs you use the commands you defined in the input files in the
form of XML tags.
>
> >This way, the compiler is capable of translating source code
defined with
> >MetaL tags into source code of potentially any language.
>
> When you perform your translation are you going directly to the
concrete
> syntax of the target language or are you translating from MetaL to
the
> abstract syntax of the target language, then using a pretty printer
to
> convert the abstract syntax to the concrete syntax of the target
langauge.
MetaL functions associated to each tag defined in the input files
generate output streams that are basically arrays of data. Data may be
of any type, like for instance source code lines in the target
language that may be somehow written to output source files.
To answer your question, there is no intermediate programming language
abstraction. Keep in mind that MetaL can output anything, including
things that are not exactly source code in a traditional programming
language, like for instance documentation files or other types of
interesting output data as you will see later.
Regards,
Manuel Lemos
Hello,
--- In metal-dev@y..., "alex black" <enigma@t...> wrote:
> hi manuel,
>
> good to see your stuff is progressing...
>
> to give you a little news about binarycloud: we are looking at
extensive use
> of makefiles which turn xml declarations of any "array like"
structure into
> php, this will be release with binarycloud r2.
MetaL itself comes with a build module that works like a sofisticated
make program. I don't know if that is what you meant, but once you try
it you'll see if it will be useful.
> We haven't ventured into any "meta" programming, i.e. abstracting
language
> constructs, etc. We all just found it tedious to maintain big php
arrays
> when writing xml is 10x easier and faster.
>
> I am very interested to hear more about the stuff you are doing, as
always -
> and using it! (after all, metabase has done me right)
Great. You'll be able to try MetaL real soon now.
Regards,
Manuel Lemos
Hello,
Thank you for having accepted my invitation to participate in this
peer review process of MetaL.
To get us started quickly, I am setting up a CVS server on a virtual
server that I have. If you would like to start trying MetaL and its
applications, please mail me privately a user name and password so I
can create CVS accounts for each of you.
MetaL compiler is built with PHP, so you need PHP standalone CGI
executable program to try it.
Regards,
Manuel Lemos
Hi, Manuel. I read your introduction to MetaL. I have several questions.
Due to time constraints I can't post them all know. I'll post a few now and
some other next week.
>MetaL is a language defined with XML tags. Each MetaL XML tag has a
>meaning that depends of the context within it is used.
Are there a predefined set of MetaL XML tags? If so, what are they?
>This way, the compiler is capable of translating source code defined with
>MetaL tags into source code of potentially any language.
When you perform your translation are you going directly to the concrete
syntax of the target language or are you translating from MetaL to the
abstract syntax of the target language, then using a pretty printer to
convert the abstract syntax to the concrete syntax of the target langauge.
********************************************
* Make affirming your wife a top priority. *
* - David Rollinson *
********************************************
hi manuel,
good to see your stuff is progressing...
to give you a little news about binarycloud: we are looking at extensive use
of makefiles which turn xml declarations of any "array like" structure into
php, this will be release with binarycloud r2.
We haven't ventured into any "meta" programming, i.e. abstracting language
constructs, etc. We all just found it tedious to maintain big php arrays
when writing xml is 10x easier and faster.
I am very interested to hear more about the stuff you are doing, as always -
and using it! (after all, metabase has done me right)
and, hello everyone :)
_alex