Re: Visual D 0.3.34 released - powered by a precise garbage collector

2012-10-13 Thread thedeemon

On Friday, 12 October 2012 at 17:37:09 UTC, Rainer Schuetze wrote:
after struggling with memory issues for too long, the newest 
version of Visual D enjoys the benefits of a pretty precise 
garbage collector.


Great news!
I'm a happy thankful user of VisualD. I really like the fact that 
the new precise GC is being tested on a real world project, and 
that it happens in Windows, not yet another unix-only development.


What are your thoughts on current state of precise_gc2? How 
stable and how fast is it? What are the current plans for it?





Re: Visual D 0.3.34 released - powered by a precise garbage collector

2012-10-13 Thread Nicholas Londey
Chrome is flagging the download as 'This file appears malicious.' 
for me. Have you run into this?


On Friday, 12 October 2012 at 17:37:09 UTC, Rainer Schuetze wrote:

Hi,

after struggling with memory issues for too long, the newest 
version of Visual D enjoys the benefits of a pretty precise 
garbage collector. This isn't the only new feature of this 
release, here are some more:


* linker error messages can now be decompressed and demangled 
(thanks to Benjamin Thaut for providing the tool)
* optlink is now called directly with file monitoring: this 
allows passing library path and detecting library and source 
dependencies

* various improvements to the parser and completion
* fixed installation for VS2012

The full changelog can be read here: 
http://www.dsource.org/projects/visuald/wiki/VersionHistory


Visual D is a Visual Studio package providing both project 
management and language services for the D programming 
language. It works with Visual Studio 2005-12 as well as the 
free Visual Studio Shells.


The Visual D installer can be downloaded from its website at 
http://www.dsource.org/projects/visuald


Rainer





Re: D2 for Win64

2012-10-13 Thread Jacob Carlborg

On 2012-10-13 03:44, Walter Bright wrote:

Is now in a semi-usable state. Problems remain:

 $(LI 80 bit reals are truncated to 64 bits when formatting.)
 $(LI Many math functions are not implemented.)
 $(LI No symbolic debug info is generated.)
 $(LI Cannot catch Win64 structured exception handling exceptions.)


Is this exceptions in general or is there some kind of DMD specific 
exception system that works?



 $(LI VS debugger cannot look at call stack.)
 $(LI Only tested with VS 2010.)
 $(LI No installer.)

So if you're feeling intrepid, give it a whirl. Expect problems.

Yes, you have to have Visual Studio installed. Yes, it generates
MS-Coff, and requires MS-Link to link.


This is really good news, you're making good progress, keep it up.

--
/Jacob Carlborg


Re: Visual D 0.3.34 released - powered by a precise garbage collector

2012-10-13 Thread Rainer Schuetze



On 10/13/2012 10:31 AM, Nicholas Londey wrote:

Chrome is flagging the download as 'This file appears malicious.' for
me. Have you run into this?


I have downloaded and installed Chrome, and it does not complain. But 
Windows 8 SmartScreen does, probably because the installer is not 
signed. You can still allow installation by clicking Details.




Re: Visual D 0.3.34 released - powered by a precise garbage collector

2012-10-13 Thread Rainer Schuetze



On 10/13/2012 10:19 AM, thedeemon wrote:

On Friday, 12 October 2012 at 17:37:09 UTC, Rainer Schuetze wrote:

after struggling with memory issues for too long, the newest version
of Visual D enjoys the benefits of a pretty precise garbage collector.


Great news!
I'm a happy thankful user of VisualD. I really like the fact that the
new precise GC is being tested on a real world project, and that it
happens in Windows, not yet another unix-only development.

What are your thoughts on current state of precise_gc2? How stable and
how fast is it? What are the current plans for it?



I have only done a few benchmarks from the druntime/benchmark folder and 
the dmd test suite, but these are more biased towards lots of 
allocations than collections. For those, the overall performance is 
about 20-30% slower, because there is some more work to done in allocations.


Within Visual D, it seems that collections are quite a bit faster, but 
as the parser and semantic analysis which uses most memory, is delegated 
to another process, you probably won't notice it anyway.


My impression is that the branch on github 
(https://github.com/rainers/druntime/tree/precise_gc2) is pretty stable. 
There are still a number of unprecisely scanned memory areas:


- data and bss segment (Visual D uses a dmd/druntime a patch to 
implement precise scanning for these too, but it does not integrate very 
well and is Windows-specific so far)

- closures
- some structures in associative arrays, as there is no combined 
typeinfo available to be passed to the GC

- emplaced objects if memory is allocated with new void[]

The GC interface needs to be extended with a function to specify type 
info for an arbitrarily memory range to improve some of the above.


Re: Visual D 0.3.34 released - powered by a precise garbage collector

2012-10-13 Thread Lubos Pintes

Not in Firefox, downloaded yesterday.
Dňa 13. 10. 2012 10:31 Nicholas Londey  wrote / napísal(a):

Chrome is flagging the download as 'This file appears malicious.' for
me. Have you run into this?

On Friday, 12 October 2012 at 17:37:09 UTC, Rainer Schuetze wrote:

Hi,

after struggling with memory issues for too long, the newest version
of Visual D enjoys the benefits of a pretty precise garbage collector.
This isn't the only new feature of this release, here are some more:

* linker error messages can now be decompressed and demangled (thanks
to Benjamin Thaut for providing the tool)
* optlink is now called directly with file monitoring: this allows
passing library path and detecting library and source dependencies
* various improvements to the parser and completion
* fixed installation for VS2012

The full changelog can be read here:
http://www.dsource.org/projects/visuald/wiki/VersionHistory

Visual D is a Visual Studio package providing both project management
and language services for the D programming language. It works with
Visual Studio 2005-12 as well as the free Visual Studio Shells.

The Visual D installer can be downloaded from its website at
http://www.dsource.org/projects/visuald

Rainer







Re: Visual D 0.3.34 released - powered by a precise garbage collector

2012-10-13 Thread Rainer Schuetze



On 10/13/2012 2:37 PM, Rainer Schuetze wrote:



My impression is that the branch on github
(https://github.com/rainers/druntime/tree/precise_gc2) is pretty stable.


I should add that you can expect running into linker problems because 
RTInfo for associative arrays is often not generated by dmd. My current 
workaround is to add alias AssociativeArray!(Key,Value) _workaround; 
somewhere if the linker complains about missing symbols for type 
Value[Key]. The new demangling feature in Visual D is quite helpful 
here ;-)




Re: D2 for Win64

2012-10-13 Thread Paulo Pinto

On Saturday, 13 October 2012 at 01:45:11 UTC, Walter Bright wrote:

Is now in a semi-usable state. Problems remain:

$(LI 80 bit reals are truncated to 64 bits when 
formatting.)

$(LI Many math functions are not implemented.)
$(LI No symbolic debug info is generated.)
$(LI Cannot catch Win64 structured exception handling 
exceptions.)

$(LI VS debugger cannot look at call stack.)
$(LI Only tested with VS 2010.)
$(LI No installer.)

So if you're feeling intrepid, give it a whirl. Expect problems.

Yes, you have to have Visual Studio installed. Yes, it 
generates MS-Coff, and requires MS-Link to link.


Great work!

I imagine the Windows SDK would be enough, as  it also contains 
the compilers, at least until version 2010.


With 2012 I think Visual C++ Desktop Express might be required, 
in addition to the SDK.


--
Paulo


Re: D2 for Win64

2012-10-13 Thread Walter Bright

On 10/13/2012 3:00 AM, Jacob Carlborg wrote:
 On 2012-10-13 03:44, Walter Bright wrote:
 Is now in a semi-usable state. Problems remain:

  $(LI Cannot catch Win64 structured exception handling exceptions.)

 Is this exceptions in general or is there some kind of DMD specific exception
 system that works?

dmd for Win64 uses its own exception mechanism. That mechanism is also used on 
Linux, OSX, FreeBSD and Solaris, and is also incompatible with C++ EH on those 
platforms.




Re: D2 for Win64

2012-10-13 Thread Jesse Phillips

On Saturday, 13 October 2012 at 01:45:11 UTC, Walter Bright wrote:

Is now in a semi-usable state. Problems remain:

$(LI 80 bit reals are truncated to 64 bits when 
formatting.)

$(LI Many math functions are not implemented.)
$(LI No symbolic debug info is generated.)
$(LI Cannot catch Win64 structured exception handling 
exceptions.)

$(LI VS debugger cannot look at call stack.)
$(LI Only tested with VS 2010.)
$(LI No installer.)

So if you're feeling intrepid, give it a whirl. Expect problems.

Yes, you have to have Visual Studio installed. Yes, it 
generates MS-Coff, and requires MS-Link to link.


Link to download?


Re: Blog post: Demystifying Garbage Collectors

2012-10-13 Thread Era Scarecrow
On Friday, 12 October 2012 at 19:19:23 UTC, Andrei Alexandrescu 
wrote:

On 10/11/12 9:15 PM, Alex Rønne Petersen wrote:

http://xtzgzorex.wordpress.com/2012/10/11/demystifying-garbage-collectors/

Essentially an explanation of garbage collection for the 
layman programmer. Though, it does assume some familiarity 
with C and memory management. It's an abstract article not 
particularly specific to any GC implementation, but I figured 
I'd post it here anyway in case anyone's interested.



http://www.reddit.com/r/programming/comments/11doh4/demystifying_garbage_collectors/


 A question comes up, and I don't need an answer but it may be 
useful to know, but I'm curious.


 Does D include an index to bitmaps specifying which offsets in a 
given memory block (say a class or a struct) of which fields 
actually would point to memory? With the strong possibility of 
working with manual pointer management it is possible it's not as 
useful as it could be; But may be considered when making a GC. 
Who knows, I may try my hand at it.


 //some pseudo random number generator class
 class Prng {
  int seed;
  int[] cached;

  //mem location as good as any for an initial seed,
  //maybe xor against time/date
  this() {seed = cast(int) this;}
 }

 The above may have a bitmap indexed to 0_010b (or an index 
so enum {nil, charArray, intArray} and thus [nil, intArray, nil], 
so it would skip the ints and only check the only that actually 
would contains a pointer. It could also effectively hold 
additional information on the type for further indexing, so when 
it sees 'cached' it will know it's an array, but if it was an 
array to Objects, then it would scan every part of that inner 
array mentioned for further references.


Re: Mono-D v0.4.1.5 Fixes

2012-10-13 Thread F i L

On Saturday, 13 October 2012 at 13:17:52 UTC, alex wrote:

Hi everyone,

Just released a new Mono-D version that features couple of 
bigger sort of fixes..


The download:
http://mono-d.alexanderbothe.com/repo/MonoDevelop.D_0.4.1.5_MD3.0.4.7.mpack

The changelog:
http://mono-d.alexanderbothe.com/?p=634

The blog:
http://mono-d.alexanderbothe.com

The issues:
https://github.com/aBothe/Mono-D/issues


Cheers,
Alex


Nice work, as always, Alex.



Re: Visual D 0.3.34 released - powered by a precise garbage collector

2012-10-13 Thread Walter Bright

On 10/12/2012 10:37 AM, Rainer Schuetze wrote:
 The Visual D installer can be downloaded from its website at
 http://www.dsource.org/projects/visuald

On github:

https://github.com/rainers/visuald


Re: Article: Dispelling Common D Myths

2012-10-13 Thread torhu

On 10.10.2012 09:06, Jacob Carlborg wrote:

On 2012-10-10 08:38, Nick Sabalausky wrote:

Some stuff I thought needed to be said and shared:

http://semitwist.com/articles/article/view/dispelling-common-d-myths



Personally, I would have pointed out that there are some other useful
modules in Tango that Phobos still is missing, cryptographic and log
related modules.


Here are some other things that I can't remember seeing in Phobos 2:

- An easy-to-use Process module with piping, etc
(Yes, I know it's been in the pipeline for some time.)
- A cross platform way of loading dynamic libraries
(std.loader always sucked, you had to customize it to actually use it)

There could be some others that I'm forgetting.

In my view, D2/Phobos2 is still playing catch-up to D1/Tango.  The D1 
compiler is less buggy, Tango is still better than Phobos2, library 
could well be better.


I wouldn't recommend anyone to start a new project in D1.  But I also 
feel that some people are jumping the gun when they talk about D2's 
maturity.


Re: Article: Dispelling Common D Myths

2012-10-13 Thread Era Scarecrow

On Sunday, 14 October 2012 at 03:24:16 UTC, torhu wrote:
In my view, D2/Phobos2 is still playing catch-up to D1/Tango.  
The D1 compiler is less buggy, Tango is still better than 
Phobos2, library could well be better.


I wouldn't recommend anyone to start a new project in D1.  But 
I also feel that some people are jumping the gun when they talk 
about D2's maturity.


 I'll agree; I haven't used much of Tango myself but I can 
remember where some of the problems were. I had trouble trying to 
get a good enough foot-hold on the library while Phobos is 
generally simpler.


 I wish D2 was more mature, several things seem to crop up. 
Duplicate functions with only const/mutable differences in some 
cases, the $ not fully implemented, phobos still evolving; Things 
like this can be worked around to a degree. I can't help but wish 
it was already perfect.



 However; D2 IS mature enough for a good number of tasks, and 
even the hickups I'm finding they are far easier (and more 
pleasant) to work around (comparing to C++, syntax and how ugly 
it is alone, not to mention how confusing the STL is). Also D2 
where there's common/potential for mistakes and ambiguities it 
errs and tells you (add parentheses, or no assignment in an if 
statement, or a statement does nothing) rather than adding extra 
rules to handle dozens of potential cases that gets more 
confusing with each iteration.


 Plus getting a hang of Templates is a breeze once I got a good 
foothold on it all. I'm no expert with templates, but problems 
are easy to find quickly and resolve with template bugs.