dmdz

Ellery Newcomer ellery-newcomer at utulsa.edu
Thu Mar 11 17:17:47 PST 2010


On 03/11/2010 12:29 PM, Andrei Alexandrescu wrote:
>> For the more specific case
>>
>> dmdz [global flags] foo.zip [local flags]
>>
>> it expects all the relevant content in foo.zip to be located inside
>> directory foo, and doesn't extract anything else unless you explicitly
>> tell it to.
>
> I don't understand this. Does the program foo.zip have to contain an
> actual directory called "foo"? That's a bit restrictive. My initial plan
> revolved around expanding foo.zip somewhere in a unique subdir of the
> temp directory and considering that a full-blown project resides inside
> that subdir.

It is. I suppose the name isn't so important, but I really hate zip 
files whose contents aren't contained inside a single directory. Also, 
there would be a bit of a dichotomy if

dmdz foo.zip

resulted in a directory 'foo' wherever, but

unzip foo.zip

resulted in what would be the contents of 'foo' above.

Another thing: do you envision this just being a 
build-this-completed-project, or do you see this as an actual 
development tool? Because I've been approaching it more from the latter 
perspective. Zip file is a roadmap: look, all the files you need for to 
compile are here, here, here, and here. So use them. Compile.

But if the zip file is a complete project, then you would expect to see 
source code, test code, test data, licenses, documentation, etc, which 
would likely require filtering anyways and possibly multiple compiles 
for different pieces. And you'd expect the result of the compile to end 
up somewhere in the directory you just created.

Alright, I think I'm seeing less and less value in foo.zip/foo as a req.

>
>> Also, there can be a file 'cmd' (name?) inside foo.zip which contains
>> additional flags for the compile, with local flags overriding global
>> flags overriding flags found in cmd. At least for dmdz flags.
>
> How about dmd.conf?

Sounds good.

>
>> dmd flags get filtered out and forwarded to dmd.
>>
>> The current strategy for compiling just involves giving every compilable
>> thing extracted to dmd. There's also an option to compile each source
>> file separately (which I put in after hitting an odd Out of Memory
>> Error).
>>
>> Comments?
>
> That sounds about right. One thing I want is to stay reasonably KISS
> (e.g. like rdmd is), i.e. not invent a lot of arcana. rdmd has many
> heuristics and limitations but has the virtue that it gets a specific
> job done without requiring its user to learn most anything. I hope dmdz
> turns out similarly simple.
>
>> Also, are there any plans for std.zip, e.g. with regard to ranges,
>> input/output streams, etc? The current api seems a smidge spartan.
>
> I've hoped to rewrite std.zip forever, but found no time to do so.

Well, heck. Maybe I'll see what I can do with it. Do you want it to 
conform to any interface in particular?

Also: test whether a file [path?] is contained within a specific 
directory [path?]. does such functionality exist somewhere in phobos?
>
>
> Andrei




More information about the Digitalmars-d mailing list