Designing with the GC out of mind

2013-08-06 Thread JS
I would like to remove the GC dependence on my own class objects I am designing and at some point remove the GC completely if possible(assuming at some point D itself will be GC agnostic). 1. Is there a way to determine what the GC is doing? I would like to know just how much my projects are

Re: Designing with the GC out of mind

2013-08-06 Thread Adam D. Ruppe
On Tuesday, 6 August 2013 at 07:19:40 UTC, JS wrote: 1. Is there a way to determine what the GC is doing? It is probably easiest to just run it in a debugger, and set a breakpoint on gc_malloc and gc_qalloc. When it breaks, you can see where it is, then continue to carry on. You can also

Re: Designing with the GC out of mind

2013-08-06 Thread QAston
On Tuesday, 6 August 2013 at 12:41:26 UTC, Adam D. Ruppe wrote: On Tuesday, 6 August 2013 at 07:19:40 UTC, JS wrote: 1. Is there a way to determine what the GC is doing? ... You can also tell where the gc runs by carefully reviewing the code: There's complete list at

Re: Designing with the GC out of mind

2013-08-06 Thread Martin Drasar
On 6.8.2013 14:58, QAston wrote: On Tuesday, 6 August 2013 at 12:41:26 UTC, Adam D. Ruppe wrote: On Tuesday, 6 August 2013 at 07:19:40 UTC, JS wrote: 1. Is there a way to determine what the GC is doing? ... You can also tell where the gc runs by carefully reviewing the code: There's

Re: Designing with the GC out of mind

2013-08-06 Thread JS
On Tuesday, 6 August 2013 at 12:41:26 UTC, Adam D. Ruppe wrote: On Tuesday, 6 August 2013 at 07:19:40 UTC, JS wrote: 1. Is there a way to determine what the GC is doing? It is probably easiest to just run it in a debugger, and set a breakpoint on gc_malloc and gc_qalloc. When it breaks, you

Re: Designing with the GC out of mind

2013-08-06 Thread bearophile
QAston: There's complete list at http://dlang.org/garbage.html - paragraph: D Operations That Involve the Garbage Collector I think that list is not fully updated, this was recently a little improved: Array literals (except when used to initialize static data) Now if you initialize a

Re: Designing with the GC out of mind

2013-08-06 Thread Adam D. Ruppe
On Tuesday, 6 August 2013 at 13:43:01 UTC, JS wrote: I'd still like some easy way to hook into the GC to monitor what is going on though because ultimately I'd like to disable the GC but then must guarantee that memory is not leaking. Using a debugger is the easiest way. You can also hack on

Re: Designing with the GC out of mind

2013-08-06 Thread JS
On Tuesday, 6 August 2013 at 14:27:32 UTC, Adam D. Ruppe wrote: On Tuesday, 6 August 2013 at 13:43:01 UTC, JS wrote: I'd still like some easy way to hook into the GC to monitor what is going on though because ultimately I'd like to disable the GC but then must guarantee that memory is not

Re: Designing with the GC out of mind

2013-08-06 Thread Dicebot
On Tuesday, 6 August 2013 at 15:20:47 UTC, JS wrote: ... I don't think you can do it without building custom druntime with own GC hooks.

Re: Designing with the GC out of mind

2013-08-06 Thread anonymous
On Tuesday, 6 August 2013 at 14:27:32 UTC, Adam D. Ruppe wrote: and there's a gc proxy in the code but idk how to use it. I have this little piece of hack that uses the proxy to disable GC allocations at runtime. It's not tested well, so it probably has some issues, but maybe it's a start