Re: photon v0.7.0 with Windows support(!)
On 25/04/2024 5:41 AM, Dmitry Olshansky wrote: On Wednesday, 24 April 2024 at 14:40:40 UTC, Steven Schveighoffer wrote: On Tuesday, 23 April 2024 at 19:05:48 UTC, Dmitry Olshansky wrote: On Tuesday, 23 April 2024 at 17:15:13 UTC, Sönke Ludwig wrote: I guess that the Darwin support will be restricted to freely distributed macOS applications, as calling `__syscall` surely is a private API that cannot be used in any AppStore application, right? You tell me;) API looks just like any other libc function. I can tell you right off that this will not be allowed in approved apps. Not just for the `__syscall`, but for overriding the normal system calls of all libraries. I can't imagine Apple will be OK with that. How would they know? The whole thing happens at the link time. — Dmitry Olshansky CEO @ Glowlabs https://olshansky.me Two ways: Look at externs for your binaries, if any symbol is black listed, it won't be allowed (such as ``__syscall``). Decompile, if you see certain instructions, don't allow it. I can't find it, but we did have something in druntime that was failing due to private API usage in the past (and hence couldn't publish D applications).
Re: photon v0.7.0 with Windows support(!)
On Wednesday, 24 April 2024 at 14:40:40 UTC, Steven Schveighoffer wrote: On Tuesday, 23 April 2024 at 19:05:48 UTC, Dmitry Olshansky wrote: On Tuesday, 23 April 2024 at 17:15:13 UTC, Sönke Ludwig wrote: I guess that the Darwin support will be restricted to freely distributed macOS applications, as calling `__syscall` surely is a private API that cannot be used in any AppStore application, right? You tell me;) API looks just like any other libc function. I can tell you right off that this will not be allowed in approved apps. Not just for the `__syscall`, but for overriding the normal system calls of all libraries. I can't imagine Apple will be OK with that. How would they know? The whole thing happens at the link time. — Dmitry Olshansky CEO @ Glowlabs https://olshansky.me
Re: photon v0.7.0 with Windows support(!)
On Tuesday, 23 April 2024 at 19:05:48 UTC, Dmitry Olshansky wrote: On Tuesday, 23 April 2024 at 17:15:13 UTC, Sönke Ludwig wrote: I guess that the Darwin support will be restricted to freely distributed macOS applications, as calling `__syscall` surely is a private API that cannot be used in any AppStore application, right? You tell me;) API looks just like any other libc function. I can tell you right off that this will not be allowed in approved apps. Not just for the `__syscall`, but for overriding the normal system calls of all libraries. I can't imagine Apple will be OK with that. -Steve
Re: D Language Foundation July 2023 Quarterly Meeting Summary
On Saturday, 29 July 2023 at 14:37:32 UTC, Mike Parker wrote: I mistakenly posted the summary in the General forum. You can find it here: https://forum.dlang.org/thread/jzlympfqmwckaiuhq...@forum.dlang.org [geometry dash world](https://geometrydashworld.net) Good, I'm looking forward to it. I appreciate all of your effort!
Re: photon v0.7.0 with Windows support(!)
On Tuesday, 23 April 2024 at 17:15:13 UTC, Sönke Ludwig wrote: Am 21.04.2024 um 21:01 schrieb Dmitry Olshansky: Photon is a minimalistic multi-threaded fiber scheduler and event loop that works transparently with traditional blocking I/O C/C++/D/Rust libraries w/o degrading performance. It took somewhat longer than I wanted but I'm pleased to announce that Photon now supports Windows. In particular basic socket API that is used by the likes of std.socket is transparently converted to overlapped I/O with I/O completion port event loop. The last obstacle was, of course, accept syscall that is only blocking on Windows. Now that transparently goes to a dedicated Windows's native threadpool so as to not block our precious fibers. Explore some basic examples here (not all examples can be run on Windows): https://github.com/DmitryOlshansky/photon/tree/master/tests -- Dmitry Olshansky CEO @ Glowlabs https://olshansky.me That's really nice! How would you judge supporting other kinds of handles, such as files or events, on Windows? Going to be tricky but timers for one thing should work with the threadpool I got in there. I guess that the Darwin support will be restricted to freely distributed macOS applications, as calling `__syscall` surely is a private API that cannot be used in any AppStore application, right? You tell me;) API looks just like any other libc function. In that case it would inevitably put it in a non-consumer application niche, but certainly wouldn't make it any less interesting for more server oriented tasks. My main angle is being able to develop servers / clients on MacOS deploying to other platforms such as Linux server. — Dmitry Olshansky CEO @ Glowlabs https://olshansky.me
Re: photon v0.7.0 with Windows support(!)
Am 21.04.2024 um 21:01 schrieb Dmitry Olshansky: Photon is a minimalistic multi-threaded fiber scheduler and event loop that works transparently with traditional blocking I/O C/C++/D/Rust libraries w/o degrading performance. It took somewhat longer than I wanted but I'm pleased to announce that Photon now supports Windows. In particular basic socket API that is used by the likes of std.socket is transparently converted to overlapped I/O with I/O completion port event loop. The last obstacle was, of course, accept syscall that is only blocking on Windows. Now that transparently goes to a dedicated Windows's native threadpool so as to not block our precious fibers. Explore some basic examples here (not all examples can be run on Windows): https://github.com/DmitryOlshansky/photon/tree/master/tests -- Dmitry Olshansky CEO @ Glowlabs https://olshansky.me That's really nice! How would you judge supporting other kinds of handles, such as files or events, on Windows? I guess that the Darwin support will be restricted to freely distributed macOS applications, as calling `__syscall` surely is a private API that cannot be used in any AppStore application, right? In that case it would inevitably put it in a non-consumer application niche, but certainly wouldn't make it any less interesting for more server oriented tasks.
Re: photon v0.7.0 with Windows support(!)
On Sunday, 21 April 2024 at 19:32:20 UTC, Dmitry Olshansky wrote: On Sunday, 21 April 2024 at 19:01:04 UTC, Dmitry Olshansky wrote: [...] It gets better, now with hotfixed HTTP hello world example: https://github.com/DmitryOlshansky/photon/blob/master/bench/static_http/hello.d Messed things up with hotfix leaving debug tracing enabled even in production builds, please use v0.7.2. -- Dmitry Olshansky CEO @ GLowlabs https://olshansky.me
Re: photon v0.7.0 with Windows support(!)
On Sunday, 21 April 2024 at 19:01:04 UTC, Dmitry Olshansky wrote: Photon is a minimalistic multi-threaded fiber scheduler and event loop that works transparently with traditional blocking I/O C/C++/D/Rust libraries w/o degrading performance. It took somewhat longer than I wanted but I'm pleased to announce that Photon now supports Windows. In particular basic socket API that is used by the likes of std.socket is transparently converted to overlapped I/O with I/O completion port event loop. The last obstacle was, of course, accept syscall that is only blocking on Windows. Now that transparently goes to a dedicated Windows's native threadpool so as to not block our precious fibers. Explore some basic examples here (not all examples can be run on Windows): https://github.com/DmitryOlshansky/photon/tree/master/tests -- Dmitry Olshansky CEO @ Glowlabs https://olshansky.me It gets better, now with hotfixed HTTP hello world example: https://github.com/DmitryOlshansky/photon/blob/master/bench/static_http/hello.d -- Dmitry Olshansky CEO @ GLowlabs https://olshansky.me
Re: LDC 1.38.0-beta1
On 20/04/2024 12:41 PM, kinke wrote: Android: Switch to native ELF TLS, supported since API level 29 (Android v10), dropping our former custom TLS emulation (requiring a modified LLVM and a legacy ld.bfd linker). The prebuilt packages themselves require Android v10+ (armv7a) / v11+ (aarch64) too, and are built with NDK r26d. Shared druntime and Phobos libraries are now available (|-link-defaultlib-shared|), as on regular Linux. I shared that on Discord. This is something I've been looking forward to for a long time! Thanks Today has sure been a good day.
LDC 1.38.0-beta1
Glad to announce the first beta for LDC 1.38. Major changes: * Based on D 2.108.0+ (yesterday's DMD stable). * Support for LLVM 18; the prebuilt packages use v18.1.3. * Android: Switch to native ELF TLS, supported since API level 29 (Android v10), dropping our former custom TLS emulation (requiring a modified LLVM and a legacy ld.bfd linker). The prebuilt packages themselves require Android v10+ (armv7a) / v11+ (aarch64) too, and are built with NDK r26d. Shared druntime and Phobos libraries are now available (`-link-defaultlib-shared`), as on regular Linux. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.38.0-beta1 Please help test, and thanks to all contributors & sponsors!
Re: Upcoming ACCU 2024 Talk: How DLang Improves my Modern C++ and Vice Versa
On Thursday, 11 April 2024 at 01:21:41 UTC, Walter Bright wrote: Wow! Talking at ACCU is an honor. I'm so pleased you're doing this! Thank you all! The talk was well received, and I've challenged folks to try D for an hour through the D Lang Tour. :) Slides are available below, and I believe the video of the talk will be posted in the coming months for free on YouTube. https://mshah.io/conf/24/ACCU%202024%20_%20How%20DLang%20Improves%20my%20Modern%20C++%20and%20Vice%20Versa.pdf
CBOR with Mir Ion
Mir-Ion 2.3.0 [got](https://github.com/libmir/mir-ion/blob/master/source/mir/ser/cbor.d) CBOR serialzation. It is the fastest Mir serialization target. I have no plans for CBOR deserialization. It can be implemented using the MsgPack deserialization target as a draft.
Dlang club meeting tonight at 7
https://x.com/WalterBright/status/1781022970984775915
Re: Upcoming ACCU 2024 Talk: How DLang Improves my Modern C++ and Vice Versa
My favorite example is glibc implementation of `putenv` function: it first finds the '=' character and takes a temporary slice of the variable name and then employs a tortured null terminated string cope trying to allocate a string with alloca or malloc, then copies the slice there and passes the resulting null terminated string to common `setenv` implementation, then cleanups the allocated string. And there I thought: "ugh, dude, what are you doing, just pass the slice as is".
Re: Serverino 0.7.0
On Monday, 15 April 2024 at 01:04:40 UTC, aberba wrote: Link to code sample? https://github.com/trikko/serverino/tree/master/examples/06_websocket_noise_stream Andrea
Re: Serverino 0.7.0
On Saturday, 13 April 2024 at 16:24:52 UTC, Andrea Fontana wrote: Hey Serverino enthusiasts! Get ready to elevate your server game with the latest Serverino 0.7.0 release! ✨ What’s new in this update? WebSockets are here! Now you can enjoy real-time bi-directional communication. Some example I've posted on twitter: https://twitter.com/twittatore/status/1775969115322147165 https://twitter.com/twittatore/status/1776613077053481078 https://twitter.com/twittatore/status/1774827657512841363 Have fun! Andrea Link to code sample?
Beerconf April
# BEERCONF! To celebrate taxes, a great eclipse (and my birthday), we will have a nice online meetup known as Beerconf. This month it is on the 27-28. Obligatory link to beerconf T's: https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is Beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf) ## Presentations? The next live dconf is in [September](https://dconf.org/2024/index.html), and submissions are due on May 17. This means April beerconf might be a good time to try out some ideas for a presentation. Let me know if you have anything you want to schedule, via discord, email, or anywhere you find me. I will announce it, and get you an audience! Cheers! -Steve
Serverino 0.7.0
Hey Serverino enthusiasts! Get ready to elevate your server game with the latest Serverino 0.7.0 release! ✨ What’s new in this update? WebSockets are here! Now you can enjoy real-time bi-directional communication. Some example I've posted on twitter: https://twitter.com/twittatore/status/1775969115322147165 https://twitter.com/twittatore/status/1776613077053481078 https://twitter.com/twittatore/status/1774827657512841363 Have fun! Andrea
Re: photon v0.6.0 with MacOS support
On Friday, 12 April 2024 at 17:04:33 UTC, Richard (Rikki) Andrew Cattermole wrote: On 13/04/2024 4:57 AM, Dmitry Olshansky wrote: Next on schedule is Windows support. I see that you left the hard one for last. Good luck! Happy book buying. I had an intriguing implementation for it running on top of User Mode Scheduling, sadly Windows folks deprecated User Mode Scheduling thus leaving me with a bunch of work and likely a narrower scope.
Re: photon v0.6.0 with MacOS support
On 13/04/2024 4:57 AM, Dmitry Olshansky wrote: Next on schedule is Windows support. I see that you left the hard one for last. Good luck! Happy book buying.
photon v0.6.0 with MacOS support
Photon is a transparent fibre scheduler library making traditional sync I/O async without modification of underlying boring blocking code. https://github.com/DmitryOlshansky/photon For usage see simple examples in the tests directory. This release brings MacOS support, thanks to Steve Schveighoffer. Next on schedule is Windows support. -- Dmitry Olshansky CEO @ Glowlabs https://olshansky.me
Re: Upcoming ACCU 2024 Talk: How DLang Improves my Modern C++ and Vice Versa
On 4/7/2024 6:38 PM, Mike Shah wrote: I'll be talking more about D (and modern C++) at the ACCU 2024 conference in Bristol (Abstract below -- talk is on April 19, 2024). Let me know if you'll be joining (in-person or online)! The recording of the talk will otherwise be posted after the talk, and slides will immediately be available on my website after the talk is given. https://accuconference.org/session/how-dlang-improves-my-modern-cpp-and-vice-versa ABSTRACT: The D programming language (DLang) is a multi-paradigm language (like C++) developed to solve real software engineering problems. DLang has a rich history since its inception in 2001, and continues to be an actively evolving memory-safe language used in industry. In this talk, I will discuss how learning and using the D language has directly benefited my use and learning of C++ and vice versa. We'll look at the evolution of both C++ and Dlang, and see how each language has borrowed from each other during their most recent evolution in the past decade. Throughout the talk, I will provide side-by-side code comparisons showing idiomatic ways to complete tasks in D alongside C++ code examples. The goal of this talk however is not to pit one language against the other, but rather to show how to use each language to its strengths and learn how to become a better programmer. Audience members are expected to be familiar with Modern C++, but are not expected to have any prior D programming experience. Wow! Talking at ACCU is an honor. I'm so pleased you're doing this!
Re: Upcoming ACCU 2024 Talk: How DLang Improves my Modern C++ and Vice Versa
On Monday, 8 April 2024 at 01:38:20 UTC, Mike Shah wrote: I'll be talking more about D (and modern C++) at the ACCU 2024 conference in Bristol (Abstract below -- talk is on April 19, 2024). +1
Re: Upcoming ACCU 2024 Talk: How DLang Improves my Modern C++ and Vice Versa
On Monday, 8 April 2024 at 19:45:05 UTC, Emmanuel wrote: On Monday, 8 April 2024 at 01:38:20 UTC, Mike Shah wrote: I'll be talking more about D (and modern C++) at the ACCU 2024 conference in Bristol (Abstract below -- talk is on April 19, 2024). [...] great piece Mike! +1
Re: Upcoming ACCU 2024 Talk: How DLang Improves my Modern C++ and Vice Versa
On Monday, 8 April 2024 at 01:38:20 UTC, Mike Shah wrote: I'll be talking more about D (and modern C++) at the ACCU 2024 conference in Bristol (Abstract below -- talk is on April 19, 2024). [...] great piece Mike!
Upcoming ACCU 2024 Talk: How DLang Improves my Modern C++ and Vice Versa
I'll be talking more about D (and modern C++) at the ACCU 2024 conference in Bristol (Abstract below -- talk is on April 19, 2024). Let me know if you'll be joining (in-person or online)! The recording of the talk will otherwise be posted after the talk, and slides will immediately be available on my website after the talk is given. https://accuconference.org/session/how-dlang-improves-my-modern-cpp-and-vice-versa ABSTRACT: The D programming language (DLang) is a multi-paradigm language (like C++) developed to solve real software engineering problems. DLang has a rich history since its inception in 2001, and continues to be an actively evolving memory-safe language used in industry. In this talk, I will discuss how learning and using the D language has directly benefited my use and learning of C++ and vice versa. We'll look at the evolution of both C++ and Dlang, and see how each language has borrowed from each other during their most recent evolution in the past decade. Throughout the talk, I will provide side-by-side code comparisons showing idiomatic ways to complete tasks in D alongside C++ code examples. The goal of this talk however is not to pit one language against the other, but rather to show how to use each language to its strengths and learn how to become a better programmer. Audience members are expected to be familiar with Modern C++, but are not expected to have any prior D programming experience.
Re: Release D 2.108.0
On Tuesday, 2 April 2024 at 00:18:10 UTC, Steven Schveighoffer wrote: On Monday, 1 April 2024 at 22:34:14 UTC, Iain Buclaw wrote: Glad to announce D 2.108.0, ♥ to the 36 contributors. This release comes with 8 major changes and 36 fixed Bugzilla issues, including: [...] Also in this release -- Interpolation Expression Sequences (a.k.a. string interpolation). Looks like a pretty sweet release to upgrade to! -Steve +1 ! The first since months. :-) Named Arguments +1
Re: Release D 2.108.0
I would like to sincerely thank everyone who contributed. ❤️❤️❤️ On Wednesday, 3 April 2024 at 11:28:57 UTC, Ferhat Kurtulmuş wrote: Dear Nick, this is out of the topic, but I noticed that you are a Geany contributor. I have a long waiting PR here https://github.com/geany/geany-plugins/pull/789. I added the "open with x" feature. I am not a regular Geany user anymore, though. I remember I needed that feature a lot when using Geany. +1 Also, is it possible to change the color schemes according to the specifications written here? https://dlang.org/spec/istring.html In other words, writing in bold letters etc. to draw attention to the variable. PS. I use Kugel Scheme Thanks... SDB@79
Re: D Language Foundation January 2024 Quarterly Meeting Summary
On Wednesday, 3 April 2024 at 16:25:49 UTC, Mike Parker wrote: The D Language Foundation's quarterly meeting for January, 2024 took place on Friday the 5th at 15:00 UTC. It lasted for about 45 minutes. One update is that by now, Luna is now maintaining with me the Objective-C meta library which is a framework for developing extern(Objective-C) bindings in a way that it doesn't depends on compiler support. Although it is less flexible than what a compiler can do ( you can't create your own objective-C classes on it, you still can create bindings to Apple's library. Those are for reference: https://code.dlang.org/packages/objc_meta https://code.dlang.org/packages/d-metal-binding https://code.dlang.org/packages/avaudioengine
Re: D Language Foundation January 2024 Quarterly Meeting Summary
On Wednesday, 3 April 2024 at 16:25:49 UTC, Mike Parker wrote: The D Language Foundation's quarterly meeting for January, 2024 took place on Friday the 5th at 15:00 UTC. It lasted for about 45 minutes. [snip] Thanks for the write-up, as always. __Question about Ddoc__ Second, when documenting template parameters vs. regular paramters, was there a separate segment for template parameters? In the language and the code, they were distinct, but in Ddoc there was only `Params:`. Mathias said that putting them all in `Params:` handled it. Vijay asked if grouping them together was the right choice given that they were distinct in the language and the code. Mathias thought so. He said that at Sociomantic (where they had maintained their own fork of the compiler), they'd implemented `Template_Params:` at one point. He said from his experience with that, there wasn't much value in it. If we really wanted to separate them, the compiler could figure it out and we could just display them separately. But he didn't see the value in it. Átila agreed. He said that you knew the names, the names weren't going to repeat, so you could probably tell them apart. I haven't found myself needing a separate section for template parameters, but I've come across a number of bugs associated with ddoc (or ddox, I can't recall the difference) [1] and some are related to how it handles more complicated templates. [1] https://issues.dlang.org/buglist.cgi?email2=john.michael.hall%40gmail.com_to2=1=1=1=1=substring_format=advanced=---_desc=ddoc_desc_type=allwordssubstr
D Language Foundation January 2024 Quarterly Meeting Summary
The D Language Foundation's quarterly meeting for January, 2024 took place on Friday the 5th at 15:00 UTC. It lasted for about 45 minutes. Our quarterly meetings are where representatives from businesses big and small can come to bring us their most pressing D issues, status reports on their use of D, and so on. ## The Attendees The following people attended the meeting: * Walter Bright (DLF) * Iain Buclaw (GDC) * Luís Ferreira (Weka) * Max Haughton (Symmetry) * Dennis Korpel (DLF) * Mario Kröplin (Funkwerk) * Mathias Lang (DLF/Symmetry) * Vijay Nayar (Funnel-Labs.io) * Átila Neves (DLF/Symmetry) * Luna Nielsen (Inochi2D) * Razvan Nitu (DLF) * Mike Parker (DLF) * Guillaume Piolat (Auburn Sounds) * Carsten Rasmussen (Decard) * Robert Schadek (DLF/Symmetry) * Bastiaan Veelo (SARC) ## The Summary ### Luís __Undefined references__ Luís said that Weka had encountered a lot of undefined references when attribute inference infers the wrong attributes. For example, sometimes `@nogc` was inferred when really the GC was being used, or vice versa. Then when linking with other modules where the attributes were inferred differently, they ended up with undefined references. They had a workaround---creating an alias to another template with the mangled name that is supposed to be generated---but it was very cumbersome. Right now, this was their biggest issue. He said this didn't manifest when compiling with one compiler invocation, but when multiple invocations were involved. They would like to be able shift to building with LTO and compiling the objects file by file rather than in one compiler invocation. He also noted that one of the issues they had with compiling as a single invocation was the amount of RAM used. He said they also saw errors with attribute inference that were dependent on how the compiler was invoked. Each of the files should compile independently, but depending on the order they're passed to the compiler or which ones are passed, the errors they get are different. He said that basically, in a specific semantic pass, the compiler was just giving up on attribute inference. He also tangentially brought up a problem with [import order causing forward reference errors](https://issues.dlang.org/show_bug.cgi?id=23414). Walter said he needed to see Bugzilla issues demonstrating the problems before he could attempt to fix it. Luís said there were some similar issues reported. He was trying to Dustmite down to some minimal examples. Átila noted that it was very difficult to isolate template issues like this. He'd run into similar issues over and over and hadn't yet filed anything on Bugzilla because it's was never a trivial example. Walter said he understood and was aware of Átila's longstanding problems with this. Robert said he'd never encountered these problems at all, but that could be because of the way he used templates. Atila thoought it came down to whether you compile all at once or not. Max said that Symmetry had gotten a reduced case at one point. He thought it had made it into Bugzilla, saying Martin would have filed it. That particular case may even have been fixed. Walter reiterated that he needed a test case to reproduce it. Talking about it wouldn't move anything forward. Luís said he had a test case in the PR he had submitted in an attempt to fix it. He noted that Walter had also made an effort, but that the PR got stuck and then sank because it didn't solve the problem. (__NOTE__: [Bugzilla Issue #17541](https://issues.dlang.org/show_bug.cgi?id=17541) describes the problem. The failed attempts Walter and Luís made to fix it are in [dmd PR #10959](https://github.com/dlang/dmd/pull/10959) and [dmd PR #15534](https://github.com/dlang/dmd/pull/15534).) __Compile times__ Weka's biggest issues with compile times were with the performance of template instantiations and CTFE. They use the time trace flag with LDC and it shows these are the biggest problems. Luís asked if there were any plans to implement caching of template instantiations so that they wouldn't need to be instantiated on subsequent runs of the compiler. He also asked if it would be possible for us to have a JIT to speed up CTFE. Razvan said he was unaware of any plans to implement template caching. Luís said the idea would be to do something like LDC does with its codegen cache, where it caches the LLVM IR. Razvan asked if he was suggesting caching the actual template instance or the result after the template has been interpreted. Luís suggested that the AST should be pure. Some work could be done to separate out the member functions that mutate AST nodes so that they could be made immutable. With such a pure AST, then we could make it hashable and cache some of the work after the semantics, after some code gen. Razvan said there had been some discussion of this in the past, but he was unaware of anyone working on it. __Linter update__
Re: Release D 2.108.0
On Wednesday, 3 April 2024 at 10:19:40 UTC, Nick Treleaven wrote: On Wednesday, 3 April 2024 at 08:39:03 UTC, Ferhat Kurtulmuş wrote: On Tuesday, 2 April 2024 at 21:15:16 UTC, Nick Treleaven wrote: Official docs: https://dlang.org/spec/istring.html Things like: Can it be used in nogc code? etc. Yes, the literal is just a value sequence. Thank you. It looks like run.dlang.org is not using the last dmd version yet. Yes, it's DMD64 D Compiler v2.105.3. I wanted to make the examples runnable in that page but we need a dmd update there. I also noticed the 'dmd-nightly' version is v2.103.0! Dear Nick, this is out of the topic, but I noticed that you are a Geany contributor. I have a long waiting PR here https://github.com/geany/geany-plugins/pull/789. I added the "open with x" feature. I am not a regular Geany user anymore, though. I remember I needed that feature a lot when using Geany. Ferhat
Re: Release D 2.108.0
On Wednesday, 3 April 2024 at 08:39:03 UTC, Ferhat Kurtulmuş wrote: On Tuesday, 2 April 2024 at 21:15:16 UTC, Nick Treleaven wrote: Official docs: https://dlang.org/spec/istring.html Things like: Can it be used in nogc code? etc. Yes, the literal is just a value sequence. Thank you. It looks like run.dlang.org is not using the last dmd version yet. Yes, it's DMD64 D Compiler v2.105.3. I wanted to make the examples runnable in that page but we need a dmd update there. I also noticed the 'dmd-nightly' version is v2.103.0!
Re: Release D 2.108.0
On Tuesday, 2 April 2024 at 21:15:16 UTC, Nick Treleaven wrote: On Tuesday, 2 April 2024 at 19:41:52 UTC, Ferhat Kurtulmuş wrote: Could you please provide a link to the documentation that one should read to know everthing related to string interpolation in dlang. Official docs: https://dlang.org/spec/istring.html Things like: Can it be used in nogc code? etc. Yes, the literal is just a value sequence. Thank you. It looks like run.dlang.org is not using the last dmd version yet.
Re: Release D 2.108.0
On Tuesday, 2 April 2024 at 19:41:52 UTC, Ferhat Kurtulmuş wrote: Could you please provide a link to the documentation that one should read to know everthing related to string interpolation in dlang. Official docs: https://dlang.org/spec/istring.html Things like: Can it be used in nogc code? etc. Yes, the literal is just a value sequence.
Re: Release D 2.108.0
On Tuesday, 2 April 2024 at 00:18:10 UTC, Steven Schveighoffer wrote: On Monday, 1 April 2024 at 22:34:14 UTC, Iain Buclaw wrote: Glad to announce D 2.108.0, ♥ to the 36 contributors. This release comes with 8 major changes and 36 fixed Bugzilla issues, including: - In the language, named arguments for functions have been implemented and documented. - In phobos, std.uni has been upgraded to Unicode 15.1.0. - In dub, the fetch command now supports multiple arguments, recursive fetch, and is project-aware. Also in this release -- Interpolation Expression Sequences (a.k.a. string interpolation). Looks like a pretty sweet release to upgrade to! -Steve Could you please provide a link to the documentation that one should read to know everthing related to string interpolation in dlang. Things like: Can it be used in nogc code? etc.
Re: Release D 2.108.0
On Monday, 1 April 2024 at 22:34:14 UTC, Iain Buclaw wrote: Glad to announce D 2.108.0, ♥ to the 36 contributors. This release comes with 8 major changes and 36 fixed Bugzilla issues, including: - In the language, named arguments for functions have been implemented and documented. - In phobos, std.uni has been upgraded to Unicode 15.1.0. - In dub, the fetch command now supports multiple arguments, recursive fetch, and is project-aware. Also in this release -- Interpolation Expression Sequences (a.k.a. string interpolation). Looks like a pretty sweet release to upgrade to! -Steve
Re: Release D 2.108.0
On Monday, 1 April 2024 at 22:34:14 UTC, Iain Buclaw wrote: Glad to announce D 2.108.0, ♥ to the 36 contributors. This release comes with 8 major changes and 36 fixed Bugzilla issues, including: - In the language, named arguments for functions have been implemented and documented. - In phobos, std.uni has been upgraded to Unicode 15.1.0. - In dub, the fetch command now supports multiple arguments, recursive fetch, and is project-aware. http://dlang.org/download.html http://dlang.org/changelog/2.108.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team Awesome. Cheers to all contributors.
Release D 2.108.0
Glad to announce D 2.108.0, ♥ to the 36 contributors. This release comes with 8 major changes and 36 fixed Bugzilla issues, including: - In the language, named arguments for functions have been implemented and documented. - In phobos, std.uni has been upgraded to Unicode 15.1.0. - In dub, the fetch command now supports multiple arguments, recursive fetch, and is project-aware. http://dlang.org/download.html http://dlang.org/changelog/2.108.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team
Re: I am pleased to annouce that...
On Monday, 1 April 2024 at 08:43:11 UTC, Daniel Donnelly, Jr. wrote: Exactly zero of the Qt5/6 binding libraries work either with dub (if they have it on there). I have tried them all and each gets errors, VisualD or not. Therefore, it is smart / safe if a Qt5/6 developer stick with Qt VS tools (if you can get it to function) or simply Qt Creator itself. This approach is vouched safe by the above. So I will do my GUI in Qt Creator, hopefully not creating a memory leak (lots of QSharedPointers!), but my backend will of course be in D! :D I am using dqt without issues though, albeit a bit ahead the dub version. The version I use: ```json "dqt": { "repository": "git+https://github.com/tim-dlang/dqt.git;, "version": "6a44b55f3a3691da930cb9eefe2a745afe1b764d" } ``` Which errors are you encountering? Maybe it could be fixed.
I am pleased to annouce that...
Exactly zero of the Qt5/6 binding libraries work either with dub (if they have it on there). I have tried them all and each gets errors, VisualD or not. Therefore, it is smart / safe if a Qt5/6 developer stick with Qt VS tools (if you can get it to function) or simply Qt Creator itself. This approach is vouched safe by the above. So I will do my GUI in Qt Creator, hopefully not creating a memory leak (lots of QSharedPointers!), but my backend will of course be in D! :D
Re: D Language Foundation December 2023 Monthly Meeting Summary
On Wednesday, 27 March 2024 at 20:32:16 UTC, Mike Parker wrote: [...] Thank you for summarising these!
D Language Foundation December 2023 Monthly Meeting Summary
The D Language Foundation's monthly meeting for December 2023 took place on Friday the 8th at 16:00 UTC. It lasted two hours. ## The Attendees The following people attended the meeting: * Andrei Alexandrescu * Paul Backus * Walter Bright * Iain Buclaw * Martin Kinkelin * Razvan Nitu * Mike Parker * Adam D. Ruppe * Steven Schveighoffer * Timon Gehr * Adam Wilson ## The Summary ### Me I opened the meeting by detailing my plans for how we run our monthlies going forward. The approach we'd been using from the beginning was to give each person a turn, allowing them to bring up multiple topics before moving on to the next person. Sometimes someone had nothing to report, sometimes one or two issues, sometimes a progress report on their work, and sometimes one or more issues that got us into long discussions. Given that our invite list had grown quite a bit in the preceding months, this had become cumbersome, leading to overly long meetings or discussions being abruptly tabled in the interest of moving on. So, I informed everyone that starting with our January monthly meeting, I would send out the invitations earlier than usual and ask everyone to email me a prioritized list of agenda items. Then at the meeting, I would only call on the people who sent me a list, going round robin in the order I received them, starting with the first item from each list, then the second, and so on, until either there were no more items or we hit the hour-and-a-half mark. If we did hit the time limit, we could decide whether to go on to two hours or not. I introduced and welcomed Paul Backus. This was his first time with us. I'd had a call with him a couple of weeks before and invited him to join us. He'd said, "Sure, I can come in for a meeting." I told him I wasn't asking him to come to one meeting but to join us as a regular member. I thought his contributions would be valuable. Happily, he accepted. __UPDATE__: We did start the new approach in January. ### Adam W. Adam W. opened by telling us he'd received an email from someone using the crypto library he'd written a few years ago. The person reported some bugs and made the case that D needed crypto in the standard library. Without that, it was hard to know which library to trust. Adam W. said he was going to fix the bugs and, since he had now started working on Phobos v3 (which the person who emailed him had no way of knowing), wanted to talk later about getting crypto in. Regarding Phobos v3, Adam W. said he and Walter had discussed it at the Seattle meetup in November. He'd sent Walter a document and Walter had suggested he put it up on GitHub for feedback and discussion. At the moment, he and Walter were having a debate over how to version the standard library, and he expected that would continue at the next Seattle meetup the following week. __UPDATE__: You can view [the Phobos v3 Design document](https://github.com/LightBender/PhobosV3-Design) in Adam W.'s repo, and participate [in the ongoing discussion](https://github.com/LightBender/PhobosV3-Design/discussions). The repo was initially private, but he made it public during this meeting. ### Timon Timon said he had some type system and language issues but didn't think they were at the forefront right now. He suggested we could discuss them in a different meeting. I asked if he wanted to get in on our planning sessions. He said he did. ### Adam R. Adam R. said that the PR for the `@standalone` attribute opened in August and the string interpolation thing that had been open for a while were both stalled out. He then said he was very interested in the Phobos v3 stuff and would love to see the document. Adam W. said made the repo public and posted the link in the chat. I said I'd thought Walter had approved `@standalone` in a previous meeting, then asked if Razvan or Dennis had looked at the PR. Dennis said there had been a weird test failure on it, but it was passing now. He thought the bug might still be there, but just wasn't triggering. Even so, since it was green, it was going to be merged. Paul said he'd dug into it and found that the problem was a timeout on the CI test runner, so it shouldn't be a blocker. Walter said there had been disagreement over whether the feature should be an attribute or a pragma, and that had been his main objection to it. He thought it just didn't look good as an attribute, especially given how it was an extremely specific use case. He thought pragma was more suitable for it. Adam R. noted that pragmas weren't backward compatible. Walter said unrecognized pragmas were supposed to be ignored. That was their intended purpose. Dennis said that's not how the compiler currently worked. There was a switch to ignore pragmas. Walter hadn't been aware that had been added. He told Adam he'd take a look at the PR again. Timon commented that although pragmas are supposed to be benign, pragma mangle could break
Re: DConf '24 Early-Bird Registration is Open, Submission Deadline Set!
On Monday, 25 March 2024 at 20:57:39 UTC, Mike Parker wrote: We also now have a submission deadline of June 8 AOE. Let's get those submissions coming in, folks! Please note that the submission deadline is now May 17.
DConf '24 Early-Bird Registration is Open, Submission Deadline Set!
Early-Bird registration is now open! If you're thinking about attending DConf this year, you've got until June 17 to take advantage of the 15% discount. General registration opens on June 18. As always, students can register at a discounted rate that remains fixed throughout the registration period. All of the details are on the DConf '24 homepage: https://dconf.org/2024/ We also now have a submission deadline of June 8 AOE. Let's get those submissions coming in, folks! Note that this year, we have some text fields along with the PayPal button. One of them is where you can let us know if you have any special dietary requirements. The other is to let us know if you'd like a nickname, like a forum or GitHub handle, included on your name tag. Please let me know if you have any issues making the payment. See you in London!
Re: Beerconf March (dconf online)
On Monday, 18 March 2024 at 22:15:49 UTC, Richard (Rikki) Andrew Cattermole wrote: Perhaps we can do the usual end of month time as well, I'll give you a ping if I can do it. Depends upon how the week leading up to it for me goes (may not go well). I missed everything, due to being on a trip -- still haven't even watched the talks! And I should remind you that the last weekend of March is Easter (and I also would not be able to be there due to other events). -Steve
Re: DConf Online Livestream Link
On Sunday, 10 March 2024 at 16:07:23 UTC, Mike Parker wrote: The countdown is on! I'll kick off the DConf Online Livestream at 14:55 UTC on March 16. You can find it here: https://www.youtube.com/live/8GV_TuYk3lk And if you haven't seen the details yet, take a look here: https://dconf.org/2024/online/index.html See you there! Finally got around to start watching. On the tuple talk, Timon says on slide 32 that heterogeneous dynamic arrays don’t make much sense. I agree maybe not a completely heterogeneous one, but data frames are incredibly popular and quite similar. You could think of a data frame like a tuple composed of N-dimensional slices, but also with a slice-like interface.
Re: Beerconf March (dconf online)
On 22/03/2024 5:36 AM, Ethan wrote: On Monday, 18 March 2024 at 22:15:49 UTC, Richard (Rikki) Andrew Cattermole wrote: Perhaps we can do the usual end of month time as well, I'll give you a ping if I can do it. At this rate I could very well be on a plane again, to more southern destinations this time. Naturally, naturally. Let me know when things calm down for you!
Re: Beerconf March (dconf online)
On Monday, 18 March 2024 at 22:15:49 UTC, Richard (Rikki) Andrew Cattermole wrote: Perhaps we can do the usual end of month time as well, I'll give you a ping if I can do it. At this rate I could very well be on a plane again, to more southern destinations this time.
Re: Beta 2.108.0
On Thursday, 21 March 2024 at 09:16:07 UTC, Andrea Fontana wrote: This? ```d auto toHex(N)(N number) if (isIntegral!N) { return "%X".format(number); } ``` No, you respect your efforts. Simple solutions without memory allocation are needed. Moreover, there are already very good algorithms in the runtime: https://github.com/dlang/dmd/blob/master/druntime/src/core/internal/string.d#L34 SDB@79
Re: Beta 2.108.0
On Saturday, 16 March 2024 at 09:26:20 UTC, Iain Buclaw wrote: The RC for 2.108 has been released, which includes the following changes from the initial beta: - Named Arguments is now implemented and documented as a new feature in this release. The beta supports the feature, but was left undocumented while some remaining issues were being fixed. - Hexstrings now implicitly convert to integer arrays. The beta had introduced support to allow casting to arrays only. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.108.0.html Great release! "Named Arguments" and "String Interpolation" called: "Interpolated Expression Sequences"
Re: Beta 2.108.0
On Thursday, 21 March 2024 at 03:19:16 UTC, Salih Dincer wrote: On Thursday, 21 March 2024 at 02:14:36 UTC, WebFreak001 wrote: On Saturday, 2 March 2024 at 17:40:29 UTC, Iain Buclaw wrote: .. since they drastically make things easier (hexstrings) or even possible in the first place (magic initializer thingies) for library code and generated code. I cannot say the same thing. It is thought-provoking that even the toHex() function, which should be in std.conv, was not included and we had to write it ourselves. SDB@79 This? ``` import std; void main() { int number = 32409; auto hex = format("%X", number); writeln(hex); } ``` or: ``` auto toHex(N)(N number) if (isIntegral!N) { return "%X".format(number); } ... auto hex = 3432.toHex(); ... ```
Re: Beta 2.108.0
On Thursday, 21 March 2024 at 02:14:36 UTC, WebFreak001 wrote: On Saturday, 2 March 2024 at 17:40:29 UTC, Iain Buclaw wrote: .. since they drastically make things easier (hexstrings) or even possible in the first place (magic initializer thingies) for library code and generated code. I cannot say the same thing. It is thought-provoking that even the toHex() function, which should be in std.conv, was not included and we had to write it ourselves. SDB@79
Re: Beta 2.108.0
On Saturday, 2 March 2024 at 17:40:29 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.108.0 release, ♥ to the 35 contributors. This release comes with 7 major changes and 48 fixed Bugzilla issues, including: - In the language, support has been added for Interpolated Expression Sequences. - In phobos, std.uni has been upgraded to Unicode 15.1.0. - In dub, the fetch command now supports multiple arguments, recursive fetch, and is project-aware. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.108.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team woah this release is amazing! It's solving some of my long standing pain points missing with the language (in particular named arguments as struct initializer replacements and interpolated strings) - the other features may only be very niche things, however they are absolutely plenty appreciated since they drastically make things easier (hexstrings) or even possible in the first place (magic initializer thingies) for library code and generated code. This gives me excitement like older D releases used to feel again, as well as in the forums real usage of D in projects or samples instead of pointless discussions seem to also be gaining more popularity again. Can't wait for the full release, gonna try out using new features from this beta one already.
Re: Beta 2.108.0
On Saturday, 2 March 2024 at 17:40:29 UTC, Iain Buclaw wrote: [...] Named arguments for functions have been implemented and documented Yay, I was really looking forward to this. I currently use `std.typecons.Flag` virtually *everywhere* to make sure I don't confuse parameters. ```d auto doThing( const string what, const Flag!"foo" foo, const Flag!"bar" bar, const Flag!"baz" baz = No.baz) { // ... } auto thing = doThing("asdf", Yes.foo, No.bar, Yes.baz); ``` It will take some time adapting to but I welcome the addition.
Re: Beta 2.108.0
Am 16.03.2024 um 11:31 schrieb Daniel N: ```d union U { float asFloat; uint asInt; } auto u0 = U(1.0); // this sets the `asFloat` field auto u1 = U(asInt: 0x3F80); // formerly not possible ``` Wow, this is so cool, can't wait to try it out, thanks to everyone who made it happen! Note that this has already been possible in places where the {} syntax can be used: auto u1 = {asInt: 0x3F80}; Still great to see this officially implemented!
Re: D-wrappers BLAKE3 wrapping C library libblake3
On Tuesday, 19 March 2024 at 15:38:40 UTC, Ben Jones wrote: On Tuesday, 19 March 2024 at 08:40:37 UTC, Per Nordlöw wrote: On Tuesday, 19 March 2024 at 08:35:55 UTC, Per Nordlöw wrote: I just added a D implementation to dmd (https://github.com/dlang/dmd/blob/master/compiler/src/dmd/common/blake3.d) which doesn't support streaming, so is probably somewhat simpler/smaller, in case that's useful Use, that's the reason why added blake3-d. The function, testVector in DMD can be made static, btw.
Re: D-wrappers BLAKE3 wrapping C library libblake3
On Tuesday, 19 March 2024 at 08:40:37 UTC, Per Nordlöw wrote: On Tuesday, 19 March 2024 at 08:35:55 UTC, Per Nordlöw wrote: I just added a D implementation to dmd (https://github.com/dlang/dmd/blob/master/compiler/src/dmd/common/blake3.d) which doesn't support streaming, so is probably somewhat simpler/smaller, in case that's useful
Re: DConf Online Livestream Link
On Monday, 18 March 2024 at 11:11:03 UTC, Nick Treleaven wrote: BTW each link to slides is giving me a 404. Luckily the live stream video is still up to rewind :-) I thought I'd fixed that the other day (I'd forgotten to add the slides directory to the Makefile initially), but apparently make behaves differently on Mac and Linux. Fixed now.
Re: D-wrappers BLAKE3 wrapping C library libblake3
On Tuesday, 19 March 2024 at 08:35:55 UTC, Per Nordlöw wrote: - Compliant with std.digest. - Current compiles C libraries directly for maximum performance. - Might need some adjustments with compiler flags. See https://code.dlang.org/packages/blake3-d. Please see details on the building of the wrapped C library using cmake and make. Probably needs some TLC for platform-independence. I just realized that dub doesn't work with git submodules. Shall I include a git clone in the provisioning script or simply copy (vendor) BLAKE3/c into the repo for now?
D-wrappers BLAKE3 wrapping C library libblake3
- Compliant with std.digest. - Current compiles C libraries directly for maximum performance. - Might need some adjustments with compiler flags. See https://code.dlang.org/packages/blake3-d. Please see details on the building of the wrapped C library using cmake and make. Probably needs some TLC for platform-independence.
Re: Beerconf March (dconf online)
On 19/03/2024 10:46 AM, Ethan wrote: On Saturday, 9 March 2024 at 13:34:50 UTC, Steven Schveighoffer wrote: # BEERCONF! And here I was getting on the newsgroups to see if BeerConf was coming up sometime soon. I was on planes last weekend anyway so it would have been quite impractical to jump on. Perhaps we can do the usual end of month time as well, I'll give you a ping if I can do it. Depends upon how the week leading up to it for me goes (may not go well).
Re: Beerconf March (dconf online)
On Saturday, 9 March 2024 at 13:34:50 UTC, Steven Schveighoffer wrote: # BEERCONF! And here I was getting on the newsgroups to see if BeerConf was coming up sometime soon. I was on planes last weekend anyway so it would have been quite impractical to jump on.
Re: DConf Online Livestream Link
On Monday, 18 March 2024 at 11:33:08 UTC, Andrea Fontana wrote: https://github.com/dlang/dconf.org/tree/master/2024/online/slides Thanks!
Re: DConf Online Livestream Link
On Monday, 18 March 2024 at 11:11:03 UTC, Nick Treleaven wrote: On Sunday, 10 March 2024 at 16:07:23 UTC, Mike Parker wrote: The countdown is on! I'll kick off the DConf Online Livestream at 14:55 UTC on March 16. You can find it here: https://www.youtube.com/live/8GV_TuYk3lk And if you haven't seen the details yet, take a look here: https://dconf.org/2024/online/index.html See you there! This was great, interesting selection of talks. BTW each link to slides is giving me a 404. Luckily the live stream video is still up to rewind :-) https://github.com/dlang/dconf.org/tree/master/2024/online/slides Andrea
Re: DConf Online Livestream Link
On Sunday, 10 March 2024 at 16:07:23 UTC, Mike Parker wrote: The countdown is on! I'll kick off the DConf Online Livestream at 14:55 UTC on March 16. You can find it here: https://www.youtube.com/live/8GV_TuYk3lk And if you haven't seen the details yet, take a look here: https://dconf.org/2024/online/index.html See you there! This was great, interesting selection of talks. BTW each link to slides is giving me a 404. Luckily the live stream video is still up to rewind :-)
Re: I've just finished the last version of the GUI for the DMD compiler, now it works on Linux too.
On Friday, 15 March 2024 at 14:18:31 UTC, someone wrote: On Thursday, 14 March 2024 at 06:19:08 UTC, Murilo wrote: I've just finished the last version of the GUI for the DMD compiler, now it works on Linux too. It's perfect. https://github.com/MuriloMir/DMD-GUI Source code where? It is the last file, called source.d.
Re: DConf Online Livestream Link
On Sunday, 10 March 2024 at 16:07:23 UTC, Mike Parker wrote: The countdown is on! I'll kick off the DConf Online Livestream at 14:55 UTC on March 16. You can find it here: https://www.youtube.com/live/8GV_TuYk3lk And if you haven't seen the details yet, take a look here: https://dconf.org/2024/online/index.html See you there! We're a few minutes away from kicking off.
Re: Beta 2.108.0
On Saturday, 16 March 2024 at 09:26:20 UTC, Iain Buclaw wrote: The RC for 2.108 has been released, which includes the following changes from the initial beta: - Named Arguments is now implemented and documented as a new feature in this release. The beta supports the feature, but was left undocumented while some remaining issues were being fixed. - Hexstrings now implicitly convert to integer arrays. The beta had introduced support to allow casting to arrays only. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.108.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team It's only getting a quick mention in the middle of the list of bug fixes, but "Bugzilla 24397: Support C preprocessor function-like macros" is a big deal for ImportC - that was the final piece needed to use ImportC with large C files without manual intervention. (At least that's the case for the code I'm working with.)
Re: Beerconf March (dconf online)
Linkity link for BeerConf: https://meet.jit.si/Dlang2024MarchBeerConf And starting in under 3 hours DConf Online: https://www.youtube.com/watch?v=8GV_TuYk3lk
Re: Beta 2.108.0
On Saturday, 16 March 2024 at 09:26:20 UTC, Iain Buclaw wrote: The RC for 2.108 has been released, which includes the following changes from the initial beta: - Named Arguments is now implemented and documented as a new feature in this release. The beta supports the feature, but was left undocumented while some remaining issues were being fixed. - Hexstrings now implicitly convert to integer arrays. The beta had introduced support to allow casting to arrays only. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.108.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team ```d union U { float asFloat; uint asInt; } auto u0 = U(1.0); // this sets the `asFloat` field auto u1 = U(asInt: 0x3F80); // formerly not possible ``` Wow, this is so cool, can't wait to try it out, thanks to everyone who made it happen!
Re: Beta 2.108.0
The RC for 2.108 has been released, which includes the following changes from the initial beta: - Named Arguments is now implemented and documented as a new feature in this release. The beta supports the feature, but was left undocumented while some remaining issues were being fixed. - Hexstrings now implicitly convert to integer arrays. The beta had introduced support to allow casting to arrays only. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.108.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team
Re: Beerconf March (dconf online)
Heads up to all, its DConf Online 2024 in 7 hours! I'll put up a link for BeerConf in around 5 hours, get ready with ya brews!
Re: I've just finished the last version of the GUI for the DMD compiler, now it works on Linux too.
On Thursday, 14 March 2024 at 06:19:08 UTC, Murilo wrote: I've just finished the last version of the GUI for the DMD compiler, now it works on Linux too. It's perfect. https://github.com/MuriloMir/DMD-GUI Source code where?
Re: fastcgi-native
On Thursday, 14 March 2024 at 16:02:50 UTC, Ferhat Kurtulmuş wrote: [...] Github page has some information.Nowadays dub web site doesn't display the entire readme.md, I don't know why. I only implemented what I need. it may not cover all possible situations. Maybe I improve it in the future, PRs are welcome. https://github.com/aferust/fastcgi-native Ok. Thank You!
Re: fastcgi-native
On Thursday, 14 March 2024 at 13:06:10 UTC, Martin Tschierschke wrote: On Monday, 11 March 2024 at 09:10:57 UTC, Ferhat Kurtulmuş wrote: A small utility if anyone needs. https://github.com/aferust/fastcgi-native https://code.dlang.org/packages/fastcgi-native https://fastcgi-native.dpldocs.info/v0.0.1/index.html fastcgi Undocumented in source. Looks hart to use...? Github page has some information.Nowadays dub web site doesn't display the entire readme.md, I don't know why. I only implemented what I need. it may not cover all possible situations. Maybe I improve it in the future, PRs are welcome. https://github.com/aferust/fastcgi-native
Re: fastcgi-native
On Monday, 11 March 2024 at 09:10:57 UTC, Ferhat Kurtulmuş wrote: A small utility if anyone needs. https://github.com/aferust/fastcgi-native https://code.dlang.org/packages/fastcgi-native https://fastcgi-native.dpldocs.info/v0.0.1/index.html fastcgi Undocumented in source. Looks hart to use...?
I've just finished the last version of the GUI for the DMD compiler, now it works on Linux too.
I've just finished the last version of the GUI for the DMD compiler, now it works on Linux too. It's perfect. https://github.com/MuriloMir/DMD-GUI
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 19:07:25 UTC, M.M. wrote: I was always wondering about this debate on a suitable "first" programming language in a CS curriculum. I largely observe one dividing point: to start with a strongly-typed language or not. (After that, it probably does not matter so much which language is chosen; alas, it should be available on Windows, Linux, and Mac OS). Do you observe similar sentiment in the discussions in the university settings? I'm not a CS person so I'll have to defer to others (their needs are very different). My grad students are doing more complicated programming for data analysis and simulation. I focus on recursion and using a functional programming approach, because that simplifies things so much for these types of problems. All I need is a language that supports that.
Re: Is D programming friendly for beginners?
On Monday, 4 March 2024 at 13:37:53 UTC, Fidele wrote: I want to start learning D programming language it looks interesting The free digital book from Ali, is written to fit your need: https://ddili.org/ders/d.en/index.html
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 22:27:11 UTC, Mike Shah wrote: On Tuesday, 12 March 2024 at 20:40:49 UTC, Meta wrote: On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote: [...] I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks. I've been at institutions where C++ is the first language and for most folks who were sure they wanted to do programming it was a fine enough language (when taught with care) to teach. In fact, it benefited me (and other instructors) quite a bit when I saw those students later and taught them computer graphics (usually taught in C++ to prepare them for job market). For folks who were not sure if they wanted to study computer science, unfortunately they were scared away as they thought this was the only path for programming (i.e. C++, assembly, etc.). For this reason, a language that is gentler (e.g. Python, JavaScript, or I also suspect a large subset of D) would all have been better choices. More universities these days are offering courses with gentler options (e.g. Programming for non-majors) which usually take this approach to more slowly ramp students up -- which I think is a good thing to have these offerings. And then later on in the program, these students can learn the good stuff (i.e. systems, compilers, graphics, etc. :) ) I understand that outside of CS, something like Python is a fine choice, hiding many low-level details. But within a CS-curriculum, one needs to come beyond basics-of-programming to something like efficient algorithm-design-and-data-structures; isn't a typed language better here? (Like the quote of Knuth says: if you do not understand the hardware behind, your programs will look weird. I have observed this a lot with current data-science students, which use a map/dictionary for everything, largely ignoring the existence of arrays).
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 20:40:49 UTC, Meta wrote: On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote: On Tuesday, 12 March 2024 at 14:52:32 UTC, Mike Shah wrote: ... I really think D would be a wonderful first language. Fast feedback, no need to manage memory, and easy to use built-in data structures would make for a nice intro course. If you say that D would be a good language to learn in lieu C++/Rust I'd agree, but as a First Language neither one would be my choice. Most here already program and know things, but as a first language forget, at least where and when I did college (Already knowing how to program), most people were lost with all the concepts of C++ for example. Bitwise shifts like << >> and the same operators being used in cin/cout may be OK for most people already in programming and using shell, but for those learning was a hell. Matheus. I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks. I've been at institutions where C++ is the first language and for most folks who were sure they wanted to do programming it was a fine enough language (when taught with care) to teach. In fact, it benefited me (and other instructors) quite a bit when I saw those students later and taught them computer graphics (usually taught in C++ to prepare them for job market). For folks who were not sure if they wanted to study computer science, unfortunately they were scared away as they thought this was the only path for programming (i.e. C++, assembly, etc.). For this reason, a language that is gentler (e.g. Python, JavaScript, or I also suspect a large subset of D) would all have been better choices. More universities these days are offering courses with gentler options (e.g. Programming for non-majors) which usually take this approach to more slowly ramp students up -- which I think is a good thing to have these offerings. And then later on in the program, these students can learn the good stuff (i.e. systems, compilers, graphics, etc. :) )
Re: Is D programming friendly for beginners?
On Tue, Mar 12, 2024 at 08:40:49PM +, Meta via Digitalmars-d-announce wrote: [...] > I think it really depends on the person. My first language was C++, which > was absolute hell to learn as a complete beginner to programming, but I > really wanted to learn a language with low-level capabilities that could > also do gamedev. Learning C++ as my first language was incredibly difficult, > but it also made the programming parts of my CS degree a breeze - especially > courses like machine level programming. Nobody else in the class even > understood what a pointer was for the first couple weeks. People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird. -- D. Knuth ;-) T -- Just because you can, doesn't mean you should.
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote: On Tuesday, 12 March 2024 at 14:52:32 UTC, Mike Shah wrote: ... I really think D would be a wonderful first language. Fast feedback, no need to manage memory, and easy to use built-in data structures would make for a nice intro course. If you say that D would be a good language to learn in lieu C++/Rust I'd agree, but as a First Language neither one would be my choice. Most here already program and know things, but as a first language forget, at least where and when I did college (Already knowing how to program), most people were lost with all the concepts of C++ for example. Bitwise shifts like << >> and the same operators being used in cin/cout may be OK for most people already in programming and using shell, but for those learning was a hell. Matheus. I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks.
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 19:12:03 UTC, H. S. Teoh wrote: I don't know how CS programs are carried out these days, but back when I was in university, the choice of language is largely irrelevant, because the whole point of a programming course isn't to teach you a specific language, but to teach you the *principles* that underlie programming in general. There are really only a small handful of different paradigms that you need to learn; once you learned the principles behind them, they can be applied to any language out there. You wouldn't need anyone to teach you a new language then; you could just learn it yourself by applying these same principles. The rest, as they say, is just details. ;-) T I agree. Andrea
Re: Is D programming friendly for beginners?
On Tue, Mar 12, 2024 at 06:03:43PM +, Lance Bachmeier via Digitalmars-d-announce wrote: > On Tuesday, 12 March 2024 at 17:03:42 UTC, Mike Shah wrote: > > > As a note, the 'which language is best for CS 1' debate has long > > been debated -- but at least in a school setting, I've found the > > quality/enthusiasm/encouragement of the teacher to be the most > > important aspect regardless of language choice. > > As someone that's been teaching beginners to program at a university > for a long time (but not in a CS department) I've come to see the > choice of language as largely unimportant. You have to decide what you > want to teach them and then eliminate the languages that aren't > suitable. D is one of many languages that would work with the right > content. Other languages, like C++, add unnecessary overhead and thus > should not be used. > > It's often said "X is a complicated language" but that's the wrong way > to look at it. You're teaching a set of programming concepts, not a > language. The question is how well a particular language works for > learning those concepts. I don't know how CS programs are carried out these days, but back when I was in university, the choice of language is largely irrelevant, because the whole point of a programming course isn't to teach you a specific language, but to teach you the *principles* that underlie programming in general. There are really only a small handful of different paradigms that you need to learn; once you learned the principles behind them, they can be applied to any language out there. You wouldn't need anyone to teach you a new language then; you could just learn it yourself by applying these same principles. The rest, as they say, is just details. ;-) T -- The irony is that Bill Gates claims to be making a stable operating system and Linus Torvalds claims to be trying to take over the world. -- Anonymous
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 18:03:43 UTC, Lance Bachmeier wrote: On Tuesday, 12 March 2024 at 17:03:42 UTC, Mike Shah wrote: As a note, the 'which language is best for CS 1' debate has long been debated -- but at least in a school setting, I've found the quality/enthusiasm/encouragement of the teacher to be the most important aspect regardless of language choice. As someone that's been teaching beginners to program at a university for a long time (but not in a CS department) I've come to see the choice of language as largely unimportant. You have to decide what you want to teach them and then eliminate the languages that aren't suitable. D is one of many languages that would work with the right content. Other languages, like C++, add unnecessary overhead and thus should not be used. It's often said "X is a complicated language" but that's the wrong way to look at it. You're teaching a set of programming concepts, not a language. The question is how well a particular language works for learning those concepts. I was always wondering about this debate on a suitable "first" programming language in a CS curriculum. I largely observe one dividing point: to start with a strongly-typed language or not. (After that, it probably does not matter so much which language is chosen; alas, it should be available on Windows, Linux, and Mac OS). Do you observe similar sentiment in the discussions in the university settings?
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 17:03:42 UTC, Mike Shah wrote: As a note, the 'which language is best for CS 1' debate has long been debated -- but at least in a school setting, I've found the quality/enthusiasm/encouragement of the teacher to be the most important aspect regardless of language choice. As someone that's been teaching beginners to program at a university for a long time (but not in a CS department) I've come to see the choice of language as largely unimportant. You have to decide what you want to teach them and then eliminate the languages that aren't suitable. D is one of many languages that would work with the right content. Other languages, like C++, add unnecessary overhead and thus should not be used. It's often said "X is a complicated language" but that's the wrong way to look at it. You're teaching a set of programming concepts, not a language. The question is how well a particular language works for learning those concepts.
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote: On Tuesday, 12 March 2024 at 14:52:32 UTC, Mike Shah wrote: ... I really think D would be a wonderful first language. Fast feedback, no need to manage memory, and easy to use built-in data structures would make for a nice intro course. If you say that D would be a good language to learn in lieu C++/Rust I'd agree, but as a First Language neither one would be my choice. Most here already program and know things, but as a first language forget, at least where and when I did college (Already knowing how to program), most people were lost with all the concepts of C++ for example. Bitwise shifts like << >> and the same operators being used in cin/cout may be OK for most people already in programming and using shell, but for those learning was a hell. Matheus. I agree (and I've made my case from my DConf talk with some data) D is much more productive than C++ for students (especially in the scope of a quarter or semester long course). I probably would recommend in the general case that someone who wants to try programming to start with Python or JavaScript -- purely because the start up cost is smaller, and the vast amount of packages let beginners do something interesting quickly. That said, in a university curriculum (where students have multiple semesters), D could prove nice as an intro language as it has the ability to scale up in difficulty over time. I think D is friendly enough that it would not immediately turn away beginners from computer science programs (But ultimately Python probably wins for now in this category). As a note, the 'which language is best for CS 1' debate has long been debated -- but at least in a school setting, I've found the quality/enthusiasm/encouragement of the teacher to be the most important aspect regardless of language choice.
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 14:52:32 UTC, Mike Shah wrote: ... I really think D would be a wonderful first language. Fast feedback, no need to manage memory, and easy to use built-in data structures would make for a nice intro course. If you say that D would be a good language to learn in lieu C++/Rust I'd agree, but as a First Language neither one would be my choice. Most here already program and know things, but as a first language forget, at least where and when I did college (Already knowing how to program), most people were lost with all the concepts of C++ for example. Bitwise shifts like << >> and the same operators being used in cin/cout may be OK for most people already in programming and using shell, but for those learning was a hell. Matheus.
Re: Is D programming friendly for beginners?
On Tuesday, 12 March 2024 at 14:03:30 UTC, Bastiaan Veelo wrote: On Monday, 11 March 2024 at 12:30:10 UTC, Doigt wrote: On Monday, 4 March 2024 at 13:37:53 UTC, Fidele wrote: I want to start learning D programming language it looks interesting Depends what you mean by "beginner". If you've never programmed before and D is your first language, then the answer is a definite no. Why definitely not? https://youtu.be/V2YwTIIMEeU?si=j3cQzzN4jsUQrN9C=682 -- Bastiaan. I really think D would be a wonderful first language. Fast feedback, no need to manage memory, and easy to use built-in data structures would make for a nice intro course.
Re: Is D programming friendly for beginners?
On Monday, 11 March 2024 at 12:30:10 UTC, Doigt wrote: On Monday, 4 March 2024 at 13:37:53 UTC, Fidele wrote: I want to start learning D programming language it looks interesting Depends what you mean by "beginner". If you've never programmed before and D is your first language, then the answer is a definite no. Why definitely not? https://youtu.be/V2YwTIIMEeU?si=j3cQzzN4jsUQrN9C=682 -- Bastiaan.
Re: Is D programming friendly for beginners?
On Monday, 4 March 2024 at 13:37:53 UTC, Fidele wrote: I want to start learning D programming language it looks interesting Depends what you mean by "beginner". If you've never programmed before and D is your first language, then the answer is a definite no.
fastcgi-native
A small utility if anyone needs. https://github.com/aferust/fastcgi-native https://code.dlang.org/packages/fastcgi-native
Re: Announcing Serverino 0.6.0!
Thank you! Inline replies >>> On Sunday, 10 March 2024 at 21:04:05 UTC, aberba wrote: 1) I'm not sure I like concat (~=) style used on `Output output` and how it can determine the order routes are invoked. I would expect that to be explicitly defined by Dev using a catch-all route or else the sever returns 404 by default. That's going to prevent the chances of invoking the wrong route especially when it does something important/dangerous/unexpected. Serverino works with priorities, that's the order the handlers are called! You're checks on handlers can easily filter request. 2) instead of doing: ```d if (request.method != Request.Method.Get) output.status = 405; ``` to determine the request method, why not use a UDA similar to `@route` ...like `@method(Request.Method.post)`? The use of UDA is so much cleaner and easier to deal with. This works as well, indeed: @route!(r => r.method == Request.Method.Post) 3) would be nice to have an `output.json()` function which both sets the response header and also calls `output.write()` Just add content type and you're done! 4. I can't build anything significant in any http server library without support for middleware. Preferably support for multiple middlewares functions. A middleware would be a function that runs after the @onServerInit but BEFORE any route handler. It will be used to intercept all incoming requests for things like authentication, rate limiting, CORS, etc. Preferably provide a way to pass data to the target route e.g. user session, user permission, etc...like output.locals.set("userId", 123). The route will then be able to access this data. Just use a high priority handler, check the tips on website, for example user auth. That's a very clean way to add a layer of Auth, logging and so on... All in all, everything else looks good. I would prefer something like: ```d void hello (Request req, Response res) { res.write("hello"); } ``` ...but `Output` is also fine... just a small nitpick. output.write() works as well. Andrea
Re: Announcing Serverino 0.6.0!
On Thursday, 7 March 2024 at 21:00:03 UTC, Andrea Fontana wrote: Performance has been boosted once again, and those pesky little bugs? Squashed! Plus, there are fresh examples to try out and even a sleek new logo to admire! Ready to dive in? Just spin up a new project using the provided template: ``` dub init -t serverino my_wonderful_project cd my_wonderful_project dub ``` And voilà! Your hello world will be up and running in **a couple of seconds**! Have fun! Andrea Fontana (I know some of you are already on board, but how many are sailing in secret? Come out of the shadows and let me know! Your feedback is the wind in serverino's sails) Repository: https://github.com/trikko/serverino Docs: https://trikko.github.io/serverino Examples: https://github.com/trikko/serverino/tree/master/examples Tips: https://github.com/trikko/serverino/wiki/ I'm a heavy user of big express (js) library and I like what I'm seeing. Looks simple and clean. Here are some suggestions: 1) I'm not sure I like concat (~=) style used on `Output output` and how it can determine the order routes are invoked. I would expect that to be explicitly defined by Dev using a catch-all route or else the sever returns 404 by default. That's going to prevent the chances of invoking the wrong route especially when it does something important/dangerous/unexpected. 2) instead of doing: ```d if (request.method != Request.Method.Get) output.status = 405; ``` to determine the request method, why not use a UDA similar to `@route` ...like `@method(Request.Method.post)`? The use of UDA is so much cleaner and easier to deal with. 3) would be nice to have an `output.json()` function which both sets the response header and also calls `output.write()` 4. I can't build anything significant in any http server library without support for middleware. Preferably support for multiple middlewares functions. A middleware would be a function that runs after the @onServerInit but BEFORE any route handler. It will be used to intercept all incoming requests for things like authentication, rate limiting, CORS, etc. Preferably provide a way to pass data to the target route e.g. user session, user permission, etc...like output.locals.set("userId", 123). The route will then be able to access this data. All in all, everything else looks good. I would prefer something like: ```d void hello (Request req, Response res) { res.write("hello"); } ``` ...but `Output` is also fine... just a small nitpick.
Beerconf March (dconf online)
# BEERCONF! Dconf online is upon us next weekend! Instead of holding the normal beerconf at the end of the month, this month we will do a special early edition, to coincide with dconf online. We will start it on the 16th, and go through Sunday as usual. ## What is Beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf) ## Presentations? Um... yeah, there [are some](https://dconf.org/2024/online/index.html) Cheers! -Steve
Re: SecureD 3.0 has been released!
On Thursday, 7 March 2024 at 17:06:00 UTC, Andrea Fontana wrote: On Wednesday, 6 March 2024 at 07:47:04 UTC, Adam Wilson wrote: SecureD 3.0 has been released. This version was set in motion by a Cedric Picard, a D community member with Cryptography experience, reaching out and suggesting a number of improvements to the Symmetric and KDF API's. This resulted in an API for symmetric encryption that improves correctness and security without significantly increasing developer workload. Also improved is the encryption envelope that contains symmetrically encrypted data. Algorithm Changes: - Removed: SHA2-224, AES-OFB - Added: SHA3-224/256/384/512 And I even remembered to update the examples in the README. Future work will focus on using the Operating System provided cryptography where available. Check it out here: https://code.dlang.org/packages/secured Well done Adam! I only miss the docs :) Andrea Yea, I totally whiffed and forgot to add examples for the new methods. And I can never seem to find the time for the DDoc comments that it really needs. It'll happen ... someday.
Re: SecureD 3.0 has been released!
On Thursday, 7 March 2024 at 11:04:08 UTC, Dukc wrote: On Wednesday, 6 March 2024 at 07:47:04 UTC, Adam Wilson wrote: This version was set in motion by a Cedric Picard, a D community member with Cryptography experience, reaching out and suggesting a number of improvements to the Symmetric and KDF API's. Wow, a Cym13 verified crypto library - excellent news! Indeed. I was actually excited to get the feedback. I am quite proud of what this release accomplished.
Re: SecureD 3.0 has been released!
On Thursday, 7 March 2024 at 08:17:47 UTC, aberba wrote: On Wednesday, 6 March 2024 at 07:47:04 UTC, Adam Wilson wrote: SecureD 3.0 has been released. This version was set in motion by a Cedric Picard, a D community member with Cryptography ... And I even remembered to update the examples in the README. +1 I wish more packages did this And even then I still forgot to add examples for the new Password methods...