Re: Start of dmd 2.064 beta program
On Saturday, 12 October 2013 at 22:16:13 UTC, Walter Bright wrote: http://ftp.digitalmars.com/dmd2beta.zip Current list of regressions: http://d.puremagic.com/issues/buglist.cgi?query_format=advanced&bug_severity=regression&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED This isn't a release candidate, in particular the documentation needs work, but we need to shake the tree for any undetected regressions. Further beta announcements go in the dmd-beta mailing list. Note that this release contains: 29 enhancements 307 dmd bugs fixed 14 druntime bugs fixed 73 phobos bugs fixed The sizes of Phobos binaries increased by a third for every OS except FreeBSD, which seems to have remained the same (created 17 Feb 2013). Aside from the FreeBSD case which is most likely a bug, is that an expected increase, or they are just compiled with some extra options for the beta, and will shrink again when the release comes? Ivan Kazmenko.
Re: Start of dmd 2.064 beta program
On Sunday, 13 October 2013 at 01:26:39 UTC, Ivan Kazmenko wrote: The sizes of Phobos binaries increased by a third for every OS except FreeBSD, which seems to have remained the same (created 17 Feb 2013). Aside from the FreeBSD case which is most likely a bug, is that an expected increase, or they are just compiled with some extra options for the beta, and will shrink again when the release comes? Just to make it clear, I mean the difference between the 2.064 beta provided by Walter and 2.063.2 release.
Re: dmd 2.064 release candidate 1
On Monday, 4 November 2013 at 08:03:55 UTC, Walter Bright wrote: http://ftp.digitalmars.com/dmd.2.064.zip http://ftp.digitalmars.com/dmd.2.064.dmg http://ftp.digitalmars.com/dmd_2.064-0_amd64.deb http://ftp.digitalmars.com/dmd-2.064-0.fedora.i386.rpm http://ftp.digitalmars.com/dmd-2.064-0.fedora.x86_64.rpm http://ftp.digitalmars.com/dmd_2.064-0_i386.deb http://ftp.digitalmars.com/dmd-2.064-0-i386.pkg.tar.xz http://ftp.digitalmars.com/dmd-2.064-0.openSUSE.i386.rpm http://ftp.digitalmars.com/dmd-2.064-0.openSUSE.x86_64.rpm http://ftp.digitalmars.com/dmd-2.064-0-x86_64.pkg.tar.xz There is always something I broke or overlooked, so let's not make an announcement yet until this is good to go. The web site needs updating, too. FreeBSD libphobos2.a not updated in 2.064 betas (and now in the release candidate, too): http://d.puremagic.com/issues/show_bug.cgi?id=11413 I don't have a FreeBSD system to test whether anything actually works, but a 23M half-year-old standard library file in the zip-archive looks just plain wrong. No library updates since February?..
Re: legacy code retreat's triva game : the D version
On Saturday, 21 December 2013 at 05:12:57 UTC, Chris Cain wrote: For more information, I've written a document on an implementation of uniform (which should be coming in 2.065, btw) which discusses the issue with just using the modulus operator: https://dl.dropboxusercontent.com/u/2206555/uniformUpgrade.pdf Looks like your new implementation has one modulo operator, compared to the previous one having two divisions. That may be the cause of speedup. The previous implementation was, by its looks, copied from C++ Boost which also uses two divisions. Do you know the reason for that? They seem to have been solving the exact same problem (strict uniformness provided that the underlying RNG is uniform). I'd like to touch a relevant point here that matters for me. In a mature randomness library, one important quality is reproducibility: there are applications where you want to use pseudo-random values, but generate the exact same pseudo-random values across different versions, computers, operating systems and language implementations. So far I have seen very few languages which provide such reproducibility guarantees for their standard library. For example, in C and C++ standard randomness library, the details were implementation-dependent all the way until the recent C++11. Python stood for long but finally broke it between 3.1 and 3.2 because of the exact same non-uniformness problem. A positive example in this regard is Java which enforces the implementation of Random since at least version 1.5. If you break the reproducibility of uniform in dmd 2.065, there should be at least a note on that in its documentation. For a mature library, I think the old implementation should also have been made available somehow. (well, there's always an option to include an old library version in your project, but...) Perhaps that's not the case for D and Phobos since they are still not stabilized. Especially so for std.random which is due to more breakage anyway because of the value/reference issues with RNG types. Regarding that, I have a point on designing a randomness library. Right now, most of what I have seen has at most two layers: the core RNG providing random bits, and the various uses of these bits, like uniform distribution on a segment, random shuffle and so on. It is comfortable when the elements of the two layers are independent, and you can compose different first layers (LCG, MT19937, or maybe some interface to /dev/*random) with different second layer functions (uniform[0,9], random_shuffle, etc.). Still, many of the useful second level functions build upon uniform distribution for integers on a segment. Thus I would like to have an explicit intermediate layer consisting of uniform and maybe other distributions which could also have different (fast vs. exact) implementations to choose from. In the long run, such design could also solve reproducibility problems: we can provide another implementation of uniform as the default, but it is still easy to set the previous one as the preferred intermediate level. Ivan Kazmenko.
Re: Facebook open sources flint, a C++ linter written in D
On Monday, 24 February 2014 at 21:07:00 UTC, Andrei Alexandrescu wrote: https://news.ycombinator.com/item?id=7293396 http://www.reddit.com/r/programming/comments/1yts5n/facebook_open_sources_flint_a_c_linter_written_in/ The relevant link on D_Programming twitter (https://twitter.com/D_Programming/status/438089226685399040) points to www.facebook.com/... instead of code.facebook.com/... and thus gives error 404.
Re: Release D 2.068.0
On Monday, 10 August 2015 at 08:48:52 UTC, Martin Nowak wrote: Glad to announce D 2.068.0. http://downloads.dlang.org/releases/2.x/2.068.0/ This release comes with many rangified phobos functions, 2 new GC profilers, a new AA implementation, and countless further improvements and fixes. See the changelog for more details. http://dlang.org/changelog.html#2.068.0 -Martin Congratulations! On a side note, you guys are fast in fixing regressions I happen to stumble upon and report. Thank you for quick responses! Ivan Kazmenko.
Re: Damage Control: An homage to Rampart (Alpha)
On Thursday, 31 December 2015 at 16:43:53 UTC, rcorre wrote: "Damage Control" is a game inspired by one of my old favorite SNES games, Rampart (ok, technically an arcade game, but I had it on SNES). The project is on Github: https://github.com/rcorre/damage_control Its very incomplete, but if you don't mind spending a few minutes trying it out I'd really appreciate it. You can grab a binary from the Github releases page or try to build it yourself. The content building is a bit involved, but if you just want to build the source you can copy the content folder from a release package. It is made with Allegro using the DAllegro bindings. The linux build is statically linked to Allegro so you shouldn't to install it, but the rest of the dependencies are shared. Let me know if any are problematic. The Windows build just comes packaged with a few dlls, including allegro-monolith. Any feedback is appreciated -- either drop a comment here or file an issue on Github. It will write save data and settings to "~/.config/damage_control" or "%APPDATA%\local\damage_control". You can change this using the --savedir flag. There's no included tutorial as I'm hoping the gameplay will be pretty self-evident (let me know if it isn't!). Nice to see someone use D + Allegro for a game. Did that too but have made only few Speedhack-level pieces from scratch so far. The windows binary works for me, at least for the few minutes I had to try it. The game flow is not obvious in multiple respects: 1. Shoot: why only six bullets? 2. Rebuild: huh, what's the plan? 3. If the base is not completely enclosed by walls after rebuild, the game ends, giving a ?!?!? impression. Took me a few attempts to guess the requirement to proceed. Crashed it :) with S-S-J-J-J-Esc pressed at start (controls -> keyboard -> make an action with an unassigned key and press Esc). Thanks for sharing!
Re: Damage Control: An homage to Rampart (Alpha)
On Friday, 1 January 2016 at 13:15:02 UTC, MrSmith wrote: On Thursday, 31 December 2015 at 16:43:53 UTC, rcorre wrote: "Damage Control" is a game inspired by one of my old favorite SNES games, Rampart (ok, technically an arcade game, but I had it on SNES). [...] For me window is not shown. Windows 7 64bit. I see console and graphics windows in taskbar, but no actual window on the screen. Used release v0.2. Hmm, mine is Win2008 R2 64-bit (version 6.1.7601) which is essentially the same major.minor version 6.1 as Windows 7 according to the table: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832%28v=vs.85%29.aspx
Re: Damage Control: An homage to Rampart (Alpha)
On Sunday, 3 January 2016 at 17:09:08 UTC, rcorre wrote: I added some instructions on the readme: https://github.com/rcorre/damage_control#how-to-play "If, at the end of a round, you have no territory, you are defeated." I'm almost sure this is currently not true for the last round: the "completed" message showed up for me instead of "defeated".
Re: Damage Control: An homage to Rampart (Alpha)
On Monday, 4 January 2016 at 02:34:37 UTC, rcorre wrote: On Sunday, 3 January 2016 at 19:53:25 UTC, Ivan Kazmenko wrote: "If, at the end of a round, you have no territory, you are defeated." I'm almost sure this is currently not true for the last round: the "completed" message showed up for me instead of "defeated". Huh, I couldn't repro that. Maybe you had some territory you didn't notice? Right now even having a single tile enclosed counts -- which actually may be too lenient. Its also possible there's a bug in the detection of enclosed areas. Hmm, I get it now. I have a piece of territory but no reactor. http://acm.math.spbu.ru/~gassa/temp/damage-control-01.png http://acm.math.spbu.ru/~gassa/temp/damage-control-02.png Strange requirement anyway :) .
Russian AI Cup 2016
Hi. Russian AI Cup 2016: CodeWizards is an annual online competition organized by Mail.Ru Group. This year's task is to write a bot for a simple DOTA-like game. The competition is open for international participation: starting this year, there is an English translation for everything (it may be rough at the edges though, for example, some pages may still use Russian by default, but the English version is also there). Public beta started on November 6, and the competition end is on December 25. The languages supported out-of-the-box are C++, C#, Java, Pascal, Python (2/3), and Ruby. However, the participants may translate the language-specific development package into other languages and contact the admins to enable their use on the site. Currently, the support for D, Go, and JavaScript are added this way (official announcement coming soon). My relationship with the competition is working on the D language package. I hope to take part, too. Links for the interested: Competition site: http://russianaicup.ru/ Quick start page: http://russianaicup.ru/p/quick Language package (English): https://github.com/GassaFM/raicup-2016-dlang-cgdk-en Language package (Russian): https://github.com/GassaFM/raicup-2016-dlang-cgdk-ru Ivan Kazmenko.
Re: Release D 2.074.0
On Monday, 10 April 2017 at 20:09:40 UTC, Martin Nowak wrote: Glad to announce D 2.074.0. [...] http://dlang.org/download.html http://dlang.org/changelog/2.074.0.html Thank you for producing the releases! I noticed that the backend license in this release (at least the Windows .7z version) is still the same, as well as the license.txt file at its root. Is it that there was simply not enough time to reflect the recent changes? And after the changes are incorporated, do you plan to alter the license texts in the previous releases as well? Ivan Kazmenko.
Re: Bultins .reverse and .sort are likely going to be removed soon.
On Wednesday, 24 May 2017 at 22:56:15 UTC, Stefan Koch wrote: I just finished the PR to remove the builtin array properties .sort and .reverse. That's nice! Finally, we could get rid of the awkward reverse() or sort!() in UFCS chains while all the rest don't need the parentheses. while the dmd changes were trivial fixing all the broken tests were not. Even tests that were supposed to call std.algorithm.sort turned out to use the property by accident; (because of a small error which caused the sort template not to instantiate). So, the process exposed latent bugs in the tests, which is another indication that the change is a Good Thing. I wonder how the deprecation message didn't make it happen sooner though. Ivan Kazmenko.
Re: Release D 2.074.1
On Thursday, 1 June 2017 at 21:04:00 UTC, Martin Nowak wrote: Glad to announce D 2.074.1. http://dlang.org/download.html This point release fixes a few issues over 2.074.0, see the changelog for more details. http://dlang.org/changelog/2.074.1.html Thank you for the release! I've noticed the old backend license is gone, but the summary license text at the root is still ancient and not updated. The file is, perhaps: https://github.com/dlang/installer/blob/master/create_dmd_release/extras/all/dmd2/license.txt A relevant issue: https://issues.dlang.org/show_bug.cgi?id=17317
D now available on Codefights.com
Hey, The site https://codefights.com is a place to test and improve your programming skills. The challenges include interview-type problems, shortest code contests, duels with other coders, monthly tournaments, and more. If you perform well, you can opt in to get connected with partner companies for job opportunities. Among available languages, there are C++, C#, Go, Java, Python, Ruby, Swift, and others. A few days ago, D was added to this list. After a problem is solved or a contest is over, others' solutions in all languages can be seen. To me, the major appeal of the site is that many of the problems are easy. So they take only a few minutes to solve, and the others' solutions are short and readable, often showcasing different approaches and language features. If you got interested, go give it a try! Ivan Kazmenko.
Re: D now available on Codefights.com
On Wednesday, 14 June 2017 at 08:32:43 UTC, Dsby wrote: On Wednesday, 14 June 2017 at 01:17:12 UTC, Ivan Kazmenko wrote: Hey, The site https://codefights.com is a place to test and improve your programming skills. The challenges include interview-type problems, shortest code contests, duels with other coders, monthly tournaments, and more. If you perform well, you can opt in to get connected with partner companies for job opportunities. [...] How can I comment other Code? Currently, there are comments for problems and contests. But for individual solutions, the only feedback possible right now is thumbs-up (in the upper right corner). However, you can suggest this feature on the forum :) .
Russian AI Cup 2017 - D language support
Hi! Russian AI Cup (http://russianaicup.ru) is an annual online AI programming competition by Mail.Ru Group. This year, the task is to write a bot which plays a real-time strategy against other programmer's bots. The competition runs from November 13 to December 24, 2017, and the first elimination round starts on November 24. Traditionally, several programming languages are supported by contest authors, and a few other with some help from the community. I added support for D this year (again), the language pack and example bot can be found here: https://github.com/GassaFM/raicup-2017-dlang-cgdk-en So, if you'd like to give it a try: good luck and have fun! Ivan Kazmenko.
Re: Russian AI Cup 2017 - D language support
On Friday, 17 November 2017 at 22:54:47 UTC, Steven Schveighoffer wrote: Cool! Is there any history of people using D in the past for this competition? A few people used D each year it had support, to various success. The highest so far, I think, is Vladislav Isenbaev in 2013. He got 11-th place in the finals: http://2013.russianaicup.ru/contest/4/standings
Re: run.dlang.io - a modern way to run D code
On Thursday, 14 December 2017 at 01:52:29 UTC, H. S. Teoh wrote: ... This can, of course, be bound to a custom keybinding, then you'll have your one-stop shop for compiling D snippets without ever seeing (much less typing) any temporary filenames. And without needing an internet connection. That sounds powerful! Like you said, instant win.
Re: Seeking lecturer - D language (Moscow)
On Wednesday, 14 March 2018 at 11:38:20 UTC, Dmitry Olshansky wrote: At the moment it’s a bit early stage but we are looking for enthusiast who has spare time and desire to spread the knowledge of D supremacy among students. The course will replace an equivalent of 1 year C++ course, but may start as half-year proof of concept. Sounds nice! Unfortunately, I won't be able to help in Moscow, but if the idea ever spreads to St. Petersburg, I'd definitely consider that. Which university it is now, by the way? I've been exploring the possibility to use D in teaching at my uni (St. Petersburg State University), but didn't push it much, and got no result so far. Ivan Kazmenko.
On D in competitive programming
Hey, I wrote a post with my general reflections on using D in competitive programming. Mostly compared to C++, since that's what more than 90% of people use for it. The post is tailored to cover only the competitive programming specifics. http://codeforces.com/blog/entry/60890 (en+ru, the language switch is at the top) Ivan Kazmenko.
Re: On D in competitive programming
Thanks for the feedback! On Saturday, 28 July 2018 at 20:33:14 UTC, Cym13 wrote: 1. Your real name isn't written in the article so the link "with some successes" won't tell much to someone that doesn't already know you Hmm, didn't think of it. I phrased it differently now. In my experience, the participants' nicknames in competitive programming are mostly tightly coupled with real names, and otherwise, the blog author's profile is one familiar click away. So for a local Codeforces reader, that hopefully wasn't a problem anyway. 2. When you briefly explain templates I think it's important to mention that empty parentheses may be omitted to allow the reader to make the link between function!(arg1)(arg2) and map!something. Explaining UFCS isn't necessary there though I think since it's obvious that there is some kind of chaining at play (not that you did, just thinking out loud). Yeah, good point, mentioned it now. Also I have a question: I find very nice that some platforms propose D even though not all do, but are they generally keeping it up to date with DMD or stuck at something ancient? It varies depending on the platform. A few examples: codeforces.com just recently upgraded from DMD 2.074 to DMD 2.079 (so I could show the compile-time writefln in the post); atcoder.jp is at DMD 2.070 but also has LDC 0.17.0 and GDC 4.9.4; codechef.com has some ancient GDC, barely usable; hackerearth.com has DMD 2.074.1; csacademy.com (Romanian competitive programming website) does not yet have D, but I hope they add it in a few months; hackerrank.com claims to have DMD 2.079, but recently stopped supporting it in live contests because of a paradigm shift. Namely, they now strive to supply the reading-from-file solution template for each problem, and apparently didn't get to writing it in all 35 languages they generally have. I offered my help, but the support was kind of unresponsive, so seeking another point of contact now. Generally, it seems to correlate with the health of the platform's backend. In my code in competitions, I tend to now use features around 2.070 so that they are mostly supported. Ivan Kazmenko.
Re: On D in competitive programming
On Sunday, 29 July 2018 at 07:51:00 UTC, Jim Balter wrote: Actually, map!something does not drop empty parentheses, so mentioning that does not help. Parentheses containing 0 or 1 arguments can be omitted ... and you omit them for 1 argument in 3 places, and no instances of omitted empty parentheses. And I think it would be less confusing to an unfamiliar reader to mention UFCS, because the chained calls don't fit the function !(args1) (args2) syntax that you mention. While that's technically right, I'd like to skip further explanations of the syntax. The same as I skipped why the problem is solved by such code at all (and it's even less obvious). In both cases, careful explanations would require a good paragraph or two, but are beside the point. The point of the article is more to just show how it feels and to spark interest than to explain everything. On the other hand, if I had to write a guide for competitive programmers on how to use D, such things sure would be included. Ivan Kazmenko.
Re: On D in competitive programming
On Monday, 30 July 2018 at 19:44:32 UTC, Steven Schveighoffer wrote: a lifetime ago, I competed using topcoder (and wrote a bunch of problem sets for them too). Topcoder had a "challenge" phase, where you could challenge the solutions of others. Nice! I just found your profile and problem sets from 2003-2004. I started using TopCoder in 2005, didn't see these earlier. Is there anything like that in codeforces, and if so, is D an advantage as a "somewhat obscure" language (i.e. competitors can't always understand your code)? Yeah, in a way. The challenges are called "hacks", and can happen for the whole duration of the contest. But to hack solutions for a problem, you have to first write your own solution to this problem, pass preliminary tests with it, and lock it so you can't resubmit. The key difference is, when the hacked solution itself was not locked, it still can be fixed and resubmitted (with a score penalty), which is actually a win-win. As for how a different language helps, well, perhaps it does. But, sadly, competitive programming style often goes against readability, to the extent the language allows it. In that regard, somewhat unexpectedly, I find other languages (e.g., Java or Python) more readable than C++ despite the fact that I'm less experienced with them. In C++, most competitive programming code contains a bunch of the author's exclusive #defines for the language shortcomings (or worse, #defines just to save typing). And since #defines are so flexible, everyone has their own version of the language, and some of the resulting code is straight unreadable without a deciphering effort. Ivan Kazmenko.
Re: On D in competitive programming
On Tuesday, 31 July 2018 at 00:52:22 UTC, 9il wrote: Are competitors allowed to use mir-algorithm and mir-random? The libraries can be used for graphs (Tarjan algorithm), matrices/tensors, nd-iteration, RNGs, interpolation, and distributions? Sadly, no: most of the time, language compilers on the server side are provided as they are out-of-the-box. I'll try to explain why. When a language is added to a competition, one of the goals for the organizers is to keep the whole thing fair. Different languages have different pros and cons already as they are, and what is an implementation-heavy problem for one language is solved in a couple lines with another. So, the availability of several programming languages already puts some burden on the problemsetters: at least for important competitions, they have to come up with problems which don't play too much into the strengths of any particular language, and that means knowing what to generally expect of all the languages. For example, most problems don't rely on number crunching with integers above 64 bits, since C++ is notoriously lacking in this regard. This all gets a new dimension if a platform decides to supply additional libraries. Once it's done for one language, there are no clear boundaries: if we get mir-algorithm for D, we will have to at least install Boost for C++, and numpy for Python, and the users of other languages also ask for their favourite libraries, which are in turn more powerful than Boost, and so on. And it would take significant expertise to balance such requests so that no language has too much of an unfair advantage or disadvantage. It takes a bit of expertise too to keep the libraries in all languages working and up-to-date. All the way, the problemsetters now have to avoid a different set of topics, changing with new libraries being added. Yet another factor is that there are central competitions perceived as the most important, which are currently ACM ICPC World Finals for university teams, and their regional contests. Many platforms strive to act as training grounds for the important competitions. So when the World Finals, which are understandably conservative, don't do X, it's a disincentive to do X for the training grounds too. So, the default approach is to keep each language at a bare minimum. It would be nice to have this feature, as mir-algorithm can be a good default library for competitive programming. Plus competitors can add additional graph algorithms. It may still be reasonable to ask for additional libraries on the platforms where the focus is not some big competition: e.g., perhaps no for ACM ICPC archives, perhaps yes for interview training sites. For a particular platform and a particular cause (e.g., a training course for a learning platform), it's entirely possible to have D with mir-algorithm installed on the platform. Ivan Kazmenko.
Re: Release Candidate 2.097.0 [was: Re: Beta 2.097.0]
On Saturday, 29 May 2021 at 11:00:50 UTC, Martin Nowak wrote: On Thursday, 13 May 2021 at 13:29:55 UTC, Martin Nowak wrote: Glad to announce the first beta for the 2.097.0 release, ♥ to the 54 contributors. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.097.0.html Release Candidate is live now. Some of the changelog entries look sweet!
Re: Release D 2.100.0
On Sunday, 15 May 2022 at 11:05:38 UTC, Martin Nowak wrote: Glad to announce D 2.100.0, ♥ to the 41 contributors. Congratulations on the milestone number! Ivan Kazmenko.
Re: A New Era for the D Community
On Wednesday, 3 May 2023 at 11:13:34 UTC, Mike Parker wrote: ... Our enthusiasm is high, and we're ready to get going. I think you'll like where we're headed. Interesting. Good luck with the endeavor! Ivan Kazmenko.