Could someone take a look at DIP PR 109?

2018-03-27 Thread Shachar Shemesh via Digitalmars-d
https://github.com/dlang/DIPs/pull/109 I submitted it 12 days ago. So far, except for two thumbs up, I got no official reaction of any kind for it. I did get an unofficial list of suggestions from Andrei, which I have now incorporated into the DIP, but I was under the impression that I was s

Re: D => asm.js for the web?

2018-03-27 Thread safari customer service via Digitalmars-d
//Include LCD library #include // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("Hello World!"); } void loop(

Re: D vs nim

2018-03-27 Thread Stefan Koch via Digitalmars-d
On Tuesday, 27 March 2018 at 12:02:37 UTC, jmh530 wrote: On Wednesday, 22 April 2015 at 06:03:07 UTC, Timothee Cour wrote: [snip] I would like to refocus this thread on feature set and how it compares to D, not on flame wars about brackets or language marketing issues. In the comparison you

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Rubn via Digitalmars-d
On Wednesday, 28 March 2018 at 00:56:29 UTC, kinke wrote: On Tuesday, 27 March 2018 at 23:59:09 UTC, Rubn wrote: Just adding a few writeln it isn't able to remove the function entirely anymore and can't optimize it out. Well writeln() here involves number -> string formatting, GC, I/O, templa

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread kinke via Digitalmars-d
On Tuesday, 27 March 2018 at 23:59:09 UTC, Rubn wrote: Just adding a few writeln it isn't able to remove the function entirely anymore and can't optimize it out. Well writeln() here involves number -> string formatting, GC, I/O, template bloat... There are indeed superfluous memcpy's in your

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread kinke via Digitalmars-d
On Tuesday, 27 March 2018 at 23:35:44 UTC, kinke wrote: On Tuesday, 27 March 2018 at 21:52:25 UTC, Rubn wrote: It happens with LDC too, not sure how it would be able to know to do any kind of optimization like that unless it was able to inline every single function called into one function and

Re: Recursive attribute for virtual functions?

2018-03-27 Thread ag0aep6g via Digitalmars-d
On 03/28/2018 01:34 AM, arturg wrote: you can call them with __traits(getOverloads, T, "name")[index]; you can overload on types attributes and linkage, but seems like you can only merge overloads based on types. I don't think there's value in allowing overloads that can only be called via _

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Rubn via Digitalmars-d
On Tuesday, 27 March 2018 at 23:35:44 UTC, kinke wrote: On Tuesday, 27 March 2018 at 21:52:25 UTC, Rubn wrote: It happens with LDC too, not sure how it would be able to know to do any kind of optimization like that unless it was able to inline every single function called into one function and

Re: Recursive attribute for virtual functions?

2018-03-27 Thread Jonathan M Davis via Digitalmars-d
On Tuesday, March 27, 2018 21:10:25 12345swordy via Digitalmars-d wrote: > On Tuesday, 27 March 2018 at 21:05:32 UTC, ag0aep6g wrote: > > On 03/27/2018 11:02 PM, 12345swordy wrote: > >> Then explain this then. > >> https://run.dlang.io/is/S2KLs5 > > > > B.talk is @safe. The compiler ignores the @sy

Re: Recursive attribute for virtual functions?

2018-03-27 Thread arturg via Digitalmars-d
On Tuesday, 27 March 2018 at 23:34:20 UTC, arturg wrote: On Tuesday, 27 March 2018 at 23:23:38 UTC, ag0aep6g wrote: DMD might accept that, but I don't think it works in a meaningful way. How do you call the @system one? Looks like the @safe one will always be called, even from @system code:

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread kinke via Digitalmars-d
On Tuesday, 27 March 2018 at 21:52:25 UTC, Rubn wrote: It happens with LDC too, not sure how it would be able to know to do any kind of optimization like that unless it was able to inline every single function called into one function and be able to do optimize it from there. I don't imagine th

Re: Recursive attribute for virtual functions?

2018-03-27 Thread arturg via Digitalmars-d
On Tuesday, 27 March 2018 at 23:23:38 UTC, ag0aep6g wrote: DMD might accept that, but I don't think it works in a meaningful way. How do you call the @system one? Looks like the @safe one will always be called, even from @system code: import std.stdio; void talk() @system { writeln("

Re: Recursive attribute for virtual functions?

2018-03-27 Thread ag0aep6g via Digitalmars-d
On 03/28/2018 12:19 AM, arturg wrote: shouldn't it create a overload? I don't think so. As far as I know, you can't overload on attributes. [...] but this works: class A {     void talk() {} } class B : A {     alias talk = A.talk;     void talk(int) {} } Because different parameters m

Re: D vs nim

2018-03-27 Thread Timothee Cour via Digitalmars-d
that comment was regarding -betterC RAII (with structs) has been available in D for a while, eg: ```d struct A{ ~this(){...} } void fun(){ A a; // when a goes out of scope, will call dtor deterministically } ``` On Tue, Mar 27, 2018 at 4:15 PM, Ali via Digitalmars-d wrote: > On Tuesday, 27

Re: D vs nim

2018-03-27 Thread Ali via Digitalmars-d
On Tuesday, 27 March 2018 at 01:19:44 UTC, timotheecour wrote: On Wednesday, 22 April 2015 at 06:03:07 UTC, Timothee Cour wrote: On Mon, Apr 13, 2015 at 10:28 AM, Timothee Cour wrote: I would like to refocus this thread on feature set and how it compares to D, not on flame wars about bracke

Re: Recursive attribute for virtual functions?

2018-03-27 Thread arturg via Digitalmars-d
On Tuesday, 27 March 2018 at 21:25:33 UTC, ag0aep6g wrote: On 03/27/2018 11:10 PM, 12345swordy wrote: Shouldn't it give a warning then? I wouldn't mind a warning, or even an error. Putting both @safe and @system directly on a function is an error, too. shouldn't it create a overload? for ex

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread H. S. Teoh via Digitalmars-d
On Tue, Mar 27, 2018 at 09:52:25PM +, Rubn via Digitalmars-d wrote: > On Tuesday, 27 March 2018 at 20:38:35 UTC, H. S. Teoh wrote: > > On Tue, Mar 27, 2018 at 08:25:36PM +, Rubn via Digitalmars-d wrote: > > [...] > > > _D7example__T3fooTSQr3FooZQnFNbNiNfQrZv: > > > push rbp > > > mov rb

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Rubn via Digitalmars-d
On Tuesday, 27 March 2018 at 20:38:35 UTC, H. S. Teoh wrote: On Tue, Mar 27, 2018 at 08:25:36PM +, Rubn via Digitalmars-d wrote: [...] _D7example__T3fooTSQr3FooZQnFNbNiNfQrZv: push rbp mov rbp, rsp sub rsp, 3104 lea rax, [rbp + 16] lea rdi, [rbp - 2048] lea rcx, [rbp - 1024] mo

Re: Recursive attribute for virtual functions?

2018-03-27 Thread ag0aep6g via Digitalmars-d
On 03/27/2018 11:10 PM, 12345swordy wrote: Shouldn't it give a warning then? I wouldn't mind a warning, or even an error. Putting both @safe and @system directly on a function is an error, too.

Re: Recursive attribute for virtual functions?

2018-03-27 Thread 12345swordy via Digitalmars-d
On Tuesday, 27 March 2018 at 21:05:32 UTC, ag0aep6g wrote: On 03/27/2018 11:02 PM, 12345swordy wrote: Then explain this then. https://run.dlang.io/is/S2KLs5 B.talk is @safe. The compiler ignores the @system attribute on B.talk, because A.talk's @safe attribute takes precedence. Shouldn't it

Re: Recursive attribute for virtual functions?

2018-03-27 Thread ag0aep6g via Digitalmars-d
On 03/27/2018 11:02 PM, 12345swordy wrote: Then explain this then. https://run.dlang.io/is/S2KLs5 B.talk is @safe. The compiler ignores the @system attribute on B.talk, because A.talk's @safe attribute takes precedence.

Re: Recursive attribute for virtual functions?

2018-03-27 Thread 12345swordy via Digitalmars-d
On Tuesday, 27 March 2018 at 20:49:25 UTC, ag0aep6g wrote: On 03/27/2018 10:39 PM, 12345swordy wrote: class A {     @recursive @safe void talk() [...] } class B : A {     override void talk() // @safe attribute added by recursive attribute and can not be removed [...] } It already works

Re: Recursive attribute for virtual functions?

2018-03-27 Thread ag0aep6g via Digitalmars-d
On 03/27/2018 10:39 PM, 12345swordy wrote: class A {     @recursive @safe void talk() [...] } class B : A {     override void talk() // @safe attribute added by recursive attribute and can not be removed [...] } It already works like that. B.talk is @safe, and you can't make it @system.

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread H. S. Teoh via Digitalmars-d
On Tue, Mar 27, 2018 at 08:25:36PM +, Rubn via Digitalmars-d wrote: [...] > _D7example__T3fooTSQr3FooZQnFNbNiNfQrZv: > push rbp > mov rbp, rsp > sub rsp, 3104 > lea rax, [rbp + 16] > lea rdi, [rbp - 2048] > lea rcx, [rbp - 1024] > mov edx, 1024 > mov rsi, rcx > mov qword ptr [

Recursive attribute for virtual functions?

2018-03-27 Thread 12345swordy via Digitalmars-d
For example class A { @recursive @safe void talk() { writeln("Hi"); } } class B : A { override void talk() // @safe attribute added by recursive attribute and can not be removed { writeln("Bye"); } } I have notice that potential bugs can slip by the com

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Rubn via Digitalmars-d
On Tuesday, 27 March 2018 at 15:50:37 UTC, Atila Neves wrote: It's fine for references to just be references in D. We're not struggling to make references move-able in D, that's not a thing, we already have move semantics. Any extension of this conversation about references into C++ rvalue-ref

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Peter Campbell via Digitalmars-d
On Tuesday, 27 March 2018 at 18:14:18 UTC, Manu wrote: That's exactly what I've been saying. For like, 9 years.. It looks like this: https://github.com/TurkeyMan/DIPs/blob/ref_args/DIPs/DIP1xxx-rval_to_ref.md (contribution appreciated) I've followed this thread since it was made as this has be

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Rubn via Digitalmars-d
On Tuesday, 27 March 2018 at 07:33:12 UTC, Atila Neves wrote: On Tuesday, 27 March 2018 at 00:30:24 UTC, Rubn wrote: On Monday, 26 March 2018 at 14:40:03 UTC, Atila Neves wrote: C++ T&& (Rvalue reference) -> D T Not really, in C++ it is an actual reference and you get to choose which functio

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Manu via Digitalmars-d
On 27 March 2018 at 00:14, Atila Neves via Digitalmars-d wrote: > On Monday, 26 March 2018 at 19:24:13 UTC, Manu wrote: >> >> On 26 March 2018 at 07:40, Atila Neves via Digitalmars-d >> wrote: >>> >>> On Friday, 23 March 2018 at 22:01:44 UTC, Manu wrote: Forked from the x^^y thread

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Atila Neves via Digitalmars-d
On Tuesday, 27 March 2018 at 02:41:12 UTC, Manu wrote: He's trying to say that C++ introduced rvalue references because normal references weren't able to allow for move semantics to exist. It's a red-herring. D already has move semantics, they work well, and they're not on trial here. In C++

Re: CTFE ^^ (pow)

2018-03-27 Thread Guillaume Piolat via Digitalmars-d
On Tuesday, 27 March 2018 at 02:23:50 UTC, Jonathan M Davis wrote: I think that that we all agree that having these functions work with CTFE would be great. The disagreement is mostly on how much of an inconvenience it is or how big a deal that inconvenience is. Ultimately, it's just a questi

Re: D mentioned in Infoworld

2018-03-27 Thread bauss via Digitalmars-d
On Tuesday, 27 March 2018 at 12:47:57 UTC, Chris wrote: On Tuesday, 27 March 2018 at 12:17:44 UTC, bauss wrote: Yes I agree it's great that D is talked about. I just feel like someone is dropping salt into my coffee when it's misinterpreted. I hope one day all the legacy, non-relevant issu

Re: D mentioned in Infoworld

2018-03-27 Thread Chris via Digitalmars-d
On Tuesday, 27 March 2018 at 12:17:44 UTC, bauss wrote: Yes I agree it's great that D is talked about. I just feel like someone is dropping salt into my coffee when it's misinterpreted. I hope one day all the legacy, non-relevant issues D had will cease to exist and that it will be looked

Re: D vs nim

2018-03-27 Thread rikki cattermole via Digitalmars-d
On 28/03/2018 1:02 AM, jmh530 wrote: On Wednesday, 22 April 2015 at 06:03:07 UTC, Timothee Cour wrote: [snip] I would like to refocus this thread on feature set and how it compares to D, not on flame wars about brackets or language marketing issues. In the comparison you made https://github.

Re: D mentioned in Infoworld

2018-03-27 Thread bauss via Digitalmars-d
On Tuesday, 27 March 2018 at 11:28:18 UTC, Chris wrote: On Tuesday, 27 March 2018 at 10:46:03 UTC, bauss wrote: On Tuesday, 27 March 2018 at 10:31:34 UTC, Chris wrote: On Tuesday, 27 March 2018 at 06:42:29 UTC, Anton Fediushin wrote: [snip] "The only thing worse than being talked about is no

Re: D vs nim

2018-03-27 Thread jmh530 via Digitalmars-d
On Wednesday, 22 April 2015 at 06:03:07 UTC, Timothee Cour wrote: [snip] I would like to refocus this thread on feature set and how it compares to D, not on flame wars about brackets or language marketing issues. In the comparison you made https://github.com/timotheecour/D_vs_nim/ you say th

Re: D mentioned in Infoworld

2018-03-27 Thread Chris via Digitalmars-d
On Tuesday, 27 March 2018 at 10:46:03 UTC, bauss wrote: On Tuesday, 27 March 2018 at 10:31:34 UTC, Chris wrote: On Tuesday, 27 March 2018 at 06:42:29 UTC, Anton Fediushin wrote: [snip] "The only thing worse than being talked about is not being talked about." Oscar Wilde "There's no such th

Re: D mentioned in Infoworld

2018-03-27 Thread bauss via Digitalmars-d
On Tuesday, 27 March 2018 at 10:31:34 UTC, Chris wrote: On Tuesday, 27 March 2018 at 06:42:29 UTC, Anton Fediushin wrote: [snip] "The only thing worse than being talked about is not being talked about." Oscar Wilde "There's no such thing as bad publicity except your own obituary." Brendan

Re: D mentioned in Infoworld

2018-03-27 Thread Chris via Digitalmars-d
On Tuesday, 27 March 2018 at 06:42:29 UTC, Anton Fediushin wrote: [snip] "The only thing worse than being talked about is not being talked about." Oscar Wilde "There's no such thing as bad publicity except your own obituary." Brendan Behan Well, maybe the odd person will keep D in the back

Re: D mentioned in Infoworld

2018-03-27 Thread bachmeier via Digitalmars-d
On Tuesday, 27 March 2018 at 01:50:17 UTC, crimaniak wrote: On Monday, 26 March 2018 at 15:52:11 UTC, Jean-Louis Leroy wrote: https://www.infoworld.com/article/3263395/application-development/the-programming-languages-you-should-learn-now.html Looks like R advertising. I don't see how. Yes

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Atila Neves via Digitalmars-d
On Tuesday, 27 March 2018 at 00:30:24 UTC, Rubn wrote: On Monday, 26 March 2018 at 14:40:03 UTC, Atila Neves wrote: C++ T&& (Rvalue reference) -> D T Not really, in C++ it is an actual reference and you get to choose which function actually does the move. In D it just does the copy when pass

Re: rvalues -> ref (yup... again!)

2018-03-27 Thread Atila Neves via Digitalmars-d
On Monday, 26 March 2018 at 19:24:13 UTC, Manu wrote: On 26 March 2018 at 07:40, Atila Neves via Digitalmars-d wrote: On Friday, 23 March 2018 at 22:01:44 UTC, Manu wrote: Forked from the x^^y thread... C++ T&& (forwarding reference) -> D auto ref T C++ T&& (Rvalue reference) -> D T C++ c