Hi Ian,

What does your "custom function loading code" do?
I presume that you want to load functions from external dlls and make them
available to EE.

This brings me an idea: as the number of functions EE supports will grow,
we're going to need a concept similar to namespaces and impose some
structure on the naming of functions to be consistent.

I suggest that we leave string and conversion functions as they are now
(they are kind-of "core"), but change names of all other functions by
prefixing them with their functional area:

round(v) -> math.round(v)
floor(v) -> math.floor(v)
ceiling(v) -> math.ceiling(v)
abs(v) -> math.abs(v)

getcreationtime(filename) -> file.creationtime(filename)
getlastwritetime(file) -> file.lastwritetime(filename)
getlastaccesstime(file) -> file.lastaccesstime(filename);
fileexists(file) -> file.exists(filename)
filesize(file) -> file.size(filename)

now() -> date.now
datediff(d1,d2) -> date.diff(d1,d2)
dateadd(d1,seconds) - date.add(d1,d2)

Assuming you'd have cvs functions, they would be placed in "cvs" namespace

cvs.getfilerevision(filename)
cvs.ismodified(filename)
cvs.isbinary(filename)

The function loading code should place loaded functions in a separate
namespace. So could load functions like this:

<loadfunctions assembly="AAA.dll" type="Functions" prefix="aaa" />
Assuming class Functions contains:

public static int testme(string a,int b,DateTime c) { }

It sould be accessible as: "aaa.testme()" not "testme()". <loadfunctions>
shouldn't allow you to load functions into a global namespace.

Another question: should function names be case sensitive? Should they be
upper-, lower- or mixed case ? pascal casing (File.CreationTime()), camel
casing (File.creationTime()) or linux casing (file.creation_time)?

Jarek

----- Original Message ----- 
From: "Ian MacLean" <[EMAIL PROTECTED]>
To: "Jaroslaw Kowalski" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Monday, December 08, 2003 9:35 AM
Subject: Re: [nant-dev] Fw: Expression evaluator changes


> Awesome, thanks !
>
> Ian
>
> Jaroslaw Kowalski wrote:
>
> >OK. Committed.
> >
> >Jarek
> >----- Original Message ----- 
> >From: "Ian MacLean" <[EMAIL PROTECTED]>
> >To: "Jaroslaw Kowalski" <[EMAIL PROTECTED]>
> >Cc: <[EMAIL PROTECTED]>
> >Sent: Monday, December 08, 2003 9:23 AM
> >Subject: Re: [nant-dev] Fw: Expression evaluator changes
> >
> >
> >
> >
> >>Could you just commit to the branch ? I'd like to merge these changes
> >>with my custom function loading code.
> >>
> >>Ian
> >>
> >>
> >>
> >>>As my previous e-mail bounced because it was too big (41 KB > 40KB
> >>>
> >>>
> >limit!)
> >
> >
> >>>I'm resending this to the list without the patch.
> >>>
> >>>Again, I encourage everyone to download and try "test2" and share your
> >>>opinion.
> >>>
> >>>Jarek
> >>>
> >>>----- Original Message ----- 
> >>>From: "Jaroslaw Kowalski" <[EMAIL PROTECTED]>
> >>>To: <[EMAIL PROTECTED]>
> >>>Sent: Monday, December 08, 2003 1:46 AM
> >>>Subject: Expression evaluator changes
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>I've made the following changes to the Expression Evaluator:
> >>>>
> >>>>1. Allow EE to be disabled from the command line ("disableee" option
;-)
> >>>>2. Added support for dynamic properties (evaluated at use)
> >>>>3. Property support expressions containing right curly braces embedded
> >>>>
> >>>>
> >in
> >
> >
> >>>>strings (doing full parsing instead of regular expressions)
> >>>>4. Require ${} on <if test="..." />
> >>>>
> >>>>Patch against "EE-patches" is attached - if you have any comments, let
> >>>>
> >>>>
> >me
> >
> >
> >>>>know. I'll commit it tomorrow.
> >>>>
> >>>>Binary release "test2" is available at:
> >>>>
> >>>>http://jaak.sav.net/nant-ee/nant-ee-test2.zip
> >>>>
> >>>>Try it and let me know.
> >>>>
> >>>>Jarek
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>-------------------------------------------------------
> >>>This SF.net email is sponsored by: SF.net Giveback Program.
> >>>Does SourceForge.net help you be more productive?  Does it
> >>>help you create better code?  SHARE THE LOVE, and help us help
> >>>YOU!  Click Here: http://sourceforge.net/donate/
> >>>_______________________________________________
> >>>nant-developers mailing list
> >>>[EMAIL PROTECTED]
> >>>https://lists.sourceforge.net/lists/listinfo/nant-developers
> >>>
> >>>
> >>>
> >>>
> >>-- 
> >>Ian MacLean, Developer,
> >>ActiveState, a division of Sophos
> >>http://www.ActiveState.com
> >>
> >>
> >>
> >>
> >>-------------------------------------------------------
> >>This SF.net email is sponsored by: SF.net Giveback Program.
> >>Does SourceForge.net help you be more productive?  Does it
> >>help you create better code?  SHARE THE LOVE, and help us help
> >>YOU!  Click Here: http://sourceforge.net/donate/
> >>_______________________________________________
> >>nant-developers mailing list
> >>[EMAIL PROTECTED]
> >>https://lists.sourceforge.net/lists/listinfo/nant-developers
> >>
> >>
> >>
>
>
> -- 
> Ian MacLean, Developer,
> ActiveState, a division of Sophos
> http://www.ActiveState.com
>
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: SF.net Giveback Program.
> Does SourceForge.net help you be more productive?  Does it
> help you create better code?  SHARE THE LOVE, and help us help
> YOU!  Click Here: http://sourceforge.net/donate/
> _______________________________________________
> nant-developers mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/nant-developers
>



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to