Re: Compile-Time Sort in D

2017-06-06 Thread Joakim via Digitalmars-d-announce

On Monday, 5 June 2017 at 14:23:34 UTC, Mike Parker wrote:
The crowd-edited (?) blog post exploring some of D's 
compile-time features is now live. Thanks again to everyone who 
helped out with it.


The blog:
https://dlang.org/blog/2017/06/05/compile-time-sort-in-d/

Reddit:
https://www.reddit.com/r/programming/comments/6fefdg/compiletime_sort_in_d/


Nice work, the reddit likes keep going up.  Nothing new for D 
users, but by encapsulating CTFE in a bite-sized blog post, 
you've gotten some outsiders to pay attention.  Just read perhaps 
the most ringing endorsement I've ever seen for D in the comments:


"How do you explain that in D complex metaprogramming artifacts 
such as bitfields, regex engines, compile-time parser generators, 
checked integers, generic allocators, are readily available from 
a smaller community, when in C++ you need an article explaining 
what tricks to use to sort a list of integers at compile time?"

https://www.reddit.com/r/programming/comments/6fefdg/comment/dijct48


Re: Snap packages for DMD and DUB

2017-06-06 Thread Joseph Rushton Wakeling via Digitalmars-d-announce

On Tuesday, 6 June 2017 at 14:27:40 UTC, Johan Engelen wrote:
Have you thought about creating a `dtools` package with rdmd, 
dustmite, and ddemangle in it?
They are useful for LDC and GDC too, perhaps people would like 
to be able to install them without needing to install DMD.  
(Perhaps the DMD/LDC/GDC package can automatically install such 
a "dtools" package?)


Yes, I did consider this, and I may do it if there is an ongoing 
issue with `rdmd`.  It might for example be possible to entirely 
disable confinement for such a dtools package, as a short term 
measure to avoid the current problems.


I did have some discussion over the advisability of splitting up 
the `dmd` snap package in this discussion thread:

https://lists.ubuntu.com/archives/snapcraft/2017-March/003645.html

... albeit I was coming at things from a slightly different angle 
there.  The short version is, keeping everything in one snap 
might reduce the amount of duplication; but I'm not sure that 
it's a very big deal in any case.


AFAIK snap packages don't have an equivalent of deb packages' 
"Recommends", but I can raise the issue.


On a different note: does anyone have an interest in there being 
dmd versions available other than the most recent?


Re: Snap packages for DMD and DUB

2017-06-06 Thread Johan Engelen via Digitalmars-d-announce
On Monday, 8 May 2017 at 20:05:01 UTC, Joseph Rushton Wakeling 
wrote:


The `dmd` package also contains `rdmd`, `dustmite` and 
`ddemangle`.  Note that by default the snap package exposes 
these namespaced on the name of the package (i.e. `dmd.rdmd`, 
etc.).  To avoid this, use the `snap alias` command:


sudo snap alias dmd rdmd
sudo snap alias dmd dustmite
sudo snap alias dmd ddemangle


Have you thought about creating a `dtools` package with rdmd, 
dustmite, and ddemangle in it?
They are useful for LDC and GDC too, perhaps people would like to 
be able to install them without needing to install DMD.  (Perhaps 
the DMD/LDC/GDC package can automatically install such a "dtools" 
package?)


cheers,
  Johan




Re: Snap packages for DMD and DUB

2017-06-06 Thread Joseph Rushton Wakeling via Digitalmars-d-announce

On Tuesday, 6 June 2017 at 08:20:54 UTC, Piotr Mitana wrote:

Hi, I got yet another error - this time Ubuntu 16.04 and rdmd.

Failed to flush stdout: Permission denied
Failed: ["dmd", "-v", "-o-", "main.d", "-I."]

It seems like (despite classic confinement) apps ran by rdmd 
cannot print things on the screen...


Yes, this is a known issue :-(  It's related to how AppArmor is 
used by snapd, rather than anything in the package.  See 
discussion here:

https://forum.snapcraft.io/t/failed-to-flush-stdout-permission-denied/485

You can use a workaround, which is to explicitly point `rdmd` to 
the actual compiler binary rather than relying on $PATH:


 rdmd --compiler=/snap/dmd/current/bin/dmd

or, instead of `rdmd --compiler=ldmd2`, try:

 rdmd --compiler=/snap/ldc2/current/bin/ldmd2

etc.


Yu(玉) - 0.1.0-b1 : COW String and Vector—— Dlang‘s Toolkit

2017-06-06 Thread Dsby via Digitalmars-d-announce


Add COW string
Rebuild Vector
Use COW : when is the Value-type and struct don't 
hasElaborateAssign

Use Deep-Copy : when hasElaborateAssign
Disable copy: when is Ref-Type and Pointer
Change async-socket all CallBack to nothrow
Rm yu.array.IAppder
add yu.traits.isRefType


https://github.com/dushibaiyu/yu/releases/tag/v0.1.0-b1


Re: Release D 2.074.1

2017-06-06 Thread Jacob Carlborg via Digitalmars-d-announce

On 2017-06-05 23:38, Joseph Rushton Wakeling wrote:


Yup, my instinct is that if a VERSION file needs to exist at all it
should be created during the build process out of `git describe` output.


It's used by DMD to build the version, that is, the output of "dmd 
--version". The content of the VERSION file embedded in the executable 
using "import()". I don't think that's possible to do in any other way.


But the VERSION file should be generated when building and not be 
committed to the repository. For the archives I guess it needs to be 
generated and included in the archive since Git will not be available 
when building from an archive.


--
/Jacob Carlborg


Re: Snap packages for DMD and DUB

2017-06-06 Thread Piotr Mitana via Digitalmars-d-announce
On Monday, 8 May 2017 at 20:05:01 UTC, Joseph Rushton Wakeling 
wrote:

Hello all,

As announced at DConf 2017, snap packages are now available for 
DMD 2.074.0 and DUB 1.3.0 in the official snap store.  These 
should allow for installation on multiple different Linux 
distros (see below) on i386 and amd64 systems. [...]


Hi, I got yet another error - this time Ubuntu 16.04 and rdmd.

Failed to flush stdout: Permission denied
Failed: ["dmd", "-v", "-o-", "main.d", "-I."]

It seems like (despite classic confinement) apps ran by rdmd 
cannot print things on the screen...