April 19, 2012
On 2012-04-19 16:55, Roman D. Boiko wrote:
> On Thursday, 19 April 2012 at 14:46:26 UTC, Jacob Carlborg wrote:
>> On 2012-04-19 13:05, Ary Manzana wrote:
>>
>>> Unfortunately rename can't be perfect in D because you can't apply it
>>> inside templates.
>>
>> Could you elaborate a bit on why this is?
>
> Please see several last messages for this discussion.

Yeah, I saw that now, sorry.

-- 
/Jacob Carlborg
April 19, 2012
On 2012-04-19 18:38, Marco Leise wrote:
> Am Thu, 19 Apr 2012 11:24:34 +0200
> schrieb Jacob Carlborg<doob@me.com>:
>
>> On 2012-04-19 10:48, Roman D. Boiko wrote:
>>
>>> Convenience interface on top of low-level core functionality can be
>>> provided and would suffice for many typical situations.
>>
>> In that case I think something like this might work:
>>
>> Foo.renameSymbol("file.d:16:4", "bar");
>>
>> Where "file.d" is the file in which the symbol is located. ":16:4" would
>> be the row and column number. "bar" would be the new name of the symbol.
>
> Doesn't the D module system make symbols unique? I thought with a set of open/relevant files (call it a project if you will) a symbol name can be given without ambiguities. This might go into bike shedding, but it looks like dropping one of D's strengths here. It is of course still necessary to have code to look up symbols under the cursor, no question.
>

Hmm, I guess so.

-- 
/Jacob Carlborg
April 19, 2012
On 2012-04-19 17:00, Roman D. Boiko wrote:
> On Thursday, 19 April 2012 at 14:55:50 UTC, David Nadlinger wrote:
>> The question is, though, whether »perfect« renaming support is really
>> required, or if a defensive solution warning on potential ambiguities
>> isn't already useful enough for most cases.
>>
>> David
>
> "Perfect" support is impossible, I guess. For example, if a library has
> been released, a rename would cause API breaking changes. But for code
> under control of user which is doing the raname it is possible to
> provide customization what to rename (ReSharper does that, for example).

That's not up to the IDE to decide. If the user wants to break the API the IDE should let him/her.

-- 
/Jacob Carlborg
April 19, 2012
> That's not up to the IDE to decide. If the user wants to break the API the IDE should let him/her.

Yes, that's exactly my point. It is a matter of user goals, not a language issue, and decision should not be made by a tool instead of a user.

April 19, 2012
"Roman D. Boiko" <rb@d-coding.com> wrote in message news:gyhkcrhkaedsjzoohrvp@forum.dlang.org...
>
> Motivation for Boost would be reducing the number of licenses that the code author must know. Also, here are some differences between these licenses, which I consider as Boost advantages:
>

MIT's *much* easier to understand though. Boost has some real goofy, obfuscated wordings. Although it's *worlds* better in that regard than the completely impenatrable GPL or Creative Commons.

> "The Boost Software License is based upon the MIT license, but differs from the MIT license in that it:
>
> (i) makes clear that licenses can be granted to organizations as well as individuals;
>
> (ii) does not require that the license appear with executables or other binary uses of the library;
>

My favorite license, zlib ( http://www.opensource.org/licenses/Zlib ) doesn't have this #2 issue, and it's even easier to read and understand than MIT.

Plus it doesn't say anything like "to any person", so it should take care of #1, too. (Although personally, I think I like MIT better in that regard: It's a deterrent against corporations, which gives it a little bit of the benefit of the GPL, but without all the bullshit.)

> (iii) expressly disclaims -- on behalf of the author and copyright holders of the software only -- the warranty of title (a warranty that, under the Uniform Commercial Code, is separate from the warranty of non-infringement)
>
> (iv) does not extend the disclaimer of warranties to licensees, so that they may, if they choose, undertake such warranties (e.g., in exchange for payment)."
>
> http://ideas.opensource.org/ticket/45


April 19, 2012
"David Nadlinger" <see@klickverbot.at> wrote in message news:ebhaxqxtjuccyqfyapfo@forum.dlang.org...
> On Thursday, 19 April 2012 at 09:58:52 UTC, Nick Sabalausky wrote:
>> There's no attribution in MIT.
>
> »The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software« - I am not a lawyer, but I what makes you so sure that binaries don't fall under this requirement as well?
>
> The Boost people also seem to interpret MIT as requiring binary attribution; Dave Abrahams mentioned the binary clause in Boost as a difference to MIT in his OSI approval request at least ([1]).
>

I'm pretty sure that "attribution" typically refers to the requirement that software X which *uses* software Y must include notice that software Y is being used.

But you're right that MIT doesn't make it clear whether binary-only redistributions of software Y must contain the license and copyright notice.


April 19, 2012
On Thursday, 19 April 2012 at 19:54:48 UTC, Nick Sabalausky wrote:
> MIT's *much* easier to understand though. Boost has some real goofy, obfuscated wordings. Although it's *worlds* better in that regard than the completely impenatrable GPL or Creative Commons.

Comparing http://www.opensource.org/licenses/MIT and http://opensource.org/licenses/bsl1.0.html, I would not conclude that Boost is  more difficult to understand.
>
> My favorite license, zlib ( http://www.opensource.org/licenses/Zlib )
> doesn't have this #2 issue, and it's even easier to read and understand than
> MIT.
>
> Plus it doesn't say anything like "to any person", so it should take care of
> #1, too. (Although personally, I think I like MIT better in that regard:
> It's a deterrent against corporations, which gives it a little bit of the
> benefit of the GPL, but without all the bullshit.)

Here I do not agree either. Assuming that we would *want* such "benefit", MIT does not provide it.

As for zlib, it is very different from MIT/Boost, thus it is difficult to compare them (for non-lawyers).

License is a tool, and its up to SDC authors to select one. I just wanted to provide some information so that another option (Boost) is considered.
April 20, 2012
On 2012-04-19 21:54, Nick Sabalausky wrote:

> MIT's *much* easier to understand though. Boost has some real goofy,
> obfuscated wordings. Although it's *worlds* better in that regard than the
> completely impenatrable GPL or Creative Commons.

What I like about the Boost license is that it says explicitly that no attribution is needed for binary distribution.

The zlib/libpng license on the other hand says so implicitly.

-- 
/Jacob Carlborg
April 21, 2012
Am Thu, 19 Apr 2012 18:58:26 +0200
schrieb "Roman D. Boiko" <rb@d-coding.com>:

> I doubt specifying symbol it would be any better than location. For example, you would not be able to rename a local variable or any other symbol nested in a function.

Yes you can! Try to compile this:

	void x() {
		int i = 1;
		void y() {
			int i = 2;
			{
				int i = 3;
			}
		}
	}

Prints: Error: shadowing declaration x.y.i is deprecated
Local variables have unique names and creating duplicate names is deprecated since a while.

-- 
Marco

April 21, 2012
On 04/21/12 15:32, Marco Leise wrote:
> Am Thu, 19 Apr 2012 18:58:26 +0200
> schrieb "Roman D. Boiko" <rb@d-coding.com>:
> 
>> I doubt specifying symbol it would be any better than location. For example, you would not be able to rename a local variable or any other symbol nested in a function.
> 
> Yes you can! Try to compile this:
> 
> 	void x() {
> 		int i = 1;
> 		void y() {
> 			int i = 2;
> 			{
> 				int i = 3;
> 			}
> 		}
> 	}
> 
> Prints: Error: shadowing declaration x.y.i is deprecated
> Local variables have unique names and creating duplicate names is deprecated since a while.

   void x() {
      int i = 1;
      {
         int i = 2;
         writeln(i);
      }
      writeln(i);
   }

artur