Re: Release D 2.090.0
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
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
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
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
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
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
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
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
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
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
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/