DMD metaprogramming enhancement

2019-04-25 Thread Suleyman via Digitalmars-d-announce

Hello everyone,

I am happy to announce that in the next DMD release you will be 
able to more freely enjoy your metaprograming experience now that 
a long-standing limitation has been lifted.


You can now instantiate local and member templates with local 
symbols.


Example:
---
struct S
{
private int _m;
void exec(alias fun)()
{
fun(_m);
}
}

unittest
{
int localVar;

void set(int i)
{
localVar = i;
}

auto obj = S(10);
obj.exec!set();   // no error or warning

assert(localVar == 10);
}
---

I hope you enjoy!



Re: DMD metaprogramming enhancement

2019-04-25 Thread H. S. Teoh via Digitalmars-d-announce
On Thu, Apr 25, 2019 at 11:41:32PM +, Suleyman via Digitalmars-d-announce 
wrote:
> Hello everyone,
> 
> I am happy to announce that in the next DMD release you will be able
> to more freely enjoy your metaprograming experience now that a
> long-standing limitation has been lifted.
> 
> You can now instantiate local and member templates with local symbols.
[...]

That's very nice.  Which PR was it that implemented this?


T

-- 
Век живи - век учись. А дураком помрёшь.


Re: DMD metaprogramming enhancement

2019-04-25 Thread Suleyman via Digitalmars-d-announce

On Friday, 26 April 2019 at 00:12:06 UTC, H. S. Teoh wrote:

That's very nice.  Which PR was it that implemented this?


T


This one https://github.com/dlang/dmd/pull/9282.


Re: DStep 1.0.0 on the Blog

2019-04-25 Thread James Blachly via Digitalmars-d-announce

On 4/23/19 3:23 PM, Jacob Carlborg wrote:

On 2019-04-23 14:10, Mike Franklin wrote:


Nice work, Jacob!  Very cool!


Thanks :)



Seconded -- absolutely fantastic


Re: DMD metaprogramming enhancement

2019-04-25 Thread Aliak via Digitalmars-d-announce

On Thursday, 25 April 2019 at 23:41:32 UTC, Suleyman wrote:

Hello everyone,

I am happy to announce that in the next DMD release you will be 
able to more freely enjoy your metaprograming experience now 
that a long-standing limitation has been lifted.


You can now instantiate local and member templates with local 
symbols.


Example:
---
struct S
{
private int _m;
void exec(alias fun)()
{
fun(_m);
}
}

unittest
{
int localVar;

void set(int i)
{
localVar = i;
}

auto obj = S(10);
obj.exec!set();   // no error or warning

assert(localVar == 10);
}
---

I hope you enjoy!


Noice! Finally indeed. thank you! :D


Re: DMD metaprogramming enhancement

2019-04-25 Thread Simen Kjærås via Digitalmars-d-announce

On Thursday, 25 April 2019 at 23:41:32 UTC, Suleyman wrote:

Hello everyone,

I am happy to announce that in the next DMD release you will be 
able to more freely enjoy your metaprograming experience now 
that a long-standing limitation has been lifted.


You can now instantiate local and member templates with local 
symbols.


Example:
---
struct S
{
private int _m;
void exec(alias fun)()
{
fun(_m);
}
}

unittest
{
int localVar;

void set(int i)
{
localVar = i;
}

auto obj = S(10);
obj.exec!set();   // no error or warning

assert(localVar == 10);
}
---

I hope you enjoy!


You have no idea how happy I am to hear this has been fixed! So 
many of my designs have been hamstrung by 5710, and it's been 
around since the dawn of time.


--
  Simen


Re: DMD metaprogramming enhancement

2019-04-25 Thread Simen Kjærås via Digitalmars-d-announce

On Friday, 26 April 2019 at 06:29:04 UTC, Simen Kjærås wrote:

On Thursday, 25 April 2019 at 23:41:32 UTC, Suleyman wrote:

Hello everyone,

I am happy to announce that in the next DMD release you will 
be able to more freely enjoy your metaprograming experience 
now that a long-standing limitation has been lifted.


You can now instantiate local and member templates with local 
symbols.


Example:
---
struct S
{
private int _m;
void exec(alias fun)()
{
fun(_m);
}
}

unittest
{
int localVar;

void set(int i)
{
localVar = i;
}

auto obj = S(10);
obj.exec!set();   // no error or warning

assert(localVar == 10);
}
---

I hope you enjoy!


You have no idea how happy I am to hear this has been fixed! So 
many of my designs have been hamstrung by 5710, and it's been 
around since the dawn of time.


BTW, at least two people have promised money outside BountySource 
to have 5710 fixed:

https://forum.dlang.org/post/gjzrklkxfmgjjdfor...@forum.dlang.org

--
  Simen


Re: grain - D Language for Deep Learning

2019-04-25 Thread Shigeki Karita via Digitalmars-d-announce

On Wednesday, 24 April 2019 at 17:31:03 UTC, jmh530 wrote:
On Wednesday, 24 April 2019 at 16:33:00 UTC, Shigeki Karita 
wrote:

[snip]

I see. I'm interested in Stan that is the best library for 
probabilistic models but it lacks of GPU computation. 
Therefore, I plan to add some probabilistic programming 
paradigm into grain like pytorch (pyro) and tensorflow (tf 
probability).


Conveniently enough, they just incorporated some GPU support in 
the release in March [1]. Here's an earlier status update [2]. 
The initial work was focused on cholesky decomposition because 
that was a big source of slowdown for some types of models. 
Probably still has a ways to go before reaching tensorflows 
maturity on the GPU.


[1] https://github.com/stan-dev/math/releases/tag/v2.19.0
[2] 
https://discourse.mc-stan.org/t/gpu-update-whats-up-and-where-we-are-going/6015


I haven't know that GPU support in Stan. That's Cool! Cholesky 
decomposition always suffers me when I use covariance matrix or 
something. If you are interested in GPU acceleration in 
probabilistic programming, see also this paper (Table 2) of 
Edward (previous name of Tensorflow Probability) 
https://arxiv.org/pdf/1701.03757.pdf