A big week in the arsd repo
Posted 2019-07-08
Blog
Articles- terminal.d gets clipboard functions, ldc 1.20 out.
- DConf keynote speaker announced: Lua architect Roberto Ierusalimschy, Named args DIP discussed
- February 3, 2020
- Adam's terminal suite explained
- Understanding mixin templates, terminal.d improvements
- My attribute-by-default proposal. Also dmd 2.090 came out.
- DConf 2020 announced: June 17-20 in London. @safe by default debated. Adam did: Android, JNI, WebSocket in arsd libs
- tar.xz, --DRT tip, dom bug fixes, more Android and JNI, link to old phobos docs
- LDC 1.19 - Android, AVR. My rant on tests, update on JNI and COM.
- Walter's string interpolation proposal is OK but not great. My Android thing nearing beta release. dub downtime explained.
- Android project update, introduction to arsd.jni
- New pattern about interface contracts
- Adam shares Windows console secrets - DO NOT USE chcp!!
- Adam's rant on benchmarks
- Socket tutorial
- November 4, 2019
- October 28, 2019
- arsd package updates, forum nonsense
- Update on Android
- Adam does iOS "goodbye world"
- September 30, 2019
- D turns 20, Adam rants on software freedom
- Named arg DIPs and my thoughts on code organization
- September 9, 2019
- I wrote about mixin templates vs string mixins on Stack Overflow
- August 26, 2019
- Bug bounty in D again - my hot take, on reusing code, a fun picture, my tentative plan for the next month
- Time invested is worth a lot
- cgi.d's new scheduler, static this tricks
- July 29, 2019
- July 22, 2019
- Solving vs managing problems
- A big week in the arsd repo
- July 1, 2019
- June 24, 2019
- June 17, 2019
- CRTP thoughts, named arguments DIP review, DConf videos now on youtube
- musings on hybrid CT/RT tests, some more progress on new web framework
- a little more webassembly
- May 20, 2019
- Adam's string interpolation proposal
- DMD 2.086 live, GCC 9 with D support formally released, DConf coming soon, links to posts on builder pattern and disallowing implicit conversions with templates, and 2d array op overloads
- template constraint error improvements coming?
- dmd 2.086 beta, dstep 1.0 released, Adam works on memory usage
- obj-c and webassembly report, tips on is expressions linked.
- new ldc, new dmd, dpp on the blog
- D's future discussed in forums
- LDC beta, DConf blog link, Adam introduces gamehelpers.d
- March 18, 2019
- LDC 1.15.0-beta1, responsive design rant
- dmd 2.085.0 released
- Obj-C interop and D without druntime code to copy/paste
- dmd beta, more info coming next time, demo of new web framework initial prototype
- automatic web interface discussion, reflection tips and tricks
- Adam busy with weather and a move, lots of community announcements
- January 28, 2019
- Working on official blog 2018 retro, C++ new wrapped, dmd reading zips?
- dmd obj-c growing, Adam static foreaches an interface to RPC
- dmd 2.084, hope for future, but busy non-D week for me
- IDE tools released, my cgi.d gets new features
- DConf announced, tip, Adam rants: mouse trap
- This Week in D is back!
I spent the last week writing a lot of D code. My new framework in cgi.d is now operational, though it still isn't quite done (notably, the timing system isn't done yet!). In this post, I'll briefly describe some of the new stuff.
Core D Development Statistics
In the community
Community announcements
See more at the announce forum.
What Adam is working on
If you follow the arsd repo on github, well first, good luck deciphering my absurd commit messages lol, but second, you'll have seen a lot of activity recently. A few new modules have been added, and some existing web stuff got bug fixes and new features.
It can now automatically pass Cgi and Session!T objects to functions as-needed. You can define your own types to get this treatment too, or do @ifCalledFromWeb!func on individual parameters to always set them to a particular value if called from the web. The idea here is to encourage you to write more functional style code which is usable from the web as well as from other parts of the code directly for easy reuse and testing.
Speaking of testing, arsd.cgi.CgiTester is a helper class for issuing mock requests with mock sessions to a request handler. Using this and dom.d, I made a recursive auto-tester for my new project in under one screen of code!
The session server now also works on non-Linux posix systems, though not super well (I just replaced epoll with poll on those systems. My goal here was to make it work for individual developers testing on their own machines rather than anything resembling production, and this is good enough for that, so it will probably stay this way for a long time.)
The arsd.cgi.WebPresenter class is also growing into actual use. Its exception handling gives a fairly usable screen, highlighting on the information that a developer will most likely need, and being expandable - like with the new webtemplate objects.
There's still a lot for me to do on all this, but it was nice to spend a week actually on D again!
I tend to work in bursts punctuating long lulls, so I don't know when I'll get back to do another big push like this, but hopefully I'll at least have time to write more details about it all next week.