dawg | 1 year ago | on: Git-absorb: Git commit –fixup, but automatic
dawg's comments
dawg | 1 year ago | on: Git-absorb: Git commit –fixup, but automatic
dawg | 1 year ago | on: Git-absorb: Git commit –fixup, but automatic
dawg | 7 years ago | on: Reple: “Replay-Based” REPLs for Compiled Languages
dawg | 7 years ago | on: Windows Defender detects malware in DMD
Neither the last release nor the recent release candidate have been flagged by any AV according to VirusTotal. https://www.virustotal.com/#/file/e2ea2807faf41978a842f91890... https://www.virustotal.com/#/file/834d7547d395cc4080ab28a177...
dawg | 7 years ago | on: Windows Defender detects malware in DMD
https://dlang.org/changelog/2.082.0.html#signed_windows_bina...
dawg | 8 years ago | on: The joy of max()
T max(T)(T a, T b) { return a < b ? b : a; }
without requiring explicit constexpr annotations and with less noisy template syntax ;).dawg | 8 years ago | on: Let's make the Emacs GC safe and iterative
dawg | 8 years ago | on: Let's make the Emacs GC safe and iterative
dawg | 8 years ago | on: RustBelt: securing the foundations of the Rust programming language
Those choices for builtin language features date back to the early inspiration from Java, but are increasingly being replaced with library implementations. We've added escape checking to the type system last year, and are currently working on safe aliasing (preventing use-after-free).
So yes, atm. when opting for @nogc you're somewhat at the frontier, and it's mostly a choice if you have time, hard requirements, or am very practised.
Avoiding most (but not all) GC allocations is already widely adopted in D's community though.
dawg | 8 years ago | on: RustBelt: securing the foundations of the Rust programming language
dawg | 8 years ago | on: C++17 constexpr everything, or as much as the compiler can
A compile time debugger for the CTFE interpreter is on our extended feature list for the current interpreter rewrite, but it's less of a priority atm.
dawg | 8 years ago | on: Show HN: Compile-time HTML parsing in C++14
Mind to share why a GC seems to be unaccceptable for you?
dawg | 8 years ago | on: Inside D's GC
The problems are known and indeed a full rewrite on this ancient GC would be in order. Since D 2.072.0 it's possible to link and use different GCs, so a faster one could be written as an external library which would be a very welcome effort. https://dlang.org/changelog/2.072.0.html#gc-runtimeswitch-ad...
I'd be interested in experimenting with a Connectivity-Based GC (https://www.cs.purdue.edu/homes/hosking/690M/cbgc.pdf), leveraging type information to do partial collections. Write barriers come with a performance penalty (~3-5%) that we don't want to impose on people using deterministic memory management, but most GCs capable of performing partial collections, e.g. generational GCs, do require write barriers, Connectivity-Based GCs do not.
For the time being the pragmatic advise is to replace major sources of GC allocations with deterministic memory management when the GC heap grows too big (~1GB) and performance becomes a problem.
So far this hasn't prevented various people from writing extremely fast D programs.
dawg | 9 years ago | on: Richard Stallman on Lunduke Hour [video]