Re: D 1.076 Alpha for Windows 64 bits, works with VS 2010

2012-09-28 Thread Brad Roberts
On Fri, 28 Sep 2012, Walter Bright wrote:

> On 9/28/2012 12:39 PM, Brad Roberts wrote:
> > It's more than just catching.  That's a relatively minor issue.  The
> > bigger one is stack unwinding and related cleanups.  Consider: c++
> > function with local variables that have dtors that calls a D function that
> > throws.  Those c++ locals will never have their dtors called.
> > 
> > It's not a huge problem, but the sum of the problems add up to pain and
> > will need to be fixed at some point.  The lack of pain today is that it's
> > barely feasible to mix languages where more than one has any exception
> > handling right now.  Something of a catch-22 of issues, imho.
> 
> 
> True, but I would never write code that tried to throw an exception across
> language boundaries, anyway. It's just asking for trouble.

And that's fine for your code, but if you want D and DMD to be a system 
that people use for larger systems, then cutting down the sheer number of 
things that don't work when pushed is kinda important.


Re: D 1.076 Alpha for Windows 64 bits, works with VS 2010

2012-09-28 Thread Walter Bright

On 9/28/2012 12:39 PM, Brad Roberts wrote:

It's more than just catching.  That's a relatively minor issue.  The
bigger one is stack unwinding and related cleanups.  Consider: c++
function with local variables that have dtors that calls a D function that
throws.  Those c++ locals will never have their dtors called.

It's not a huge problem, but the sum of the problems add up to pain and
will need to be fixed at some point.  The lack of pain today is that it's
barely feasible to mix languages where more than one has any exception
handling right now.  Something of a catch-22 of issues, imho.



True, but I would never write code that tried to throw an exception across 
language boundaries, anyway. It's just asking for trouble.





Re: D 1.076 Alpha for Windows 64 bits, works with VS 2010

2012-09-28 Thread Brad Roberts
On Fri, 28 Sep 2012, Walter Bright wrote:

> On 9/27/2012 11:01 PM, Jacob Carlborg wrote:
> > On 2012-09-27 21:51, Walter Bright wrote:
> > 
> > > Well, I did. The EH mechanism in dmd Win64 is the same as that used for
> > > dmd Linux, OSX and FreeBSD, 32 and 64.
> > 
> > What does that practically mean from the users point of view?
> 
> It means D cannot throw or catch VC exceptions, and VC code cannot throw or
> catch D exceptions.
> 
> Pretty much just like on Linux/OSX/FreeBSD, which doesn't seem to be a
> problem.

It's more than just catching.  That's a relatively minor issue.  The 
bigger one is stack unwinding and related cleanups.  Consider: c++ 
function with local variables that have dtors that calls a D function that 
throws.  Those c++ locals will never have their dtors called.

It's not a huge problem, but the sum of the problems add up to pain and 
will need to be fixed at some point.  The lack of pain today is that it's 
barely feasible to mix languages where more than one has any exception 
handling right now.  Something of a catch-22 of issues, imho.


Re: D 1.076 Alpha for Windows 64 bits, works with VS 2010

2012-09-28 Thread Walter Bright

On 9/28/2012 10:43 AM, Andrej Mitrovic wrote:

I thought the whole COFF work was entirely about interoperability
(well, that and 64bit). Oh well..



COFF is just a file format, nothing more. It is not an ABI specification.



Re: D 1.076 Alpha for Windows 64 bits, works with VS 2010

2012-09-28 Thread Walter Bright

On 9/27/2012 11:01 PM, Jacob Carlborg wrote:

On 2012-09-27 21:51, Walter Bright wrote:


Well, I did. The EH mechanism in dmd Win64 is the same as that used for
dmd Linux, OSX and FreeBSD, 32 and 64.


What does that practically mean from the users point of view?


It means D cannot throw or catch VC exceptions, and VC code cannot throw or 
catch D exceptions.


Pretty much just like on Linux/OSX/FreeBSD, which doesn't seem to be a problem.




Re: D 1.076 Alpha for Windows 64 bits, works with VS 2010

2012-09-28 Thread Brad Roberts
On Fri, 28 Sep 2012, Andrej Mitrovic wrote:

> On 9/28/12, Brad Roberts  wrote:
> > It's another interoperability problem.  It means that when mixing c++/d that
> > stackframe unwinding during exception
> > handling doesn't work as expected.  It'll be one more thing that eventually
> > needs to be fixed.
> 
> I thought the whole COFF work was entirely about interoperability
> (well, that and 64bit). Oh well..

Interoperability isn't a single attribute.  It's an accumulation of tons 
of attributes.  Much like .so/.dll support.  So, 2 steps forward, but 20 
left (obviously making up those numbers).


Re: dlib - d utility library

2012-09-28 Thread Peter Alexander

On Friday, 28 September 2012 at 09:43:34 UTC, Timur Gafarov wrote:
dlib is a growing collection of native D language libraries 
serving as a framework for various higher-level projects - such 
as game engines, rendering pipelines and multimedia 
applications. It is written in D2 and has no external external 
dependencies aside D's standart library, Phobos.


A note on your Vector implementation. Currently you use the 
vector operators, e.g.


Vector!(T,size) opAddAssign (Vector!(T,size) v)
body
{
arrayof[] += v.arrayof[];
return this;
}

This is fine for large vectors, but (correct me if I'm wrong), 
your vector class appears to be designed for small vectors. Those 
vector ops currently call a asm optimised function that uses SIMD 
instructions in a loop - it works well for larger vectors with 
hundreds of elements, but for small vectors it's significantly 
faster to just use:


foreach (i; 0..size)
arrayof[i] += v.arrayof[i];


I've also noticed that you've provided Matrix2x2 and Matrix4x4 as 
separate structs from the more generic Matrix. I'm guessing this 
is for specialisation. A more idiomatic way to handle this would 
be to use template specialisation to provide the optimised 
versions. That way, when people use Matrix!(T, 2, 2) they get all 
the benefits of Matrix2x2!T as well.


Re: D 1.076 Alpha for Windows 64 bits, works with VS 2010

2012-09-28 Thread Andrej Mitrovic
On 9/28/12, Brad Roberts  wrote:
> It's another interoperability problem.  It means that when mixing c++/d that
> stackframe unwinding during exception
> handling doesn't work as expected.  It'll be one more thing that eventually
> needs to be fixed.

I thought the whole COFF work was entirely about interoperability
(well, that and 64bit). Oh well..


Re: dlib - d utility library

2012-09-28 Thread Craig Dillabaugh

On Friday, 28 September 2012 at 13:29:05 UTC, Danny Arends wrote:


Apart from a description of the project this site seems empty! 
Is
there anywhere a person can download the source code/try this 
out.


If you want to browse it online (without check-out):

http://code.google.com/p/dlib/source/browse/

Gr,
Danny


Thanks. Now I was able to find it.

Craig



Re: Just a reminder, I'll be at GOTO next week!

2012-09-28 Thread deadalnix

Le 28/09/2012 07:43, Walter Bright a écrit :

talking about "Component Programming in D" on Oct. 2.

http://gotocon.com/aarhus-2012/schedule/tuesday.jsp

See you there! (use promotion code brig1000 when registering and you'll
get a discount)


I couldn't come. But Aarhus is a really nice city. It has the most 
horrible city hall ever built, but otherwise this is beautiful.


Re: dlib - d utility library

2012-09-28 Thread Danny Arends


Apart from a description of the project this site seems empty! 
Is
there anywhere a person can download the source code/try this 
out.


If you want to browse it online (without check-out):

http://code.google.com/p/dlib/source/browse/

Gr,
Danny


Re: dlib - d utility library

2012-09-28 Thread Craig Dillabaugh

On Friday, 28 September 2012 at 09:43:34 UTC, Timur Gafarov wrote:
dlib is a growing collection of native D language libraries 
serving as a framework for various higher-level projects - such 
as game engines, rendering pipelines and multimedia 
applications. It is written in D2 and has no external external 
dependencies aside D's standart library, Phobos.


Currently dlib contains the following packages:

dlib.core - standard algorithms, data structures, useful 
templates, etc.


dlib.functional - some functional programming idioms (HOFs, 
combiners, quantifiers, etc.)


dlib.math - linear algebra (vectors, matrices, quaternions, 
etc.)


dlib.geometry - computational geometry (ray casting, 
primitives, etc.)


dlib.image - image processing (filters, color correction, 
graphics formats I/O, support for 8 and 16-bit RGBA buffers and 
floating point operations).


http://code.google.com/p/dlib/


Apart from a description of the project this site seems empty! Is
there anywhere a person can download the source code/try this out.

Thanks.

Craig




Re: glfw3 deimos bindings

2012-09-28 Thread David

Am 28.09.2012 08:02, schrieb Jacob Carlborg:

On 2012-09-28 00:59, David wrote:

I made glfw3 bindings (translated the C headers to D):
https://github.com/Dav1dde/glfw3

Can someone make a deimos repo?


Not that I can create a repository but a description and a link to the C
library is needed.



Linked it in the README


dlib - d utility library

2012-09-28 Thread Timur Gafarov
dlib is a growing collection of native D language libraries serving as a 
framework for various higher-level projects - such as game engines, 
rendering pipelines and multimedia applications. It is written in D2 and 
has no external external dependencies aside D's standart library, Phobos.


Currently dlib contains the following packages:

dlib.core - standard algorithms, data structures, useful templates, etc.

dlib.functional - some functional programming idioms (HOFs, combiners, 
quantifiers, etc.)


dlib.math - linear algebra (vectors, matrices, quaternions, etc.)

dlib.geometry - computational geometry (ray casting, primitives, etc.)

dlib.image - image processing (filters, color correction, graphics 
formats I/O, support for 8 and 16-bit RGBA buffers and floating point 
operations).


http://code.google.com/p/dlib/