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: New DUB documentation
On Monday, 27 November 2023 at 13:25:20 UTC, Bastiaan Veelo wrote: On Friday, 24 November 2023 at 11:11:53 UTC, BoQsc wrote: Darker blending indistinct colors (dark red, dark background), way smaller fonts. I see your screenshots, but that is not what it looks like for me in Chrome on Windows. I am seeing black text on white background with red links. Pretty much like the rest of the D web ux. Is there a dark theme you have enabled? The font does look slightly smaller, though. -- Bastiaan. the button next to the search bar toggles between light and dark theme: ![theme switcher button screenshot](https://wfr.moe/f6McOo.png)
Re: New DUB documentation
On Friday, 24 November 2023 at 11:32:18 UTC, BoQsc wrote: Also it's a good idea to maintain the same style as dlang forum and dlang website, along with dlang tour and online dlang editor. The dlang webdesign choice feels really solid and robust. At least from my perspective. If someone needed a dark theme dub documentation. A simple button to toggle it would have been enough. Small tweaks for layout and small tweaks overall for more professional look and efficiency of use. Would have been enough. I don't know what you are talking about? The dark theme is just a single button press and the default is light theme which is very similar to the dlang page (unless you have changed your system theme to dark theme, it uses the browsers preference, if any) The dub docs are hosted on https://github.com/dlang/dub-docs, you can PR CSS changes there if you want to change the link color in dark theme. (I don't really use dark theme so I never looked at it too much, it came in as a contribution)
Re: New DUB documentation
On Wednesday, 22 November 2023 at 21:52:12 UTC, claptrap wrote: On Wednesday, 22 November 2023 at 21:35:34 UTC, WebFreak001 wrote: [...] IMO you have to many menus, you have menu bar across the top, left side menu, right side menu. So it's like you need to grep all three of them and how the are related to work out where you are. A single table of contents type menu would be better IMO, a left sidebar that gives links to all the pages. It would make it a lot easier to understand where you are in the overall structure of the guide. the layout is standard from material for mkdocs and widely used in other projects, no plans on changing that for now, the experience is more efficient for when you get used to it too.
New DUB documentation
the revamped DUB documentation I started a while ago is now deployed on https://dub.pm A bunch of pages are still WIP, but the already done pages have a bunch of new information and should be better structured. I recommend giving the new documentation a try, maybe you will learn something new about DUB. If you find anything to edit, the "Edit this Page" button makes it trivially easy - it's all standard markdown files now that are easily editable. If you previously often looked at the recipe page that contained all the information in a single page, you will find most of the information on https://dub.pm/dub-reference/build_settings/ now and there are even more details on separate pages now. The site's built-in search on the page works great and runs fully offline, try it out! It will find your search across the entire documentation. CLI documentation is now also included more similar to the man page format here.
BeerConf Japan
hi, if you are in Tokyo right now, we are doing a small meetup this Sunday (2023-10-08) We are still planning the exact details where and when to go in the dlang-jp slack, probably evening at some cafe somewhere around Shibuya. I will post updates on exact locations here.
Re: All-new improved, better readable, maintainable DUB documentation
On Friday, 1 September 2023 at 11:52:18 UTC, WebFreak001 wrote: bump (for email readers, URL of this thread: https://forum.dlang.org/post/ojoiwbcftqsxbsviv...@forum.dlang.org) - added some new pages with new content - github issues still contain information for contributors that want to help improving the documentation - on https://docs.webfreak.org it now shows links to the issues with content hints and suggestions on each page, so that you can easily find pages to work on now PR to make it official for dub.pm: https://github.com/dlang/dub-docs/pull/54
All-new improved, better readable, maintainable DUB documentation
bump (for email readers, URL of this thread: https://forum.dlang.org/post/ojoiwbcftqsxbsviv...@forum.dlang.org) - added some new pages with new content - github issues still contain information for contributors that want to help improving the documentation - on https://docs.webfreak.org it now shows links to the issues with content hints and suggestions on each page, so that you can easily find pages to work on
DUB 1.33 package migration script
hi, if you are having issues with mixed old/new dub installations on your system, which use different package versions and to avoid potentially double-downloading all your packages, you can run this script to automatically move all the old paths to the new paths, while adding symlinks (or copying on windows) to the old location again, to keep compatibility with older dub versions: https://github.com/WebFreak001/dub-migrate This includes using newer serve-d versions with older dub versions installed, making serve-d able to actually find the packages for auto-completion again. It's safe to run the migrate script any number of times, it will only upgrade what doesn't exist yet.
Re: DScanner v0.16.0-beta.1 - looking for IDE dev feedback
On Sunday, 9 July 2023 at 07:54:38 UTC, Christian Köstlin wrote: On 08.07.23 23:59, WebFreak001 wrote: [...] Sounds to good to be true, will give it a try for sure!!! Thanks a lot. Kind regards, Christian thanks, feel free to leave feedback about the CLI and fixes for existing or new diagnostics you would like to see. I just fixed a bug in the CLI that you reported and with the latest version it should work again (CI tested now): https://github.com/dlang-community/D-Scanner/releases/tag/v0.16.0-beta.3
Re: DScanner v0.16.0-beta.1 - looking for IDE dev feedback
On Saturday, 8 July 2023 at 21:59:53 UTC, WebFreak001 wrote: [...] https://github.com/dlang-community/D-Scanner/releases/tag/v0.16.0-beta.2 updated API in v0.16.0-beta.2: `--report` includes all auto-fixes that don't need any resolving now, as well as the names for the to-be-resolved auto-fixes. This way you can show the user that actions are available before trying to query them. (although in the future new classes of auto-fixes could be introduced that are not tied to diagnostics. The API isn't built for this right now though and isn't expected in the near future)
DScanner v0.16.0-beta.1 - looking for IDE dev feedback
https://github.com/dlang-community/D-Scanner/releases/tag/v0.16.0-beta.1 ## For IDE devs: the new D-Scanner version comes with a major new improvement: automatic fix suggestions for diagnostics. As IDE dev you can use the existing `--report` functionality to get JSON parsable output for the issues, along with new information such as start/end byte indices. Then when the user wants to query auto-fixes for any given issue (or just in general at any location in the file), use `dscanner --resolveMessage b512 file.d` to list the resolved auto-fixes at the given location. See the README.md for more information. Looking for feedback on the API and if you need any changes. Additionally this API is usable with D-Scanner as a library as well. ## For users: `dscanner fix source/` can be used to interactively auto-fix all issues inside the source/ directory that have available autmoatic fixes.
D-Scanner 0.15.0
Hello everyone, today there is a new D-Scanner release, key features include: - proper diagnostic ranges (underlining code / end locations for issues) - also includes file byte index instead of only line:column in the JSON formats (for IDE integration) - pretty printing format, with colored output - new easier way to call D-Scanner for humans: `dscanner lint source/` https://github.com/dlang-community/D-Scanner/releases/tag/v0.15.0 ![example colored output](https://github.com/dlang-community/D-Scanner/assets/2035977/644d1cea-276f-4a9c-af8c-f445aad95806) Looking forward to feedback for the output style and warnings. Adding your own diagnostics to D-Scanner is quite easy, give it a try if you have ideas! You have full access to the AST of the input file, as well as a very basic symbol index to attempt to lookup symbols in the entire project (although it's not always accurate yet, especially since D-Scanner usually isn't configured to use the correct import paths)
Re: Tutorial on LDC's -ftime-trace
On Monday, 1 May 2023 at 14:00:23 UTC, Mike Parker wrote: Dennis Korpel has a new tutorial out on the foundation's YouTube channel, showing how to employ LDC's -ftime-trace option to improve your project's compile times. This can come in handy if you're heavily using metaprogramming or CTFE. https://youtu.be/b8wZqU5t9vs cool, thanks for the tutorial! These tutorials can help show things that are used commonly, that can ideally be simplified in IDEs such as code-d/serve-d as well. The tracy viewer or web viewer could for example be embedded in the IDE. Compilation times for modules and methods could also be shown inside the editor / code. There was once an experimental setting in code-d with dmd for imports which just tried compiling with a single import, but this would be much more accurate and be able to display times relative to the total compilation time.
Re: DIP1044---"Enum Type Inference"---Formal Assessment
On Tuesday, 25 April 2023 at 04:54:43 UTC, Mike Parker wrote: I submitted DIP1044, "Enum Type Inference", to Walter and Atila on April 1. I received the final decision from them on April 18. They have decided not to accept this proposal. https://github.com/dlang/DIPs/blob/master/DIPs/rejected/DIP1044.md The said the proposal was well done and an interesting read, but found it to be too complex for insufficient benefit. They provided the following list of concerns that led them to their decision: * Given that D already has `with`, `alias`, and `auto`, it does not seem worthwhile to add a special case for enums. * Semantic analysis in D is strictly bottom-up. This proposal would add top-up type inference on top of that. This presents problems in handling function and template overloads, as well as variadic parameter lists. * The proposal only allows ETI in some contexts. This is potentially confusing for the programmer, particularly in the presence of mixin templates (which draw symbols from the instantiation context) and function overloads. * Symbol tables can get very large. Lookups are done via hash table for max speed, but this will not work for ETI. There may be a very large number of "enums in scope", and each one will have to be searched to resolve a member. * ETI is similar to ADL (Argument Dependent Lookup) in C++. Walter implemented ADL in the Digital Mars C++ compiler and is strongly against allowing anything like it in D. He finds it slow and complex, and few people really know how it's going to work. Regarding enums in switch statements, Walter suggested we could shorten the `with final switch` syntax such that the `with` is implicitly applied to the type of the switch variable: ```D auto myEnum = MyEnum.a; with final switch (myEnum) { } ``` Alternatively, we could make the `with` implicit for case statements, but that would break existing code. I'm a little glad for reading and reviewing code that this didn't get through, at least without IDE, but I think this would have been quite a useful feature for writing code. However I think we probably should still implement this in DCD / have better auto-suggest according to the rules here. I think it will be similarly useful having better auto-complete suggestion contexts compared to having new syntax in the language. (maybe being able to trigger it explicitly using $ at the start, but definitely want to have these suggestions being prioritized)
Re: godot-dlang v0.2.0
On Saturday, 25 February 2023 at 07:45:24 UTC, evilrat wrote: # Release godot-dlang v0.2 [...] Awesome! Thanks for the great work on this. Godot is one of my favorite game engines to work with (for small Game Jams at least) Seeing updates to Godot 4 is great to see ahead of the stable release! I also see there is still a bunch to work on, recently I haven't had much time for this, but I will see if I can help out somewhere ^^
Re: WildCAD - a simple 2D drawing application
On Tuesday, 31 January 2023 at 15:03:50 UTC, bachmeier wrote: On Monday, 30 January 2023 at 20:51:59 UTC, Richard (Rikki) Andrew Cattermole wrote: It isn't. WebFreak has an on-going project to replace it. https://forum.dlang.org/post/ojoiwbcftqsxbsviv...@forum.dlang.org https://docs.webfreak.org/ That's quite an improvement. Perhaps it should be announced again, because I don't remember seeing the original post. I already posted it twice on two separate dates and tried to bump them after some time too, I think there is just not much demand in improved DUB docs, people probably think it's kinda fine already. However for newcomers I think it's very worthwhile to do more stuff on there.
Re: DORM - a new D ORM
On Thursday, 1 December 2022 at 06:53:59 UTC, singingbush wrote: On Thursday, 24 November 2022 at 06:19:24 UTC, WebFreak001 wrote: Hello! at our hackerspace we have been working tirelessly for the past half year to bring a great new ORM experience to D and Rust. Is there likely to be support for MS-SQL Server and Oracle in the future? MS-SQL is possible because the underlying SQL library we use (sqlx) supports it, but we didn't implement the SQL syntax for this yet and we don't really have it on our to-do list right now. Other than the supported SQLite, MySQL, PostgreSQL and potentially MS-SQL I can't promise any support though. Oracle MySQL should work or do you mean some other database? If you have any real use-case for them feel free to open an issue though.
DORM - a new D ORM
Hello! at our hackerspace we have been working tirelessly for the past half year to bring a great new ORM experience to D and Rust. The D side of this ORM can be found at: https://code.dlang.org/packages/dorm It provides a nice D API to directly save data to any database, restore data, list data, etc. Current features: - Declarative table/model definitions from D, with rich UDA annotations - Command Line Interface to create migrations automatically from the D application, good for checking into the source repository and to distribute with the app - Migrations allow both users and developers to update the database in their deployed app instances when needed, coming from any (or no) previous version - High-level APIs both in D and Rust - Support for MySQL, PostgreSQL and sqlite3 (MySQL and PostgreSQL drivers written in safe Rust) - Automatic mapping between defined D datatypes and SQL - Support for slim SQL queries by only using and selecting columns that are needed - CRUD interface with support for dereferencing foreign keys, embedded structs, advanced SQL conditions that can represent almost any SQL condition using D code that looks similar to regular if statements - Support for transactions - Raw SQL API - Streaming SQL responses (range interface) - Async support with vibe.d - also works standalone with and without multithreading from the application - Multithreaded connection pool Documentation can be found here: https://rorm.rs/ (although very WIP still!) Minimal sample project: https://github.com/rorm-orm/dorm/tree/ee221e6c66bf460b77592c208d1620a93a007a66/testapp Bunch of integration tests, that show all the functionality: https://github.com/rorm-orm/dorm/tree/ee221e6c66bf460b77592c208d1620a93a007a66/integration-tests Feel free to try it out and open issues! The API will probably still change a bunch in the future. However the current modelling capabilities should already suffice for a wide selection of apps you might want to test this in. Looking forward to your feedback.
Re: Call for action: Easily improve D's ecosystem - DUB documentation improvements
Additional things that are quite low priority, but might be interesting for anyone who is looking to contribute on the tech side: - auto-testing what's written in the docs is probably a good idea. Ideally by extracting the markdown, but not required. Should test whole dub packages - D source code could be validated for syntax and output (e.g. using https://code.dlang.org/packages/md) - auto-deployment is still missing, GitHub pages and actions could be used with this (especially interesting for PRs) - dead link detection is probably gonna be useful soon (awesome-dlang has a GitHub actions workflow for this, could reuse that) - "Run in online IDE" button for code using run.dlang.io would be useful - can use single file packages there.
Call for action: Easily improve D's ecosystem - DUB documentation improvements
Hello everyone, I have been working on revamped DUB docs, which should help users with adoption of D, with DUB being basically the package manager everyone uses. I have deployed the current state here: https://docs.webfreak.org/ However a lot of pages are still empty and this is quite a bunch of work writing. I don't think it's best if only one person looks over all of this, so I'm looking for feedback from the community. Here is how you can help: ## Read the docs Open as many issues as you need about any misunderstandings you have or submit PRs for typos. There are quite a lot of pages already, they were all written with varying quality, so fact-checking, proof-reading and quality control would be very much appreciated here. (especially for things that have been written at 3 AM) You could even learn new things about DUB quite easily here! The docs currently cover all the source code.dlang.org content + lots of additional in-depth information that you would usually only get by reading the source code or trying things out a lot. ## Write the docs Check out the issues: https://github.com/WebFreak001/dub-docs-v2/issues A lot of pages, or parts of pages, might be quite trivial to regular dub users, so I would love if any of you out there could help write pages here. Here is how you can write docs: - (Basic) you can just edit the markdown files and optionally also view them with any markdown viewer of your choice, this might not work that well for recipe content or code examples though. - (Advanced) if you have Python3 installed, you can build the Markdown docs into the nice HTML website you can see hosted above. Basically you just install the dependencies and can then run `mkdocs serve` to have an auto-reloading page whenever you make edits. This is a very comfortable way to write docs. See [project README](https://github.com/WebFreak001/dub-docs-v2) for more details ## Make things clearer No text is perfect, a lot of this is also written in bulk, with relatively quick typing and at times not too much thinking. If you spot anything that is unclear or could be better with a rewording, feel free to open an issue or make a PR. ## Completing content Like above, if you spot anything that is missing or incomplete, feel free to write the docs immediately or write parts of them and open a PR with them. You might also just wanna comment on the issues on GitHub with what other ideas you have to put on each page or make your own issues for larger things. ## Voting on what to work on If you don't have the time to work on documentation, I would appreciate if you could at least take a minute to vote for your favorite content on GitHub. There are issues for nearly each page on GitHub already, just react to the opening post with a thumbs up, to give it more visibility in the search sorting. (when applied) - If you have another minute, don't forget to write what especially you want to see or what to see changed! For bigger things, feel free to open your own issues as well. ## Outlining A lot of documents are still completely empty. I have made issues on GitHub to describe what I thought could be put on each page, but haven't yet put any headers or content on most of these pages. If you want to help decide on what goes on the page, feel free to just add markdown headings (`# Page title`, `## Subtitle 1`, `### Subtitle 2`) to create empty skeletons for anyone to write in it. I think this is quite a low effort thing to work on, that's however very useful to give ideas how the content could look like and be structured. --- Even if you have only a very basic understanding of DUB, there is a good chance there are still empty sections you can fill with your knowledge - check the issues. Each issues has a list of bullet-points that would probably be a good idea to be put in the document. In the smallest increments you could for example add anywhere from only a single bullet point at a time or a full document all at once. Usually more content is better for this brainstorming and writing phase, we can always remove or summarize unnecessary / duplicate content in the future. I hope there are some of you out there who can help with this project, I think this project is quite an important, but not that overly complex, task that many people here can help with. I think this is quite a low risk, high return thing to be working on, which just still needs a bunch of work to be doing. --- So, because you made it this far into the post - first of all thank you for taking the time to read this and any interest you may have. Here are the links again that you might be interested in: - Issues, sorted by most thumbs up: https://github.com/WebFreak001/dub-docs-v2/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc - Repository: https://github.com/WebFreak001/dub-docs-v2 - Current docs preview: https://docs.webfreak.org/ - Reference to the
Re: Inochi2D - Realtime 2D Animation written in D
On Sunday, 11 September 2022 at 23:00:24 UTC, Luna wrote: Hey folks, I have for the (almost) past 2 years been working on a real-time 2D animation library called [Inochi2D](https://github.com/Inochi2D/inochi2d) and tooling for it. Recently I went full time on the project due to generous donations on GitHub Sponsors and Patreon. The library and tooling is mostly implemented in D, with the only exception being SDL2, OpenGL and Dear Imgui being used in the tooling for the UI. The project allows you to create and rig segmented 2D art (akin to Live2D inc.'s Cubism product) for animation. Allowing you to animate the model in real-time either using face tracking [eg. with the Inochi Session tool](https://github.com/Inochi2D/inochi-session) or more traditional animation methods. This kind of tooling is often used in games as well as for [VTubing](https://en.wikipedia.org/wiki/VTuber), a kind of entertainment art form where people use real-time 2D animated puppets as their avatars for livestreaming. I'm planning to release an update for [Inochi Creator](https://github.com/Inochi2D/inochi-creator), the tool used to rig and animate Inochi2D puppets, on October 10th. You can also find Inochi Creator and Inochi Session on itch.io: * [Inochi Creator](https://lunafoxgirlvt.itch.io/inochi-creator) * [Inochi Session](https://lunafoxgirlvt.itch.io/inochi-session) (Will eventually come to Steam too!) this is an awesome project! I hope to see more people start on projects like these or help contribute to them. I definitely think projects like these are the kind of thing that D really needs. I love having some graphic thing with concrete use-case and target audience, actually writing a real app and helping users do what they want to do. I like Inochi2D in particular because it's a highly creative thing to do VTubing, all the way from drawing characters and rigging them to giving them life in motion and personality by the person playing the character. It's things like this that inspire people to dig deeper, improve technology and make improvements to all layers of an application. (users here are potentially improving D, improving Inochi, improving the general state of the art in VTubing technology) I wish you a lot of luck with getting your project to new heights and the next big update. It's a very cool project. I saw you had a GitHub sponsors page as well as Patreon, for anyone else in this thread I think it's definitely worth checking these out ^^
Re: Initial release of newxml done!
On Friday, 9 September 2022 at 22:00:42 UTC, solidstate1991 wrote: https://github.com/ZILtoid1991/newxml/releases/tag/v0.2.0 It's a heavily modified `std.experimental.xml` with the following changes: [...] awesome! got some documentation or examples anywhere? Can't really seem to find how to use it really, but will definitely be useful when I do stuff with xml.
Re: New WIP DUB documentation
On Tuesday, 16 August 2022 at 08:13:08 UTC, Sönke Ludwig wrote: Looking good, having SDL+JSON on the same page is especially nice and something I've been wanting to fix for a while. Also definitely a good idea to use a static generator now that the documentation is separate. One question, though - do you generate the CLI documentation from the DUB sources, or is that manual work? for the CLI documentation I modified the man generator to output markdown instead of man formatting, still need to PR that
New WIP DUB documentation
Hi all, I'm currently working on new revamped DUB documentation, check it out if you want, it currently contains most old documentation plus a big bunch of new documentation: https://docs.webfreak.org/ Repository: https://github.com/WebFreak001/dub-docs-v2 Instead of being based on diet templates and needing to be compiled using `dmd` and build all of vibe.d, it now uses [mkdocs](https://www.mkdocs.org/) with a customized [mkdocs material theme](https://squidfunk.github.io/mkdocs-material/), so now the documentation is Markdown based, which should be more familiar to a lot of people + it has a great offline search index and a bunch of interactive elements, that also work without JS. The dub.json and dub.sdl documentation is now merged on the same page, where you can simply swap between them whenever you like. If you have JS enabled it will also sync it across the entire page and persist across page loads. Writing the docs is really quite easy, you can have it locally be served by first installing the dependencies using ``` pip install -r requirements.txt ``` and then when working on it running ``` mkdocs serve ``` to have auto-updating docs in the browser. (auto refresh whenever you change anything) So if you find any typos or want to complete the docs, feel free to open a PR on https://github.com/WebFreak001/dub-docs-v2 I plan to have easily discoverable edit links linked on the page soon too, which should theoretically just be a simple mkdocs configuration thing that's probably already implemented. Someone from the community has already contributed a dark theme to it. :) [![new dub documentation preview screenshot](https://wfr.moe/f6fgF7.png)](https://docs.webfreak.org)
Re: Giving up
On Sunday, 7 August 2022 at 00:59:14 UTC, mw wrote: On Sunday, 7 August 2022 at 00:54:35 UTC, Steven Schveighoffer wrote: Note, we have a complete copy of the git repository. So you mean all the dub registered packages are cached somewhere? Can we publish the cache address? here is a snapshot, but I don't have the constantly updating cache exposed anywhere: https://wfr.moe/clones-2022-06-14_16-16-36_you_might_need_to_git_checkout_master_or_main_in_each_project.tar.zstd The dependency cloning and updating is part of https://github.com/Pure-D/symbol-search which is a complete DScanner index of all DUB packages (all symbols indexed with version, file and line number + symbol type and other things) which is run on my server every 6 hours.
Re: PixelPerfectEngine v0.10.0-beta.5 : Now with a synth
On Wednesday, 23 February 2022 at 21:07:25 UTC, solidstate1991 wrote: https://github.com/ZILtoid1991/pixelperfectengine/releases/tag/v0.10.0-beta.5 After I created my own IO library that has audio features that are easier to interoperate with D code (iota), I decided to finish up my phase modulation (often sold as either frequency modulation or phase distortion too by some brands, with minor tweaks to the underlying math to avoid patent infringement) synthesizer for my game engine. This one uses a simplified math with fixed-length wavetables (can be user supplied too), highly configurable envelops, and has up to 16 voice polyphony if 2 operator mode is used for all channels (8 if channels are combined). It can even do resonant waveforms with some tricks (modulating a sine wave with a triangle wave). [...] nice! Any example to play around with?
Re: The DIID series (Do It In D)
On Thursday, 27 January 2022 at 23:56:55 UTC, Ola Fosheim Grøstad wrote: On Thursday, 27 January 2022 at 08:52:32 UTC, WebFreak001 wrote: the list is being maintained, feel free to open PRs to update links and remove old stuff. It is probably better that the current maintainers remove stuff, I think people would get upset if someone else started to wipe out projects that haven’t recieved updates in a year or that are just not ready for consumption. I don't think that's the case - just open a PR removing old stuff, the maintainers will check that the links are indeed old and no longer necessary or they will tell you that it's kept because of reason XYZ. If there are people that would get upset from removing it, it's something that shouldn't be removed. (as there are people who are still interested in the project and might still use it)
Re: The DIID series (Do It In D)
On Wednesday, 26 January 2022 at 15:53:44 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 26 January 2022 at 13:14:49 UTC, Guillaume Piolat wrote: Precisely I opened this thread because it's hard to know about everything that exist in the D ecosystem. I expected tips for this or that library. Is this list out of date? https://github.com/dlang-community/awesome-d Anyway, the short examples you provide is a good format. Full tutorials can often be too time consuming… the list is being maintained, feel free to open PRs to update links and remove old stuff.
Re: All Community Discord channels are now being bridged to Matrix
On Friday, 21 January 2022 at 03:18:09 UTC, Jack wrote: On Saturday, 15 January 2022 at 18:45:15 UTC, WebFreak001 wrote: [...] why are you guys using matrix over discord? it's bridged - we support both and most are using discord, but we want to have matrix work just as well.
All Community Discord channels are now being bridged to Matrix
After having tried out the Matrix bridge for a while and Spaces now being properly released in the Matrix spec and starting to become available in clients, we have now bridged all the Discord rooms to Matrix rooms. The Matrix space is accessible via [#dlang:m.wfr.moe](https://matrix.to/#/#dlang:m.wfr.moe) or if your Matrix client does not yet support the spaces feature you can join the individual rooms by browsing the `m.wfr.moe` Room Directory. The bridge is now also self-hosted and limited to just the D discord, so it's a lot quicker than the previous solution, although the previous solution is still in place for the existing channels and will be migrated later. ![matrix screenshot](https://wfr.moe/f6iZwQ.png)
Re: Error message formatter for range primitives
On Wednesday, 5 January 2022 at 09:32:36 UTC, Robert Schadek wrote: In https://forum.dlang.org/post/tfdycnibnxyryizec...@forum.dlang.org I complained that error message related to range primitives like isInputRange, especially on template constraints, are not great. [...] cool! As I'm not a fan of needing to refactor code I made my first DMD PR to try to make it possible to include this in phobos here: https://github.com/dlang/dmd/pull/13511 ```d source/app.d(43,5): Error: template `app.fun` cannot deduce function from argument types `!()(Sample1)` source/app.d(22,6):Candidates are: `fun(T)(T t)` with `T = Sample1` must satisfy the following constraint: ` isInputRange!T: Sample1 is not an InputRange because: the function 'popFront' does not exist` source/app.d(24,6):`fun(T)(T t)` with `T = Sample1` must satisfy the following constraint: ` isRandomAccessRange!T: Sample1 is not an RandomAccessRange because the function 'popFront' does not exist and the property 'save' does not exist and must allow for array indexing, aka. [] access` ```
Re: fixedstring: a @safe, @nogc string type
On Tuesday, 11 January 2022 at 11:16:13 UTC, Moth wrote: On Tuesday, 11 January 2022 at 03:20:22 UTC, Salih Dincer wrote: [snip] glad to hear you're finding it useful! =] hm, i'm not sure how i would go about fixing that double character issue. i know there's currently some wierdness with wchars / dchars equality that needs to be fixed [shouldn't be too much trouble, just need to set aside the time for it], but i think being able to tell how many chars there are in a glyph requires unicode awareness? i'll look into it. [...] you can relatively easily find out how many bytes a string takes up with `std.utf`. You can also iterate by code points or graphemes there if you want to translate some kind of character index to byte position. HOWEVER it's not clear what a character is. Sure for the posted cases here it's no problem but when it comes to languages based on combining glyphs together to form new glyphs it's no longer clear what is a character. There are Graphemes (grapheme clusters) which are probably the closest to what everybody would think a character is, but IIRC there are edge cases with that a programmer wouldn't expect, like adding a character not increasing the count of characters of the string because it merges with the last Grapheme. Additionally there is a performance impact on using Graphemes over simpler things like codepoints which fit 98% of use-cases with strings. Codepoints in D are mapped 1:1 using dchar, take up to 2 wchars or up to 4 chars. You can use `std.utf` to compute byte lengths for a codepoint given a string. I would rather suggest you support FixedString with types other than `char`. (wchar, dchar, heck users could even use any arbitrary type and use this as array class) For languages that commonly use more than 1 byte per codepoint or for interop with Win32 unicode APIs, JavaScript strings, C# strings, UTF16 files in general, etc. programmers might opt to use FixedString with wchar then. With D's templates that should be quite easy to do (add a template parameter to the struct like `struct FixedString(size_t maxSize, CharT = char)` and replace all usage of char in your code with `CharT` in this case)
Re: D + Qt + QtDesigner
On Sunday, 21 November 2021 at 15:08:18 UTC, MGW wrote: I am still developing my QtE5 library. Unfortunately, I don't have enough free time to make it into a complete dub package. Link to short video: http://www.youtube.com/watch?v=TFN5P4eoS_o this is really neat! Do you have some code for us to play around with?
Re: code-d 0.23.0
On Sunday, 21 November 2021 at 00:58:50 UTC, zjh wrote: On Saturday, 20 November 2021 at 17:57:40 UTC, WebFreak001 wrote: Hi everyone, Can `VIM` be supported? Many programmers program with `VIM`. serve-d (the underlying LSP server) is supported with ycmd: https://github.com/Pure-D/serve-d/blob/master/editor-vim.md You can also search for other LSP clients for your editor if you don't like ycmd, it should work with any of them.
Re: code-d 0.23.0
On Saturday, 20 November 2021 at 18:29:00 UTC, Andre Pany wrote: On Saturday, 20 November 2021 at 17:57:40 UTC, WebFreak001 wrote: Hi everyone, I just released a new version of my Visual Studio Code extension "code-d" [...] Thank you so much for your work on this extension. By chance, do you consider to make your extension compatible for vscode.dev ? Kind regards Andre vscode.dev might take some work to get working properly. Meanwhile you can already use gitpod.io, there is also a template here: https://github.com/Pure-D/code-d-gitpod (though it needs some updating now)
code-d 0.23.0
Hi everyone, I just released a new version of my Visual Studio Code extension "code-d" The last release was 2 years ago so really it will feel like a brand new extension to everyone who has only used the stable serve-d release (and not nightly or beta) before. Along with usual updates and improvements to DCD, DScanner and dfmt this release comes with: - single file editing support - New walkthrough & compiler installer for new users (installing D has never been easier before!) - Updated auto completion UI (big thanks to RUSshy) - new smart snippets - much improved debugging support - project building improvements - error/linting improvements - new auto fix suggestions - better integration of D-Scanner - better integrated ddoc viewer - new highlight provider - workspace trust support (run serve-d securely in untrusted workspaces) ...and much more get it now for VSCode from https://marketplace.visualstudio.com/items?itemName=webfreak.code-d https://open-vsx.org/extension/webfreak/code-d https://github.com/Pure-D/code-d/releases/tag/v0.23.0 Fun fact: in a week is code-d's 6th Birthday, meaning I nearly had this project ongoing for a quarter of my life now, lol If you are not a VSCode user, this release also did a new stable release for serve-d, so other LSP compatible editors (there are new guides in the repository) can be used as well. See https://github.com/Pure-D/serve-d
Re: sha3-d
On Friday, 29 October 2021 at 15:13:38 UTC, dd wrote: Hello all! When I submitted my work to Phobos[1] earlier this year, it was rejected. (Understandably) So I made a DUB package and forgot to announce it here! Package: https://code.dlang.org/packages/sha3-d Source: https://github.com/dd86k/sha3-d [1] https://github.com/dlang/phobos/pull/7713 Awesome! Haven't had the need to use SHA-3 yet myself, but given all the other growing ecosystems where this could be of use it's nice to have this high-performance implementation already. Would be cool having benchmarks comparing this to other implementations if great performance is a goal, as you already mentioned in your README it's much faster than keccack-tiny.
Using GTK's GResources with GtkD with DUB
I just want to push my blog again :p https://new.webfreak.org/blog/2021-10/21/GTKD-GResources-with-dub You would want to use this for example when you make a GTK app that you want to add custom icons into. Using GResources will make it search your executable for the icon first. Also this makes you not dependent on the filesystem for resources, everything is bundled in your executable. There are also some hints and links how to use GTK4 and LibAdwaita if you didn't know yet.
Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)
On Tuesday, 19 October 2021 at 16:17:43 UTC, Andrea Fontana wrote: On Wednesday, 6 October 2021 at 06:23:01 UTC, WebFreak001 wrote: On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote: [...] new slogan [...] want to generate controversial heat? Do it in D (DIID) (careful with there being a trademark for DiiD though) You mean: Just D it That's awesome! using that as my discord status now.
Re: DMD Frontend working in WebAssembly
On Thursday, 14 October 2021 at 22:56:07 UTC, hatf0 wrote: Hi all, I've just managed to get the full DMD front-end to work in WebAssembly (with skoppe's druntime fork). This doesn't do code-gen or anything (but it potentially could?), and has some OS-specific functionality stubbed out. No clue about GC -- haven't run into that issue, haven't thought about it yet! You can find my work here if you're interested: https://github.com/hatf0/dmd-fe-wasm-wrapper This repo also serves as a semi-decent guide on how to get started building files that target WebAssembly (specifically WASI), if you're into that. neat! Given the low footprint of WASM apps maybe this could maybe be used to have small isolated, cross-platform DMD tools that run one-shot? Could for example run the WASM binaries from the IDE and because it's WASM running in the own process, with memory that we can free, it avoids low startup times, especially on windows. Do we have some WASM runner in D?
Re: New library: argparse, for parsing CLI arguments
On Wednesday, 13 October 2021 at 16:24:52 UTC, Steven Schveighoffer wrote: On 10/13/21 11:50 AM, Andrey Zherikov wrote: On Wednesday, 13 October 2021 at 14:36:30 UTC, Steven [...] No, it's not a confusion about `unused`. The `array` parameter has the same issue. I meant that for named parameters, one shouldn't have to attribute them for them to be considered part of the parameters. e.g. (to replace your current code): ```d struct Params { // Positional arguments are required by default @PositionalArgument(0) // override the default of a named argument string name; // Named argments are optional by default string unused = "some default value"; // Numeric types are converted automatically int num; // Boolean flags are supported bool flag; // Enums are also supported enum Enum { unset, foo, boo }; @NamedArgument("enum") // required since enum is a keyword Enum enumValue; // Use array to store multiple values int[] array; // Callback with no args (flag) void cb() {} // Callback with single value void cb1(string value) { assert(value == "cb-value"); } // Callback with zero or more values void cb2(string[] value) { assert(value == ["cb-v1","cb-v2"]); } } ``` The point is that I shouldn't have to tell the library the name of something that I've already given a name to. Having them named differently on the command line than the actual field name should still be a possibility (and required in some cases, e.g. the `enum` case above), but honestly, the `Params` struct exists solely to accept command line parameters, there's no compelling need to use alternate names for the command line and the field name. If the library automatically does the right thing by default, then your code becomes simpler and more beautiful. Not to detract from your library, because I think it's an awesome design to model using structs (one I use all the time), but the API developer in me frowns at lack of DRY. Try to focus on requiring the smallest amount of machinery/attributes possible. Every time you require extraneous pieces to get things to work, it adds another place where errors/confusion can happen. -Steve This should probably rather be: ```d struct Params { // Positional arguments are required by default @PositionalArgument(0) // override the default of a named argument string name; // Named argments are optional by default @NamedArgument string unused = "some default value"; // Numeric types are converted automatically @NamedArgument int num; // Boolean flags are supported @NamedArgument bool flag; // Enums are also supported enum Enum { unset, foo, boo }; @NamedArgument("enum") // required since enum is a keyword Enum enumValue; // Use array to store multiple values @NamedArgument int[] array; // Callback with no args (flag) @NamedArgument void cb() {} // Callback with single value @NamedArgument void cb1(string value) { assert(value == "cb-value"); } // Callback with zero or more values @NamedArgument void cb2(string[] value) { assert(value == ["cb-v1","cb-v2"]); } } ``` as otherwise the definition could be ambiguous (like are the parameters positional with automatic count or named by default?) If you don't like the repetition you could also then make it `@NamedArgument { [all my variables] }` But I'm not a fan of having everything included even without UDA
Re: New library: argparse, for parsing CLI arguments
On Wednesday, 13 October 2021 at 12:11:03 UTC, Andrey Zherikov wrote: On Wednesday, 13 October 2021 at 11:59:06 UTC, WebFreak001 wrote: On Wednesday, 13 October 2021 at 11:27:40 UTC, Andrey Zherikov wrote: [...] It also doesn't depend on anything besides the standard library. [...] if you want to drop the dependency on std.typecons : Nullable you could use https://code.dlang.org/packages/expected, where you can additionally return error values with instead of returning null on error. Doesn't cast to bool but can check for .hasError which is more explicit. This will break "doesn't depend on anything besides std" unfortunately. well... if you ask me that expected package should be part of the stdlib, it has decent download statistics too :p At least would be better than creating your own Result type if you do decide to drop Nullable for something with error information I think
Re: New library: argparse, for parsing CLI arguments
On Wednesday, 13 October 2021 at 11:27:40 UTC, Andrey Zherikov wrote: [...] It also doesn't depend on anything besides the standard library. [...] if you want to drop the dependency on std.typecons : Nullable you could use https://code.dlang.org/packages/expected, where you can additionally return error values with instead of returning null on error. Doesn't cast to bool but can check for .hasError which is more explicit.
Re: GtkD Coding Post #0115 - GKT/GIO Application - Open Files from the Command Line
On Friday, 24 September 2021 at 13:23:22 UTC, Ron Tarrant wrote: Another new GtkD Coding blog post, this time it's about how to deal with the HANDLES_OPEN flag. You can find it here: https://gtkdcoding.com/2021/09/24/0115-gtk-gio-app-open-flag.html nice. Do you think you could make a GTK 4 tutorial eventually? Would be great if it uses libadwaita, could make linux phone mobile apps with it.
Re: dmdtags 1.0.0: an accurate tag generator for D source code
On Friday, 27 August 2021 at 22:01:59 UTC, Dennis wrote: On Friday, 27 August 2021 at 21:38:58 UTC, Paul Backus wrote: Editors that support tags files, such as Vim and Emacs, can use this index to help with things like project navigation and tab completion. Cool! Now I'll have to look if I can make this work with Visual Studio Code, since code-d which uses Dsymbol tends to be unreliable, and this looks ideal for Phobos / Druntime symbol completion. actually it uses D-Scanner and should be a fairly easy drop-in replacement. I'm just worried about how the memory usage will grow with this, considering dmd never frees. Maybe I should make it run as external tool instead of a library so the OS cleans up, but for that get a performance penalty especially on Windows.
Re: Yurai - Full Stack Web Framework (Diamond MVC Successor)
On Wednesday, 7 July 2021 at 08:32:16 UTC, bauss wrote: [...] I'm very happy with the result so far and just initially published it now. [...] Awesome! Do you think it's in a usable state yet? I think for Diamond it would have been nice to have more tutorials / documentation - do you think this new framework will have more? I might try it out for my next project.
Matrix bridge trial run
The D language code club community discord chat server is currently doing a trial run of bridging our Discord server to a Matrix chat "Space". The spaces feature in Matrix features a lot of similarities to Discord servers and maps very well with a list of rooms. We have linked a few rooms to test out the bridging capabilities. If you haven't joined the Discord Server because you don't want to use their proprietary app, you might like to use Matrix instead. The spaces feature is available in the Element app once you enable the Spaces beta in your settings. Once you have enabled Spaces in your settings you can join the space and automatically its linked rooms using ``` /join https://matrix.to/#/!HDxtVdRNEKXjLPrWDg:m.wfr.moe?via=m.wfr.moe=matrix.org ``` alternatively if you don't want to join the whole space or have an incompatible client, you can also join the rooms one-by-one, currently this includes the following room IDs: - [#dlang-news:m.wfr.moe](https://matrix.to/#/!CGyWJxXAgYflrWgKGQ:m.wfr.moe?via=m.wfr.moe=t2bot.io) (maps to #news in Discord) - [#dlang-questions:m.wfr.moe](https://matrix.to/#/!ruvwTnlYNglSQzDFcd:m.wfr.moe?via=m.wfr.moe=t2bot.io=matrix.org) (maps to #programming in Discord) - [#dlang-random:m.wfr.moe](https://matrix.to/#/!DdYLizavGsezkcGOGR:m.wfr.moe?via=m.wfr.moe=t2bot.io=matrix.org) (maps to #dev_urandom in Discord) - [#dlang-editors:m.wfr.moe](https://matrix.to/#/!uxlVbwjbuqNADarAOd:m.wfr.moe?via=m.wfr.moe=t2bot.io=matrix.org) (maps to #d-editors in Discord) We are currently using [t2bot.io](https://t2bot.io/discord/) to bridge our Discrod channels to Matrix channels, so the service stability may not be influenced by us. If the matrix bridge proves successful, we might extend it with all of our rooms on Discord as well once the Spaces feature goes out of beta.
Re: Atom ide-d package
On Wednesday, 2 June 2021 at 12:09:37 UTC, Amin wrote: [...] Awesome! Thanks for maintaining the atom extension using serve-d :)
Re: GCC 11.1 Released
On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote: ... my [Github Sponsor page](https://github.com/sponsors/ibuclaw/). ... TIL, sponsored!
Re: Debugging improvements - Visual Studio Natvis, GDB, LLDB
On Saturday, 24 April 2021 at 18:59:29 UTC, mw wrote: On Saturday, 24 April 2021 at 17:44:39 UTC, WebFreak001 wrote: On Saturday, 24 April 2021 at 17:16:48 UTC, mw wrote: [...] I haven't modified the expression parsing behavior (I don't know if I can even do that), it's only pretty printers Why they (keys & values) are showing below in VS code? Incredible -- below in VS Code (with launch.json and dub.json config as shown on right) I am able to see arrays, strings, and associative arrays keys/values! The implementations are different? or there are fundamental obstacles that cannot be done for GDB console? the pretty printer implements summary & children (which are keys and values) If you can't find a command in the console for listing children then it will only be able to show a summary.
Re: Debugging improvements - Visual Studio Natvis, GDB, LLDB
On Saturday, 24 April 2021 at 17:16:48 UTC, mw wrote: On Saturday, 24 April 2021 at 16:08:07 UTC, WebFreak001 wrote: those are GDB-MI commands. If you can only run GDB console commands you can use ``` source /path/to/gdb_dlang.py enable pretty-printer ``` Thanks, I put these 2 lines into .gdbinit, and it seems loaded. I have a question about print AA: it only print values? ``` 11 int[int] aa = [1:2, 2:4]; (gdb) p aa $1 = [2] = {4, 2} (gdb) p aa[1] Invalid binary operation specified. ``` I tried both dmd -g and ldc2 -g on Linux, both the same behavior. I haven't modified the expression parsing behavior (I don't know if I can even do that), it's only pretty printers
Re: Debugging improvements - Visual Studio Natvis, GDB, LLDB
On Friday, 23 April 2021 at 23:54:21 UTC, mw wrote: On Tuesday, 6 April 2021 at 21:04:47 UTC, WebFreak001 wrote: I have created editor independent pretty printers / visualization files for Visual Studio's debugger\*, GDB and LLDB. The script and setup guide are available here: https://github.com/Pure-D/dlang-debug where to input this command? from gdb command line? or in .gdbinit? ``` -enable-pretty-printing -interpreter-exec console "source /path/to/gdb_dlang.py" ``` (sorry, I googled a bit, but didn't find the answer). those are GDB-MI commands. If you can only run GDB console commands you can use ``` source /path/to/gdb_dlang.py enable pretty-printer ```
Re: Debugging improvements - Visual Studio Natvis, GDB, LLDB
On Friday, 23 April 2021 at 20:05:30 UTC, Dennis wrote: On Tuesday, 6 April 2021 at 21:04:47 UTC, WebFreak001 wrote: I have created editor independent pretty printers / visualization files for Visual Studio's debugger\*, GDB and LLDB. The script and setup guide are available here: https://github.com/Pure-D/dlang-debug This is great. Pretty-printing of associative arrays is a pretty big deal! I'm having problems setting it up though. You say the configuration is bundled since code-d 0.23.0 but the newest version VSCode lets me select is `0.22.0 (1 year ago)`. yeah the readme is already written assuming I release the new code-d release finally. Currently you still need to do it manually. When manually adding the script in `setupCommands` of my cppdbg configuration: ``` { "description": "Load D GDB type extensions", "ignoreFailures": false, "text": "-interpreter-exec console \"source /path/to/gdb_dlang.py\"" } ``` It said `Undefined command: "import"` referring to line 1 `import gdb.printing`. It looks like it's interpreting `gdb_dlang.py` as a shell script, so I changed `source` to `python`, which gives the error "Python scripting is not supported in this copy of GDB". I have `GNU gdb (Debian 8.2.1-2+b3) 8.2.1`. Maybe my version is too old (I'm used to that on Debian), or I need to install some other module. I'll look into it later. oh that's not good, I just saw it's only enabled when built with python support, so some package maintainers might not choose to do so. Considering this is the only real way to get this working however I don't think I have another choice than assume the user has a GDB with python enabled.
Debugging improvements - Visual Studio Natvis, GDB, LLDB
I have created editor independent pretty printers / visualization files for Visual Studio's debugger\*, GDB and LLDB. The script and setup guide are available here: https://github.com/Pure-D/dlang-debug If you want to, please try them out, they make each of the debuggers a lot more capable at debugging D! If you find any bugs or tested what is untested in the README, please consider opening issues / making PRs. The files all add support for: - string/wstring/dstring (GDB and VSDBG take length as max length, LLDB can actually read over null bytes) - arrays (LDC, partially with DMD) - associative arrays (LDC, very partially with DMD) These debug configurations have been tested with VSCode and will all be bundled with next code-d release. An alpha can be found on Discord. Other editors will also work, Visual Studio can also use the Natvis file. Additionally these scripts could be used to add debugging support to standard library types / popular data types. If you have ideas for some you commonly use and want to debug, post a reply here or make an issue. \*: only when program is compiled with -gc
Re: sumtype 0.10.0: multiple dispatch
On Thursday, 24 September 2020 at 02:28:11 UTC, Paul Backus wrote: [...] - DUB: https://sumtype.dub.pm - Github: https://github.com/pbackus/sumtype Seems like dub.pm is still down, has been broken since like 6 months now :/ But your library looks really powerful, would love to see sumtype be included in phobos!
Re: Github Actions now support D out of the box!
On Friday, 21 August 2020 at 10:01:21 UTC, Dennis wrote: On Friday, 21 August 2020 at 02:03:40 UTC, Mathias LANG wrote: I ended up picking up the project, after working with actions extensively for my own projects and the dlang org, and my PR was finally merged yesterday (https://github.com/actions/starter-workflows/pull/546). Excellent! One thing is confusing me about the template: why is `--compiler=$DC` passed to dub? Does it use the wrong compiler without it? dub will use the correct compiler as long as it's the only D compiler you install. I agree this could be improved by omitting that argument.
Re: MetaCall Polyglot is now available form D
On Friday, 14 August 2020 at 07:59:23 UTC, Andrea Fontana wrote: On Tuesday, 4 August 2020 at 22:25:19 UTC, Vicente Eduardo Ferrer Garcia wrote: [...] If someone is interested in the D port you can find the source here: https://github.com/metacall/dlang-port Nice! Maybe you can use a bit of syntax sugar for D. Check this example: https://run.dlang.io/is/TKkmbe Andrea here is some alternative syntactic sugar with opDispatch: https://run.dlang.io/is/cdcLux
Caching dependencies on GitHub Actions CI
Hello everyone, I have made a GitHub action which caches the output of `dub upgrade` and build results, meaning it will cache and restore both ~/.dub and **/.dub across builds. Using dub's native caching mechanism which checks for outdatedness with compiler and compilation options makes this an excellent option to speed up CI build times. Additionally this action checks the output of the `dub upgrade` command to see if it failed due to a network failure or due to some other reason. In case of a network failure it will retry up to 3 times so the registry may randomly be unavailable in an upgrade. In serve-d this has made `dub upgrade` never fail in the commits since I introduced that 3x run with falloff. The action can be found here: https://github.com/WebFreak001/dub-upgrade https://github.com/marketplace/actions/dub-upgrade and can be added like so: (simple example without executable caching) steps: - uses: actions/checkout@v1 - uses: dlang-community/setup-dlang@v1 # install D compiler & Dub with: compiler: dmd-latest - uses: WebFreak001/dub-upgrade@v0.1 - name: Run tests # do whatever with upgraded & fetched dependencies run: dub test Executable caching means running another cache-only action at the end of your workflow which caches all the temporary output binaries. This will make dub skip compilation of the dependencies on the next run saying they are up-to-date. How to do this is described in the README. This action is currently beta software (I just made it from start to finish in the past 80 minutes and I noticed quite a few typos in the release changelogs so there might as well be quite a few typos in the code) but if it runs well I will release it as stable soon enough.
Re: Release of std.io v0.3.0
On Sunday, 26 July 2020 at 17:09:07 UTC, Steven Schveighoffer wrote: I have released a minor improvement to std.io [1], which adds support for opening the standard handles (stdin, stdout, stderr) [2]. In order to make this work, I also had to add a feature to IOs that allows you to temporarily use a file descriptor/handle [3]. As of now, it hasn't updated on code.dlang.org, but it should be soon. With this, I'm going to focus next on making an iopipe/io layer that can replace write[f]ln and friends. -Steve [1] https://code.dlang.org/packages/io [2] https://martinnowak.github.io/io/std/io/driver.html [3] https://martinnowak.github.io/io/std/io/file/File.this.html very cool, will this replace std.stdio? Will there be an API similar to the old one for upgrading? I know on Windows low level Console output is very different from File output, is a console API in scope for std.io or would that rather be a new module? It could also handle code page setup and console mode and stuff there.
Re: Quick Start for Hunt Framework!
On Wednesday, 3 June 2020 at 11:50:01 UTC, Andre Pany wrote: On Wednesday, 3 June 2020 at 11:05:24 UTC, WebFreak001 wrote: On Wednesday, 3 June 2020 at 07:44:24 UTC, Greatsam4sure wrote: On Wednesday, 3 June 2020 at 05:11:47 UTC, zoujiaqing wrote: Look this: https://github.com/huntlabs/hunt-framework/wiki/Quick-Start Thanks for this. We still need a more detail documentation and better tutorial. For example how do I build my desire ui? Can you guys not discuss with webfreak to add hunt project to code-d, so that anyone can just create a hunt project by a single click? hi, I wanted to add hunt for a while but the project creator is pretty dated code. I would much rather like to remove it from code-d and make a separate more flexible extension for auto generating projects (and update and provide all the templates using an API) For this scenario the dub skeleton functionality (sub package init/init-exec) perfectly fits. Just run the dub init command with -t MAIN_PACKAGE automatically from code-d. PS. Unfortunately `init` sub package is not implemented yet, but there more sophisticated `init-exec`. Kind regards Andre Yeah I was thinking of supporting that with the new version, but because it requires network access to obtain these templates I would only offer those for library packages and still keep all the basic templates machine local, bundled with code-d. I have looked at existing extensions for this. Some didn't want to provide an API (keep it simple to user folders only) or some would have required a bigger rewrite to support a useful API. So I'm just considering to make my own extension for this and ship it as dependency of code-d so it's auto-installed.
Re: German D tutorial: Sichere Docker images für cloud Anwendungen erstellen
On Friday, 29 May 2020 at 15:49:31 UTC, Andre Pany wrote: Hi, This tutorial describes how to run a vibe-d http server within a docker scratch image for the purpose of security. https://d-land.sepany.de/tutorials/cloud/sichere-docker-images-fuer-cloud-anwendungen-erstellen/ Kind regards Andre Sehr schick. Jetzt wo Alpine auch D unterstützt, ist es schon möglich das ganze auch über Docker zu verwenden? (anstatt ubuntu:focal als base) Ich würde denken dass das die erste Build Zeit verbessern wird weil weniger Dependencies geladen werden. Bin mir jetzt aber nicht sicher ob das danach immer noch einen Vorteil bietet. Linken die Alpine D compiler mit musl C? Könnte ja sein dass das ganze Image dadurch sogar noch kleiner wird.
Re: Quick Start for Hunt Framework!
On Wednesday, 3 June 2020 at 07:44:24 UTC, Greatsam4sure wrote: On Wednesday, 3 June 2020 at 05:11:47 UTC, zoujiaqing wrote: Look this: https://github.com/huntlabs/hunt-framework/wiki/Quick-Start Thanks for this. We still need a more detail documentation and better tutorial. For example how do I build my desire ui? Can you guys not discuss with webfreak to add hunt project to code-d, so that anyone can just create a hunt project by a single click? hi, I wanted to add hunt for a while but the project creator is pretty dated code. I would much rather like to remove it from code-d and make a separate more flexible extension for auto generating projects (and update and provide all the templates using an API)
Re: DIP1028 - Rationale for accepting as is
On Wednesday, 27 May 2020 at 10:07:48 UTC, Johannes Loher wrote: Am 27.05.20 um 11:50 schrieb Walter Bright: [...] Un-annotated C declarations should be a red flag to any competent QA team. Recognizing a false @trusted is a whole lot harder. [...] Also in my opinion, a competent QA department should carefully look at any @trusted code /declarations. Maybe it is not a "red flag" but it is definitely something that needs to be checked with extra care. I think additionally we shouldn't make D code review harder to do than it needs to be. For a reviewer "something correct which is missing" is harder to pick up than "something wrong which is there" (@trusted/@system attributes) When I, as an incompetent but trying QA department, come across a code change introducing a new module wrapping a C library and all tests pass, I would most likely not notice that the author did not type `@system:`. If there was an `@trusted:` at the top of the file it would be picked up by D-Scanner and help in code review. And well if someone slapped `@safe:` at the top of the file... read on: Someone in this thread wrote something like "@safe" should be forbidden on functions without method body and instead only use @trusted or @system. I think it might even be you who brought it up? I love the idea of forbidding @safe when the compiler can't actually check the content of a function. @safe, @trusted and @system could then have perfect definitions without edge cases. And you would change the mangling of @safe and @trusted to be the same which was also brought up in this thread.
Re: Hunt Framework 3.0.0 Released, Web Framework for DLang!
On Friday, 8 May 2020 at 06:41:59 UTC, Jan Hönig wrote: On Thursday, 7 May 2020 at 05:04:12 UTC, zoujiaqing wrote: On Wednesday, 6 May 2020 at 22:28:28 UTC, Dukc wrote: [...] I have a somewhat stupid question. I asked it on reddit, but I got no answer there. I haven't done much with web or networking in general until now, thus excuse my ignorance. What is the difference between hunt and vibe-d? hunt and vibe-d are different libraries, different code base, no dependencies between them two. If you use the Hunt Framework you also get a lot more functionality for web development than just the basics. vibe.d mostly just provides the basics with a few extra convenience things a framework would offer. Hunt Framework on the other hand seems like it has been created especially for big projects in mind with dependency injection, MVC and some other common coding patterns.
Re: describe-d: an introspection library
On Monday, 13 April 2020 at 12:11:03 UTC, bogdan wrote: Hi! I wrote this small `describe-d` library to allow me to do more readable introspection in some of my projects. Any feedback is appreciated! Thanks, Bogdan [1] https://gitlab.com/szabobogdan3/describe-d [2] https://code.dlang.org/packages/describe-d cool library, looks really useful for writing big introspection projects, but on the other hand also looks like this would significantly increase compilation time currently. Have you done any benchmarks how your methods compare (RAM, CPU time) to traits? While I love the syntax and the idea, I think with current CTFE and templates it would be quite a big hit to use in a project.
Re: DustMite: the General-Purpose Data Reduction Tool (from the D Blog)
On Monday, 13 April 2020 at 13:06:30 UTC, Mike Parker wrote: Vladimir has contributed to the blog an article on the evolution of DustMite, looking at some of the challenges he had to overcome along the way. The blog: https://dlang.org/blog/2020/04/13/dustmite-the-general-purpose-data-reduction-tool/ Reddit: https://www.reddit.com/r/programming/comments/g0ihse/dustmite_the_generalpurpose_data_reduction_tool/ very nice article! Before I was never sure what I could even use dustmite for and rarely ever used it, but having been shown all these use cases here gives me a lot of ideas for how to potentially use it. I really like all the diagrams and animations in the blog post too, they make it a lot more intuitive to grasp what was being done. Though I think some diagrams could have used a little more labels on what the colors, shapes and numbers mean. Also for the performance changes: what do the numbers mean in the diagram there? Is higher better? What exactly is the unit of these numbers? Should I even read it from top to bottom or from bottom to top like usual git logs? Why did it jump from 487 to 200 and is that good or bad?
Re: Blog Post #0106: D-specific Stuff for GUI Programming II
On Friday, 3 April 2020 at 09:40:02 UTC, Ron Tarrant wrote: Today we pick apart a D-specific implementation of the Observer pattern in preparation for a GUI use-case we'll look at next time. You can find the article right here: https://gtkdcoding.com/2020/04/03/0106-dlang-ui-snippets-ii.html maybe you should mention std.signals because the observer pattern is already implemented in phobos in that module :)
Re: Tracing D Applications
On Sunday, 15 March 2020 at 09:47:52 UTC, drug wrote: 15.03.2020 03:19, WebFreak001 пишет: On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote: This post by Alexandr Druzhinin shows three different approaches to tracing, using writef and external tools. Blog: https://dlang.org/blog/2020/03/13/tracing-d-applications/ Reddit: https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ doesn't load here :/ What do you mean? blog page loads forever and then times out just like in https://forum.dlang.org/thread/vyzzptpssxqbfveeb...@forum.dlang.org
Re: Tracing D Applications
On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote: This post by Alexandr Druzhinin shows three different approaches to tracing, using writef and external tools. Blog: https://dlang.org/blog/2020/03/13/tracing-d-applications/ Reddit: https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ doesn't load here :/
Re: code.dlang.org reliability update
On Monday, 2 March 2020 at 19:17:59 UTC, Sönke Ludwig wrote: As of yesterday, code.dlang.org now points to a more powerful dedicated server that can host the DUB registry without the danger of freezing due to excessive swapping - this is what happened on the 26th last month [1]. In addition to that, the server that previously hosted the registry is now used to run an official mirror, reachable at codemirror.dlang.org. This will be configured as a built-in fallback server starting with DMD 2.091.0/DUB 1.12.0 and, at least in theory, will lead to an uptime of virtually 100%. To make use of the mirror today, it is also possible to configure it in DUB's settings.json as a custom registry: { "registryUrls": ["https://codemirror.dlang.org/;] } settings.json is found/needs to be created in %APPDATA%\dub\ on Windows and in ~/.dub/ on all other systems. The custom entry should be removed once DUB 1.12.0 is used, to avoid redundant requests in certain situations. [1]: https://forum.dlang.org/thread/ontwwoxuhnoczcoka...@forum.dlang.org thank you very much for this Sönke! Is throwing so much more RAM (= money) and power (= more money) at it going to be a good solution in the long run though? Is there maybe a plan for remaking the registry architecture like adding better supported mirrors and load balancing to it?
Re: code.dlang.org downtime
On Monday, 16 December 2019 at 11:04:38 UTC, Sönke Ludwig wrote: As you may have already noticed, the main registry server, code.dlang.org got unreachable yesterday. This was caused by an old VPS of mine getting terminated. The registry had already moved to a different server years ago, but, without me realizing it, the DNS entry still pointed to the old one, with a "temporary" HTTP proxy forwarding to the new server being set up. By now the DNS entry has been corrected, an up-to-date TLS certificate is in place, and the registry is running stable. There are still reports of people not being able to access code.dlang.org, which is apparently caused by intermediate DNS servers still reporting the old IP address and should start working during the next few hours. A temporary workaround is to specify --registry=http://31.15.67.41/ on the dub command line. Unfortunately both fallback servers have been down for a while now, so that this resulted in a total blackout. I plan to move the main registry to a powerful dedicated server in January, which will fix all memory resource related issues that sometimes show up, and could then keep the current VPS as a relatively reliable fallback server. Both together should guarantee virtually 100% uptime, although more fallback servers are of course highly desirable. In addition to that, I plan to separate the repository polling process form the web and REST frontend, as the former appears to be the main cause for failures (a GC memory leak of some kind and a possibly codegen related crash when being compiled with DMD being the two known issues, which both need further investigation). yay thanks for fixing this so soon. In my experience having a background task fetching the whole time with vibe.d has nearly always been a bad idea in terms of memory for me. These days I started using cronjobs which run every so often instead and let the OS do all the memory freeing which works a lot better. This also scales a lot better because all workers just read/write to the database server and can be increased or decreased at any point. Have you maybe also considered making the package zip downloads a separate server? It could be load balanced using nginx as well.
Re: release of code-d 0.21.0 + serve-d 0.5.1
On Tuesday, 19 November 2019 at 05:12:11 UTC, uranuz wrote: Hello! When code-d attempts self upgrade it prints the followinf output to console of VS Code: """ Installing DCD: DCD is outdated. Expected: 0.11.1, got none Downloading from https://github.com/dlang-community/DCD/releases/download/v0.11.1/dcd-v0.11.1-linux-x86_64.tar.gz to /home/uranuz/.local/share/code-d/bin Zip file already exists! Trying to install existing zip. Extracting download... [...] [...] uhh I didn't archive that (it comes from DCD) and it worked with basically all other linux so far. Maybe it got corrupted during the download, deleting it and letting it redownload should fix it in this case.
release of code-d 0.21.0 + serve-d 0.5.1
hi everyone, after a long time there is finally a new update for my Visual Studio Code extension "code-d" serve-d is my Language Server Protocol implementation in D using workspace-d as a backend. It implements a lot of features and is highly optimized for use with code-d. code-d is my D extension for the code editor Visual Studio Code by Microsoft. It is currently the most popular/most installed extension for D on the vscode marketplace and offers a lot of functionality, especially for beginners. Especially after this update it is pretty stable and can be used productively. This updates brings a lot more stability improvements, lots of bug fixes and a few cool new bigger features. With this post I want to highlight: - Precompiled binaries on all platforms - OS X users will no longer have to wait for serve-d to compile from source, nightly (previously beta stream) builds are now always tested first and also available precompiled for all platforms. This also means you no longer need a powerful machine to use serve-d on these 3 OSes. There is also a new pre-release setting which will get you new features more quickly but still relatively stable. I would be happy to have as many people as possible who report bugs to switch to this channel. This makes it extremely easy to start out with D by simply installing code-d in vscode and letting it setup everything plus guiding you to installing a D compiler. Only on windows you might still need to restart your PC to apply PATH changes. Windows installation is in general more stabilized on PCs now which have never had D installed before. - New/Improved Code actions - The "Implement Interface" command is now very well usable in common projects. I am not the most heavy user of this, but occasionally this is extremely helpful and I think people who code D a bit more Java-like will certainly like this feature. - Big dub build performance improvements - linting is usually at least 2x faster and is fixed in general now. - Issue parsing - build tasks now have a built-in issue parser, there are build tasks contributed by default which are editable now and the built-in dub lint on save can also show "instantiated from..." issues a lot smarter now - Long standing bugs - * a lot of startup issues fixed * dml autocompletion fixed * closing files didn't make warnings properly disappear / was badly configurable * several sort import bugs fixed * code-d compilation bugs fixed * some exit error message boxes on windows fixed * GC now run regularly * a lot of syntax highlighting improvements - Other changes - There are some snippets for Diet now included. These will be replaced with a proper emmet generator soon though so they aren't advertised too much, but it should already improve life. Read the full changelog on https://github.com/Pure-D/code-d/blob/master/CHANGELOG.md Install in Visual Studio Code by searching webfreak.code-d or see https://marketplace.visualstudio.com/items?itemName=webfreak.code-d serve-d binaries: https://github.com/Pure-D/serve-d
Re: Hunt 1.4.0 released
On Tuesday, 15 October 2019 at 06:17:00 UTC, zoujiaqing wrote: On Tuesday, 15 October 2019 at 06:16:07 UTC, zoujiaqing wrote: Hunt is an extension library of D language standard library, which is equivalent to boost in C++. The core of Hunt is event-driven network IO base library. It supports epoll, IOCP and kqueue. It has excellent IO performance and friendly API. You can find some sample code in examples: https://github.com/huntlabs/hunt/tree/master/examples very cool, but it's really desperately missing documentation additionally to the examples!
Re: setup-dmd GitHub action
On Thursday, 12 September 2019 at 20:46:42 UTC, Dennis wrote: On Thursday, 12 September 2019 at 19:07:30 UTC, WebFreak001 wrote: ... So I've seen GitHub actions pop-up suddenly but I can't figure out what it is. Googling it gives me some high-level generic description about "workflow automation" but I don't see what concrete problem it's trying to solve. Can anyone please explain what's in it for the hobbyist D coder? Also I've seen some articles about it dating back to 2018, but apparently you can only recently sign up for the beta. it's like Travis CI but directly on GitHub (also it supports running your tests and workflows on windows) I got my beta access today which is why I even got to make this
setup-dmd GitHub action
I made a GitHub Actions action and published it on the GitHub marketplace which sets up DMD on Windows, Linux and OSX in the virtual environment on a GitHub Actions runner. It supports any stable release (theoretically also below 2.064) and any pre-release denoted with the -beta.1 suffix for example. It can also use the nightly builds from the downloads page and it's very easy to use. I first tried to use the dlang runner which has an open PR on the actions repository right now but it turned out it limits it to running as docker and only ubuntu, so I instead made this typescript action which runs on all operating systems and uses the APIs to download & cache the tools so the builds are really quick. Marketplace: https://github.com/marketplace/actions/setup-dmd GitHub: https://github.com/WebFreak001/setup-dmd (well while writing this forum post I saw that there is another project which does the same but now it's already too late, I did search for something when I started working on this when it wasn't there yet :p)
Re: gtkDcoding Blog Post #0007 Now Live
On Wednesday, 6 February 2019 at 13:28:14 UTC, Ron Tarrant wrote: I forgot to do this yesterday (the announcement, not the post) so I'm doing it now. It's not so much about pressing buttons as it is releasing them (which conjures images of a catch-n-release mouse trap, but that's another story). the link would have been nice :) http://gtkdcoding.com/2019/02/05/0007-button_release.html
Re: Spasm 0.1.3 released - with bindings to web apis
On Wednesday, 30 January 2019 at 08:26:22 UTC, Sebastiaan Koppe wrote: On Wednesday, 30 January 2019 at 00:22:15 UTC, WebFreak001 wrote: the underrun example looks really cool! I'm on linux but I don't use docker Wait, you are on linux. Why doesn't your ldc have wasm target? How did you install it? I will try out making something with spasm soon! Cool. I install LDC from the arch repositories, which should just be the prebuilt binaries from the ldc repo I think
Re: Spasm 0.1.3 released - with bindings to web apis
On Sunday, 27 January 2019 at 09:22:19 UTC, Sebastiaan Koppe wrote: On Saturday, 26 January 2019 at 15:34:15 UTC, WebFreak001 wrote: amazing! I would really like to try it but it seem the precompiled LDC version doesn't support the wasm output and I have no idea what that wercker stuff is you mentioned or how to use the container you sent with compiling on my local filesystem and not inside a sandbox :/ Make sure you have installed docker on your machine (are you running windows?), go inside your workspace directory and run `docker run --rm -ti -v $PWD:/app --workdir /app dlang2/ldc-ubuntu:1.13.0 /bin/bash` This will start a docker container with ldc 1.13.0 installed on ubuntu. It will also mount the current directory under `/app`. Inside the container you can just run dub, etc. And on your host you can just edit the files. Still looks great having this, especially now with all these APIs. I would really like to try making WebGL run with this in the future Have you seen the underrun example? the underrun example looks really cool! I'm on linux but I don't use docker, that command you sent is something I would have honestly never found out myself, it's just too cryptic. I will try out making something with spasm soon!
Re: GtkD Blog Now Up and Running
On Tuesday, 29 January 2019 at 21:47:06 UTC, Ron Tarrant wrote: On Tuesday, 29 January 2019 at 21:13:17 UTC, WebFreak001 wrote: hey it's easy, you can also use SDL! :p dub.sdl: name "my-awesome-gtk-app" dependency "gtk-d" version="~>3.8.5" ... and that's it already actually. It will compile everything in the "source" folder and add the dependencies with it. And well you will have to add DLLs and stuff like you would need to with pure dmd, gtk-d doesn't ship any DLLs. Okay, so I create a file, name it dub.sdl and put this in it: name "my-awesome-gtk-app" dependency "gtk-d" version="~>3.8.5" And this goes in the same folder as the code file. And then... what? I type: dub? Just for the record, this is completely different from what I was reading before about this dub stuff. yeah just put it in your project folder, not the source folder, so it looks like this: source/ app.d some_other_file.d dub.sdl then you just run `dub` in the folder with dub.sdl A minor "limitation" can be that the files must follow their filenames as modulenames more strictly (otherwise weird errors could happen if you add `module bar;` in foo.d for example)
Re: GtkD Blog Now Up and Running
On Tuesday, 29 January 2019 at 20:53:53 UTC, Ron Tarrant wrote: On Friday, 25 January 2019 at 22:17:06 UTC, WebFreak001 wrote: I think dub is a lot more beginner friendly and easier to setup + users will probably want to add some dependencies in the future of their app. LOL! Not my experience with dub, but I take your point. I haven't actually gone back to try dub again. I have a mental block when it comes to json files. Don't know why, it's just there. hey it's easy, you can also use SDL! :p dub.sdl: name "my-awesome-gtk-app" dependency "gtk-d" version="~>3.8.5" ... and that's it already actually. It will compile everything in the "source" folder and add the dependencies with it. And well you will have to add DLLs and stuff like you would need to with pure dmd, gtk-d doesn't ship any DLLs.
Re: Spasm 0.1.3 released - with bindings to web apis
On Saturday, 26 January 2019 at 10:24:05 UTC, Sebastiaan Koppe wrote: Spasm is a betterC library for web development that uses LDC to compile to WebAssembly, and I just released a major update. It now has bindings to most web api's, like the dom, fetch, audio, webgl, etc. So you can do things like this: --- import spasm.bindings; import spasm.dom; import spasm.types; extern (C) export void _start() { auto elem = document.createElement("div").as!HTMLElement; elem.style.backgroundColor = "green"; elem.innerHTML = "BLA BLA!"; elem.addEventListener("mouseover",(event){ console.log("onmouseover"); console.log(event); console.log(event.as!MouseEvent.clientX); }); auto root = document.querySelector("body").front; root.appendChild(elem); } --- And have it Just Work. See the repo for more info: https://github.com/skoppe/spasm It is still a WIP but I am getting there. amazing! I would really like to try it but it seem the precompiled LDC version doesn't support the wasm output and I have no idea what that wercker stuff is you mentioned or how to use the container you sent with compiling on my local filesystem and not inside a sandbox :/ Still looks great having this, especially now with all these APIs. I would really like to try making WebGL run with this in the future Great work, keep it up!
Re: GtkD Blog Now Up and Running
On Friday, 25 January 2019 at 21:16:59 UTC, Ron Tarrant wrote: Hi y'all, As of January 11, 2019, http://gtkdcoding.com is up. It's a blog, it's a github page, it's simple examples of how to use GtkD for all that GUI stuff. My approach is to lay out a firm foundation for both imperative and object-oriented paradigms, then build from there, taking things one step at a time. This being Friday, the 4th post went up this morning. Please do let me know if you find it useful. And why did I wait until now to announce? Well, on day one, it seemed a bit silly to announce with only one post. After the second and third, well... I still didn't feel there was enough to warrant excitement. But four posts? Now that's something to speak up about, ain't it? Yup. That's what I thought, too. nice! I love seeing tutorials for D stuff, and GtkD is something I used to use for GUI applications a lot too. I only skimmed over it a bit, maybe you should also add a post about how to use GtkD with dub instead of manually invoking the compiler. I think dub is a lot more beginner friendly and easier to setup + users will probably want to add some dependencies in the future of their app. When I tried it with dub it was just adding the dependency and everything worked on Linux, but I couldn't make it run on windows with that. (though I only used the app on Linux so that was not a problem for me) Anyway, great seeing someone making GtkD tutorials, keep it up +1
Re: hunt library 1.0.0 released!
On Tuesday, 15 January 2019 at 14:58:01 UTC, Brian wrote: A refined core library for D programming language. Core modules: [...] nice! Always cool seeing new frameworks for existing stuff. How does this compare to vibe.d?
Re: code-d 0.20.0 - serve-d 0.4.0 - Happy new year!
On Sunday, 13 January 2019 at 21:40:43 UTC, Murilo wrote: On Monday, 31 December 2018 at 17:42:46 UTC, WebFreak001 wrote: [...] It would be a good idea to publish that on the facebook group for users of D. There you would be able to spread the information fast. It is called Programming in D. Here is the link: https://www.facebook.com/groups/662119670846705/ sorry I don't use Facebook, but I would be glad if anyone who posts stuff there could share this :)
Re: code-d 0.20.0 - serve-d 0.4.0 - Happy new year!
On Tuesday, 1 January 2019 at 12:54:13 UTC, ezneh wrote: I sadly get this error when updating to the new version: Installing DCD Downloading from https://github.com/dlang-community/DCD/releases/download/v0.10.2/dcd-v0.10.2-windows-x86.zip to C:\Users\Ezneh\AppData\Roaming\code-d\bin Failed installing: std.net.curl.CurlException@std\net\curl.d(4340): Peer certificate cannot be authenticated with given CA certificates on handle 3803558 I'll try with uninstalling & reinstalling it to see if it helps. some people seem to be experiencing issues with downloading DCD from github on Windows because of the certificates, I don't know what it is yet but I think this might resolve itself with time
Re: code-d 0.20.0 - serve-d 0.4.0 - Happy new year!
On Tuesday, 1 January 2019 at 04:17:18 UTC, learnfirst1 wrote: On Monday, 31 December 2018 at 17:42:46 UTC, WebFreak001 wrote: Hi guys! I'm proud to announce the next code-d release with a lot of improvements in stability and usability. [1]: https://github.com/Pure-D/code-d [2]: https://github.com/Pure-D/serve-d [3]: https://forum.dlang.org/thread/hhfttrqwvgedbayts...@forum.dlang.org Great work, try on mac it start work . How can i turn off the Dscanner warnning ? And seems it can not understand any of template return type, and alias this. hi, you can disable dscanner warnings by disabling d.enableStaticLinting in your user settings Do you mean it doesn't understand these things in auto completion? It uses DCD for auto completion so it will be the same as most other editors and it will eventually get fixed in the future.
code-d 0.20.0 - serve-d 0.4.0 - Happy new year!
Hi guys! I'm proud to announce the next code-d release with a lot of improvements in stability and usability. code-d[1] is the Visual Studio Code extension for my Language Server serve-d[2] - I have been working on this for a while and wanted to get as much as possible in before the end of the year. You might have heard of dls[3] which is basically the same as serve-d, just from another person which is also really cool. My focus is more on improving vscode specifically and having a stable runtime there, but you can make it work with other LSP compatible editors aswell yourself. As I said, there have been a lot of new big features, you can view a full changelog under https://github.com/Pure-D/code-d/blob/master/CHANGELOG.md To summarize: == The biggest features == - Embedded dpldocs.info - press ctrl-q ctrl-q (changable) to open an embedded documentation browser inside vscode, this is a lot more productive than always switching between browser and vscode. You can also have them in multiple tabs in vscode - vibe.d Diet template autocompletion - Are you doing web dev with diet? Diet templates now complete HTML tags as well as D code! This is still the first version of the auto complete so expect bugs and some stuff not working, but for many places this already works great and makes diet and vibe.d a lot more accessible. - New syntax highlighting - the old syntax was buggy and often faulty, it has been updated to be more consistent and all of phobos looks good with it by testing random samples and scrolling through the whole files. == other great stuff == - code-d and serve-d are a lot more stable for a lot more different projects, expect less crashes (but there might still be issues with missing dependencies for auto completion, just no longer causing the entire plugin to halt) - Implement interface got a lot better - no longer will it insert duplicate methods if you implement an interface twice and it's all a lot more accurate with more tests to make the inserted code actually correct and compilable - The argument snippets which were enablable per d.argumentSnippets for a while have become a lot more useful. If you use the vscode Java extension by Red Hat you can enable this to get the same auto completion of method arguments as you get in there, which is basically inserting snippets of "function(arg1name, arg2name, arg3name)" - You can convert between dub.json and dub.sdl via a button click in the editor now - Implemented outline view and breadcrumbs in vscode Many bugs have also been fixed, especially with configuration enabling/disabling features, so check out the changelog for the rest. This serve-d version ships with dfmt 0.9.0 and dscanner 0.6.0 and it will download DCD 0.10.2 Get the extension now: https://marketplace.visualstudio.com/items?itemName=webfreak.code-d or search for "D programming language" inside vscode and click the code-d one. It requires at least Visual Studio Code 1.29 Wish you all a happy new year and a good start into 2019! I want to eventually write a blog post about some features you might not know about in code-d and how to be more productive using all of its features, because it really has a ton a lot of people don't know about. Tweet to this: https://twitter.com/WebFreak001/status/1079790275940286464 [1]: https://github.com/Pure-D/code-d [2]: https://github.com/Pure-D/serve-d [3]: https://forum.dlang.org/thread/hhfttrqwvgedbayts...@forum.dlang.org
Re: DCD, D-Scanner and DFMT : new year edition
On Monday, 31 December 2018 at 07:56:00 UTC, Basile B. wrote: DCD [1] 0.10.2 comes with bugfixes and small API changes. DFMT [2] and D-Scanner [3] with bugfixes too and all of the three products are based on d-parse 0.10.z, making life easier and the libraries versions more consistent for the D IDE and D IDE plugins developers. [1] https://github.com/dlang-community/DCD/releases/tag/v0.10.2 [2] https://github.com/dlang-community/dfmt/releases/tag/v0.9.0 [3] https://github.com/dlang-community/D-Scanner/releases/tag/v0.6.0 IMPORTANT: if you have downloaded the v0.10.2 DCD binaries before 2018-12-31T12:30:00Z, please delete those and redownload because the binaries were broken; they reported version v0.1 instead of v0.10.2 and this could mess with your IDE if you use one for DCD!
Re: DCD xmas edition
On Wednesday, 26 December 2018 at 21:48:25 UTC, Basile B. wrote: On Wednesday, 26 December 2018 at 21:31:52 UTC, WebFreak001 wrote: On Monday, 24 December 2018 at 13:24:30 UTC, Basile B. wrote: By some chances some cool new feature were added latest week, justifying a new minor release [1] [1] https://github.com/dlang-community/DCD/releases/tag/v0.10.0 really cool! Are the pre-compiled binaries getting added to it soon? I want to push this to code-d/serve-d before I release the next release. They used to be automatically generated. I don't know what has happened this time. it said "Skipping a deployment with the releases provider because this is not a tagged commit", maybe it's just missing a rebuild trigger because it was building before that was tagged as release. I'm gonna try to make it rebuild
Re: DCD xmas edition
On Monday, 24 December 2018 at 13:24:30 UTC, Basile B. wrote: By some chances some cool new feature were added latest week, justifying a new minor release [1] [1] https://github.com/dlang-community/DCD/releases/tag/v0.10.0 really cool! Are the pre-compiled binaries getting added to it soon? I want to push this to code-d/serve-d before I release the next release.
Re: asdf json library moved to libmir
On Wednesday, 11 July 2018 at 21:42:45 UTC, yannick wrote: Hi All, Since i'll be leaving Tamedia (who sponsored development of Asdf) and it's not under active use anymore here we decided to donate it to libmir. Asdf has a few nifty features that make it perfect for reading large amounts of json lines and transforming data. For an example use case see je, the json to csv transformer app ( https://github.com/tamediadigital/je ) I still think that it is by far the easiest to use and fastest production grade Json Library for D. Maybe it should be renamed to reflect that, proposals welcome. cheers, y cool to hear that you don't let that library die. I like asdf but I never really had a usecase for it. When using vibe.d I just parse my json using their serializer. Additionally I never have the case of my input being line separated json, for example when reading a dub registry dump it's a 40MB json array where I don't really see application for asdf, or can it also be used with generic arrays that aren't line separated? Anyway pretty cool library, would definitely use it if I ever see line separated json data in the wild.
Re: Hunt framework 1.0.0 released
On Tuesday, 5 June 2018 at 07:25:33 UTC, Brian wrote: We are pleased to announce an official version of hunt 1.0 , This is an important milestone release! [...] cool! Is the hunt-skeleton always stable? I can add it as template to the code-d templates, I think it will make it a lot easier to get into.
Re: The dlang-community releases DCD 0.9.3 and D-Scanner 0.5.2
On Wednesday, 25 April 2018 at 03:59:12 UTC, wangwei wrote: On Monday, 23 April 2018 at 17:26:49 UTC, Seb wrote: [...] I use the dmd portable version and vscode with code-d, the dcd just failed (d.ext.dcdFail) no matter dcd is installed automatically by code-d or by (source + dub), I definitely need the binary release. Dscanner works great. Once I have used Emacs + company-dcd in Linux, it works well although it doesn't look pretty :) Buying a laptop with intel + nvidia (optimus) is a huge pain in installing linux on it. huh but DCD comes with a prebuilt binary for windows with code-d and I have never seen it fail on linux
Re: DPushBot for Discord
On Thursday, 19 April 2018 at 20:53:40 UTC, WebFreak001 wrote: Hi, I made a tool which periodically monitors dub for new packages and a DFeed subscription for new posts and then sends updates to a discord webhook. If you host it yourself you can put in any subscription ATOM feed, so you could monitor your own projects, etc. and broadcast them on your discord server. It would probably be very easy to port this to slack too. Currently this is deployed on the D Code Club (which you totally should join, all the cool stuff is on there and we have nearly 200 members) if you want to see it live: https://discord.gg/bMZk9Q4 (to be honest, this is just a test post to check if the DFeed thing is working properly with this feed) oops forgot the source code: https://github.com/WebFreak001/d-push-bot
DPushBot for Discord
Hi, I made a tool which periodically monitors dub for new packages and a DFeed subscription for new posts and then sends updates to a discord webhook. If you host it yourself you can put in any subscription ATOM feed, so you could monitor your own projects, etc. and broadcast them on your discord server. It would probably be very easy to port this to slack too. Currently this is deployed on the D Code Club (which you totally should join, all the cool stuff is on there and we have nearly 200 members) if you want to see it live: https://discord.gg/bMZk9Q4 (to be honest, this is just a test post to check if the DFeed thing is working properly with this feed)
Re: code-d 0.17.0 + serve-d 0.1.2
On Tuesday, 10 April 2018 at 13:11:16 UTC, evilrat wrote: On Tuesday, 10 April 2018 at 11:54:47 UTC, WebFreak001 wrote: fyi "deprecated" code-d beta and normal code-d is exactly the same plugin right now using exactly the same serve-d versions, except for the deprecation message. I wouldn't be complaining if it's not the case. With normal code-d it does remove everything in %appdata%/code-d on start, re-setting config paths(even though for exapmle dub is in PATH), downloading git repo, fails to build, and repeat, while with beta there is no such issues. I would also suggest you to add explicit --compiler=dmd switch to build invocation since for example in my case dmd was in PATH env after ldc and so ldc used by default, which of course doesn't have x86_mscoff arch. I also think it is probably better to add --build=release too, since users usually don't do debug on that binaries. No dmd has an optimization issue that it removes code making the program completely broken and freeze on IO if compiled with -O, which is implied by --build=release. I will never use build=release with dmd. What about workspaces? Let for exapmle have main project (really just a dub project with single app.d for testing library) and library project in one workspace. I don't get any autocompletion from both projects. It also doesn't seems to work with dependency that has path property set, at least not when it's relative. Is this ok? Everything dub dependency related should work, I literally use dub as a library for this. Multi workspaces in vscode aren't implemented yet though.
Re: code-d 0.17.0 + serve-d 0.1.2
On Monday, 9 April 2018 at 21:45:57 UTC, Johannes Loher wrote: Am 04.04.2018 um 20:34 schrieb greatsam4sure: [...] I just tried to get this to work, too, but I was not able to get it to work correctly. It seems that running dub fails somehow: [...] hm before it would have completely crashed workspace-d/serve-d to a point where nothing would work, now you basically only get stdlib and a guess of further import paths. Can you make a minimal test case where this happens? It is probably due to some dub.json settings. But as I use dub as a library it should work the same as just calling `dub build`
Re: code-d 0.17.0 + serve-d 0.1.2
On Friday, 6 April 2018 at 19:12:32 UTC, Wulfklaue wrote: Nice job WebFreak001 on the new changes. For the first time in years the code-d plugin works out of the box on Windows without any issues. A small tip: associate the .d file extension in the Visual Studio Code marketplace with Code-d. Currently Code-D does not show up when VSC suggests plugins for the .d file extension. uh I did do that though? Check the provides tab in the extension, it shows D