www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Status on Precise GC

reply "Tyler Jameson Little" <beatgammit gmail.com> writes:
This issue on bugzilla hasn't been updated since July 2011, but
it's assigned to Sean Kelly:
http://d.puremagic.com/issues/show_bug.cgi?id=3463

I've found these threads concerning a precise GC:

http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html

http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html

Is this issue obsolete, or is it being worked on?

Reason being, I'm writing a game in D and I plan to write it in
nearly 100% D (with the exception being OpenGL libraries and the
like), but I know I'll run into problems with the GC eventually.
If this is an active project that may get finished in the
relative near term (less than a year), then I'd feel comfortable
knowing that eventually problems may go away.

I want to eventually make this work with ARM (Raspberry PI &
cubieboard), and the GC is a major blocker here (well, and a
cross-compiler, but I'll work that out when I get there).

I'm using dmd atm if that matters.

Thanks!

Jameson
Sep 07 2012
next sibling parent reply "dsimcha" <dsimcha yahoo.com> writes:
Here's the GSoC project I mentored this summer.  A little 
integration work still needs to be done, and I've been meaning to 
ping the student about the status of this.  If you want, I'd 
welcome some beta testers.

https://github.com/Tuna-Fish/druntime/tree/gc_poolwise_bitmap

On Saturday, 8 September 2012 at 01:55:44 UTC, Tyler Jameson 
Little wrote:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html

 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html

 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
Sep 07 2012
next sibling parent reply Rainer Schuetze <r.sagitario gmx.de> writes:
I happen to have been trying it yesterday and spent the better part of 
the day fixing issues (especially with dynamic arrays). I just noticed 
there are still problems with associative arrays, but I hope I will have 
a pull request today.

Rainer

 dsimcha: Sorry about spamming your personal mail, I pushed the wrong 
reply button.

On 08.09.2012 04:59, dsimcha wrote:
 Here's the GSoC project I mentored this summer.  A little integration
 work still needs to be done, and I've been meaning to ping the student
 about the status of this.  If you want, I'd welcome some beta testers.

 https://github.com/Tuna-Fish/druntime/tree/gc_poolwise_bitmap

 On Saturday, 8 September 2012 at 01:55:44 UTC, Tyler Jameson Little wrote:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html


 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html


 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
Sep 08 2012
parent Rainer Schuetze <r.sagitario gmx.de> writes:
On 08.09.2012 09:07, Rainer Schuetze wrote:
 I happen to have been trying it yesterday and spent the better part of
 the day fixing issues (especially with dynamic arrays). I just noticed
 there are still problems with associative arrays, but I hope I will have
 a pull request today.
It took a little longer than I have hoped for, but I have committed a new branch here: https://github.com/rainers/druntime/tree/precise_gc2 I didn't make it a pull request, because I had to touch almost all of the precise specific code and change a lot more. It is also rebased to current druntime-master, so it is easier to try it out. Associative arrays are a bit troublesome because they emplace keys and values into memory areas without type information, I guess the gc interface needs to be extended to support handing pointer information to the gc. That would also help emplace!T and others. The garbage collector works with the test suite and Visual D (that means doesn't crash on Win32, cannot test elsewhere), but unfortunately, it still doesn't collect everything. A source of trouble is the pre-initialized data segment, that contains a lot of GUIDs and strings making good false pointers. I have a compiler patch to combine all the data that would get a NOSCAN attribute at runtime into a contiguous region, so that it can be excluded from scanning, but I would like to exclude more, i.e. the C runtime library data, noscan areas in TLS and BSS. The compiler still resists against changes to that respect... Another option could be to generate pointer bitmaps for the data areas at compile time into another segment, but I'm not sure whether the linker could mess up the order in comparison to the actual data segments. If you like to test it, especially welcome on other platforms, there is a precisegc_test.d in src/gc that should check the basic runtime info generation. Rainer
Sep 15 2012
prev sibling parent reply "Tyler Jameson Little" <beatgammit gmail.com> writes:
Awesome, that's good news. I'd love to test it out, but I've
never built the D runtime (or Phobos for that matter) from
source. Are there any instructions or do I just do something like
make && sudo make install and it'll put itself in the right
places? FWIW, I'm running Linux with the standard DMD 2.060
compiler.

I'm still relatively new to D. A year ago I wrote some simple
programs to get familiar (like an HTTP lib and a start at a
package manager), but nothing low level like GC tuning or the
like. I took a class where we implemented a few simple GCs, but
that doesn't mean I know anything about GC design =D.

Let me know how I can help! I'm currently in school, so time is a
little hard to come by, but I'm willing to report any oddities
that I notice, and perhaps write a few unit tests.

On Saturday, 8 September 2012 at 02:58:44 UTC, dsimcha wrote:
 Here's the GSoC project I mentored this summer.  A little 
 integration work still needs to be done, and I've been meaning 
 to ping the student about the status of this.  If you want, I'd 
 welcome some beta testers.

 https://github.com/Tuna-Fish/druntime/tree/gc_poolwise_bitmap

 On Saturday, 8 September 2012 at 01:55:44 UTC, Tyler Jameson 
 Little wrote:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html

 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html

 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and 
 the
 like), but I know I'll run into problems with the GC 
 eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel 
 comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
Sep 08 2012
parent reply Jacob Carlborg <doob me.com> writes:
On 2012-09-08 23:35, Tyler Jameson Little wrote:
 Awesome, that's good news. I'd love to test it out, but I've
 never built the D runtime (or Phobos for that matter) from
 source. Are there any instructions or do I just do something like
 make && sudo make install and it'll put itself in the right
 places? FWIW, I'm running Linux with the standard DMD 2.060
 compiler.
Just run: make -f posix.mak Or, for Windows: make -f win32.mak -- /Jacob Carlborg
Sep 09 2012
parent reply "dsimcha" <dsimcha yahoo.com> writes:
On Sunday, 9 September 2012 at 16:51:15 UTC, Jacob Carlborg wrote:
 On 2012-09-08 23:35, Tyler Jameson Little wrote:
 Awesome, that's good news. I'd love to test it out, but I've
 never built the D runtime (or Phobos for that matter) from
 source. Are there any instructions or do I just do something 
 like
 make && sudo make install and it'll put itself in the right
 places? FWIW, I'm running Linux with the standard DMD 2.060
 compiler.
Just run: make -f posix.mak Or, for Windows: make -f win32.mak
You also need to build Phobos, which automatically links the druntime objects into a single library file, by going into the Phobos directory and doing the same thing. An annoying issue on Windows, though, is that DMD keeps running out of memory when all the precise GC teimplates are instantiated. I've been meaning to rewrite the make file to separately compile Phobos on Windows, but I've been preoccupied with other things.
Sep 09 2012
parent reply "Tyler Jameson Little" <beatgammit gmail.com> writes:
On Sunday, 9 September 2012 at 17:22:01 UTC, dsimcha wrote:
 On Sunday, 9 September 2012 at 16:51:15 UTC, Jacob Carlborg 
 wrote:
 On 2012-09-08 23:35, Tyler Jameson Little wrote:
 Awesome, that's good news. I'd love to test it out, but I've
 never built the D runtime (or Phobos for that matter) from
 source. Are there any instructions or do I just do something 
 like
 make && sudo make install and it'll put itself in the right
 places? FWIW, I'm running Linux with the standard DMD 2.060
 compiler.
Just run: make -f posix.mak Or, for Windows: make -f win32.mak
You also need to build Phobos, which automatically links the druntime objects into a single library file, by going into the Phobos directory and doing the same thing. An annoying issue on Windows, though, is that DMD keeps running out of memory when all the precise GC teimplates are instantiated. I've been meaning to rewrite the make file to separately compile Phobos on Windows, but I've been preoccupied with other things.
Cool, that sounds easy enough. I'm running Linux, so hopefully I won't have that problem. I won't need to compile on Windows for quite a while, so that's not a big deal. I probably won't get to it for a few days (because of class responsibilities), but I'll try to get to it by the end of the week. I'm excited to test it out and see if I can break it! I'll check back here every so often, so if you hear from that GSoC person, I'd love to hear any updates on what may or may not be finished. I'd really like to develop something non-trivial in D.
Sep 09 2012
parent Sean Kelly <sean invisibleduck.org> writes:
On Sep 9, 2012, at 8:16 PM, Tyler Jameson Little <beatgammit gmail.com> =
wrote:

 On Sunday, 9 September 2012 at 17:22:01 UTC, dsimcha wrote:
 On Sunday, 9 September 2012 at 16:51:15 UTC, Jacob Carlborg wrote:
 On 2012-09-08 23:35, Tyler Jameson Little wrote:
 Awesome, that's good news. I'd love to test it out, but I've
 never built the D runtime (or Phobos for that matter) from
 source. Are there any instructions or do I just do something like
 make && sudo make install and it'll put itself in the right
 places? FWIW, I'm running Linux with the standard DMD 2.060
 compiler.
=20 Just run: =20 make -f posix.mak =20 Or, for Windows: =20 make -f win32.mak
=20 You also need to build Phobos, which automatically links the druntime =
objects into a single library file, by going into the Phobos directory = and doing the same thing.
=20
 An annoying issue on Windows, though, is that DMD keeps running out =
of memory when all the precise GC teimplates are instantiated. I've = been meaning to rewrite the make file to separately compile Phobos on = Windows, but I've been preoccupied with other things.
=20
 Cool, that sounds easy enough. I'm running Linux, so hopefully I won't =
have that problem. I won't need to compile on Windows for quite a while, = so that's not a big deal. Depending on your setup, you may need to set the DRUNTIME_PATH variable = to get make to find your runtime library. If your druntime lib is in = ~/lib you'd do: make -fposix.mak DRUNTIME_PATH=3D$HOME The makefile looks for the library in a "lib" subdirectory of whatever = directory you supply.=
Sep 09 2012
prev sibling parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 08.09.2012 03:56, schrieb Tyler Jameson Little:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html


 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html


 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
About a year ago I have been at the same point then you are now, and afterwars I tell you that you should write your project without a GC from the start. See my article about this: http://3d.benjamin-thaut.de/?p=20 GCs are usually not very good for games, unless you have a concurrent generational incremental non stop the world GC like .Net 4 (Which they created only for XNA 4) Kind Regards Benjamin Thaut
Sep 07 2012
parent reply =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 08-09-2012 08:44, Benjamin Thaut wrote:
 Am 08.09.2012 03:56, schrieb Tyler Jameson Little:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html



 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html



 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
About a year ago I have been at the same point then you are now, and afterwars I tell you that you should write your project without a GC from the start. See my article about this: http://3d.benjamin-thaut.de/?p=20 GCs are usually not very good for games, unless you have a concurrent generational incremental non stop the world GC like .Net 4 (Which they created only for XNA 4) Kind Regards Benjamin Thaut
You can't be incremental /and/ concurrent non-STW. -- Alex Rønne Petersen alex lycus.org http://lycus.org
Sep 08 2012
next sibling parent Sean Kelly <sean invisibleduck.org> writes:
On Sep 8, 2012, at 5:47 AM, Alex R=C3=B8nne Petersen <alex lycus.org> wrote:=


 On 08-09-2012 08:44, Benjamin Thaut wrote:
 Am 08.09.2012 03:56, schrieb Tyler Jameson Little:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3D3463
=20
 I've found these threads concerning a precise GC:
=20
 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_=
more_precise_GC_35038.html
=20
=20
=20
 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_i=
mport_functions_from_gcx_in_object.di_171815.html
=20
=20
=20
 Is this issue obsolete, or is it being worked on?
=20
 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.
=20
 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).
=20
 I'm using dmd atm if that matters.
=20
 Thanks!
=20
 Jameson
=20 About a year ago I have been at the same point then you are now, and afterwars I tell you that you should write your project without a GC from the start. See my article about this: http://3d.benjamin-thaut.de/?p=3D20 =20 GCs are usually not very good for games, unless you have a concurrent generational incremental non stop the world GC like .Net 4 (Which they created only for XNA 4) =20 Kind Regards Benjamin Thaut
=20 You can't be incremental /and/ concurrent non-STW.
IBM's Metronome is a soft-realtime incremental GC. Very impressive, though i= t's only for Java. I don't think an incremental GC is compatible with D (ma= ybe SafeD), but I would love if there were maximum delay guarantees associat= ed with a collection cycle.=20=
Sep 08 2012
prev sibling next sibling parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 08.09.2012 14:47, schrieb Alex Rønne Petersen:
 On 08-09-2012 08:44, Benjamin Thaut wrote:
 Am 08.09.2012 03:56, schrieb Tyler Jameson Little:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html




 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html




 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
About a year ago I have been at the same point then you are now, and afterwars I tell you that you should write your project without a GC from the start. See my article about this: http://3d.benjamin-thaut.de/?p=20 GCs are usually not very good for games, unless you have a concurrent generational incremental non stop the world GC like .Net 4 (Which they created only for XNA 4) Kind Regards Benjamin Thaut
You can't be incremental /and/ concurrent non-STW.
You can, they have multiple pools of memory, some of them are scanned concurrently and the big one incremental. Kind Regards Benjamin Thaut
Sep 08 2012
parent =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 08-09-2012 22:04, Benjamin Thaut wrote:
 Am 08.09.2012 14:47, schrieb Alex Rønne Petersen:
 On 08-09-2012 08:44, Benjamin Thaut wrote:
 Am 08.09.2012 03:56, schrieb Tyler Jameson Little:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html





 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html





 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
About a year ago I have been at the same point then you are now, and afterwars I tell you that you should write your project without a GC from the start. See my article about this: http://3d.benjamin-thaut.de/?p=20 GCs are usually not very good for games, unless you have a concurrent generational incremental non stop the world GC like .Net 4 (Which they created only for XNA 4) Kind Regards Benjamin Thaut
You can't be incremental /and/ concurrent non-STW.
You can, they have multiple pools of memory, some of them are scanned concurrently and the big one incremental. Kind Regards Benjamin Thaut
Right... but then your GC is not purely concurrent non-STW, which is what I thought you were saying. Incremental inherently implies some kind of STW, regardless of what generation we're talking about. -- Alex Rønne Petersen alex lycus.org http://lycus.org
Sep 08 2012
prev sibling parent reply "Adam Wilson" <flyboynw gmail.com> writes:
On Sat, 08 Sep 2012 05:47:23 -0700, Alex R=F8nne Petersen <alex lycus.or=
g>  =

wrote:

 On 08-09-2012 08:44, Benjamin Thaut wrote:
 Am 08.09.2012 03:56, schrieb Tyler Jameson Little:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3D3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_=
the_more_precise_GC_35038.html
 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_proper=
ly_import_functions_from_gcx_in_object.di_171815.html
 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
About a year ago I have been at the same point then you are now, and afterwars I tell you that you should write your project without a GC from the start. See my article about this: http://3d.benjamin-thaut.de/?p=3D20 GCs are usually not very good for games, unless you have a concurrent=
 generational incremental non stop the world GC like .Net 4 (Which the=
y
 created only for XNA 4)

 Kind Regards
 Benjamin Thaut
You can't be incremental /and/ concurrent non-STW.
In .NET Gen 2 is collected concurrently. They don't collect Gen 0 and Ge= n = 1 because "they finish very fast". They do have a heavily threaded STW = collector for server usage. .NET 4 GC: http://msdn.microsoft.com/en-us/library/ee787088.aspx -- = Adam Wilson IRC: LightBender Project Coordinator The Horizon Project http://www.thehorizonproject.org/
Sep 08 2012
next sibling parent =?ISO-8859-15?Q?Alex_R=F8nne_Petersen?= <alex lycus.org> writes:
On 08-09-2012 22:54, Adam Wilson wrote:
 On Sat, 08 Sep 2012 05:47:23 -0700, Alex Rønne Petersen <alex lycus.org>
 wrote:

 On 08-09-2012 08:44, Benjamin Thaut wrote:
 Am 08.09.2012 03:56, schrieb Tyler Jameson Little:
 This issue on bugzilla hasn't been updated since July 2011, but
 it's assigned to Sean Kelly:
 http://d.puremagic.com/issues/show_bug.cgi?id=3463

 I've found these threads concerning a precise GC:

 http://www.digitalmars.com/d/archives/digitalmars/D/learn/Regarding_the_more_precise_GC_35038.html




 http://www.digitalmars.com/d/archives/digitalmars/D/How_can_I_properly_import_functions_from_gcx_in_object.di_171815.html




 Is this issue obsolete, or is it being worked on?

 Reason being, I'm writing a game in D and I plan to write it in
 nearly 100% D (with the exception being OpenGL libraries and the
 like), but I know I'll run into problems with the GC eventually.
 If this is an active project that may get finished in the
 relative near term (less than a year), then I'd feel comfortable
 knowing that eventually problems may go away.

 I want to eventually make this work with ARM (Raspberry PI &
 cubieboard), and the GC is a major blocker here (well, and a
 cross-compiler, but I'll work that out when I get there).

 I'm using dmd atm if that matters.

 Thanks!

 Jameson
About a year ago I have been at the same point then you are now, and afterwars I tell you that you should write your project without a GC from the start. See my article about this: http://3d.benjamin-thaut.de/?p=20 GCs are usually not very good for games, unless you have a concurrent generational incremental non stop the world GC like .Net 4 (Which they created only for XNA 4) Kind Regards Benjamin Thaut
You can't be incremental /and/ concurrent non-STW.
In .NET Gen 2 is collected concurrently. They don't collect Gen 0 and Gen 1 because "they finish very fast". They do have a heavily threaded STW collector for server usage. .NET 4 GC: http://msdn.microsoft.com/en-us/library/ee787088.aspx
(See my reply to Benjamin.) -- Alex Rønne Petersen alex lycus.org http://lycus.org
Sep 08 2012
prev sibling parent Benjamin Thaut <code benjamin-thaut.de> writes:
Am 08.09.2012 22:54, schrieb Adam Wilson:
 In .NET Gen 2 is collected concurrently. They don't collect Gen 0 and
 Gen 1 because "they finish very fast". They do have a heavily threaded
 STW collector for server usage.

 .NET 4 GC: http://msdn.microsoft.com/en-us/library/ee787088.aspx
Thats exactly the article which I tried to summarize. (Which apperently wasn't that percise). As it seems that D can't support such a modern GC I think the focus should be put more in the non-GC side of things. Kind Regards Benjamin Thaut
Sep 09 2012