Mixin Expressions, can't evalutate string variable

Andrej Mitrovic andrej.mitrovich at gmail.com
Sat Aug 7 12:21:32 PDT 2010


You know, I just had an idea. It would be really cool to have some sort of
generalized template function which can test other functions in various
ways. You could pass strings as options, where you might choose the type of
testing being done, such as verification tests or performance tests.. Or if
a function is designed to write a file on disk, maybe you'd want to have an
option for the maximum number of tests to run on that function (you don't
want to be left with 10000 files written in some temp directory
somewhere..), or a test to see if a function will fail with invalid input,
etc.

Well it's just an idea, I better take a look at the existing test frameworks
and see how it's done there.

On Sat, Aug 7, 2010 at 4:04 AM, Andrej Mitrovic
<andrej.mitrovich at gmail.com>wrote:

> Damn regexe(s|n).
>
> I almost never need them, but when I do, I have to spend an hour trying to
> remember the syntax (+ I'm really used to doing regexes in Python and then
> there's the whole "regex objects in lang x work different than in lang y"
> thing). But I digress..
>
> I think a better way is to pass strings which will be used to name the
> variables to be constructed and initialized (+ return an error when there's
> too few). And then at least you'll know there are some new local variables
> at your disposal by looking at the call. That way we solve both problems.
>
>
> On Sat, Aug 7, 2010 at 12:12 AM, Andrej Mitrovic <
> andrej.mitrovich at gmail.com> wrote:
>
>> Slightly OT: I've noticed you're often missing the word "know" in your
>> posts (e.g. "I don't what", that should be "I don't know what"). Is
>> something filtering your posts? :)
>>
>> And yeah, I've noticed your other thread with the argument names. With a
>> little bit of regex I could easily extract the variable names. I think this
>> template could be useful in cases when you just want to try out a function
>> which happens to writes some state in the parameters that are passed to it
>> (out/ref params), without having to inspect the function signature and
>> declare the proper variable types. Unfortunately there's no way to pass auto
>> variables as parameters, but that's more of a Python territory, I guess.
>>
>> On the other hand, the template introduces new identifiers silently into
>> the calling site (you can't see it in the code), so it's not all that
>> practical I guess, not to mention a little dangerous. :p
>>
>>
>> On Fri, Aug 6, 2010 at 10:22 PM, Philippe Sigaud <
>> philippe.sigaud at gmail.com> wrote:
>>
>>> Andrej:
>>>
>>>
>>>
>>>>
>>>> It was just an exercise for fun but it's cool that things like this are
>>>> possible in D. It would be nice if I could get the actual names of the
>>>> parameters the function takes + the clear name of the function itself, that
>>>> way I'd actually get back variables "ftc, fta, ftm" back)
>>>
>>>
>>> There, found it again, while answering another thread:
>>>
>>> int foo(int i, double d) { return 0;}
>>>
>>> writeln(typeof(&foo).stringof); // "int function(int i, double d)" <--
>>> Look Ma, arguments names!
>>>
>>> But it's a quirk of .stringof, I'm not sure it's a good idea to rely on
>>> it too much.
>>> from there, using compile-time search in a string, you can extract the
>>> arguments (those are between ( and ) )
>>> -> "int i, double d"
>>> and from there, extracting i and d.
>>>
>>> I don't what will happen for overloaded functions, methods names,
>>> constructors, ...
>>>
>>>
>>> Philippe
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20100807/454cb0af/attachment.html>


More information about the Digitalmars-d mailing list