Re: dmd front end now switched to Boost license

2014-06-14 Thread Nick Sabalausky via Digitalmars-d-announce

On 6/13/2014 8:15 PM, Mathias LANG wrote:

On Friday, 13 June 2014 at 11:31:10 UTC, Dmitry Olshansky wrote:

13-Jun-2014 04:31, Walter Bright пишет:

https://github.com/D-Programming-Language/dmd/pull/3655


Heh, I had been under the impression was already Boost. :P



It's probably nice to have less restrictive license, but what we aim
to achieve with that?

Make commercial companies contribute to DMD more freely?
There is no problem even with GPL.
Let them build and sell their own products out of DMDFE?
Highly unlikely to be a profitable anyway, and we'd better get
back the patches.


Wild guess: DMD in fedora, debian et al. repositories ?


I doubt it. First, it's the backend that's not technically OSI, frontend 
was (apparently) GPL. Second, I can't imagine any Linux distro rejecting 
GPL - they'd have to boot the kernel and core utils, too.


Boost has kinda become the favored D license anyway, Phobos etc., so 
it probably has a lot to do with that. Kinda weird to have the compiler 
and stdlib under different licenses.




Re: dmd front end now switched to Boost license

2014-06-14 Thread Joakim via Digitalmars-d-announce

On Saturday, 14 June 2014 at 06:07:08 UTC, Nick Sabalausky wrote:
I doubt it. First, it's the backend that's not technically OSI, 
frontend was (apparently) GPL. Second, I can't imagine any 
Linux distro rejecting GPL - they'd have to boot the kernel and 
core utils, too.


Actually, the frontend was dual-licensed under the Artistic 
license and the GPL and dmd binaries were provided under the 
former, as the GPL doesn't allow linking against a non-GPL 
backend.  The GPL alternative was likely for gdc to link the 
frontend against the GPL'd gcc backend.


Re: DMD 2.066 Alpha

2014-06-14 Thread David Nadlinger via Digitalmars-d-announce
On Thursday, 12 June 2014 at 18:25:36 UTC, Andrei Alexandrescu 
wrote:

On 6/12/14, 6:34 AM, Dicebot wrote:
It was decided and 100% certain - virtual is not going in. 
Need to

remove it from DMD before this release is out.


Yes please. -- Andrei


Since we didn't seem to have a pull request for removing the 
attribute: https://github.com/D-Programming-Language/dmd/pull/3663


David


Re: dmd front end now switched to Boost license

2014-06-14 Thread Dmitry Olshansky via Digitalmars-d-announce

14-Jun-2014 04:46, Walter Bright пишет:

On 6/13/2014 4:31 AM, Dmitry Olshansky wrote:

It's probably nice to have less restrictive license, but what we aim
to achieve
with that?




I do not want to come across as rude but from pragmatic standpoint it's 
not interesting. I'm not opposing it (after all I agreed to change it), 
I just don't see any valuable gains.



1. Boost is the least restrictive license


This gains nothing in and by itself. 4 speaks of potential adv, which 
realistically is not something we desperately want. Maybe as a proactive 
move, that I could understand.




2. Minimize friction for adopting D


Let's not deluge ourselves, it does nothing to do that unlike many other 
things. Changing license of G++ frontend to boost won't make people 
adopt C++ any faster.


The only place of friction is backend, and opening FE for commerce 
doesn't help it.



3. Harmonization with usage of Boost in the runtime library



In other words simplify licensing, but again compiler and runtime 
library do not have to have anything in common. There is no issue to 
begin with.



4. Allow commercial use of DMDFE (so what if someone does? It'll drive
even more adoption of D!)


The only strictly valid point. Making commercial compilers and tools on 
D front-end is the only solid result this move enables.



5. Boost is well known and accepted


All of licenses are well known. Again by itself it's not interesting, it 
won't make dmd any more easy to get into FOSS distros.


--
Dmitry Olshansky


Re: DConf 2014 Day 1 Talk 4: Inside the Regular Expressions in D by Dmitry Olshansky

2014-06-14 Thread Dicebot via Digitalmars-d-announce

On Thursday, 12 June 2014 at 16:42:38 UTC, Dmitry Olshansky wrote:
It's always nice to ask something on D NG, so many good answers 
I can hardly choose whom to reply ;) So this is kind of 
broadcast.


Yes, the answer seems spot on - reflection! But allow me to 
retort.


I'm not talking about completely stand-alone generator. Just as 
well generator tool could be written in D using the same exact 
sources as your D program does. Including the static 
introspection and type-awareness. Then generator itself is a 
library + an invocation script in D.


The Q is specifically of CTFE in this scenario, including not 
only obvious shortcomings of design, but fundamental ones of 
compilation inside of compilation. Unlike proper compilation is 
has nothing persistent to back it up. It feels backwards, a bit 
like C++ TMP but, of course, much-much better.



1)

Reflection. It is less of an issue for pure DSL solutions 
because those
don't provide any good reflection capabilities anyway, but 
other code

generation approaches have very similar problems.

By doing all code generation in separate build step you 
potentially lose
many of guarantees of keeping various parts of your 
application in sync.




Use the same sources for the generator. In essence all is the 
same, just relying on separate runs and linkage, not mixin. 
Necessary hooks to link to later could indeed be generated 
with a tiny bit of CTFE.


Yes, deeply embedded stuff might not be that easy. The scope 
and damage is smaller though.



2)

Moving forward. You use traditional reasoning of DSL generally 
being
something rare and normally stable. This fits most common DSL 
usage but
tight in-language integration D makes possible brings new 
opportunities
of using DSL and code generation casually all other your 
program.




Well, I'm biased by heavy-handed ones. Say I have a (no longer) 
secret plan of doing a next-gen parser generator in D. Needless 
to say swaths of non-trivial code generation. I'm all for 
embedding nicely but I see very little _practical_ gains in 
CTFE+mixin here EVEN if CTFE wouldn't suck. See the point above 
about using the same metadata and types as the user application 
would.


Consider something like REST API generator I have described 
during DConf. There is different code generated in different 
contexts from same declarative description - both for server and 
client. Right now simple fact that you import very same module 
from both gives solid 100% guarantee that API usage between those 
two programs stays in sync.


In your proposed scenario there will be two different generated 
files imported by server and client respectively. Tiny typo in 
writing your build script will result in hard to detect run-time 
bug while code itself still happily compiles.


You may keep convenience but losing guarantees hurts a lot. To be 
able to verify static correctness of your program / group of 
programs type system needs to be aware how generated code relates 
to original source.


Also this approach does not scale. I can totally imagine you 
doing it for two or three DSL in single program, probably even 
dozen. But something like 100+? Huge mess to maintain. According 
to my experience all builds systems are incredibly fragile 
beasts, trusting them something that impacts program correctness 
and won't be detected at compile time is just too dangerous.


I totally expect programming culture to evolve to the point 
where
something like 90% of all application code is being generated 
in typical
project. D has good base for promoting such paradigm switch 
and reducing

any unnecessary mental context switches is very important here.

This was pretty much the point I was trying to make with my 
DConf talk (

and have probably failed :) )


I liked the talk, but you know ... 4th or 5th talk with 
CTFE/mixin I think I might have been distracted :)


More specifically this bright future of 90%+ concise DSL driven 
programs is undermined by the simple truth - no amount of 
improvement in CTFE would make generators run faster then 
optimized standalone tool invocation. The tool (library written 
in D) may read D metadata just fine.


I heard D builds times are important part of its adoption so...


Adoption - yes. Production usage - less so (though still 
important). Difference between 1 second and 5 seconds is very 
important. Between 10 seconds and 1 minute - not so much.


JIT will be probably slower than stand-alone generators but not 
that slower.


It might solve most of _current_ problems, but I foresee 
fundamental issues of no global state in CTFE that in say 10 
years from now would look a lot like `#include` in C++.


I hope 10 years ago from now we will consider having global state 
in RTFE stone age relict :P


A major one is there is no way for compiler to not recompile 
generated code as it has no knowledge of how it might have 
changed from the previous run.


Why can't we merge basic build system functionality akin to 

Re: DConf 2014 Day 1 Talk 4: Inside the Regular Expressions in D by Dmitry Olshansky

2014-06-14 Thread Andrei Alexandrescu via Digitalmars-d-announce

On 6/14/14, 8:05 AM, Dicebot wrote:

Adoption - yes. Production usage - less so (though still important).
Difference between 1 second and 5 seconds is very important. Between 10
seconds and 1 minute - not so much.


Wait, what? -- Andrei


Re: dmd front end now switched to Boost license

2014-06-14 Thread Leandro Lucarella via Digitalmars-d-announce
Nick Sabalausky, el 14 de June a las 02:06 me escribiste:
 It's probably nice to have less restrictive license, but what we aim
 to achieve with that?
 
 Make commercial companies contribute to DMD more freely?
 There is no problem even with GPL.
 Let them build and sell their own products out of DMDFE?
 Highly unlikely to be a profitable anyway, and we'd better get
 back the patches.
 
 Wild guess: DMD in fedora, debian et al. repositories ?
 
 I doubt it. First, it's the backend that's not technically OSI,
 frontend was (apparently) GPL. Second, I can't imagine any Linux
 distro rejecting GPL - they'd have to boot the kernel and core
 utils, too.
 
 Boost has kinda become the favored D license anyway, Phobos etc.,
 so it probably has a lot to do with that. Kinda weird to have the
 compiler and stdlib under different licenses.

Not really, the standard library is included into user code (because of
the templates), and that's the reason why it needs to be under a very
permissive license. The compiler, on the other hand, doesn't, and one
could agree is good to force people wanting to build products using the
compiler FE to contribute changes back. I guess the main purpose of this
is encourage proprietary tools based on the FE, but if that's the case,
there are better licenses for this, like the LGPL, which let proprietary
tools to link code against the DMD FE without having to release their
code under a free license.

With Boost, anyone can create a tool with DMD FE, improve the DMD FE in
the process and distribute the modified DMD FE without offering the
source code of the DMD FE to the received, which kind of sucks. In
practice I guess not many people would do that, but I think it would
have been a nice gesture to ask contributors how they feel about this
license change, even when I think technically you are somehow giving up
your rights to Digital Mars when contributing to DMDFE and thus they can
do whatever they want with the code, legally speaking.

-- 
Leandro Lucarella (AKA luca) http://llucax.com.ar/
--
Every 5 minutes an area of rainforest the size of a foot ball field
Is eliminated


Re: DConf 2014 Day 1 Talk 4: Inside the Regular Expressions in D by Dmitry Olshansky

2014-06-14 Thread Dicebot via Digitalmars-d-announce
On Saturday, 14 June 2014 at 15:25:11 UTC, Andrei Alexandrescu 
wrote:

On 6/14/14, 8:05 AM, Dicebot wrote:
Adoption - yes. Production usage - less so (though still 
important).
Difference between 1 second and 5 seconds is very important. 
Between 10

seconds and 1 minute - not so much.


Wait, what? -- Andrei


If build time becomes long enough that it forces you to switch 
the mental context, it is less important how long it takes - you 
are much likely to do something else and return to it later. Of 
course it can also get to famous C++ hours of build time which is 
next level of inconvenience :)


But reasonably big and complicated project won't build in 5 
seconds anyway (even with perfect compiler), so eventually pure 
build time becomes less of a selling point. Still important but 
not _that_ important.


Re: DConf 2014 Day 1 Talk 4: Inside the Regular Expressions in D by Dmitry Olshansky

2014-06-14 Thread Dmitry Olshansky via Digitalmars-d-announce

14-Jun-2014 19:05, Dicebot пишет:

On Thursday, 12 June 2014 at 16:42:38 UTC, Dmitry Olshansky wrote:

[snip]

Well, I'm biased by heavy-handed ones. Say I have a (no longer) secret
plan of doing a next-gen parser generator in D. Needless to say swaths
of non-trivial code generation. I'm all for embedding nicely but I see
very little _practical_ gains in CTFE+mixin here EVEN if CTFE wouldn't
suck. See the point above about using the same metadata and types as
the user application would.


Consider something like REST API generator I have described during
DConf. There is different code generated in different contexts from same
declarative description - both for server and client. Right now simple
fact that you import very same module from both gives solid 100%
guarantee that API usage between those two programs stays in sync.


But let's face it - it's a one-time job to get it right in your favorite 
build tool. Then you have fast and cached (re)build. Comparatively costs 
of CTFE generation are paid in full during _each_ build.



In your proposed scenario there will be two different generated files
imported by server and client respectively. Tiny typo in writing your
build script will result in hard to detect run-time bug while code
itself still happily compiles.


Or a link error if we go a hybrid path where the imported module is 
emitting declarations/hooks via CTFE to be linked to by the proper 
generated code. This is something I'm thinking that could be a practical 
solution.


I.e. currently to get around wasting cycles again and again:

module a;
bool verify(string s){
  static re = ctRegex!; return match(s, re);
}
//
module b;
import a;
void foo(){
...
verify(blah);
...
}

vs would-be hybrid approach:

module gen_re;

void main() //or wrap it in tiny template mixin
{
generateCtRegex(
//all patterns
);
}

module b;
import std.regex;
//notice no import of a

void foo(){
...
static re = ctRegex!(...); //
...
}
and using ctRegex as usual in b, but any miss of compiled cache would 
lead to a link error.


In fact it might be the best of both worlds if there is a switch to try 
full CTFE vs link-time external option.




You may keep convenience but losing guarantees hurts a lot. To be able
to verify static correctness of your program / group of programs type
system needs to be aware how generated code relates to original source.


Build system does it. We have this problem with all of external deps 
anyway (i.e. who verifies the right version of libXYZ is linked not some 
other?)



Also this approach does not scale. I can totally imagine you doing it
for two or three DSL in single program, probably even dozen. But
something like 100+?


Not everything is suitable, of course. Some stuff  is good only inline 
and on spot. But it does use the same sources, it may look a lot like 
this in case of REST generators:


import everything;

void main(){
foreach(m; module){
//... generate client code from meta-data
}
}

Waiting for 100+ DSL compiled in a JIT interpreter that can't optimize a 
thing (pretty much by definition or use separate flags for that?) is not 
going to be fun too.



Huge mess to maintain. According to my experience
all builds systems are incredibly fragile beasts, trusting them
something that impacts program correctness and won't be detected at
compile time is just too dangerous.


Could be, but we have dub which should be simple and nice.
I had very positive experience with scons and half-generated sources.



I heard D builds times are important part of its adoption so...


Adoption - yes. Production usage - less so (though still important).
Difference between 1 second and 5 seconds is very important. Between 10
seconds and 1 minute - not so much.

JIT will be probably slower than stand-alone generators but not that
slower.


It might solve most of _current_ problems, but I foresee fundamental
issues of no global state in CTFE that in say 10 years from now
would look a lot like `#include` in C++.


I hope 10 years ago from now we will consider having global state in
RTFE stone age relict :P


Well, no amount of purity dismisses the point that a cache is a cache. 
When I say global in D I mean thread/fiber local.





A major one is there is no way for compiler to not recompile generated
code as it has no knowledge of how it might have changed from the
previous run.


Why can't we merge basic build system functionality akin to rdmd into
compiler itself? It makes perfect sense to me as build process can
benefit a lot from being semantically aware.


I wouldn't cross my fingers, but yes ideally it would need to have 
powers of a build system making it that much more complicated. Then it 
can cache results including templates instantiations across module and 
separate invocations of the tool. It's a distant dream though.


Currently available caching at the level of object files is very coarse 
grained and 

Re: dmd front end now switched to Boost license

2014-06-14 Thread Leandro Lucarella via Digitalmars-d-announce
Dmitry Olshansky, el 14 de June a las 18:18 me escribiste:
 14-Jun-2014 04:46, Walter Bright пишет:
 On 6/13/2014 4:31 AM, Dmitry Olshansky wrote:
 It's probably nice to have less restrictive license, but what we aim
 to achieve
 with that?
 
 
 I do not want to come across as rude but from pragmatic standpoint
 it's not interesting. I'm not opposing it (after all I agreed to
 change it), I just don't see any valuable gains.
 
 1. Boost is the least restrictive license
 
 This gains nothing in and by itself. 4 speaks of potential adv,
 which realistically is not something we desperately want. Maybe as a
 proactive move, that I could understand.
 
 
 2. Minimize friction for adopting D
 
 Let's not deluge ourselves, it does nothing to do that unlike many
 other things. Changing license of G++ frontend to boost won't make
 people adopt C++ any faster.
 
 The only place of friction is backend, and opening FE for commerce
 doesn't help it.
 
 3. Harmonization with usage of Boost in the runtime library
 
 
 In other words simplify licensing, but again compiler and runtime
 library do not have to have anything in common. There is no issue to
 begin with.
 
 4. Allow commercial use of DMDFE (so what if someone does? It'll drive
 even more adoption of D!)
 
 The only strictly valid point. Making commercial compilers and tools
 on D front-end is the only solid result this move enables.

Except is completely invalid!

No free license restrict commercial use. What using boost enable is only
proprietary use, i.e. changing the DMD FE and keeping the changes
private, even if you distribute the binary with the compiled DMDFE. As I
said before, there are licenses that allow anyone linking your code to
non-free code, but you still have to provide the source code of the
modified DMDFE if you distribute it. An example is LGPL.

 5. Boost is well known and accepted
 
 All of licenses are well known. Again by itself it's not
 interesting, it won't make dmd any more easy to get into FOSS
 distros.

So, really, I all those 5 points are invalid.

All the license change allows is people using the work of others without
contributing back, without any real necessity like with the standard
library that contains templates or code that gets copypasted into the
users code.

OK, as a side effect of this, this might encourage companies not to use
D but to develop tools based on DMDFE, but companies that are too lazy
or to BAD not to contribute the changes back, which I'm not sure is such
a good idea.

-- 
Leandro Lucarella (AKA luca) http://llucax.com.ar/
--
PITUFO ENRIQUE ATEMORIZA CATAMARCA, AMPLIAREMOS
-- Crónica TV


Re: dmd front end now switched to Boost license

2014-06-14 Thread Dicebot via Digitalmars-d-announce
On Saturday, 14 June 2014 at 17:07:58 UTC, Leandro Lucarella 
wrote:
OK, as a side effect of this, this might encourage companies 
not to use
D but to develop tools based on DMDFE, but companies that are 
too lazy
or to BAD not to contribute the changes back, which I'm not 
sure is such

a good idea.


I believe it is good thing. Standard tool chain should be as 
permissive as possible, with no expectations from the potential 
users whatsoever. If someone goes with proprietary closed 
solution and succeeds - it is their choice and risk to do so.


Re: dmd front end now switched to Boost license

2014-06-14 Thread Nick Sabalausky via Digitalmars-d-announce

On 6/14/2014 3:58 AM, Joakim wrote:

On Saturday, 14 June 2014 at 06:07:08 UTC, Nick Sabalausky wrote:

I doubt it. First, it's the backend that's not technically OSI,
frontend was (apparently) GPL. Second, I can't imagine any Linux
distro rejecting GPL - they'd have to boot the kernel and core utils,
too.


Actually, the frontend was dual-licensed under the Artistic license and
the GPL and dmd binaries were provided under the former, as the GPL
doesn't allow linking against a non-GPL backend.  The GPL alternative
was likely for gdc to link the frontend against the GPL'd gcc backend.


Well, GPL and Artistic are both OSI anyway.



Re: dmd front end now switched to Boost license

2014-06-14 Thread Nick Sabalausky via Digitalmars-d-announce

On 6/14/2014 10:18 AM, Dmitry Olshansky wrote:

14-Jun-2014 04:46, Walter Bright пишет:


3. Harmonization with usage of Boost in the runtime library


In other words simplify licensing, but again compiler and runtime
library do not have to have anything in common. There is no issue to
begin with.



Uhh, *no*.

Scenario A:
--
Them: What license does D use?

Us: Well, it depends if you're talking about the compiler or Phobos, 
the standard library. Phobos is licensed under Boost, whereas the 
compiler is dual-licensed under both Artistic and one of the many GPLs. 
(Although the compiler's backend is a source-publicly-available 
proprietary due to insurmountable historical IP reasons. But GDC/LDC are 
fully OSS.)


Them: Uhh...what? And WHY? And WTF?

Us: You see, blah blah blah inclusion into user code blah blah Phobos 
templates blah blah blah GPL alternative blah blah GDC blah blah...


Them: Jeesus, nevermind...
--

Scenario B:
--
Them: What license does D use?

Us: Boost. (Although the compiler's backend is a 
source-publicly-available proprietary due to insurmountable historical 
IP reasons. But GDC/LDC are fully OSS.)


Them: Huh. Weird, but whatever.
--

I'll take B, thanks. ;)



Re: dmd front end now switched to Boost license

2014-06-14 Thread Kapps via Digitalmars-d-announce

On Saturday, 14 June 2014 at 17:17:34 UTC, Dicebot wrote:
On Saturday, 14 June 2014 at 17:07:58 UTC, Leandro Lucarella 
wrote:
OK, as a side effect of this, this might encourage companies 
not to use
D but to develop tools based on DMDFE, but companies that are 
too lazy
or to BAD not to contribute the changes back, which I'm not 
sure is such

a good idea.


I believe it is good thing. Standard tool chain should be as 
permissive as possible, with no expectations from the potential 
users whatsoever. If someone goes with proprietary closed 
solution and succeeds - it is their choice and risk to do so.


And if they do so, it's beneficial to D overall.


Re: dmd front end now switched to Boost license

2014-06-14 Thread Walter Bright via Digitalmars-d-announce

On 6/14/2014 11:03 AM, Nick Sabalausky wrote:

I'll take B, thanks. ;)


Right on, Nick.

And there's another advantage I neglected to mention - it allows DMDFE code to 
be moved into Phobos without issues.


Re: dmd front end now switched to Boost license

2014-06-14 Thread David Nadlinger via Digitalmars-d-announce

On Saturday, 14 June 2014 at 18:43:59 UTC, Walter Bright wrote:
And there's another advantage I neglected to mention - it 
allows DMDFE code to be moved into Phobos without issues.


I don't think Nick's argument is particularly compelling, but the 
DDMD - Phobos connection definitely makes the change very 
worthwhile in my opinion.


David


Re: dmd front end now switched to Boost license

2014-06-14 Thread Iain Buclaw via Digitalmars-d-announce
On 14 June 2014 19:03, Nick Sabalausky via Digitalmars-d-announce
digitalmars-d-announce@puremagic.com wrote:
 On 6/14/2014 10:18 AM, Dmitry Olshansky wrote:

 14-Jun-2014 04:46, Walter Bright пишет:


 3. Harmonization with usage of Boost in the runtime library


 In other words simplify licensing, but again compiler and runtime
 library do not have to have anything in common. There is no issue to
 begin with.


 Uhh, *no*.

 Scenario A:
 --
 Them: What license does D use?

 Us: Well, it depends if you're talking about the compiler or Phobos, the
 standard library. Phobos is licensed under Boost, whereas the compiler is
 dual-licensed under both Artistic and one of the many GPLs. (Although the
 compiler's backend is a source-publicly-available proprietary due to
 insurmountable historical IP reasons. But GDC/LDC are fully OSS.)

 Them: Uhh...what? And WHY? And WTF?

 Us: You see, blah blah blah inclusion into user code blah blah Phobos
 templates blah blah blah GPL alternative blah blah GDC blah blah...

 Them: Jeesus, nevermind...
 --

 Scenario B:
 --
 Them: What license does D use?

 Us: Boost. (Although the compiler's backend is a source-publicly-available
 proprietary due to insurmountable historical IP reasons. But GDC/LDC are
 fully OSS.)

 Them: Huh. Weird, but whatever.
 --

 I'll take B, thanks. ;)


You should really practise explaining things in a more succinct manner. ;-)

When I look at a project, my first question is never What license
does it use? - that should be of little importance to anyone using D.

If you wish to contribute, your question should be smarter, reword the
question to Does this project allow me freely study, modify and
re-distribute it's code, and does it guarantee that any contributions
I make are released under the same freedom as I get when I received
the software?



Re: dmd front end now switched to Boost license

2014-06-14 Thread Dmitry Olshansky via Digitalmars-d-announce

14-Jun-2014 22:03, Nick Sabalausky пишет:

On 6/14/2014 10:18 AM, Dmitry Olshansky wrote:

14-Jun-2014 04:46, Walter Bright пишет:


3. Harmonization with usage of Boost in the runtime library


In other words simplify licensing, but again compiler and runtime
library do not have to have anything in common. There is no issue to
begin with.



Uhh, *no*.

Scenario A:
--
Them: What license does D use?


Me: WAT? Language is not a product in itself. What license C++ use then?
In short, everything they care about was and is Boost.

--
Dmitry Olshansky


Re: dmd front end now switched to Boost license

2014-06-14 Thread Walter Bright via Digitalmars-d-announce

On 6/14/2014 9:02 AM, Leandro Lucarella wrote:

Not really, the standard library is included into user code (because of
the templates), and that's the reason why it needs to be under a very
permissive license. The compiler, on the other hand, doesn't, and one
could agree is good to force people wanting to build products using the
compiler FE to contribute changes back. I guess the main purpose of this
is encourage proprietary tools based on the FE, but if that's the case,
there are better licenses for this, like the LGPL, which let proprietary
tools to link code against the DMD FE without having to release their
code under a free license.


Yes, it allows people to use DMDFE for whatever they want, including closed 
source proprietary tools.


I understand very well how upsetting someone taking your code, creating a CSPT 
and making money off of it without acknowledging you or contributing back to it. 
This happened to me with my game Empire. It's a long and convoluted story, and I 
won't bore you with it, just suffice to say I am not a stranger to how you feel 
about it.


But D is different from a game in that it has network effects - the more 
adoption it gets, the more momentum for adoption it accrues. By giving up a 
slice of the pie the pie more than grows enough to compensate.


In other words, the D community still gains even if there are a few CSPTs made 
from the front end.


Re: dmd front end now switched to Boost license

2014-06-14 Thread Nick Sabalausky via Digitalmars-d-announce

On 6/14/2014 2:47 PM, David Nadlinger wrote:

On Saturday, 14 June 2014 at 18:43:59 UTC, Walter Bright wrote:

And there's another advantage I neglected to mention - it allows DMDFE
code to be moved into Phobos without issues.


I don't think Nick's argument is particularly compelling,


Granted, it isn't a very big technical/legal argument, but I don't think 
those are the only important criteria. The thing is, D's licensing 
overall (DMDFE/DMDBE/LDC/GDC/Phobos) is kinda complicated. So any 
simplification, as long as it doesn't restrict anyone, is a net 
improvement, even if it isn't earth-shattering.



but the DDMD
- Phobos connection definitely makes the change very worthwhile in my
opinion.



Yea, I agree too, I hadn't thought of that one either.


Re: dmd front end now switched to Boost license

2014-06-14 Thread Joakim via Digitalmars-d-announce
On Saturday, 14 June 2014 at 17:07:58 UTC, Leandro Lucarella 
wrote:
No free license restrict commercial use. What using boost 
enable is only
proprietary use, i.e. changing the DMD FE and keeping the 
changes
private, even if you distribute the binary with the compiled 
DMDFE. As I
said before, there are licenses that allow anyone linking your 
code to
non-free code, but you still have to provide the source code of 
the

modified DMDFE if you distribute it. An example is LGPL.


The frontend was dual-licensed under the Artistic license, which 
also allows such proprietary use, so nothing has really changed.  
Rather than having two licenses, the Artistic license to allow 
linking against the proprietary dmd backend and the GPL to allow 
linking against the gcc backend, the dmd frontend now has a 
single Boost license that allows both, since the Boost license is 
considered GPL-compatible.


From the standpoint of what the frontend's license allows, not 
much has changed, but the simplicity and clarity of the Boost 
license puts the frontend on firmer footing.


I realize you prefer the LGPL, to force others to contribute back 
to the frontend if they modify and distribute it, but the Boost 
license is much simpler and as Walter points out, proprietary use 
can help D's adoption.


Re: DlangUI

2014-06-14 Thread Jim Hewes via Digitalmars-d-announce
Very nice, thanks. I'm looking forward to trying it out when I can find 
the time. I'm not a big fan of bindings/wrappers.


Jim



Re: Dfix

2014-06-14 Thread Stefan Koch via Digitalmars-d-announce
As it happens I am writing a kind of DFIX  on top of DScanner 
right at the moment.
There are a few details to sort out. But I should have some small 
demo pretty soon.


Regrards, Stefan



Re: dmd front end now switched to Boost license

2014-06-14 Thread Nick Sabalausky via Digitalmars-d-announce

On 6/14/2014 2:52 PM, Dmitry Olshansky wrote:

14-Jun-2014 22:03, Nick Sabalausky пишет:


Scenario A:
--
Them: What license does D use?


Me: WAT? Language is not a product in itself.


While that's technically true, people often think of them as complete 
products anyway. Esp with so many of the newer languages now having a 
main/official compiler/lib.



What license C++ use then?
In short, everything they care about was and is Boost.





Re: DMD 2.066 Alpha

2014-06-14 Thread Jonathan M Davis via Digitalmars-d-announce
On Fri, 13 Jun 2014 12:00:39 -0700
Andrei Alexandrescu via Digitalmars-d-announce
digitalmars-d-announce@puremagic.com wrote:

 On 6/13/14, 10:15 AM, Nick Sabalausky wrote:
  On 6/13/2014 12:49 PM, Andrei Alexandrescu wrote:
 
  Being able to negate the final:
  label is nice to have but not a must. Adding a keyword for that
  doesn't scale - it would mean we'd need to add one keyword to undo
  each label.
 
 
  No it doesn't mean that. virtual is very well established
  industry-wide as the anti-final. Just because we accept that does
  not mean we can't still do @~pure, @nothrow(false) or whatever for
  the ones which don't already have well-established names.

 I don't see it necessary to add the virtual as a keyword to D. --

If we were going to go with final by default, then adding virtual would make a
lot of sense IMHO - especially given that's what people expect from other
languages and the fact that virtual would the likely be used far more often
than final. Without that however, marking a function as virtual becomes a lot
less critical, and it becomes a question of whether the familiarity of using
virtual instead of !final or final(false) (or whatever we come up with) is
worth adding another keyword and having it in addition to !final or
final(false) or whatever (since presumably, we'd still need that for generic
code even with virtual). And actually, having virtual would then open the door
for !virtual or virtual(false) or whatever in addition to !final or
final(false), etc. So, while having virtual would be nice, it's probably
complicating things too much from the user's perspective when combined with
the ability to explicitly negate attributes.

- Jonathan M Davis


Re: dmd front end now switched to Boost license

2014-06-14 Thread Leandro Lucarella via Digitalmars-d-announce
Kapps, el 14 de June a las 18:19 me escribiste:
 On Saturday, 14 June 2014 at 17:17:34 UTC, Dicebot wrote:
 On Saturday, 14 June 2014 at 17:07:58 UTC, Leandro Lucarella
 wrote:
 OK, as a side effect of this, this might encourage companies not
 to use
 D but to develop tools based on DMDFE, but companies that are
 too lazy
 or to BAD not to contribute the changes back, which I'm not sure
 is such
 a good idea.
 
 I believe it is good thing. Standard tool chain should be as
 permissive as possible, with no expectations from the potential
 users whatsoever. If someone goes with proprietary closed solution
 and succeeds - it is their choice and risk to do so.
 
 And if they do so, it's beneficial to D overall.

Not if they don't contribute back the changes (at least compared to
using a license that allows them to build proprietary tools by linking
to DMDFE but forcing them to contribute back the changes to DMDFE
itself). I find hard to believe companies willing to do a full closed
source proprietary tool are willing to use DMDFE with Boost license but
not with LGPL.

In any case, I clarify once more that probably in practice this makes a
very tiny difference because usually you have to be too stupid to
maintain a fork instead of contributing changes back and let upstream
take care of all the updates, so I think that will hardly happens, this
is more a ethical issue than a practical issue.

I just wanted to point out that there might be more ethical licenses to
achieve the same effect (allowing companies to build proprietary tools
on top on DMDFE).

-- 
Leandro Lucarella (AKA luca) http://llucax.com.ar/
--
¿Cómo estais? ¿Cómo os senteis hoy 29 del membre de 1961 día en que
conmemoreramos la nonésima setima nebulización del martir Peperino
Pómoro junto al Rolo Puente en la ciudad de Jadad?
-- Peperino Pómoro


Re: dmd front end now switched to Boost license

2014-06-14 Thread Leandro Lucarella via Digitalmars-d-announce
David Nadlinger, el 14 de June a las 18:47 me escribiste:
 On Saturday, 14 June 2014 at 18:43:59 UTC, Walter Bright wrote:
 And there's another advantage I neglected to mention - it allows
 DMDFE code to be moved into Phobos without issues.
 
 I don't think Nick's argument is particularly compelling, but the
 DDMD - Phobos connection definitely makes the change very
 worthwhile in my opinion.

Agreed, so far this looks like the most important gain from the change,
and I can see some sense on using the boost license instead of something
like lgpl.

-- 
Leandro Lucarella (AKA luca) http://llucax.com.ar/
--
Ambition makes you look pretty ugly


Re: dmd front end now switched to Boost license

2014-06-14 Thread Leandro Lucarella via Digitalmars-d-announce
Joakim, el 14 de June a las 19:31 me escribiste:
 On Saturday, 14 June 2014 at 17:07:58 UTC, Leandro Lucarella wrote:
 No free license restrict commercial use. What using boost enable
 is only
 proprietary use, i.e. changing the DMD FE and keeping the changes
 private, even if you distribute the binary with the compiled
 DMDFE. As I
 said before, there are licenses that allow anyone linking your
 code to
 non-free code, but you still have to provide the source code of
 the
 modified DMDFE if you distribute it. An example is LGPL.
 
 The frontend was dual-licensed under the Artistic license, which
 also allows such proprietary use, so nothing has really changed.

Mmm, even when is true that the Artistic license is a bit more
permissive than the GPL in some aspects, I think is hardly suitable for
doing serious proprietary software (that you intent to sell).

From the artistic license that was distributed by DMD:
You may not charge a fee for this Package itself. However, you may
distribute this Package in aggregate with other (possibly commercial)
programs as part of a larger (possibly commercial) software distribution
provided that you do not advertise this Package as a product of your
own.

Is a bit hairy, I don't think any companies would want to do proprietary
tools using the artistic license :)

https://github.com/D-Programming-Language/dmd/blob/083271a415716cf3e35321f91826397d91c0a731/src/artistic.txt

 I realize you prefer the LGPL, to force others to contribute back to
 the frontend if they modify and distribute it, but the Boost license
 is much simpler and as Walter points out, proprietary use can help
 D's adoption.

Again, I think from the practical point of view is the same. If you use
boost license and tons of proprietary tools come out CHANGING the DMDFE
and not contributing back, then the D community might get a boost
because the have better tools but they are missing the contributions, so
is hard to tell if the balance would be positive or negative. If they
don't change the DMDFE (or contribute back the changes), then using
boost or LGPL are the same, because it doesn't matter.

-- 
Leandro Lucarella (AKA luca) http://llucax.com.ar/
--
El techo de mi cuarto lleno de galaxias


Re: DMD 2.066 Alpha

2014-06-14 Thread Nick Sabalausky via Digitalmars-d-announce

On 6/14/2014 5:49 PM, Jonathan M Davis via Digitalmars-d-announce wrote:


and it becomes a question of whether the familiarity of using
virtual instead of !final or final(false) (or whatever we come up with) is
worth adding another keyword


FWIW, I don't think virtual is all that valuable as a user-defined 
keyword anyway. But, emphasis on FWIW.