Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread Jonathan M Davis via Digitalmars-d-announce
On Wednesday, December 13, 2017 06:53:02 rikki cattermole via Digitalmars-d-
announce wrote:
> On 13/12/2017 6:46 AM, bauss wrote:
> > On Wednesday, 13 December 2017 at 01:14:26 UTC, Seb wrote:
> >> On Wednesday, 13 December 2017 at 00:32:11 UTC, rikki cattermole wrote:
> >>> On 12/12/2017 6:37 PM, Seb wrote:
>  === Supported D Compilers ===
> 
>  * Latest DMD nightly
>  * Latest DMD beta
>  * Latest DMD
>  * Latest LDC beta
>  * Latest LDC
> 
>  The Docker images are rebuilt every day automatically.
> >>>
> >>> Can we please select a version we want to test against?
> >>
> >> While it would be rather easier to build more Docker images [1] and
> >> add them to the tour [2], I fear that this will be too much
> >> maintenance overhead and will lead to outdated compiler soon.
> >> Also the storage on the machine is limited and we can't drop an
> >> unlimited amount of Docker images there.
> >>
> >> [1] https://github.com/dlang-tour/core-exec
> >> [2]
> >> https://github.com/dlang-tour/core/blob/master/source/exec/docker.d#L22
> >
> > What you could do is support the 3 latest versions of the compilers.
> >
> > Ex. for DMD you would support:
> > 2.077.1
> > 2.076.1
> > 2.075.1
>
> Also the older c++ version (2.06x.x).

What would be the point of that? That's old enough that no one should really
be using it. Targetting it just runs the risk of your code not working with
a recent version of the compiler and standard library.

- Jonathan M Davis



Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread Seb via Digitalmars-d-announce
On Wednesday, 13 December 2017 at 06:53:02 UTC, rikki cattermole 
wrote:

On 13/12/2017 6:46 AM, bauss wrote:

On Wednesday, 13 December 2017 at 01:14:26 UTC, Seb wrote:
On Wednesday, 13 December 2017 at 00:32:11 UTC, rikki 
cattermole wrote:

On 12/12/2017 6:37 PM, Seb wrote:

=== Supported D Compilers ===

* Latest DMD nightly
* Latest DMD beta
* Latest DMD
* Latest LDC beta
* Latest LDC

The Docker images are rebuilt every day automatically.


Can we please select a version we want to test against?


While it would be rather easier to build more Docker images 
[1] and add them to the tour [2], I fear that this will be 
too much maintenance overhead and will lead to outdated 
compiler soon.
Also the storage on the machine is limited and we can't drop 
an unlimited amount of Docker images there.


[1] https://github.com/dlang-tour/core-exec
[2] 
https://github.com/dlang-tour/core/blob/master/source/exec/docker.d#L22


What you could do is support the 3 latest versions of the 
compilers.


Ex. for DMD you would support:
2.077.1
2.076.1
2.075.1


Also the older c++ version (2.06x.x).


Shouldn't DMD be stable enough that latest is good enough for 
everyone?
As mentioned, I'm afraid that it will look similar like: 
http://asm.dlang.org
And FWIW before I started updating Wikipedia and our DWiki even 
the versions there got outdated.


Anyhow, everything is entirely automated, so if someone 
volunteers to make the update PRs to:


- https://github.com/dlang-tour/core-exec/blob/master/.travis.yml
- 
https://github.com/dlang-tour/core/blob/master/source/exec/docker.d#L22
- 
https://github.com/dlang-tour/core/blob/master/views/editor.dt#L27


I wouldn't mind.


Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread Mike Franklin via Digitalmars-d-announce

On Tuesday, 12 December 2017 at 18:37:38 UTC, Seb wrote:
After it has been in stealth mode for quite a while, I'm happy 
to announce that there's https://run.dlang.io


I've actually been using it a lot recently to communicate 
bugs/ideas/patterns with others.


Due to the nightlies, I can quickly see if a bug has been 
addressed in master.  I've closed a couple of bugs recently with 
"worksforme" that way.


I also use it to quickly try ideas when I'm out waiting 
somewhere, or just when an idea occurs to me.


It is such a great resource.  Thanks to those who put their time 
into it.


Mike


Re: LDC 1.7.0-beta1

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

On Sunday, 10 December 2017 at 18:11:46 UTC, Suliman wrote:

On Sunday, 10 December 2017 at 17:33:34 UTC, kinke wrote:

Hi everyone,

on behalf of the LDC team, I'm glad to announce the first beta 
for LDC 1.7. The highlights of this version in a nutshell:


* Based on D 2.077.1.
* Catching C++ exceptions supported on Linux and Windows.

Full release log and downloads: 
https://github.com/ldc-developers/ldc/releases/tag/v1.7.0-beta1


Thanks to all contributors!


Is it's possible to produce x64 binaries on Windows x64 without 
installing Visual Studio? DMD do not have linker for x64.


You could try using the llvm linker, lld, as noted in the release 
notes for ldc 1.5:


https://github.com/ldc-developers/ldc/releases/tag/v1.5.0

I don't know what's needed to link against functions from the 
Windows libc though.


On Sunday, 10 December 2017 at 19:00:53 UTC, Timothee Cour wrote:
could these releases be tied to 'homebrew/linuxbrew' upgrades 
as part of release process?


John usually submits a pull to homebrew for the betas, may just 
be behind on this one:


https://github.com/Homebrew/homebrew-core/pull/20580

Looks pretty simple, you or any other brew user could easily 
submit that too.


On Tuesday, 12 December 2017 at 01:37:31 UTC, Meta wrote:
Very impressive. I'm curious, is the work done to catch C++ 
exceptions separate from Walter's previous efforts with dmd, or 
does it build on his work in some way?


As noted in the linked 1.7 release notes, kinke merged ldc's 
non-MSVC exception-handling with Walter's new DWARF efforts and 
integrated some work by Rainer for MSVC.


Re: Released vibe.d 0.8.2

2017-12-12 Thread bauss via Digitalmars-d-announce

On Tuesday, 12 December 2017 at 19:44:17 UTC, Sönke Ludwig wrote:
The major changes in this release are HTTP forward proxy 
support, handling incoming HTTP requests on custom transports 
and a MongoDB based session store. On top of that, there are 
many smaller improvements in the HTTP server, web/REST 
generator, JSON/BSON support and the TLS sub system.


Change log:
https://vibed.org/blog/posts/vibe-release-0.8.2

DUB package:
https://code.dlang.org/packages/vibe-d/0.8.2


Great job


Re: mir-algorithm v0.7.0: new interpolation, optmath, bugfixes

2017-12-12 Thread jmh530 via Digitalmars-d-announce

On Tuesday, 12 December 2017 at 23:10:26 UTC, Nathan S. wrote:

About Mir Algorithm

[snip]


+1


Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread Seb via Digitalmars-d-announce

On Wednesday, 13 December 2017 at 00:50:40 UTC, Meta wrote:
This is a real life saver considering dpaste is blocked at 
work. It gets very tedious having to create a file, invoke the 
compiler, and run it in 3 separate steps just to test out some 
quick snippet.


Great to hear that it's useful for you!
FYI: another life saver / convenience feature for this online 
editor is WIP:


https://github.com/dlang/phobos/pull/5916


Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread Seb via Digitalmars-d-announce
On Wednesday, 13 December 2017 at 00:32:11 UTC, rikki cattermole 
wrote:

On 12/12/2017 6:37 PM, Seb wrote:

=== Supported D Compilers ===

* Latest DMD nightly
* Latest DMD beta
* Latest DMD
* Latest LDC beta
* Latest LDC

The Docker images are rebuilt every day automatically.


Can we please select a version we want to test against?


While it would be rather easier to build more Docker images [1] 
and add them to the tour [2], I fear that this will be too much 
maintenance overhead and will lead to outdated compiler soon.
Also the storage on the machine is limited and we can't drop an 
unlimited amount of Docker images there.


[1] https://github.com/dlang-tour/core-exec
[2] 
https://github.com/dlang-tour/core/blob/master/source/exec/docker.d#L22


Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread H. S. Teoh via Digitalmars-d-announce
On Wed, Dec 13, 2017 at 12:50:40AM +, Meta via Digitalmars-d-announce wrote:
> On Tuesday, 12 December 2017 at 18:37:38 UTC, Seb wrote:
> > After it has been in stealth mode for quite a while, I'm happy to
> > announce that there's https://run.dlang.io
[...]
> This is a real life saver considering dpaste is blocked at work. It
> gets very tedious having to create a file, invoke the compiler, and
> run it in 3 separate steps just to test out some quick snippet.

Can't you just do:

rdmd --eval=''

?


T

-- 
Real Programmers use "cat > a.out".


Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread Meta via Digitalmars-d-announce

On Tuesday, 12 December 2017 at 18:37:38 UTC, Seb wrote:
After it has been in stealth mode for quite a while, I'm happy 
to announce that there's https://run.dlang.io


=== Features ===

* Color-highlighted DMD errors
* Format source code with dfmt
* Generate a short URL for link sharing
* Import/Export to GitHub Gist
* Typical key shortcuts like CTRL+Enter -> Run
* Build cache for fast execution of common examples (e.g. the 
ones on front page of dlang.org)

* Usable on your phone
* Integrated with dlang.org (you can open any example on 
dlang.org in run.dlang.io by clicking the right arrow button)
* Integrated with tour.dlang.org (you can open any example on 
the DTour in run.dlang.io by clicking on the "Export" button)


=== Supported D Compilers ===

* Latest DMD nightly
* Latest DMD beta
* Latest DMD
* Latest LDC beta
* Latest LDC

The Docker images are rebuilt every day automatically.

=== Running DUB packages ===

Via "Add library" DUB packages can be added to the build.
Currently only a whitelist of packages is allowed.
Examples:

mir: https://run.dlang.io/is/FIc6rd
mir-algorithm: https://run.dlang.io/is/3pNRH8

=== DReg ===

When I watched CyberShadow's Bugzilla cruise [1] I spotted this 
amazing tool dreg [2] and it's not that hard to build a docker 
image [3] for it and make it available for everyone, s.t. no 
setup is required.
Dreg allows running old versions of the D compiler in parallel 
and compares their output.

However, it's a lot easier to show than to explain:

https://run.dlang.io/is/ckNT9i
https://run.dlang.io/is/UZhQDh

Currently all versions from 2.060 up to the latest greatest 
2.077.1 are run, so the execution will take a bit longer than a 
single run.


[1] https://youtu.be/qpUTvMokTCs
[2] https://github.com/CyberShadow/misc/blob/master/dreg.d
[3] https://github.com/dlang-tour/core-dreg


=== Source code & report issues ===

Please don't hesitate to open issues or submit pull requests:

-> https://github.com/dlang-tour/core

(it uses Vibe.d)


This is a real life saver considering dpaste is blocked at work. 
It gets very tedious having to create a file, invoke the 
compiler, and run it in 3 separate steps just to test out some 
quick snippet.


Re: run.dlang.io - a modern way to run D code

2017-12-12 Thread rikki cattermole via Digitalmars-d-announce

On 12/12/2017 6:37 PM, Seb wrote:
After it has been in stealth mode for quite a while, I'm happy to 
announce that there's https://run.dlang.io


=== Features ===

* Color-highlighted DMD errors
* Format source code with dfmt
* Generate a short URL for link sharing


s/shorten/permalink/

Or something else more obvious.


* Import/Export to GitHub Gist
* Typical key shortcuts like CTRL+Enter -> Run
* Build cache for fast execution of common examples (e.g. the ones on 
front page of dlang.org)

* Usable on your phone
* Integrated with dlang.org (you can open any example on dlang.org in 
run.dlang.io by clicking the right arrow button)
* Integrated with tour.dlang.org (you can open any example on the DTour 
in run.dlang.io by clicking on the "Export" button)


=== Supported D Compilers ===

* Latest DMD nightly
* Latest DMD beta
* Latest DMD
* Latest LDC beta
* Latest LDC

The Docker images are rebuilt every day automatically.


Can we please select a version we want to test against?




Re: Released vibe.d 0.8.2

2017-12-12 Thread Seb via Digitalmars-d-announce

On Tuesday, 12 December 2017 at 19:44:17 UTC, Sönke Ludwig wrote:
The major changes in this release are HTTP forward proxy 
support, handling incoming HTTP requests on custom transports 
and a MongoDB based session store. On top of that, there are 
many smaller improvements in the HTTP server, web/REST 
generator, JSON/BSON support and the TLS sub system.


Change log:
https://vibed.org/blog/posts/vibe-release-0.8.2

DUB package:
https://code.dlang.org/packages/vibe-d/0.8.2


I think you should mention more prominently that for people who 
want to use OpenSSL 1.1, they can now use:


dub --override-config="vibe-d:tls/openssl-1.1"


This allows to use OpenSSL 1.1 _without_ needing to set the 
`VibeUseOpenSSL11` version in their dub.sdl


Re: Released vibe.d 0.8.2

2017-12-12 Thread Timothee Cour via Digitalmars-d-announce
that's great... unfortunately
https://github.com/vibe-d/vibe.d/issues/1991 is a regression
preventing from updating to 0.8.X (has a reduced test case). Any help
on this would be very appreciated, thanks!

On Tue, Dec 12, 2017 at 11:44 AM, Sönke Ludwig via
Digitalmars-d-announce  wrote:
> The major changes in this release are HTTP forward proxy support, handling
> incoming HTTP requests on custom transports and a MongoDB based session
> store. On top of that, there are many smaller improvements in the HTTP
> server, web/REST generator, JSON/BSON support and the TLS sub system.
>
> Change log:
> https://vibed.org/blog/posts/vibe-release-0.8.2
>
> DUB package:
> https://code.dlang.org/packages/vibe-d/0.8.2



mir-algorithm v0.7.0: new interpolation, optmath, bugfixes

2017-12-12 Thread Nathan S. via Digitalmars-d-announce

About Mir Algorithm

Mir Algorithm[1] is Dlang core library for math, finance and a 
home for Dlang multidimensional array package - ndslice.


New Modules since v0.6.21

- Reworked interpolation API, now found in mir.interpolate, 
mir.interpolate.linear, mir.interpolate.pchip.
- New module mir.interpolate.spline for cubic interpolation. 
Warning: multivariate cubic spline with derivatives is still 
experimental.
- New module mir.interpolate.constant for constant interpolation. 
Warning: multivariate constant interpolant is still experimental.



API Changes since v0.6.21

- Added in mir.math.common function attributes @optmath and 
@fmamath. They only have effect when compiling with LDC but can 
be used with all compilers. (This now also applies to @fastmath.) 
@optmath is similar to @fastmath but does not allow 
unsafe-fp-math. Does not force LDC to replace division with 
multiplication by reciprocal.
- New mir.utility.extMul extended unsigned multiplication that 
makes available the high bits of the result

- New mir.functional.aliasCall
- New mir.ndslice.algorithm.maxLength returns max length across 
all dimensions.
- New mir.ndslice.slice.IteratorOf!(T : Slice) extracts iterator 
type from a Slice
- New mir.ndslice.slice.ndassign assignment utility template that 
works both with scalars and with ndslices.
- In mir.ndslice.slice.Slice: iterator is now inout; opUnary now 
works with - and +; opIndexAssign now returns ref this instead of 
void.

- mir.ndslice.field.MagicField supports length and shape.


Removed Modules

- mir.interpolation, mir.interpolation.linear, mir.interpolation. 
Migrate to replacements (mir.interpolate.*).



Other Changes since v0.6.21

- Uses of @fastmath in the Mir codebase have been replaced by 
@optmath, excepting mir.math.sum Summation.fast.
- In mir.ndslice.topology under-the-hood improvements in slide, 
diff, pairwise
- In mir.ndslice.slice.Slice opBinary and opBinaryRight now 
internally use mir.ndslice.topology.vmap instead of 
mir.ndslice.topology.indexed.



Fixed since v0.6.21

- Fix in mir.ndslice.topology.map for compilation failing in 
cases where chained map calls couldn't be coalesced due to 
capturing multiple contexts (seemingly a compiler bug in some 
cases)
- Made mir.ndslice.topology.flattened backwards compatible with 
LDC 1.2.0 for those who haven't upgraded
- Added workaround in mir.ndslice.algorithm.reduce for DMD 
inlining bug for non-Windows x86-64 (LDC unaffected)

- mir.primitives.shape now takes its argument by reference


[1] https://github.com/libmir/mir-algorithm

Release notes with hyperlinks: 
https://github.com/libmir/mir-algorithm/releases/tag/v0.7.0




datefmt 1.0.0 released: parse datetimes and also format them

2017-12-12 Thread Neia Neutuladh via Digitalmars-d-announce

# Sales pitch

If you've ever had to parse datetime input from multiple sources 
and everyone's standardized on ISO8601, you might have found out 
that that's not quite as standard as you'd wish. This is where 
datefmt helps you.


---
import datefmt;
auto expected = SysTime(Date(2010, 1, 1), UTC());
foreach (date; ["2010-01-01", "2010-01-01T00:00:00", "2010-01-01 
00:00:00.000Z"])

{
  SysTime parsed;
  assert(tryParse(date, ISO8601FORMAT, parsed));
  assert(expected == parsed);
}
---


# How does datefmt's parsing differ from dateparser?

dateparser is great when you have a date that's in some arbitrary 
format and you want to turn it into a sensible date. It's perfect 
for manual input.


datefmt is good when you have a restricted set of formats you 
need to accept and want to reject everything else -- generally 
when a wide range of systems using the same somewhat nebulous 
standard emit the stuff you need to parse.



# What about formatting?

datefmt can do formatting too! Most of its formatting options are 
taken from strftime, so it should be generally familiar.


And of course you can use predefined formats for RFC1123 and 
ISO8601:


auto st = SysTime(DateTime(2010, 4, 12, 15, 30, 00), UTC());
writeln(st.format(ISO8601FORMAT));
// 2010-04-12T15:30:00.00Z
writeln(st.format(RFC1123FORMAT));
// Mon, 12 Apr 2010 15:30:00 Z


# Is anyone using it?

I've been using this in my RSS reader for the past month or two, 
during which time it's been exposed to a number of horrible 
variants of both RFC1123 and ISO8601.



# How do I get it?

Add "datefmt": "~>1.0.0" to your dub.json and Bob's your uncle!

Or download the single file from 
https://raw.githubusercontent.com/dhasenan/datefmt/master/source/datefmt.d and put it in your project.


Licensed under MS-PL (BSD-style permissive license with patent 
grant); open an issue at 
https://github.com/dhasenan/datefmt/issues if you need a 
different license.


Re: d-apt update

2017-12-12 Thread Jordi Sayol via Digitalmars-d-announce
New d-apt dmd deb packages released (ver. 2.077.1-0.1)

This release fix these problems:

- Move rdmd from "dmd-tools" to "dmd-compiler"
- Add "dmd-bin (<< 2.077.1-0)" at "Conflicts:" and "Replaces:" fields on 
"dmd-compiler" and "dmd-tools" deb packages, to avoid upgrade conflicts.

Jordi


Released vibe.d 0.8.2

2017-12-12 Thread Sönke Ludwig via Digitalmars-d-announce
The major changes in this release are HTTP forward proxy support, 
handling incoming HTTP requests on custom transports and a MongoDB based 
session store. On top of that, there are many smaller improvements in 
the HTTP server, web/REST generator, JSON/BSON support and the TLS sub 
system.


Change log:
https://vibed.org/blog/posts/vibe-release-0.8.2

DUB package:
https://code.dlang.org/packages/vibe-d/0.8.2


Re: d-apt update

2017-12-12 Thread Jordi Sayol via Digitalmars-d-announce
El 11/12/17 a les 23:02, Manu ha escrit:
> I would strongly suggest the rdmd be included in dmd-bin rather than 
> dmd-tools.

Yes, You're right and will be as you say on next dmd release. But will be in 
dmd-compiler rather than in the deprecated dmd-bin.



run.dlang.io - a modern way to run D code

2017-12-12 Thread Seb via Digitalmars-d-announce
After it has been in stealth mode for quite a while, I'm happy to 
announce that there's https://run.dlang.io


=== Features ===

* Color-highlighted DMD errors
* Format source code with dfmt
* Generate a short URL for link sharing
* Import/Export to GitHub Gist
* Typical key shortcuts like CTRL+Enter -> Run
* Build cache for fast execution of common examples (e.g. the 
ones on front page of dlang.org)

* Usable on your phone
* Integrated with dlang.org (you can open any example on 
dlang.org in run.dlang.io by clicking the right arrow button)
* Integrated with tour.dlang.org (you can open any example on the 
DTour in run.dlang.io by clicking on the "Export" button)


=== Supported D Compilers ===

* Latest DMD nightly
* Latest DMD beta
* Latest DMD
* Latest LDC beta
* Latest LDC

The Docker images are rebuilt every day automatically.

=== Running DUB packages ===

Via "Add library" DUB packages can be added to the build.
Currently only a whitelist of packages is allowed.
Examples:

mir: https://run.dlang.io/is/FIc6rd
mir-algorithm: https://run.dlang.io/is/3pNRH8

=== DReg ===

When I watched CyberShadow's Bugzilla cruise [1] I spotted this 
amazing tool dreg [2] and it's not that hard to build a docker 
image [3] for it and make it available for everyone, s.t. no 
setup is required.
Dreg allows running old versions of the D compiler in parallel 
and compares their output.

However, it's a lot easier to show than to explain:

https://run.dlang.io/is/ckNT9i
https://run.dlang.io/is/UZhQDh

Currently all versions from 2.060 up to the latest greatest 
2.077.1 are run, so the execution will take a bit longer than a 
single run.


[1] https://youtu.be/qpUTvMokTCs
[2] https://github.com/CyberShadow/misc/blob/master/dreg.d
[3] https://github.com/dlang-tour/core-dreg


=== Source code & report issues ===

Please don't hesitate to open issues or submit pull requests:

-> https://github.com/dlang-tour/core

(it uses Vibe.d)


Re: D IDE Coedit - version 3.5.1 released

2017-12-12 Thread Basile B. via Digitalmars-d-announce

On Thursday, 7 December 2017 at 14:27:39 UTC, Basile B. wrote:
This is a highly recommended update for Windows users. See the 
regression section in the changelog [1].


If by any chance the FreeBSD packager or the AUR's one (aka 
Wild) read this, please note that i've switched to SemVer, so 
update your scripts.


It's also worth mentioning that this change has been made 
because i won't develop it much anymore. So from now only minor 
and dot releases.


[1]: https://github.com/BBasile/Coedit/releases


v3.5.2 is already available. Let's say that if

1. you're on linux
2. you tried it once but it didn't start and you had to pkill the 
process


then this release fix this case.