www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - package management

reply Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> writes:
I find myself wanting this over and over again. Reading the docs for
Orange made me realize, that I'm not alone.
What's wrong with having imports like:

import mylibrary.mypackage;

replaced with:

import mylibrary.mypackage._;

or

import mylibrary.mypacakge.package;

or

import mylibrary.mypackage.all;

or anything in that fashion?
I thing this is a good idea, because it standardizes access to entire
packages in cases, where such an  access makes sense.

Also, there are cases, when some packages and modules aren't meant to
be imported. Implementation packages.
I suppose the best way to handle this is to generate .di files for the
modules, which do need to be imported and distribute those, but it
adds complications and limitations.
Would it make sense to allow marking modules as private or something
to make it only importable from it's own package?

private module myimpl;
/// implementations

Importing a private module from outside of it's immediate package
would cause a compilation error.

-- 
Bye,
Gor Gyolchanyan.
Jun 27 2012
next sibling parent reply "Tobias Pankrath" <tobias pankrath.net> writes:
On Wednesday, 27 June 2012 at 10:34:53 UTC, Gor Gyolchanyan wrote:
 I find myself wanting this over and over again. Reading the 
 docs for
 Orange made me realize, that I'm not alone.

http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP16
Jun 27 2012
parent Timon Gehr <timon.gehr gmx.ch> writes:
On 06/27/2012 12:49 PM, Gor Gyolchanyan wrote:
 On Wed, Jun 27, 2012 at 2:46 PM, Tobias Pankrath <tobias pankrath.net
 <mailto:tobias pankrath.net>> wrote:

     On Wednesday, 27 June 2012 at 10:34:53 UTC, Gor Gyolchanyan wrote:

         I find myself wanting this over and over again. Reading the docs for
         Orange made me realize, that I'm not alone.


     http://prowiki.org/wiki4d/__wiki.cgi?LanguageDevel/DIPs/__DIP16
     <http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP16>


 Wonderful. Is there a vote for it? And what about the private module idea?

 --
 Bye,
 Gor Gyolchanyan.

private module does not make sense, because private means 'only accessible to this module'. What you want is a package module.
Jun 27 2012
prev sibling next sibling parent Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> writes:
--e0cb4efe33907aa1a404c371f9ad
Content-Type: text/plain; charset=UTF-8

On Wed, Jun 27, 2012 at 2:46 PM, Tobias Pankrath <tobias pankrath.net>wrote:

 On Wednesday, 27 June 2012 at 10:34:53 UTC, Gor Gyolchanyan wrote:

 I find myself wanting this over and over again. Reading the docs for
 Orange made me realize, that I'm not alone.

http://prowiki.org/wiki4d/**wiki.cgi?LanguageDevel/DIPs/**DIP16<http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP16>

Wonderful. Is there a vote for it? And what about the private module idea? -- Bye, Gor Gyolchanyan. --e0cb4efe33907aa1a404c371f9ad Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On Wed, Jun 27, 2012 at 2:46 PM, Tobias Pankrath= <span dir=3D"ltr">&lt;<a href=3D"mailto:tobias pankrath.net" target=3D"_bl= ank">tobias pankrath.net</a>&gt;</span> wrote:<br><blockquote class=3D"gmai= l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left= :1ex"> <div class=3D"im">On Wednesday, 27 June 2012 at 10:34:53 UTC, Gor Gyolchany= an wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> I find myself wanting this over and over again. Reading the docs for<br> Orange made me realize, that I&#39;m not alone.<br> </blockquote> <br> </div><a href=3D"http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP1= 6" target=3D"_blank">http://prowiki.org/wiki4d/<u></u>wiki.cgi?LanguageDeve= l/DIPs/<u></u>DIP16</a><br> </blockquote></div><br>Wonderful. Is there a vote for it? And what about th= e private module idea?<div><div><br></div>-- <br>Bye,<br>Gor Gyolchanyan.<b= r> </div> --e0cb4efe33907aa1a404c371f9ad--
Jun 27 2012
prev sibling parent Gor Gyolchanyan <gor.f.gyolchanyan gmail.com> writes:
--f46d04088ee50be73e04c372b916
Content-Type: text/plain; charset=UTF-8

On Wed, Jun 27, 2012 at 3:27 PM, Timon Gehr <timon.gehr gmx.ch> wrote:

 On 06/27/2012 12:49 PM, Gor Gyolchanyan wrote:

 On Wed, Jun 27, 2012 at 2:46 PM, Tobias Pankrath <tobias pankrath.net
 <mailto:tobias pankrath.net>> wrote:

    On Wednesday, 27 June 2012 at 10:34:53 UTC, Gor Gyolchanyan wrote:

        I find myself wanting this over and over again. Reading the docs
 for
        Orange made me realize, that I'm not alone.


    http://prowiki.org/wiki4d/__**wiki.cgi?LanguageDevel/DIPs/__**DIP16<http://prowiki.org/wiki4d/__wiki.cgi?LanguageDevel/DIPs/__DIP16>

    <http://prowiki.org/wiki4d/**wiki.cgi?LanguageDevel/DIPs/**DIP16<http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP16>

Wonderful. Is there a vote for it? And what about the private module idea? -- Bye, Gor Gyolchanyan.

private module does not make sense, because private means 'only accessible to this module'. What you want is a package module.

Yes, I thought of naming it a package module, but it semantically conflicts with the module, which represents the entire package (as described in the first issue). -- Bye, Gor Gyolchanyan. --f46d04088ee50be73e04c372b916 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On Wed, Jun 27, 2012 at 3:27 PM, Timon Gehr <spa= n dir=3D"ltr">&lt;<a href=3D"mailto:timon.gehr gmx.ch" target=3D"_blank">ti= mon.gehr gmx.ch</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" = style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div class=3D"im">On 06/27/2012 12:49 PM, Gor Gyolchanyan wrote:<br> </div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l= eft:1px #ccc solid;padding-left:1ex"><div class=3D"im"> On Wed, Jun 27, 2012 at 2:46 PM, Tobias Pankrath &lt;<a href=3D"mailto:tobi= as pankrath.net" target=3D"_blank">tobias pankrath.net</a><br></div><div cl= ass=3D"im"> &lt;mailto:<a href=3D"mailto:tobias pankrath.net" target=3D"_blank">tobias = pankrath.net</a>&gt;&gt; wrote:<br> <br> =C2=A0 =C2=A0On Wednesday, 27 June 2012 at 10:34:53 UTC, Gor Gyolchanyan w= rote:<br> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0I find myself wanting this over and over again.= Reading the docs for<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0Orange made me realize, that I&#39;m not alone.= <br> <br> <br></div> =C2=A0 =C2=A0<a href=3D"http://prowiki.org/wiki4d/__wiki.cgi?LanguageDevel= /DIPs/__DIP16" target=3D"_blank">http://prowiki.org/wiki4d/__<u></u>wiki.cg= i?LanguageDevel/DIPs/__<u></u>DIP16</a><div class=3D"im"><br> =C2=A0 =C2=A0&lt;<a href=3D"http://prowiki.org/wiki4d/wiki.cgi?LanguageDev= el/DIPs/DIP16" target=3D"_blank">http://prowiki.org/wiki4d/<u></u>wiki.cgi?= LanguageDevel/DIPs/<u></u>DIP16</a>&gt;<br> <br> <br> Wonderful. Is there a vote for it? And what about the private module idea?<= br> <br> --<br> Bye,<br> Gor Gyolchanyan.<br> </div></blockquote> <br> private module does not make sense, because private means &#39;only<br> accessible to this module&#39;. What you want is a package module.<br> </blockquote></div><br>Yes, I thought of naming it a package module, but it= semantically conflicts with the module, which represents the entire packag= e (as described in the first issue).<br clear=3D"all"><div><br></div>-- <br=

--f46d04088ee50be73e04c372b916--
Jun 27 2012