Re: sqlbuilder
On Wednesday, 28 August 2024 at 23:15:03 UTC, PETER HILL wrote: Hello steve, I am just starting in D. Do you have more examples on using sqlite from sqlbuilder ? Looks like it is what I need. Thanks. I don't have other examples than what is in the code itself. There are a few tests in there, you can take a look. -Steve
Re: Beerconf August
On Monday, 12 August 2024 at 14:33:06 UTC, Steven Schveighoffer wrote: # BEERCONF! Beerconf this month will be held on August 24-25. This is the last beerconf online before dconf, at which we will have live beerconf! A reminder that this is happening in 2 days! See you then. -Steve
Beerconf August
# BEERCONF! Beerconf this month will be held on August 24-25. This is the last beerconf online before dconf, at which we will have live beerconf! As for how September might go, [dconf](https://dconf.org/2024/index.html) this year is mid-late September, and the normal dates for beerconf would be September 28-29, one week after dconf. This might be the first year we skip an online beerconf... Let me know what you think we should do. 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? 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
Re: Beerconf July
On Monday, 15 July 2024 at 16:07:30 UTC, Steven Schveighoffer wrote: # BEERCONF! Summer is fully upon us! (or winter, depending on your geography) Beerconf this month will be held on July 27-28. Yours truly will not be able to make it, as I have a wedding to attend. But you will be in Rikki's capable hands! Just a reminder, this is happening in 2 days! Have a good beerconf, will miss you all! -Steve
Re: Beerconf May
On Monday, 27 May 2024 at 20:31:27 UTC, Steven Schveighoffer wrote: FYI, I recorded this, but there was some audio issues with the recording. I think it's salvageable, but I will post it when it's ready. OK, finally went through the recording and removed all the pops. Pro tip - don't record using your laptop mic if you are typing on the keyboard and hitting the escape key all the time (I'm talking about my fellow vim users). Enjoy! https://www.youtube.com/watch?v=KfdER7nohfk -Steve
Re: LDC 1.39.0
On Thursday, 4 July 2024 at 11:28:56 UTC, kinke wrote: Glad to announce LDC 1.39.0. Major changes: * Based on D 2.109.1. * LLVM for prebuilt packages bumped to v18.1.6. * musl libc: Misc. bug fixes and removal of libunwind dependency. * Support for LLVM 11-14 was dropped. The CLI options `-passmanager` and `-opaque-pointers` were removed. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.39.0 Thanks to all contributors & sponsors! FYI, I want to mention that I truly appreciate how timely LDC is released in the wake of DMD updates! You do a great job, Martin! Especially for those of us who are exclusively on ARM platforms (a lot more now that it's the main arch that Apple uses). -Steve
Re: marmos v0.1.0 (alpha state) - Documentation Generation using external tooling
On Tuesday, 2 July 2024 at 19:18:38 UTC, Bradley Chatha wrote: # Overview marmos (MARs + deiMOS... I'm not creative) is a tool for generating a "generic documentation model" from D code that can then be consumed and converted into other formats for external documentation generators. Do I understand that this is something that generates a JSON file for consumption by other doc generators? It's very cool that you are using the parser as a library! Can you elaborate on why one would want to use this instead of ddoc or something like adrdox or ddox? Do you think this might be in a state some day to replace the D docs (which I've heard complaints about recently)? -Steve
Re: Beerconf June
On Sunday, 16 June 2024 at 16:11:41 UTC, Steven Schveighoffer wrote: # BEERCONF! Beerconf for June is approaching, it will be here in 2 weeks on June 29-30. Hope to see you all then! A friendly reminder, this is happening in 2 days. See you then! -Steve
Beerconf June
# BEERCONF! Beerconf for June is approaching, it will be here in 2 weeks on June 29-30. Hope to see you all then! 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? 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! Last month I did a quick demonstration of IES, and I just remembered yesterday that I haven't posted the video for it. I'll do that soon. Cheers! 🍺 -Steve
Re: North Korean Hackers Developing Malware in Dlang Programming Language
On Tuesday, 28 May 2024 at 11:14:07 UTC, aberba wrote: On Monday, 27 May 2024 at 23:00:58 UTC, ryuukk_ wrote: On Monday, 27 May 2024 at 16:17:07 UTC, aberba wrote: By Ionut Arghire: The North Korea-linked hacking group Lazarus has been observed deploying Dlang malware in attacks against organizations in the manufacturing, agriculture, and physical security sectors, Cisco’s Talos security researchers report. https://www.securityweek.com/north-korean-hackers-developing-malware-in-dlang-programming-language/ This does not belong to "Announce".. c'mon, this is a garbage article and is FUD I read his LinkedIn before posting but it could all be fake as well. If Mike is reading this, feel free to delete this and my other post as well. Since I can't verify their authenticity beyond their claimed credentials on LinkedIn. FWIW, this was discussed when it was in the news (this article is from December) https://forum.dlang.org/post/olpockqkosloluwys...@forum.dlang.org So this is probably legit, but also not new news. -Steve
Re: Beerconf May
On Saturday, 25 May 2024 at 17:57:50 UTC, Steven Schveighoffer wrote: On Thursday, 23 May 2024 at 17:42:38 UTC, Steven Schveighoffer wrote: I will do a very informal presentation (no slides, just talking and coding) at about 18:00 UTC on Saturday. We will send out an announcement when it's about to start as well. Happening in a few minutes! FYI, I recorded this, but there was some audio issues with the recording. I think it's salvageable, but I will post it when it's ready. -Steve
Re: Beerconf May
On Thursday, 23 May 2024 at 17:42:38 UTC, Steven Schveighoffer wrote: I will do a very informal presentation (no slides, just talking and coding) at about 18:00 UTC on Saturday. We will send out an announcement when it's about to start as well. Happening in a few minutes! The URL is https://meet.jit.si/Dlang2024MayBeerConf -Steve
Re: The D Programming Language and Its Role in Cybersecurity
On Monday, 20 May 2024 at 21:21:24 UTC, aberba wrote: Found this article by Raymond Andrè Hagen: https://www.linkedin.com/pulse/d-programming-language-its-role-cybersecurity-raymond-andr%C3%A8-hagen-nfvgf/ My goodness this is a terrible article. Almost no substance. Is this AI generated? -Steve
Re: Beerconf May
On Saturday, 11 May 2024 at 20:35:17 UTC, Steven Schveighoffer wrote: # BEERCONF! This month, we are having our favorite online gathering on the 25-26 of May. We will announce the stream the day of the 25th. Hi All, just a friendly reminder this is happening in 2 days! ## Presentations? 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! Nobody has asked to show anything, so I thought I might do a quick dive into how the new [Interpolation Expression Sequences](https://dlang.org/spec/istring.html) (a.k.a. string interpolation) work. These were added in the last major version of D, and I'm excited to start using these in my libraries! I will do a very informal presentation (no slides, just talking and coding) at about 18:00 UTC on Saturday. We will send out an announcement when it's about to start as well. See you then! -Steve
Beerconf May
# BEERCONF! This month, we are having our favorite online gathering on the 25-26 of May. We will announce the stream the day of the 25th. Please note that May 17th is the deadline for dconf submissions! Don't be shy, we love new speakers, and you get a free trip if you are chosen! See the details here: https://dconf.org/2024/index.html#schedule 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? 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
Re: I've finally released the source code of the neural network creator, along with the module with tools written in D.
On Wednesday, 8 May 2024 at 02:28:56 UTC, Murilo wrote: I've placed the whole thing in my Github, there is the module called neuralnetwork.d, which contains tools for you to create neural networks, it has classes and functions. And there is the software Neural Network Creator which allows you to create the network only by clicking with the mouse. It is all there for anyone to use as they wish, all written purely in D. Here is the link: https://github.com/MuriloMir/Neural-network Just to give you guys a spoiler, I'm writing a biology simulator in D, it is already very impressive, I will show more later. Awesome! Your talk was great this year. Looking forward to seeing more. -Steve
Re: Beerconf April
On Saturday, 13 April 2024 at 18:39:29 UTC, Steven Schveighoffer wrote: # 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. Just a friendly reminder, this is happening in 2 days! See you then -Steve
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
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
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: 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
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: D Language Foundation November 2023 Monthly Meeting Summary
On Monday, 4 March 2024 at 11:07:07 UTC, Mike Parker wrote: ### Steve and Me I have to apologize to Steve. I managed to botch the initial recording, so whatever he and I said at the top of the meeting is lost. I'm pretty sure I talked about preliminary planning for DConf '24, but beyond that, I don't recall. I also know that whatever Steve reported, it wasn't anything that sparked debate. The first audible words I have from him are, "That's about all I have, really." Sorry, I can't remember what I talked about in that timeframe. Lost to history I guess. (UPDATE: Ultimately, [Átila finished the proposal](https://github.com/atilaneves/DIPs/blob/string-interpolation/Interpolation.md). After [a long discussion in the forums](https://forum.dlang.org/thread/unhv5u$1gps$1...@digitalmars.com), Walter approved the feature and [it was merged](https://github.com/dlang/dmd/pull/15715). Steven Schveighoffer [is working on a spec PR](https://github.com/schveiguy/dlang.org/blob/istring/spec/istring.dd).) The spec is updated (that link is dead because I deleted the branch, always good to use the `y` button on github to get a link to the direct commit). You can still see the PR here: https://github.com/dlang/dlang.org/pull/3768 To see the spec, just go to [the current spec](https://dlang.org/spec/istring.html), for some reason we publish the master branch of the spec as the current release. -Steve
Re: Beerconf February 2024
On Saturday, 10 February 2024 at 17:07:04 UTC, Steven Schveighoffer wrote: # BEERCONF! February is the short month, but it's a tad bit longer this year. However, beerconf doesn't care about this, we still just pick the last weekend, and that isn't any different. This means, Feb 24-25 is the time for having conversations about D and other fun stuff! What day is it? It's the day I tell you that Beerconf is nigh! See you in a couple days. -Steve
Re: Crow programming language
On Thursday, 15 February 2024 at 23:46:10 UTC, andy wrote: On Thursday, 15 February 2024 at 15:24:37 UTC, IchorDev wrote: You can make a scope with `nothrow`, `@nogc`, etc.: I've been setting `@safe @nogc pure nothrow:` at the top of (almost) every module, but then I still have to do it at the top of each struct in the module (if it has functions) and after each delegate type. `@safe` permeates into structs, the others do not. If you make global variables `immutable`, you can access them in `pure` functions. Is it as simple as that? I'd have to cast away the `immutable` when adding a new interned string though. Is that still the correct way to do it? No, this is not correct. What you are doing is something that is logically immutable, but not actually immutable. What you need to do is to section this off into its own module, and then use language tricks to lie to the compiler. For instance, cast a function pointer that is not pure to a pure function. Then you need to carefully review the module for correctness from an API standpoint. The language does something similar with memory allocation, which uses a global data structure to allocate memory, but effectively is giving you back memory that is unique while it is valid. -Steve
Beerconf February 2024
# BEERCONF! February is the short month, but it's a tad bit longer this year. However, beerconf doesn't care about this, we still just pick the last weekend, and that isn't any different. This means, Feb 24-25 is the time for having conversations about D and other fun stuff! 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? We have dconf online coming up next month, but if you had something to talk about that isn't as formal, send me a note on discord or slack, and I will announce it here. Last month, Chibisi presented his library to hook D to the R programming langauge, and it was quite interesting! I uploaded a recording of it [here](https://forum.dlang.org/post/uleppyzlyiatpkhck...@forum.dlang.org), in case you missed it. See you in a few weeks! Cheers! 🍺 -Steve
Re: Beerconf January 2024
On Sunday, 21 January 2024 at 02:27:03 UTC, Steven Schveighoffer wrote: Hi everyone! On Saturday the 27th, at 17:00 UTC, github user Chibisi has asked to give a presentation on his project, [Saucer](https://github.com/chibisi/saucer). The purpose of the saucer project is to create bidirectional interop between R, the statistics programming language and D. The aim is that in time, it will have easily accessible capabilities similar to libraries like Rcpp in terms of its features and capability, but with the added advantage that the D programming language is used with R, and can bring it’s expressive power and other capabilities to build analytical software that can be made available in R as well as D being able to access R’s rich API. A live demonstration of the library in use will be included by way of an example. Hope you all can join us! I'll post a reminder just before it happens. Thanks to @realdoigt, we have a recording of this! And of course, thanks to Chibisi for the great library and presentation! https://www.youtube.com/watch?v=sA1SeDNAqCc -Steve
Re: Preparing for the New DIP Process
On Thursday, 25 January 2024 at 15:03:41 UTC, Max Samukha wrote: On Monday, 22 January 2024 at 23:28:40 UTC, Jonathan M Davis wrote: Of course, ultimately, different programmers have different preferences, and none of us are going to be happy about everything in any language. It's not only about preferences. The feature is inconsistent with how 'invariant' and 'synchronized' are specified. They imply class-instance-level private, while the language dictates module-level. Consider: ```d synchronized class C { private int x; private int y; invariant () { assert (x == y); } static void foo(C c) { // mutate c } } ``` Same thing. Yet would still break with some sort of "class-only private" the unittest case is also similar -- what happens if you put the unittest next to the function being tested? It's now in the class, so it can access "true" private data. Same problems, this even can happen in Java. I don't see what the difference is. Same code, same file, just in a different spot? Seems more like you just need to... not do that. -Steve
Re: Beerconf January 2024
On Saturday, 27 January 2024 at 16:05:46 UTC, Richard (Rikki) Andrew Cattermole wrote: Reminder Chibisi's talk on https://github.com/chibisi/saucer is in an hour! The purpose of the saucer project is to create bidirectional interop between R, the statistics programming language and D. The aim is that in time, it will have easily accessible capabilities similar to libraries like Rcpp in terms of its features and capability, but with the added advantage that the D programming language is used with R, and can bring it’s expressive power and other capabilities to build analytical software that can be made available in R as well as D being able to access R’s rich API. A live demonstration of the library in use will be included by way of an example. Talk starting now! -Steve
Re: Beerconf January 2024
On Sunday, 14 January 2024 at 20:29:06 UTC, Steven Schveighoffer wrote: # BEERCONF! Happy new year! It's getting to be that time again, where we chat about our favorite language, and enjoy some beverages! If it seems like it's been a long time, that's because it has. Last month's Beerconf was early, but now that the holidays are over, we are back to a normal schedule. The next one will be January 27-28, and I hope to see you all there! Just a reminder that this is happening in 2 days! -Steve
Re: Would this be a useful construct to add to D? auto for constructor call.
On Tuesday, 23 January 2024 at 11:11:00 UTC, ryuukk_ wrote: On Tuesday, 23 January 2024 at 06:30:08 UTC, Jonathan M Davis wrote: That being said, I expect that it would be pretty easy to write a mixin to do something like that if you really wanted to. Also, if you're simply looking to not have to name the type, you could do dataGrid = new typeof(datagrid)(15); You like to turn off people before they get the chance to develop further, this is bad Would you like to encourage proposals/work/effort that will ultimately not be accepted? I don't. I would rather tell someone no early than tell them no later. And I agree with Jonathan, zero proposals that infer type from how they are used have been accepted by Walter, this one probably will be no different. To the OP, I think the value of the feature needs to be more than just avoiding repeating the name of the type. You also can do some library tricks (unfortunately this won't count as construction, but probably is fine in most cases) ```d auto create(T, Args...)(out T val, Args args) { static if(is(T == class)) val = new T(args); else static if(...) // do eveyrything else. } ... dataGrid.create(15); ``` -Steve
Re: sqlite support added to sqlbuilder
On Sunday, 21 January 2024 at 21:27:30 UTC, zoujiaqing wrote: Thank you! I want postgresql :) It should be pretty straightforward. I had to rewrite a lot of it to fit the API of sqlite, those changes should make it easier to add postgresql (which is on my todo list). -Steve
Re: Beerconf January 2024
On Sunday, 14 January 2024 at 20:29:06 UTC, Steven Schveighoffer wrote: # BEERCONF! The next one will be January 27-28, and I hope to see you all there! Hi everyone! On Saturday the 27th, at 17:00 UTC, github user Chibisi has asked to give a presentation on his project, [Saucer](https://github.com/chibisi/saucer). The purpose of the saucer project is to create bidirectional interop between R, the statistics programming language and D. The aim is that in time, it will have easily accessible capabilities similar to libraries like Rcpp in terms of its features and capability, but with the added advantage that the D programming language is used with R, and can bring it’s expressive power and other capabilities to build analytical software that can be made available in R as well as D being able to access R’s rich API. A live demonstration of the library in use will be included by way of an example. Hope you all can join us! I'll post a reminder just before it happens. -Steve
Beerconf January 2024
# BEERCONF! Happy new year! It's getting to be that time again, where we chat about our favorite language, and enjoy some beverages! If it seems like it's been a long time, that's because it has. Last month's Beerconf was early, but now that the holidays are over, we are back to a normal schedule. The next one will be January 27-28, and I hope to see you all there! 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? I'm always happy to schedule some time to give a presentation on something. Please contact me via the D discord or slack and I will announce it here. Cheers! 🍺 -Steve
Re: sqlite support added to sqlbuilder
On Thursday, 4 January 2024 at 18:03:56 UTC, Leonardo wrote: On Saturday, 30 December 2023 at 22:11:55 UTC, Steven Schveighoffer wrote: auto andrei = db.fetchOne(select(ads).where(ads.firstname, " = 'Andrei'")); How SQL injection are avoided here? SQL injection is avoided by passing parameter data. You use the `param` wrapper. So if you had unqualified user input, it would be: ```d string personname = getFromUser(); auto author = db.fetchOne(select(ads).where(ads.firstname, " = ", personname.param); ``` For everything except strings, it is a static error to pass them in without the `.param` wrapper. For strings, I can't help it, there is no mechanism to find out whether you are writing SQL or giving me a parameter. This should be fixable if interpolation ever happens (and I can get rid of the requirement for `.param`). -Steve
Re: Release D 2.106.1
On Tuesday, 2 January 2024 at 02:48:29 UTC, Andrej Mitrovic wrote: Does anyone know when did named arguments initially land in the compiler, as part of which release..? I never saw it as a headline feature in any previous release notes. They are not finished yet, which is why they were not announced. Judging by run.dlang.io, it was in 2.103. -Steve
sqlite support added to sqlbuilder
https://code.dlang.org/packages/sqlbuilder This project is something I use extensively in my work project, and allows dynamic building of SQL statements in a way that automatically deals with joins. It also automatically serializes directly to structs representing database rows. It was featured in my dconf 2022 online talk -- Model all the things. I just added support to use sqlite. The API isn't stable yet, but still super useful. It's one of those build-it-as-I-need-it things, so while there's a semblance of a plan, things that are finished are things that I've needed. An example (with sqlite): ```d import d2sqlite3; import std.stdio; import std.file : exists; import std.array; // yeah, I know, I need a package include here... import sqlbuilder.uda; import sqlbuilder.dataset; import sqlbuilder.dialect.sqlite; import sqlbuilder.types; import d2sqlite3; struct Author { @primaryKey @autoIncrement int id; string firstname; string lastname; static @refersTo!Book @mapping("author_id") Relation books; } struct Book { @primaryKey @autoIncrement int id; string title; string description; @mustReferTo!Author("author") int author_id; } void main() { auto shouldInitialize = !exists("books.sqlite"); auto db = Database("books.sqlite"); if(shouldInitialize) { // create the tables db.execute(createTableSql!Author); db.execute(createTableSql!Book); // add some books and authors Author walter = Author( firstname: "Walter", lastname: "Bright"); db.create(walter); // automatic serialization to sql insertion statement Author andrei = Author( firstname: "Andrei", lastname: "Alexandrescu"); db.create(andrei); db.create(Book( title: "The D Programming Language", description: "The OG D manual", author_id: andrei.id)); db.create(Book( title: "Modern C++ Design", description: "The OG C++ template manual", author_id: andrei.id)); db.create(Book( title: "The D specification", description: "The Spec of the D programming language", author_id: walter.id)); } // get an author by name DataSet!Author ads; auto andrei = db.fetchOne(select(ads).where(ads.firstname, " = 'Andrei'")); // do some selections based on the dataset of books DataSet!Book bds; foreach(booktitle, author; db.fetch(select(bds.title, bds.author))) { writefln("Found book %s, written by %s %s", booktitle, author.firstname, author.lastname); } auto andreiBooks = db.fetch(select(bds) .where(bds.author_id, " = ", andrei.id.param)).array; writeln("Andrei's books: ", andreiBooks); } ``` Code is very similar for using mysql as well, just import mysql-native and sqlbuilder.dialect.mysql. Next up would be postgresql, not sure when I'll have a need to build that... -Steve
Re: jsoniopipe now supports JSON5
On Friday, 29 December 2023 at 08:04:31 UTC, Zz wrote: Any plans on having an interface similar to std.json? I replied on the [learn forum](https://forum.dlang.org/post/szepssmksyrcdzbvs...@forum.dlang.org). -Steve
Re: Beerconf December 2023
On Saturday, 2 December 2023 at 21:48:21 UTC, Steven Schveighoffer wrote: # BEERCONF! So it's now down to December 16-17, which is in 2 weeks. Now in 2 days. See you there! -Steve
Beerconf December 2023
# BEERCONF! Beerconf this month is not on December 30-31, because that's new years eve. It's not on December 23-24 because that's Christmas eve So it's now down to December 16-17, which is in 2 weeks. Note that even though I didn't get much response to the poll I posted on Beerconf scheduling, it seems like the majority of those who answered like the current schedule, so we will keep that. Looking for the perfect gift for yourself? https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? If anyone has anything they want to share with the D world, please let me know via slack or discord and I will announce it here! Cheers! 🍺 -Steve
Re: Beerconf November
On Sunday, 12 November 2023 at 20:59:57 UTC, Steven Schveighoffer wrote: # BEERCONF! This month we will be having beerconf in 2 weeks on November 25-26. Online as usual, hope to see you all there! Happy Thanksgiving to my American friends! Beerconf in 2 days. If you haven’t yet voted, I posted a poll on moving beerconf. https://forum.dlang.org/post/igntdbcczalroyxex...@forum.dlang.org -Steve
Re: DLF September 2023 Planning Update
On Tuesday, 14 November 2023 at 20:09:53 UTC, Dennis wrote: On Tuesday, 14 November 2023 at 19:13:38 UTC, Steven Schveighoffer wrote: As I understand the current thinking, that is not what D is intending to do. Additional changes don't require a new edition to be enabled, only breaking changes. I expect editions to mostly subtract code, by turning existing deprecations into errors and enabling preview switches like nosharedaccess, dip1000, fixImmutableConv, systemVariables. This sounds like it's not the mechanism being envisioned for modifying phobos or druntime. Looking forward to the full description! -Steve
Re: Beerconf November
On Sunday, 12 November 2023 at 21:12:34 UTC, Sergey wrote: At last beerconf was discussion that last week of the month is always under pressure of deadlines and plans.. There were proposals to postpone it in the middle of the month I must not have been online during that discussion. I'm certainly open to moving it to another weekend, I can drink a beer any time of month ;) I'll set up a poll. I also just realized, this is the weekend after Thanksgiving... But my turkey coma should be over by then. -Steve
Re: DLF September 2023 Planning Update
On Tuesday, 14 November 2023 at 18:40:58 UTC, Adam D Ruppe wrote: On Tuesday, 14 November 2023 at 17:57:36 UTC, Steven Schveighoffer wrote: That's not any better. If you have to opt-in to the language as it exists, people are going to quit immediately. Counterpoint: javascript's "use strict". The absence of "use strict" does not prevent you from using latest features. If you use the later features, it infers you meant "use strict". As I understand the current thinking, that is not what D is intending to do. This could potentially work for D editions -- if you use a newer syntax/feature, then you have opted into that version of the language? But I am not sure this is worth the complication. Much easier to do the dumb thing and require specification. Does "use strict" involve library API changes? -Steve
Re: DLF September 2023 Planning Update
On Tuesday, 14 November 2023 at 16:07:26 UTC, Mike Parker wrote: Experience with deprecations has shown people don't want to take extra steps to make their outdated dependencies compile. The goal with editions is that you should never have to take any extra steps to use older code in your program. You can't do that if the default edition changes with every new compiler release. But you can do that if each module explicitly declares which edition it needs. What do we want the first experience with D to be like? A person trying out D, who writes a one-file simple application using phobos *does not care* that a lib abandoned in 2018 still compiles. So why should they be the ones paying the penalty? I get that we want to stop breaking builds. But the answer there is simple -- provide a way to do it by attributing the files, or by telling the compiler "these files are edition X" or whatever. And once you attribute it, it never breaks again. Sounds like a reasonable cost to me for those who want long-lasting code! There are other options here. Like use the filesystem to identify the edition either via config or filenames. An option to specify the latest edition via the attribute came up in our discussions, so I'm sure we'll have that. And I anticipate there'll be some way to generate source files with the appropriately decorated module declarations, probably through third-party tools like code-d, maybe from a tool that ships with (or is built into) the compiler. That's not any better. If you have to opt-in to the language as it exists, people are going to quit immediately. I'm not joking about this. Imagine spending 2 hours trying to figure out why your app that is trying out some new feature doesn't compile, only to find out after posting online that it was looking at some ancient version of phobos. -Steve
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 00:57:23 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. Kind of buried in the changelog (because it's just a few issues closed) is a really significant change coming to this version: the much-hated "statement is not reachable" warning is being removed. This might be one of the greatest releases of D ever. -Steve
Re: DLF September 2023 Planning Update
On Tuesday, 14 November 2023 at 08:18:20 UTC, Mike Parker wrote: * Editions will most likely be implemented via an attribute on the module declaration. We haven't discussed any details about that, but for now, just imagine something like `@edition(2024) module foo;`. When considering how this should work, I would strongly suggest it be the default to work with the current edition of the language. Nobody wants to always have to attribute their module (or whatever other opt-in mechanism) to use current features. It's going to be a WTF moment for all newcomers to D. This brings us to the problem that no prior libraries have editions marked on them. So I think there needs to be an external mechanism to be able to set the edition for a package or module from the command line, or somehow in a config file. Or you can set the "assumed" edition using a switch (but it should still default to "current"). -Steve
Beerconf November
# BEERCONF! This month we will be having beerconf in 2 weeks on November 25-26. Online as usual, hope to see you all there! The usual post for the official beerconf t-shirt: https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? If you want to give a presentation, please let me know either by email or discord or slack. I will make sure to announce it here! Cheers! 🍺 -Steve
Re: Beerconf October 2023
On Saturday, 14 October 2023 at 20:15:49 UTC, Steven Schveighoffer wrote: # BEERCONF! This month we will be having beerconf in 2 weeks on October 28-29. Online as usual, hope to see you all there! A reminder that this is tomorrow! -Steve
Beerconf October 2023
# BEERCONF! This month we will be having beerconf in 2 weeks on October 28-29. Online as usual, hope to see you all there! Halloween is coming up, need a costume? https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? If you want to give a presentation, please let me know either by email or discord or slack. I will make sure to announce it here! Cheers! 🍺 -Steve
Re: Beerconf September 2023
On Thursday, 14 September 2023 at 13:34:46 UTC, Steven Schveighoffer wrote: # BEERCONF! Recovery edition... Holy smokes! I just looked at the calendar, and the last full weekend in September is a week from Saturday. So I'm a bit late announcing this one (again), but the beerconf this month will be Sept 23-24. Just a reminder this is happening in 2 days! -Steve
Re: DConf '23 Talk Videos
On Thursday, 21 September 2023 at 04:00:29 UTC, Mike Parker wrote: On Thursday, 21 September 2023 at 01:11:13 UTC, matheus wrote: Not a HW expert, but lowering the GPU settings couldn't at least get the job done (Slower but... done). Not in this case. Turns out the graphics card's fans have stopped spinning. He's taking it to the service center today. A family friend had the exact same thing happen. It was a software change to get them spinning again. -Steve
Re: Bram Molenaar passed away
On 9/18/23 3:55 PM, M. M. wrote: See, e.g., https://j11g.com/2023/08/07/the-legacy-of-bram-moolenaar/ for a look-back post on Bram's legacy. Any users of vim / neovim out there in the dlang world? R.I.P. Bram. Wow, RIP. So young too. Been using vi/vim/neovim for over 25 years. -Steve
Re: Warning for anyone who was at DConf.
On Saturday, 2 September 2023 at 20:41:33 UTC, Dukc wrote: Just a while ago I was hit by some sort of a violent ailment. I first noticed it like an hour ago, and I'm shivering as I stand in a well-heated house, despite having had a sauna just a while ago. Temperature already high. I wouldn't rule out having contracted it at DConf, and could well be the Covid. Please watch your health for a few days if you were at DConf or related events. Fwiw it’s definitely Covid. I tested positive today. Now trapped in London Heathrow for another week. A bizarre incident, I was on the plane going to Boston and they did a 180 after 30 minutes and booked us the next day. But of course, there is now this. Ugh -Steve
Re: Beerconf July 2023
On 7/16/23 9:09 PM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for July is happening 2 weeks from now, on the 29-30. A reminder to all that Beerconf is in a couple days! Note that if we do Beerconf for August, it will be early, since real-life Beerconf will be happening at the live conference at the end of the month. Last year, we did Beerconf in July before dconf on the 16th. Is everyone good with August 19th-20th? This is just over 1 week before actual dconf. I will be unable to attend, as I have a previous plan for that time. But someone will turn the lights on! -Steve
Beerconf July 2023
# BEERCONF! Beerconf for July is happening 2 weeks from now, on the 29-30. Note that if we do Beerconf for August, it will be early, since real-life Beerconf will be happening at the live conference at the end of the month. Want a beerconf T shirt? We know you do. https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. Last month's Beerconf we had a presentation by YuQian Zhou on his design pattern to solve the C++ diamond problem. If you missed it, I posted the recording [on youtube](https://www.youtube.com/watch?v=8Ck0SgLKNcc) Cheers! 🍺 -Steve
Re: A New Era for the D Community
On 7/6/23 12:16 AM, IchorDev wrote: On Wednesday, 5 July 2023 at 21:50:37 UTC, Andrew wrote: Why not just improve Phobos itself? Make PRs to add new modules to std.experimental, announce them here and elsewhere on the web, and get the community to support it. Earlier in this thread it was pointed out that it's too arbitrary whether new modules will get accepted into `std.experimental` or not, therefore a fork that's more open to community contributions (whether good or bad), would be of value. As it is, some of Phobos is really great, some of it could do with more nothrow/custom allocator alternatives or a nicer API that clashes with itself less often, and some of it is just horrid. Yeah, we are better off going the std.sumtype route -- release on dub, and then incorporate into Phobos if desired. P.S. Who chose this silly name "std.experimental"? It might as well be "std.nonstandard". It's purposely unattractive. We learned from `javax` of Java. It was supposed to be an "experimental" package, but people complained about the possibility of moving things into `java` so much that they had to leave packages there. So we wanted to be very clear that packages in that branch of phobos are unstable, and could be removed/moved at any time. Use at your own risk. -Steve
Re: Beerconf June 2023
On 6/22/23 10:34 PM, Steven Schveighoffer wrote: YuQian has asked that I post the abstract for the talk being given. A reminder that the talk is on Saturday at 19:00 UTC. ## Stop inheriting data fields! Hi everyone, I recorded this presentation and put a video about it on youtube (with YuQian's permission). If you missed it during beerconf you can watch it here. https://www.youtube.com/watch?v=8Ck0SgLKNcc -Steve
Re: DasBetterR
On 6/29/23 7:51 PM, bachmeier wrote: I've been using D and R together for a decade. I wrote [a blog post for the D Blog](https://dlang.org/blog/2020/01/27/d-for-data-science-calling-r-from-d/) on the eve of the pandemic. I released the [embedrv2 library](https://github.com/bachmeil/embedrv2) in late 2021. It's useful for writing D functions that are called from R, using D's metaprogramming to write the necessary bindings for you. My programs usually take the opposite approach, where D is the primary language, and I call into R to fill in missing functionality. I've accumulated a large collection of code snippets to enable all kinds of things. The problem is that they were scattered across many projects, there was no consistency across programs, documentation didn't exist, and they were more or less useless to anyone other than me. [This Github repo](https://github.com/bachmeil/betterr) includes D modules, tests demonstrating most of the functionality, documentation, and some posts about how I do specific things. I'm sharing publicly all the things I've been doing in case it has value to anyone else. Examples of functionality: - Creating, accessing, and mutating R data structures, including vector, matrix, data frame, list, array, and time series types. Reference counting handles memory management. - Basic statistical functionality like calculating the mean. Many of these functions use Mir for efficiency. - Linear algebra - Random number generation and sampling - Parallel random number generation - Numerical optimization: direct access to the C libraries used by R's optim function - Quadratic programming - Passing D functions to R without creating a shared library. For example, you can use a D function as the objective function you pass to constrOptim for constrained optimization problems. [Project website](https://bachmeil.github.io/betterr/) This is very cool! I've never used R, but I have wanted to learn more about such languages. There's more detail on the website, but I used the name "Better R" because the entirety of R is available inside your D program and you can use D to improve on it as much as you'd like. Feel free to hate the name. Awfull, awfull name... -Steve
Re: Beerconf June 2023
On 6/24/23 6:52 PM, Chris Katko wrote: On Saturday, 24 June 2023 at 22:43:50 UTC, Steven Schveighoffer wrote: On 6/24/23 9:01 AM, Richard (Rikki) Andrew Cattermole wrote: Linkity link link https://meet.jit.si/Dlang2023JuneBeerConf Unfortunately, we were getting some spam joiners. So if you want to join, the password is now `DlangRox` Will there be a YouTube/whatever mirror of the conference afterward? I have recorded the talk, and I will post a video at some point. But it's just the talk that was presented. -Steve
Re: Beerconf June 2023
On 6/24/23 9:01 AM, Richard (Rikki) Andrew Cattermole wrote: Linkity link link https://meet.jit.si/Dlang2023JuneBeerConf Unfortunately, we were getting some spam joiners. So if you want to join, the password is now `DlangRox` -Steve
Re: Beerconf June 2023
On 6/22/23 10:34 PM, Steven Schveighoffer wrote: On 6/11/23 4:48 PM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for June is happening 2 weeks from now, on the 24-25. A reminder that this is happening in 2 days! YuQian has asked that I post the abstract for the talk being given. A reminder that the talk is on Saturday at 19:00 UTC. Just a reminder that this talk is happening, in about 5 minutes. -Steve
Re: Beerconf June 2023
On 6/22/23 10:34 PM, Steven Schveighoffer wrote: On 6/11/23 4:48 PM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for June is happening 2 weeks from now, on the 24-25. A reminder that this is happening in 2 days! YuQian has asked that I post the abstract for the talk being given. A reminder that the talk is on Saturday at 19:00 UTC. YuQian also would like to mention that the work presented is patent pending as disclosed in the original paper pdf: https://github.com/joortcom/DDIFI/blob/main/ddifi.pdf -Steve
Re: Beerconf June 2023
On 6/11/23 4:48 PM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for June is happening 2 weeks from now, on the 24-25. A reminder that this is happening in 2 days! YuQian has asked that I post the abstract for the talk being given. A reminder that the talk is on Saturday at 19:00 UTC. See you there! -Steve ## Stop inheriting data fields! A new design pattern DDIFI (Decoupling Data Interface From data Implementation) as a clean and general solution to multiple inheritance ### Abstract Traditionally in class based OOP languages, both the fields and methods from the super-classes are inherited by the sub-classes. However this may cause some serious problems in multiple inheritance, e.g. most notably the diamond problem. In this paper, we propose to stop inheriting data fields as a clean and general solution to such problems. We first present a design pattern to cleanly achieve multiple inheritance in C++, which can handle class fields of the diamond problem exactly according to the programmers’ intended application semantics. It gives programmers flexibility when dealing with the diamond problem for instance variables: each instance variable can be configured either as one joined copy or as multiple independent copies in the bottom class. The key ideas are: 1. decouple data interface from data implementation; 2. in the regular methods implementation use virtual property methods instead of direct raw fields; and 3. after each semantic branching add (and override) the new semantic assigning property. Then we show our method is general enough, and also applicable to any OOP languages that natively support multiple inheritance (e.g. C++, Python, Eiffel, etc.), or single inheritance languages that support default interface methods (e.g. Java, C# etc.). For example, in the diamond inheritance problem of Faculty, and ResearchAssistant>, we want to achieve the ideal application semantics: each ResearchAssistant should only have: * one (joined) copy of `_name` field, but * two (separated) different address fields: - one `_student_addr` ("dorm") as Student to takeRest(), and - one `_faculty_addr` ("lab") as Faculty to doBenchwork() Our new design pattern can achieve this. Also it works for the current D! although it's a bit hackish. With default interface methods it will be better (less convoluted). (ref: https://github.com/joortcom/DDIFI/blob/main/d/MI.d) ### Speaker Bio Ph.D Oxford Univ.; previous Google engineer; startup founder.
Re: Beerconf June 2023
On 6/11/23 4:48 PM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for June is happening 2 weeks from now, on the 24-25. Just a quick update for this weekend's Beerconf, YuQian Zhou has contacted me about presenting on a new design pattern called DDIFI - Decoupling Data Interface From data Implementation. Presented as a clean and general solution to multiple inheritance. There is demo code for both C++ and Java, and the hope is that D can find use for it. YuQian has agreed to join us for Beerconf and show the presentation on Saturday at 19:00 UTC! I'll ping again this week to remind everyone, and ping again when this presentation starts. See you then! -Steve
Beerconf June 2023
# BEERCONF! Beerconf for June is happening 2 weeks from now, on the 24-25. Wow, only a couple more months until dconf, can't wait to see everyone again! If you haven't booked yet, the early bird window is closing! https://dconf.org/2023/index.html Want a beerconf T shirt? We know you do. https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. Last month was a nice Q&A session with Mike talking about the IVY system. Thanks to him for coming on and sharing! Cheers! 🍺 -Steve
jsoniopipe now supports JSON5
https://code.dlang.org/packages/jsoniopipe This little project is one that I've tinkered with for a long time, I use it in a few places. I just updated it to support [JSON5](https://json5.org), which is a format much more suited to configuration than straight JSON. AFAIK, this is the first D project that parses JSON5! -Steve
Re: Beerconf May 2023
On 5/25/23 10:39 AM, Steven Schveighoffer wrote: Mike Parker is going to be doing a Q&A session around 15:00 UTC on Saturday on IVY! I'll send out a reminder here and elsewhere when it starts. Happening now! -Steve
Re: Beerconf May 2023
On Monday, 15 May 2023 at 15:42:02 UTC, Steven Schveighoffer wrote: # BEERCONF! Beerconf for May is happening 2 weeks from now, on the 27-28. A reminder that this is happening in 2 days! ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. Mike Parker is going to be doing a Q&A session around 15:00 UTC on Saturday on IVY! I'll send out a reminder here and elsewhere when it starts. -Steve
Beerconf May 2023
# BEERCONF! Beerconf for May is happening 2 weeks from now, on the 27-28. The topic is still the same -- D and other stuff. Hope you can all join us! Want a beerconf T shirt? We know you do. https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. If you missed it, be sure to check out Hipreme's talk on his build system, uploaded here: https://www.youtube.com/watch?v=QGwQ4uZp5I4 Cheers! 🍺 -Steve
Re: DIP1044---"Enum Type Inference"---Formal Assessment
On 5/11/23 10:10 AM, Paul Backus wrote: On Thursday, 11 May 2023 at 13:31:58 UTC, Steven Schveighoffer wrote: On 5/10/23 11:22 PM, Paul Backus wrote: In fact, for this particular example, there are actually two enums in the DMD source code that these symbols could be coming from: `enum TargetOS` in `cli.d`, and `enum OS` in `target.d`. So you would have to scroll up and look at the imports to disambiguate. Then you misunderstand the DIP (as did Walter). There is only one enum that can be involved -- typeof(target.os). Oh no, I'm perfectly aware that, from the compiler's perspective, it would be unambiguous--only one of the two enums would actually be in scope. Scope has nothing to do with it. The wrong enum might be the only one in scope, and it will still use the correct one. Both enums might be in scope, and it still uses the correct one. But as a human reader, in order to figure out which one, I'd have to scroll to the top of the file and read through ~25 lines of imports (or rely on tooling, but there are contexts where that isn't available, like a Github code review). It's no different than: ```d if(target.os == target.os.Solaris) ``` It's not very hard to understand, nor harder to figure out. What type is `target.os`? It's an enum from that type. -Steve
Re: DIP1044---"Enum Type Inference"---Formal Assessment
On 5/10/23 11:22 PM, Paul Backus wrote: In fact, for this particular example, there are actually two enums in the DMD source code that these symbols could be coming from: `enum TargetOS` in `cli.d`, and `enum OS` in `target.d`. So you would have to scroll up and look at the imports to disambiguate. Then you misunderstand the DIP (as did Walter). There is only one enum that can be involved -- typeof(target.os). -Steve
Re: Beta 2.104.0
This reminds me of an LDC bug fixed recently. I bet DMD suffers from a similar problem: https://github.com/ldc-developers/ldc/issues/3864 -Steve
Recording of last Beerconf presentation
Hi everyone. At the last Beerconf, Hipreme showed us his build system for his new game engine. Cobbled together from various recording sources, here is the recording of that presentation. https://www.youtube.com/watch?v=QGwQ4uZp5I4 If you want to show off something during any beerconf, just let me know and I can announce and potentially record. Next time, I'll have a better setup for recording for sure... -Steve
Re: A New Era for the D Community
On 5/3/23 7:13 AM, Mike Parker wrote: Our enthusiasm is high, and we're ready to get going. I think you'll like where we're headed. This all sounds awesome! -Steve
Re: Beerconf April 2023
On 4/27/23 1:42 PM, Steven Schveighoffer wrote: On 4/16/23 11:39 AM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for April is happening 2 weeks from now, on the 29-30. A reminder that this is happening in 2 days! ## Presentations? This beerconf, we have another presentation! Hipreme will show off the HipremeEngine build system: Cross compiling D for Android, WebAssembly, MacOS, and any new future platform in any host environment, with 0 manual configuration : How HipremeEngine solves that problem without any kind of initial setup (even for non D users) The time for this will be 17:30 Sunday, April 30 A quick note that this is happening in 15 minutes! https://meet.jit.si/Dlang2023AprilBeerConf -Steve
Re: Beerconf April 2023
On 4/16/23 11:39 AM, Steven Schveighoffer wrote: # BEERCONF! Beerconf is inviting you to a meeting! https://meet.jit.si/Dlang2023AprilBeerConf See you there -Steve
Re: D Language Foundation April 2023 Quarterly Meeting Summary
On 4/28/23 11:42 AM, jmh530 wrote: 2) It would be cool to have a built-in way to profile unittests by module. So for instance, the output would be how long it took the unit tests to run, broken out by module and then with a total. This is a runtime thing. You can customize it: https://dlang.org/phobos/core_runtime.html#.Runtime.extendedModuleUnitTester -Steve
Re: Beerconf April 2023
On 4/28/23 2:37 AM, Greggor wrote: Darn, I'm working on Sunday until 2:40pm, so I can't make it. (the talk is 1:30 PM in my timezone) Any chance anyone can record it? I'll see if that can be done. I would not want to record it without Hipreme's approval. -Steve
Re: Beerconf April 2023
On 4/27/23 2:17 PM, Sergey wrote: On Thursday, 27 April 2023 at 17:42:30 UTC, Steven Schveighoffer wrote: On 4/16/23 11:39 AM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for April is happening 2 weeks from now, on the 29-30. A reminder that this is happening in 2 days! ## Presentations? This beerconf, we have another presentation! Hipreme will show off the HipremeEngine build system: Cross compiling D for Android, WebAssembly, MacOS, and any new future platform in any host environment, with 0 manual configuration : How HipremeEngine solves that problem without any kind of initial setup (even for non D users) The time for this will be 17:30 Sunday, April 30 Awesome! Could you please specify the time zone.. CET, GMT, UTC? Oof, totally forgot that. It's UTC. Thanks! -Steve
Re: Beerconf April 2023
On 4/16/23 11:39 AM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for April is happening 2 weeks from now, on the 29-30. A reminder that this is happening in 2 days! ## Presentations? This beerconf, we have another presentation! Hipreme will show off the HipremeEngine build system: Cross compiling D for Android, WebAssembly, MacOS, and any new future platform in any host environment, with 0 manual configuration : How HipremeEngine solves that problem without any kind of initial setup (even for non D users) The time for this will be 17:30 Sunday, April 30 See you all there! -Steve
Re: Article on incremental compilation
On 4/22/23 7:33 PM, Zachary Yedidia wrote: Hi everyone, I've been tinkering with setting up incremental compilation in my D projects by using `.di` files to ensure that a module is only recompiled if its interface changes (not its implementation). I've written an article about it here: https://zyedidia.github.io/blog/posts/4-incremental-d-knit/. Hopefully you find it interesting! Thanks! Nice! Your build system sounds pretty cool. On your section on "Areas for improvements in D interface files": The previous section holds the answer -- templates. Templates must be included in full because they are instantiated by the caller. But a template can still use: * private variables/functions * private types * private imports etc. Basically anything that can be used in the implementation. The only thing that's hidden is non-template function implementations. In order to avoid copying those things, the compiler would have to prove that no template inside the module can use these things. One possible mechanism could be if *no* templates exist, it could exclude them. But to determine whether an existing template might use them, I believe is the halting problem. So we are stuck with it. -Steve
Beerconf April 2023
# BEERCONF! Beerconf for April is happening 2 weeks from now, on the 29-30. The topic is still the same -- D and other stuff. Hope you can all join us! Want a beerconf T shirt? We know you do. https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. Cheers! 🍺 -Steve
Re: Beerconf March 2023
On 3/13/23 11:58 AM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for March is happening a little sooner than 2 weeks from now (sorry, was busy on Sat/Sun, so I didn't get to this post), on the 25-26. Missed sending out the reminder yesterday, but sending it today. This is happening starting tomorrow! -Steve
Beerconf March 2023
# BEERCONF! Beerconf for March is happening a little sooner than 2 weeks from now (sorry, was busy on Sat/Sun, so I didn't get to this post), on the 25-26. Want a beerconf T shirt? We know you do. https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. Cheers! 🍺 -Steve
Re: Objective-C D metal binding
On 3/10/23 4:10 PM, ryuukk_ wrote: On Friday, 10 March 2023 at 20:53:23 UTC, Hipreme wrote: Hello guys. I have been working for some time into binding Metal to D. This has been quite an interesting journey and today I've reached a point where it is usable. It is far from complete, but I included a lot of comments from Apple's documentation, and also have tested and got an entire Metal hello world working in D. The API I worked on is really nice, I manually put the opIndex, opIndexAssign, wrapped Objective C Runtime Arrays to a strongly typed array in D. The main point into this binding is getting Metal to run on Hipreme Engine, so, I don't plan into supporting what I don't use. That said, I still welcome any contribution to make this a standard way to program using Apple's Metal. I'll put an example folder the moment I get a dub fix for macOS. ![Metal MacOS D Hello World](https://user-images.githubusercontent.com/10136262/224425800-e417414e-b6be-4e92-93b4-9087b1b281a2.png) https://code.dlang.org/packages/d-metal-binding Congrats! But metal obj-c? do you mean DMD support only? so no Apple Silicon (intel only)? I don't think Intel stuff on mac ecosystem will be a thing for too long, PPC era already vanished from history There is the official C++ headers that you can use to make things easier https://developer.apple.com/metal/cpp/ From that page: No measurable overhead compared to calling Metal Objective-C headers, due to inlining of C++ function calls. D will not inline C++ function calls. So there will be overhead. Objective-C support is better. Getting Obj-C support into LDC is the right path. And I'm with you too -- we need ARM support for Metal. Looking forward to it! -Steve
Re: Beerconf February 2023
On 2/11/23 11:05 AM, Steven Schveighoffer wrote: # BEERCONF! Beerconf for February is happening 2 weeks from now, on the 25-26. Just a friendly reminder that this is happening soon (in 2 days for me) Don't forget to tune in for Garrett's demo of tree-sitter-d on Saturday At UTC 18:00 (see other post for details). -Steve
Blog post on figuring out attribute inference failure
Ever faced with an attribute inference fail, and you don't know what caused it? I have honed some techniques to try and figure it out. Just posted this: https://www.schveiguy.com/blog/2023/02/spelunking-attribute-inference-in-d/ Hopefully it helps. -Steve
Re: Beerconf February 2023
On 2/11/23 11:05 AM, Steven Schveighoffer wrote: ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. About a week away, and I'd like to announce that Garrett D'Amore will speak about his tree-sitter-d project, located [here](https://github.com/gdamore/tree-sitter-d). For those who aren't aware, Tree-sitter is a framework for language grammars used by github, various editors. His project creates a tree-sitter grammar for D, and he will demonstrate how it works in several editors. Roughly speaking this will be Saturday, Feb 25 at UTC 18:00. Hope to see you all there! Will post a message here when it's starting. Cheers! 🍺 -Steve
Re: mysql-native v3.2.0 - the safe update
On 2/14/23 9:22 AM, Rey Valeza wrote: Hi Steve, I just want you to know that I updated the Vibe.d tutorial I wrote last year to emphasize database operations using mysql-native and is now viewable here: https://reyvaleza.gitbook.io/vibe.d-tutorial/ Nice! I see that you just import `mysql`. Have you tried with `mysql.safe`? I'm curious if it works, it should mostly just work. -Steve
Beerconf February 2023
# BEERCONF! Beerconf for February is happening 2 weeks from now, on the 25-26. I'm hoping to join for this one, totally missed the last one. Want a beerconf T shirt? We know you do. https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? As always, I'm interested in having people present some topic. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. Cheers! 🍺 -Steve
Re: LDC 1.31.0
On 2/11/23 8:47 AM, kinke wrote: Glad to announce LDC 1.31.0. Major changes: * Based on D 2.101.2. * ImportC: The C preprocessor isn't invoked yet. * mac/iOS arm64: Linking with `-g` is working again without unaligned pointer warnings/errors. * *Preliminary* support for LLVM 15. Thanks @jamesragray for helping out! * Initial ABI support for 64-bit RISC-V. Thanks @Ast-x64! Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.31.0 Thanks to all contributors & sponsors! Great work! -Steve
Re: Release D 2.102.0
On 2/2/23 10:01 AM, jmh530 wrote: I was reading through some of the PRs referenced in [issue 23548](https://issues.dlang.org/show_bug.cgi?id=23548), and a little confused by the takeaway. It currently searches for Di, then D files. If it finds none of them, then it searches for C/h files. Is that right? Is this search order described in the spec anywhere? Previously, it would search in each path, and look for the files in the order of di, then d, then i, then c. So based on the order of the paths, it might find a matching C file before a matching D file in a later import path. Now, it searches all the paths for D files first, then all the paths for C files second, ensuring that it will prefer D files. The spec I don't think covers how files are searched for module definitions. The compiler command line docs have some information on what files are expected to contain, but doesn't seem to specify priorities or how they are searched. I don't know if it should be covered in the spec or the compiler docs. -Steve
Re: Beerconf January 2023
On 1/14/23 2:03 PM, Steven Schveighoffer wrote: # BEERCONF! Happy new year! Beerconf this month falls on January 28-29. Just a friendly reminder, this is happening soon. 2 days. I likely will be on late, but I'm sure someone will start it and post a message here with the link. -Steve
Beerconf January 2023
# BEERCONF! Happy new year! Beerconf this month falls on January 28-29. It may seem like it's been a while, and that's because it has. Dconf online last month moved up the gathering by a couple weeks, and so we will be 6 weeks out from the last one. The last one was pretty good, with many of the participants in the conference, be sure to watch some of those videos if you haven't yet: https://www.youtube.com/playlist?list=PLIldXzSkPUXV2Uz4ODqHxRAP_Y4FxYon- Note that there is an additional talk added afterwards which did not premier during dconf online, you may have missed it. Want a beerconf T shirt? We know you do. https://www.zazzle.com/store/dlang_swag/products?cg=196874696466206954 ## What is beerconf? Check out the [wiki article](https://wiki.dlang.org/Beerconf). ## Presentations? As always, I'm interested in having people present some topic. I had hoped to have something for this, but my schedule didn't allow it. If you have something you want to reserve a time for, please send me a message in any of the channels (here, email, discord, slack, etc.) and I'll make sure to announce it. Cheers! 🍺 -Steve
Re: Release D 2.101.0
On 12/3/22 2:17 PM, zoujiaqing wrote: Thank you!!! When will it support Apple M1 processors? My macbook has been unable to use D for months. I can use dmd and ldc on my M1. rosetta works great, and ldc supports arm. I have not tried gdc. -Steve
Beerconf for dconf online 2022
# BEERCONF! As it was last year, and the year before, this month's beerconf will coincide with the annual [Dconf Online](https://dconf.org/2022/online/index.html). That means December 17-18. Everything will be mostly the same, except we will probably be spending a lot of time on the actual Dconf Online stream, so during the conference many participants won't be on the beerconf stream. However, before/after the main events, it is a pretty good hangout space. To remind everyone about beerconf, here is the [Wiki article](https://wiki.dlang.org/Beerconf). See you there! -Steve
Re: Beerconf Noveber 2022 -- Turkey edition
On 11/25/22 11:40 AM, Steven Schveighoffer wrote: On 11/12/22 4:51 PM, Steven Schveighoffer wrote: ## Presentations? With dconf online so close, I'm pretty sure no presentations would be forthcoming, but if you have something, let me know, and I'll schedule it. In this upcoming beerconf, Stefan Koch is going to have a talk about meta-programming in his new language, [meta-c](https://github.com/UplinkCoder/metac). It's scheduled for 17:00 UTC on Saturday (tomorrow). I'll post again when it's starting! Starting now! Please see the link that Rikki posted! -Steve
Re: Beerconf Noveber 2022 -- Turkey edition
On 11/12/22 4:51 PM, Steven Schveighoffer wrote: ## Presentations? With dconf online so close, I'm pretty sure no presentations would be forthcoming, but if you have something, let me know, and I'll schedule it. In this upcoming beerconf, Stefan Koch is going to have a talk about meta-programming in his new language, [meta-c](https://github.com/UplinkCoder/metac). It's scheduled for 17:00 UTC on Saturday (tomorrow). I'll post again when it's starting! -Steve
Re: Beerconf Noveber 2022 -- Turkey edition
On 11/12/22 4:51 PM, Steven Schveighoffer wrote: # BEERCONF! Let's hope my US compatriots can drag themselves out of their turkey-induced comas to have some D discussions! The dates are November 26-27. Forthcoming! Happy Thanksgiving everyone! 🦃 See you in a couple days. 🍺 -Steve