Re: On the future of DIP1000

2016-08-21 Thread Walter Bright via Digitalmars-d-announce

On 8/21/2016 7:01 PM, Jonathan M Davis via Digitalmars-d-announce wrote:

Well, if you typically try and restrict your @system code to small parts of
your program and use @trusted to turn them into @safe, then the vast
majority of your program will be @safe. As I understand it, that's at least
how it was _intended_ that @system be dealt with - though plenty of folks
just don't bother with @safe, and it's certainly the case that code out
there doesn't restrict the @system portions as much as it could.

So, at least _in theory_, if you're using @safe as intended, even if you
have a fair number of code snippets which are @system, you can take
advantage of stuff like scope in most of your code. I don't know how well
that will work in practice though.

I can think of two big reasons to restrict something like this to @safe code
though. One is that implementing something like this usually means declaring
some stuff illegal that is actually safe, because the compiler can't be
perfect about it (a similar example would be how a lot of lambdas end up
allocating closures in order to be @safe when they don't actually need to;
the compiler simply isn't smart enough to figure out that it isn't necessary
and may or may not be able to with what the language allows the programmer
to do). Another reason is that sometimes in order to make certain
guarantees, the compiler has to be able to assume things that aren't
necessarily true in @system code, even if they happen to be true for most
@system code.


I agree. If there's a lot of @system code in a program, something has gone awry 
in its design. I understand the desire to be able to turn each individual safety 
feature on and off, but don't think the code really will be better off that way.




Re: On the future of DIP1000

2016-08-21 Thread Jonathan M Davis via Digitalmars-d-announce
On Sunday, August 21, 2016 21:52:59 John Colvin via Digitalmars-d-announce 
wrote:
> On Sunday, 21 August 2016 at 21:46:56 UTC, John Colvin wrote:
> > On Sunday, 21 August 2016 at 20:01:27 UTC, Dicebot wrote:
> >> - scope is @safe only
> >
> > Why? I might have @system code that could still benefit from
> > scope.
>
> I guess it would be too restrictive, but I'm just a bit
> frustrated at having to choose between lots of compiler checking
> and none at all. I wish there was a flag for the compiler that
> would give @safe violations as warnings in @system / @trusted
> code, it would be too noisy for routine use but it would be great
> to occasionally look through.

Well, if you typically try and restrict your @system code to small parts of
your program and use @trusted to turn them into @safe, then the vast
majority of your program will be @safe. As I understand it, that's at least
how it was _intended_ that @system be dealt with - though plenty of folks
just don't bother with @safe, and it's certainly the case that code out
there doesn't restrict the @system portions as much as it could.

So, at least _in theory_, if you're using @safe as intended, even if you
have a fair number of code snippets which are @system, you can take
advantage of stuff like scope in most of your code. I don't know how well
that will work in practice though.

I can think of two big reasons to restrict something like this to @safe code
though. One is that implementing something like this usually means declaring
some stuff illegal that is actually safe, because the compiler can't be
perfect about it (a similar example would be how a lot of lambdas end up
allocating closures in order to be @safe when they don't actually need to;
the compiler simply isn't smart enough to figure out that it isn't necessary
and may or may not be able to with what the language allows the programmer
to do). Another reason is that sometimes in order to make certain
guarantees, the compiler has to be able to assume things that aren't
necessarily true in @system code, even if they happen to be true for most
@system code.

- Jonathan M Davis



Re: D support for the Meson build system

2016-08-21 Thread jkpl via Digitalmars-d-announce

On Sunday, 21 August 2016 at 19:08:59 UTC, Matthias Klumpp wrote:
for a project like Terminix, dub with LDC builds in 8.6s, while 
Meson and ninja take only 6s here.


Did you try to build with DUB but with WIFI or ethernet interface 
toggled off ?




Re: On the future of DIP1000

2016-08-21 Thread John Colvin via Digitalmars-d-announce

On Sunday, 21 August 2016 at 21:46:56 UTC, John Colvin wrote:

On Sunday, 21 August 2016 at 20:01:27 UTC, Dicebot wrote:

- scope is @safe only


Why? I might have @system code that could still benefit from 
scope.


I guess it would be too restrictive, but I'm just a bit 
frustrated at having to choose between lots of compiler checking 
and none at all. I wish there was a flag for the compiler that 
would give @safe violations as warnings in @system / @trusted 
code, it would be too noisy for routine use but it would be great 
to occasionally look through.


Re: On the future of DIP1000

2016-08-21 Thread John Colvin via Digitalmars-d-announce

On Sunday, 21 August 2016 at 20:01:27 UTC, Dicebot wrote:

- scope is @safe only


Why? I might have @system code that could still benefit from 
scope.


On the future of DIP1000

2016-08-21 Thread Dicebot via Digitalmars-d-announce
This week I had a tele-meeting with Andrei and Walter regarding 
the fate
of DIP1000 
(https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md)
and intented way to move forward with it. This is a short summary 
of the

meeting.

Approval of DIP1000
---

DIP1000 is going to be approved as the basis of the idea
but exact specification may change during implementation and as a 
result

of incorporating some ideas from feedback threads
(http://forum.dlang.org/thread/pqsiqmkxenrwxoruz...@forum.dlang.org and
http://forum.dlang.org/thread/rwxcfapvpfiqmfsui...@forum.dlang.org).

Core principles that are sure to stay at this point:
- scope is a storage class
- scope is non-transitive
- scope is @safe only
- responsibility of implementing complicated scope-using types is 
on

developer, compiler magic is intended to be minimal

Any changes in intended DIP1000 spec will be reflected in original
document 
(https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md).


Implementation of DIP1000
-

Walter is currently working on implementing the support via
https://github.com/dlang/dmd/pull/5972, which will take some 
time. Once

it is more feature complete I'll contact Martin for possible
out-of-release preview compiler builds from that branch to try it 
out
easily. About that time we will start another feedback thread in 
the NG
with a more practical focus - featuring more code examples and 
design

idioms.

Life after DIP1000
--

It is acknowledged that DIP1000 itself does not allow to 
implemented
completely @safe reference counting, primarily because of an 
issue with
@trusted destructor and re-assignment. Intention is to follow up 
with

another proposal (not directly related) to address the issue from
another angle - but this will only become in focus after DIP1000 
is

finished.


Re: QtE5 - is a wrapping of Qt-5 for D

2016-08-21 Thread eugene via Digitalmars-d-announce

On Sunday, 21 August 2016 at 13:18:04 UTC, MGW wrote:

Hello, could you share your experience with D language? How it 
feels to work with it?





Re: ggplotd version 1.0.0 released

2016-08-21 Thread Saurabh Das via Digitalmars-d-announce
On Saturday, 20 August 2016 at 16:37:29 UTC, Edwin van Leeuwen 
wrote:
I just wanted to announce the 1.0.0 version release of ggplotd 
[1]. The main addition is support for legends. Other than that 
the release focused on cleaning up/refactoring the code. It 
should still be backwards compatible though.


As always I also released a new version of plotcli (the 
commandline plotting tool), which now also supports legends 
[2]. I am afraid there is currently no prebuild plotcli version 
with gtk support available OSX due to a linker error with gtkd 
on OSX [3]. I don't have a mac, so have been unable to solve 
this. Any input would be appreciated :)


[1] https://github.com/BlackEdder/ggplotd
[2] https://github.com/BlackEdder/plotd
[3] https://github.com/gtkd-developers/GtkD/issues/162


This is excellent. I shall give it a try this week.

Thanks!
SD



Re: ggplotd version 1.0.0 released

2016-08-21 Thread Edwin van Leeuwen via Digitalmars-d-announce

On Sunday, 21 August 2016 at 12:32:11 UTC, ZombineDev wrote:
I've worked extensively with data-viz UI components for WPF/SL 
and ASP.NET and I have to say that, after a quick glance at the 
readme, I really like the API of your library! Nice work!


Thanks! Although I must give most of the props to ggplot2 (the R 
package), because it is inspired by their API :)





Re: QtE5 - is a wrapping of Qt-5 for D

2016-08-21 Thread MGW via Digitalmars-d-announce

On Thursday, 23 June 2016 at 13:04:09 UTC, Jozsef wrote:

Nice work!

I do not know if performance of the Forth interpreter is 
important, but I would replace the following sequence to spare 
a function call.


CALL label; ret;   --->>>   JMP label;


Many thanks for the note on forth!

Development of QtE5 - a ready installer.

QtE5 - from a box. Before installation the compiler DMD shall be 
already set!


Ready installer: https://yadi.sk/d/sqhTCMneuN7rj

It isn't recommended to change the directory of installation 
since in "Program Files" by default record is forbidden, and 
during installation there is a compilation of programs D. In 
particular, there is a compilation of the check program RunTime 
Qt-5 and ide5. The installer creates an icon for "compilation and 
start" ide5. If every time again it isn't necessary to compile 
ide5, then create other icon with the necessary parameters.


In Linux installation is also possible if you have Wine. If you 
have DMD for Linux, then operation and with it is possible. For 
this purpose it is necessary to launch a script: "sh 
start_ide5.sh" - which compiles ide5 using the compiler dmd for 
Linux and QtE5 for Linux. There are ready 32 and 64 Linux of 
assembly and 32 Windows assembly.


Re: ggplotd version 1.0.0 released

2016-08-21 Thread ZombineDev via Digitalmars-d-announce
On Saturday, 20 August 2016 at 16:47:07 UTC, Edwin van Leeuwen 
wrote:
On Saturday, 20 August 2016 at 16:37:29 UTC, Edwin van Leeuwen 
wrote:
I just wanted to announce the 1.0.0 version release of ggplotd 
[1]. The main addition is support for legends. Other than that 
the release focused on cleaning up/refactoring the code. It 
should still be backwards compatible though.




Forgot to add what ggplotd actually is :)

ggplotd is a plotting library, which uses cairo to do the 
actual for drawing. It supports saving as svg, pdf and png 
file. It also has basic support for drawing to gtk. The library 
design is inspired by ggplot2 for R, which in turn is based on 
a book called: grammar of graphics (hence gg(plot)). It 
supports plotting lines/points, histograms(2d) and density(2d) 
plots. It is written in such a way that it is easy to add your 
own type of plots (see the README).


I've worked extensively with data-viz UI components for WPF/SL 
and ASP.NET and I have to say that, after a quick glance at the 
readme, I really like the API of your library! Nice work!