Re: New LDC feature: dynamic compilation
Thanks for this post. Please also consider creating a Wiki page as that's more easily accessible for posterity (and editable) than a forum post here.
Re: Boston D Meetup 11/22/2017
On 11/11/17 2:32 PM, Steven Schveighoffer wrote: On 11/11/17 12:43 PM, Steven Schveighoffer wrote: Trying to get one more meetup in before the holidays. Just a casual meeting at the Street. Hope you can join us! Switched to The Wednesday before Thanksgiving. Sorry for the adjustment, but we had some people who could not attend Friday, and this day, we may have another special guest. Event is still here: https://www.eventbrite.com/e/monthly-boston-d-get-together-tickets-39796394086 Got confirmation that the other guest will be joining us, Dconf 2014 and 2017 keynote speaker, Scott Meyers. I think he also has done some other things besides Dconf. Hope to see you there! -Steve
Re: Munich D Meetup November 2017
On Monday, 13 November 2017 at 19:15:01 UTC, bauss wrote: Sounds like fun. I wish I could make it down to Germany, but unfortunately I can't, especially not tomorrow with less than a day in advance :p Just join the meetup group, on the site we are much prompter. Will there be any possibilities that the talks can be recorded and put on youtube? Unfortunately, we don't have the equipment yet, but it is on our list.
Re: New LDC feature: dynamic compilation
On Monday, 13 November 2017 at 19:58:29 UTC, Michael V. Franklin wrote: Interesting feature. So is the executable linked to an installed instance of LDC/LLVM to make this happen, or is there some limited compiler embedded in the executable or Druntime? More details about the implementation please. Mike Jit runtime (ldc-jit.dll/so) uses llvm optimizer and backend. Forgot to mention, user need to pass `-enable-dynamic-compile` compiler switch to enable this feature (and jit runtime will only be linked in this case).
Re: New LDC feature: dynamic compilation
On Monday, 13 November 2017 at 19:04:16 UTC, Ivan Butygin wrote: You need to explicitly compile `@dynamicCompile` functions before using any of them. Interesting feature. So is the executable linked to an installed instance of LDC/LLVM to make this happen, or is there some limited compiler embedded in the executable or Druntime? More details about the implementation please. Mike
Re: Munich D Meetup November 2017
On Monday, 13 November 2017 at 18:43:13 UTC, Dragos Carp wrote: Hi all, Tomorrow November 14th, we will have our next Munich meetup. This time Seb and Stefan will give an introductory talk about templates and CTFE. After Andrei's awesome talk last month, we are happy to welcome new members of our group joining the regular meetups. As usual before and after the talk we will also have good conversations with pizza and drinks. Please RSVP on: https://www.meetup.com/de-DE/Munich-D-Programmers/events/244112572/ Thanks, Dragos Sounds like fun. I wish I could make it down to Germany, but unfortunately I can't, especially not tomorrow with less than a day in advance :p Will there be any possibilities that the talks can be recorded and put on youtube?
New LDC feature: dynamic compilation
Main part of this feature is a new UDA `@dynamicCompile`. You can mark with this attribute any function (including class methods and lambdas) and compilation and optimization of this function will be deferred to runtime. Dynamic compiler will use instruction set available on host, so application can utilize the best available instructions without sacrificing users with old hardware. You only need to mark top-level function with this UDA, compiler will also defer compilation for any function called from root with body available. You need to explicitly compile `@dynamicCompile` functions before using any of them. CompilerSettings settings; settings.optLevel = 3; // -O3 compileDynamicCode(settings); // compile all dynamic functions Second feature is `@dynamicCompileConst` variables. You can mark any global non-thread local variable with this attribute. They are treated as usual from static code but if they are treated as compile-time constants by optimizer when accessed from `@dynamicCompile` function. Example: `@dynamicCompileConst` __gshared simdSize; `@dynamicCompile` void foo() { if (4 == simdSize) { // SSE-otimized code } else if (8 == simdSize) { // AVX-optimized code } } ... simdSize = 4; compileDynamicCode(); Optimizer will treat `simdSize` as constant and remove checks and not taken branches. You shouldn't change these variables from dynamic code (this is UB and will probaly crash you) And you need to recompile dynamic code with `compileDynamicCode(...)` if you want changes to these variables take effect in dynamic code. These are highly experimental features so expect major bugs. Known issues: * There is debug hook to get final asm generated for `@dynamicCompile` function but it is disabled now (but you can still get original and optimized LLVM IR for them) * Exceptions doesn't work on windows if there are dynamic functions in stack (they work on linux and osx). * There are codegen issues on win32, use win64
Munich D Meetup November 2017
Hi all, Tomorrow November 14th, we will have our next Munich meetup. This time Seb and Stefan will give an introductory talk about templates and CTFE. After Andrei's awesome talk last month, we are happy to welcome new members of our group joining the regular meetups. As usual before and after the talk we will also have good conversations with pizza and drinks. Please RSVP on: https://www.meetup.com/de-DE/Munich-D-Programmers/events/244112572/ Thanks, Dragos
Re: LDC 1.6.0-beta1
On Monday, 13 November 2017 at 13:37:20 UTC, Joakim wrote: I explained why, the last time we put out a stable release for FreeBSD, ldc 1.2, it only got 4 downloads: http://www.somsubhra.com/github-release-stats/?username=ldc-developers=ldc By comparison, the Win32 build got 282 downloads. Presumably that's why whoever was compiling those FreeBSD builds stopped bothering. Fair enough. 4 is better than 0 though. And, you never know, that could have been 4 large enterprises ;-) (plenty of large enterprise use FreeBSD). Now it's getting no downloads at all.
Re: LDC 1.6.0-beta1
On Monday, 13 November 2017 at 02:35:11 UTC, Brian wrote: On Sunday, 12 November 2017 at 15:57:19 UTC, kinke wrote: Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.6. The highlights of this version in a nutshell: * Based on D 2.076.1. * Experimental support for dynamic codegen at runtime ('manual JIT'). * Many std.math functions are now CTFE-able. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.6.0-beta1 Thanks to all contributors! Fast update, thank you! There is no version for FreeBSD? See my prior response: http://forum.dlang.org/post/ewhlrbimojselcefb...@forum.dlang.org
Re: New QtE5 version and the test it - mini ide ide5
On Sunday, 12 November 2017 at 08:04:37 UTC, MGW wrote: QtE5 - gained further development. The new mechanism of operation with memory is realized that allowed will get rid of crash of applications in case of completion. The summary code amount increases all the time. New classes from Qt are added. Now the code amount reached: qte5.d - 6700 lines qte5widgets.cpp - 3500 lines The considerable efforts are made in development of bitmap graphics, QBitmap, QResource, QPixmap are added and properties for QImage are added. The operation technique with QPainter is fulfilled. https://www.youtube.com/watch?v=iWnWMKsNt0E https://github.com/MGWL/QtE5 Good news :) It seems you missed the update on code.dlang.org: http://code.dlang.org/packages/qte5