Re: Release D 2.090.0

2020-01-08 Thread Meta via Digitalmars-d-announce

On Wednesday, 8 January 2020 at 21:58:29 UTC, H. S. Teoh wrote:
On Wed, Jan 08, 2020 at 09:43:05PM +, Meta via 
Digitalmars-d-announce wrote: [...]

Deprecated module std.experimental.all was removed
All symbols contained in Phobos can now be used with import std

Maybe I'm wrong, but this seems like a bad idea to me (unless 
we're

getting rid of std.experimental).


I think you misunderstood what happened here.  Originally 
std.experimental.all *was* the same thing as today's 
std/package.d; the only reason it was put in std.experimental 
was because it was still an experiment to see if importing all 
of Phobos is actually feasible in practice.  Since it 
apparently worked quite well, it was moved from 
std/experimental/all.d to std/package.d.


Ergo, import std.experimental.all != import std.experimental.*; 
rather,


import std.experimental.all == import std.*

in the past, and now we've just made it official by allowing 
you to write:


import std;


T


Ah, I misunderstood. Thanks.


Re: Release D 2.090.0

2020-01-08 Thread suncarpet via Digitalmars-d-announce

On Wednesday, 8 January 2020 at 12:13:50 UTC, Simen Kjærås wrote:
Something seems to be wrong with the 2.090.0 Windows installer. 
After successfully installing, it proceeds to delete every file 
it has just added.


Looking closely at how it happens, it seems that it might 
actually be caused by the uninstaller deleting itself and the 
directory it's in. If I wait long after the previous version 
has been uninstalled before clicking 'next', it doesn't happen.


So, how to reproduce:

1) have a previous DMD version installed
2) start the 2.090.0 installer
3) answer yes to uninstalling the previous version
4) quickly finish installing 2.090.0

If you do this with the install folder open in an explorer 
window, you should see the files disappearing during the 
uninstall of the previous version, until the only item in the D 
folder is uninstall.exe. As the new install proceeds more files 
and folders will be added, and finally they will all be deleted 
again, sometimes leaving an empty folders, other times a 
partial installation (I've only once managed to get a partial 
installation).


--
  Simen
Through three iterations, I couldn't reproduce this problem by 
following the provided steps. I used checksums of a clean 2.090.0 
installation to ensure there was no partial installation after 
each upgrade. ╮( ̄ω ̄;)╭


Re: Release D 2.090.0

2020-01-08 Thread H. S. Teoh via Digitalmars-d-announce
On Wed, Jan 08, 2020 at 09:43:05PM +, Meta via Digitalmars-d-announce wrote:
[...]
> Deprecated module std.experimental.all was removed
> All symbols contained in Phobos can now be used with import std
> 
> Maybe I'm wrong, but this seems like a bad idea to me (unless we're
> getting rid of std.experimental).

I think you misunderstood what happened here.  Originally
std.experimental.all *was* the same thing as today's std/package.d; the
only reason it was put in std.experimental was because it was still an
experiment to see if importing all of Phobos is actually feasible in
practice.  Since it apparently worked quite well, it was moved from
std/experimental/all.d to std/package.d.

Ergo, import std.experimental.all != import std.experimental.*; rather,

import std.experimental.all == import std.*

in the past, and now we've just made it official by allowing you to
write:

import std;


T

-- 
May you live all the days of your life. -- Jonathan Swift


Re: Release D 2.090.0

2020-01-08 Thread Meta via Digitalmars-d-announce

On Tuesday, 7 January 2020 at 10:30:09 UTC, Martin Nowak wrote:

Glad to announce D 2.090.0, ♥ to the 48 contributors.

This release comes with the ability to convert lazy parameters 
to delegates, new intrinsics to force rounding to specific 
floating point precision, unittest builds that no longer 
execute main by default, a new GC.inFinalizer API, and various 
other changes.


http://dlang.org/download.html 
http://dlang.org/changelog/2.090.0.html


-Martin


Deprecated module std.experimental.all was removed
All symbols contained in Phobos can now be used with import std

Maybe I'm wrong, but this seems like a bad idea to me (unless 
we're getting rid of std.experimental).


Re: On the Blog: Recent D Compiler Releases

2020-01-08 Thread Rainer Schuetze via Digitalmars-d-announce



On 08/01/2020 09:50, Mike Parker wrote:
> I've posted an overview of LDC 1.19.0 and DMD 2.090.0 on the blog, and a
> reminder that GDC is available as part of the GCC 9 series.
> 
> The blog:
> https://dlang.org/blog/2020/01/08/recent-d-compiler-releases/
> 
> Reddit:
> https://www.reddit.com/r/programming/comments/elq5yx/recent_d_compiler_releases_ldc_dmd_and_gdc/
> 

Thanks Mike!

>With the current GC implementation, it’s illegal to perform any GC
operations during finalization.

There are some exceptions, namely addRoot/addRange and
removeRoot/removeRange and the iterators over roots or ranges.

I guess it might be possible to support some querying functions during
finalization, too.


Re: My Android project nearing beta

2020-01-08 Thread Chris via Digitalmars-d-announce

On Wednesday, 8 January 2020 at 14:13:58 UTC, Adam D. Ruppe wrote:

2. The new JVM default language for Android is Kotlin. How 
will you handle that?


Doesn't affect anything as far as I can tell, except possibly 
slightly awkward syntax when compared side by side with stuff 
like kotlin extension methods - even my bindings generator 
(which you don't have to use btw) doesn't look at the source, 
instead pulling the data right out of the compiled class files. 
Since kotlin compiles to the same thing as java, it should work 
the same way.




Cool that you can take the compiled classes directly. Btw, how 
will D for Android handle multi-threading / coroutines? Will the 
coroutines have to be on the Java / Kotlin side of things or is 
it possible to run them in D too?





Re: My Android project nearing beta

2020-01-08 Thread Adam D. Ruppe via Digitalmars-d-announce

On Wednesday, 8 January 2020 at 12:10:15 UTC, Chris wrote:
1. How does it fare performance wise with JNI? In the Android 
docs they advise you not to use the JNI bridge very often as it 
very costly.


I don't know. I don't even have a plan to actually test it at 
this point.


Worth remembering that I'm talking a lot about the jni thing 
because it is new, but I suspect the majority of use wouldn't hit 
it often, and possibly not at all. Just the extern(C) NDK and 
OpenGL functions are already a solved problem so much as much to 
say there in terms of new developments.


But I do use various techniques internally to minimize the calls: 
it slices strings rather than copying them (where possible), 
caches lookup results for classes and methods, avoids pinning 
references where possible (though this will have to partially 
change with the implementation expanding too!) and will do lazy 
loading of object arrays (right now it is simply not implemented).


Just there is indeed some cost on the jvm side we can't avoid. 
But using D code and the C functions for the majority should 
minimize the impact too; the jni might be limited to setup and 
some user interaction callback stuff where speed is adequate even 
if not great.


2. The new JVM default language for Android is Kotlin. How will 
you handle that?


Doesn't affect anything as far as I can tell, except possibly 
slightly awkward syntax when compared side by side with stuff 
like kotlin extension methods - even my bindings generator (which 
you don't have to use btw) doesn't look at the source, instead 
pulling the data right out of the compiled class files. Since 
kotlin compiles to the same thing as java, it should work the 
same way.


(the biggest problem I've had with the jni thing btw: default 
implementations in interfaces. yikes. but i think i have a plan. 
otherwise the other pains are just me trying to keep compile time 
and memory usage down, so some hacks to do that while still 
keeping all of java available on demand. But that isn't used in 
anything Android I've found so far.)


We should probably test it more to be sure though.


Re: My Android project nearing beta

2020-01-08 Thread Chris via Digitalmars-d-announce

On Monday, 16 December 2019 at 21:37:51 UTC, Adam D. Ruppe wrote:

I'm gonna drop the link here without further comment:

https://github.com/adamdruppe/d_android

hopefully I've written enough in the repo so anyone who wants 
to play with it can... and if not, I need to fix the docs :)


let me know if you find any success or failure playing with it.


Great stuff. I doff my hat. You seem to be the right guy for this 
job, hands-on and all. A few questions / remarks:


1. How does it fare performance wise with JNI? In the Android 
docs they advise you not to use the JNI bridge very often as it 
very costly.


2. The new JVM default language for Android is Kotlin. How will 
you handle that? Kotlin and Java are a 100% compatible, so for 
now it is possible to have something like jni.d > Java > Kotlin, 
or even jni.d > Kotlin, as JNI for Kotlin is basically the same 
as for Java.  Further down the road it might make sense to cater 
for Kotlin more directly which leads me to my next point:


3. At KotlinConf 2019 they announced that they want Kotlin to 
become some sort of a default tool for programming tasks [1] (be 
it mobile, server or micro-controllers). Earlier in this thread, 
D's potential as a "glue language" was mentioned, and I think it 
makes sense. So maybe more efforts should go into this aspect of 
D, along the lines of what you have created here.


[1] https://www.youtube.com/watch?v=0xKTM0A8gdI


Re: Release D 2.090.0

2020-01-08 Thread Simen Kjærås via Digitalmars-d-announce

On Tuesday, 7 January 2020 at 10:30:09 UTC, Martin Nowak wrote:

Glad to announce D 2.090.0, ♥ to the 48 contributors.

This release comes with the ability to convert lazy parameters 
to delegates, new intrinsics to force rounding to specific 
floating point precision, unittest builds that no longer 
execute main by default, a new GC.inFinalizer API, and various 
other changes.


http://dlang.org/download.html 
http://dlang.org/changelog/2.090.0.html


-Martin


Something seems to be wrong with the 2.090.0 Windows installer. 
After successfully installing, it proceeds to delete every file 
it has just added.


Looking closely at how it happens, it seems that it might 
actually be caused by the uninstaller deleting itself and the 
directory it's in. If I wait long after the previous version has 
been uninstalled before clicking 'next', it doesn't happen.


So, how to reproduce:

1) have a previous DMD version installed
2) start the 2.090.0 installer
3) answer yes to uninstalling the previous version
4) quickly finish installing 2.090.0

If you do this with the install folder open in an explorer 
window, you should see the files disappearing during the 
uninstall of the previous version, until the only item in the D 
folder is uninstall.exe. As the new install proceeds more files 
and folders will be added, and finally they will all be deleted 
again, sometimes leaving an empty folders, other times a partial 
installation (I've only once managed to get a partial 
installation).


--
  Simen


Re: DConf 2019 Pictures

2020-01-08 Thread Murilo via Digitalmars-d-announce

On Tuesday, 7 January 2020 at 09:04:04 UTC, Ali Çehreli wrote:

This one is Laeeth introducing Andrei at Symmetry Investments:

  http://acehreli.org/photo/dconf_2019/DSC04839.html

Ali


Awesome pictures. I hope this year's DConf will be just as fun.


On the Blog: Recent D Compiler Releases

2020-01-08 Thread Mike Parker via Digitalmars-d-announce
I've posted an overview of LDC 1.19.0 and DMD 2.090.0 on the 
blog, and a reminder that GDC is available as part of the GCC 9 
series.


The blog:
https://dlang.org/blog/2020/01/08/recent-d-compiler-releases/

Reddit:
https://www.reddit.com/r/programming/comments/elq5yx/recent_d_compiler_releases_ldc_dmd_and_gdc/