On 2/6/13 8:42 AM, Jacob Carlborg wrote:
On 2013-02-06 13:02, Robert wrote:
On Wed, 2013-02-06 at 08:56 +0100, Don wrote:
Eg, are there entire top-level branches which are obsolete? How
many stupid names are there (eg, "std.algorithm2") which were
Well in order to avoid such "stupid" names, I think it would be a good
idea to keep the standard library small. Include only the things that
are important to be "standard" in order to ensure interoperability
between libraries.
Instead we should offer a central place for D libraries, like CPAN for
perl or http://pypi.python.org/pypi for python.
Here you go:
https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D
I will replace the Ruby code with D.
That's awesome. I skimmed the docs and the capabilities are pretty much
what I'd expect. We should push for integrating Orbit in the standard
distro. That entails a formal proposal, community review and voting etc.
etc.
One question - since you mention replacing Ruby with D, I'm thinking it
may be a good opportunity to just use D syntax everywhere. The arguments
have been hashed already - a D user is supposed to know of all syntaxes
that of D itself etc.
As an example I was looking at
https://github.com/jacob-carlborg/orbit/wiki/orbfile which has:
orb "dwt", "0.5.3" # specifies an exact version
orb "sqlite" # uses the latest version
orb "orange", "> 0.0.1" # uses any version greater than "0.0.1",
basically any comparison operator is allowed here
orb "derelict", "~> 0.3.4" # uses any version above "0.3.4" that is
"0.x.y", i.e. won't use any "1.x.y" version
Nice enough but there's no shame about
orb("dwt", "0.5.3"); // specifies an exact version
orb("sqlite"); // uses the latest version
orb("orange", "> 0.0.1"); // uses any version greater than "0.0.1",
basically any comparison operator is allowed here
orb("derelict", "~> 0.3.4"); // uses any version above "0.3.4" that is
"0.x.y", i.e. won't use any "1.x.y" version
The alternative orbspec
https://github.com/jacob-carlborg/orbit/wiki/orbspec%20specification
also has its own syntax:
# orange.orbspec
# name "orange" # inferred from the name of the orbspec
version "1.0.0"
author "Jacob Carlborg"
type :library
files << ["a.d", "b.di"] # an array of source files
This is in a way worse because there's a tidbit of syntax for each
element. I'm thinking:
spec = "orange";
version = "1.0.0";
author = "Jacob Carlborg";
type = "library";
files = ["a.d", "b.di"]; // an array of source files
This code can be imported into an environment that has the appropriate
definitions.
Hash table literals may also be also very useful.
Thoughts?
Andrei