December 01, 2018
On Fri, 30 Nov 2018 17:23:33 -0800, H. S. Teoh wrote:
> So I'm guessing that other than Sociomantic(?), there aren't any other major codebases out there that use Tango?

Probably nothing that's currently maintained. But if you're porting something ancient, it's handy to have around.
December 01, 2018
"This interest materialized into a C compiler, followed by compilers for C++, Java, and Javascript."

I remember a previous comment by Walter about having done a Java compiler but discovering that no one wanted it. But this was before OpenJDK; did the compiler come with the Java standard class library of the day?
December 01, 2018
On Saturday, 1 December 2018 at 03:25:49 UTC, Tony wrote:
> "This interest materialized into a C compiler, followed by compilers for C++, Java, and Javascript."
>
> I remember a previous comment by Walter about having done a Java compiler but discovering that no one wanted it. But this was before OpenJDK; did the compiler come with the Java standard class library of the day?

Seems like it:

http://www.drdobbs.com/symantecs-cafe/184415536
December 01, 2018
On Saturday, 1 December 2018 at 03:43:26 UTC, Joakim wrote:
> On Saturday, 1 December 2018 at 03:25:49 UTC, Tony wrote:
>> "This interest materialized into a C compiler, followed by compilers for C++, Java, and Javascript."
>>
>> I remember a previous comment by Walter about having done a Java compiler but discovering that no one wanted it. But this was before OpenJDK; did the compiler come with the Java standard class library of the day?
>
> Seems like it:
>
> http://www.drdobbs.com/symantecs-cafe/184415536

Thanks. I misunderstood. I thought it was Java source code compiled to object-code then linked to an executable.
December 01, 2018
Some Lisp (based and implementations) languages offer access to compiler at CTFE with AST manipulation. But it is pretty cludgy.

#D freenode was created: [18:29:43] Channel was created at Sun Nov 26 19:42:43 2006
We normally sit around 110 but pre spam was around ~160 people (although most are inactive).

Another mistake, dmd-fe wasn't a library from day one. This has hurt us a lot.

Lastly, good D code is what I would call ML family not C. Even if the syntax is C based. Which makes D a combination of ML and C families.
December 01, 2018
On 2018-12-01 02:00, H. S. Teoh wrote:

> Lines 1049-1050: I wasn't there at the time, so this may be inaccurate,
> but I clearly remember someone mentioning that Tango has been ported to
> D2 and is quite usable, at least as of a few years ago.  But I haven't
> tried it myself, so I can't for sure whether this is actually the case.
> But it's worth checking so that the HOPL document is factually accurate.

The D2 port of Tango is available here [1]. It's pretty easy to find by googling for "Tango D2" or searching in code.dlang.org.

[1] https://github.com/SiegeLord/Tango-D2

-- 
/Jacob Carlborg
December 01, 2018
On 2018-12-01 02:23, H. S. Teoh wrote:

> So I'm guessing that other than Sociomantic(?), there aren't any other
> major codebases out there that use Tango?

I'm using it in DVM [1], but I wouldn't say the code base is that big. DWT [2] also used to support D1 using Tango alongside the D2 support. The D1 code is still there but I don't know if it still works. DWT is quite a big code base 400k lines of code, IIRC.

[1] https://github.com/jacob-carlborg/dvm
[2] https://github.com/d-widget-toolkit/dwt

-- 
/Jacob Carlborg
December 01, 2018
On Friday, 30 November 2018 at 22:23:33 UTC, Adam D. Ruppe wrote:

> Also, `immutable` barely gets a reference at all, though I consider it to be one of the major turning points of the language! There was a LOT of talk about making thread safe stuff just work in 2007 and immutable was a big part of that... and one of the few that actually survived into general use (the unique stuff Bartosz was talking about was similarly big but we never did it).

I think that thread local by default should be mentioned also...

> I also like the history of immutable btw: remember when it was called "invariant" and why it changed?

It was renamed just for clarity, when someone got confused about it, the explanation was always something like "it's simple an immutable value, like ROM"


December 01, 2018
On Saturday, 1 December 2018 at 08:22:57 UTC, Paolo Invernizzi wrote:
>> I also like the history of immutable btw: remember when it was called "invariant" and why it changed?
>
> It was renamed just for clarity, when someone got confused about it, the explanation was always something like "it's simple an immutable value, like ROM"

AFAIK, it was renamed for consistency with unittests, otherwise invariant blocks required braces: invariant(){ ... } or it would be ambiguous with block attribute.
December 01, 2018
I'd say alias this and mixin templates are interesting too, in general D is a lot of small features that add up, e.g. DbI is not enabled by a single feature, but by a combination of.

Ugh, purity shouldn't be a default. Purity by default results in a monadic joke language, consequences are immense as you can see by the haskell example, effectively kills scripting and system programming. Immutability by default requires shadowing to emulate mutability, so isn't without shortcomings, also kills ranges. Safety is still a prototype, too early to deploy it in production. Combined they destroy convenience and to an extent performance and restrict language to haskell niche, which is nothing to be proud of.