DIP11

Martin Nowak dawg at dawgfoto.de
Thu Aug 11 15:42:50 PDT 2011


It really looks sound to me.

---
module myfile;
pragma(imppath, "dep=www.dpan.org/dep");
import dep.a;
---

remote file
---
module dep.a;

// link directives
pragma(libpath, "dep=www.dpan.org/dep");
pragma(lib, "dep");

// or alternatively some new pragma like this to cause linking the  
imported package
pragma(build, "dep")

// additional dependency
pragma(imppatch, "dep2=www.dpan.org/dep2");
---

Versioning can be easily resolved by using urls like  
www.dpan.org/dep?version=0.45 or www.dpan.org/dep-greaterthan-0.45.

Pro:
  - scales from local dependencies to VPN sharing to package websites to  
even dynamically generated source code
  - simple implementation compilerwise
Con:
  - doesn't help with mixed source builds except for prebuild libraries


Some thoughts:
  - allowing packages/libs to be packed in zip files would be nice as it's  
getting closer to single file packages
  - remote locations would need an accompanying hash file per source or a  
checksum index to allow local caching
  - sorting out some security issues would be nice but I've never seen  
anything in other package managers

On Thu, 11 Aug 2011 09:49:56 +0200, Jacob Carlborg <doob at me.com> wrote:

> On 2011-08-11 09:41, Jonas Drewsen wrote:
>> On 11/08/11 09.07, Jacob Carlborg wrote:
<snip>
>>
>> Yes I've noticed that. Seems very promising.
>>
>> What I do like about DIP11 is how seamless it would work. You just have
>> to compile and stuff works.
>>
>> /Jonas
>
> I think that DIP11 is too limited, for example, it doesn't deal with  
> versions. Orbit combined with a build tool will be seamless as well.  
> RDMD is a great tool but as soon as you need to add compiler flags or  
> compile a library you need either some kind of script or a build tool.  
> And in that case you can just go with the built tool and have it work on  
> all platforms.
>




More information about the Digitalmars-d mailing list