On 12/31/17 7:50 AM, Steven Schveighoffer wrote:
Note, you can use a "sink" version of toString as well, and avoid the gc:
void toString(void delegate(const(char)[]) sink) @nogc
{
// use formatValue to push into the sink
}
I guess I'm missing some parameters here, go with what Seb
ary(). scoped!
> won't work here.
>
> Is there a better to write vector3f class while avoiding GC?
Yeah, it doesn't make sense that a type of x, y, z should be a class.
I would stay with a struct here.
Sorry I am a bit disappointed. It seems writeln itself will check if the
st
On Sunday, 31 December 2017 at 07:16:46 UTC, Tim Hsu wrote:
I came from C++ looking forward to D. Some languages require
programmers to use GC all the time. However, A lot of time we
don't really need GC especially when the time of destruction is
deterministic in compile time.
[...]
You
re.
>
> Is there a better to write vector3f class while avoiding GC?
Yeah, it doesn't make sense that a type of x, y, z should be a
class. I would stay with a struct here.
Ali
Sorry I am a bit disappointed. It seems writeln itself will check
if the struct to be printed has toString. If not, it use default
struct printer.
following
into Vector3f:
string toString() {
import std.string : format;
return format("%s,%s,%s", x, y, z);
}
> class version of Vector3f. Require new operator in opBinary(). scoped!
> won't work here.
>
> Is there a better to write vector3f class while avoi
ctor3f. Require new operator in opBinary().
scoped! won't work here.
Is there a better to write vector3f class while avoiding GC?
On Friday, 28 October 2016 at 11:50:20 UTC, hardreset wrote:
On Thursday, 27 October 2016 at 07:52:09 UTC, Guillaume Piolat
wrote:
On Wednesday, 26 October 2016 at 08:18:07 UTC, hardreset wrote:
Is there a page somewhere on how to program D without using
the GC?
The information is scattered.
On Thursday, 27 October 2016 at 07:52:09 UTC, Guillaume Piolat
wrote:
On Wednesday, 26 October 2016 at 08:18:07 UTC, hardreset wrote:
Is there a page somewhere on how to program D without using
the GC?
The information is scattered.
How do I allocate / free structs / classes on the heap
On Wednesday, 26 October 2016 at 08:18:07 UTC, hardreset wrote:
Is there a page somewhere on how to program D without using the
GC?
The information is scattered.
How do I allocate / free structs / classes on the heap manually?
Classes =>
On Wednesday, 26 October 2016 at 08:18:07 UTC, hardreset wrote:
Is there a page somewhere on how to program D without using the
GC? How do I allocate / free structs / classes on the heap
manually? New would be GCed memeory wouldnt it? Delete is being
depreciated?
thanks.
There is the
On Wednesday, 26 October 2016 at 08:18:07 UTC, hardreset wrote:
Is there a page somewhere on how to program D without using the
GC? How do I allocate / free structs / classes on the heap
manually? New would be GCed memeory wouldnt it? Delete is being
depreciated?
thanks.
Probably you want
Is there a page somewhere on how to program D without using the
GC? How do I allocate / free structs / classes on the heap
manually? New would be GCed memeory wouldnt it? Delete is being
depreciated?
thanks.
Whether s.front uses GC is determined by s.front implementation,
caller can't affect it.
When reading/parsing data from disk often try to write code such
as
foreach (const line; File(filePath).byLine)
{
auto s = line.splitter( )
const x = s.front.to!uint; s.popFront;
const y = s.front.to!double; s.popFront;
...
}
In response to all the
On Friday, 13 February 2015 at 09:13:48 UTC, Kagamin wrote:
Whether s.front uses GC is determined by s.front
implementation, caller can't affect it.
I'm talking about internal changes to DMD, in this case.
On Friday, 13 February 2015 at 08:21:53 UTC, Per Nordlöw wrote:
When reading/parsing data from disk often try to write code
such as
foreach (const line; File(filePath).byLine)
{
auto s = line.splitter( )
const x = s.front.to!uint; s.popFront;
const y =
On Friday, 13 February 2015 at 09:13:48 UTC, Kagamin wrote:
Whether s.front uses GC is determined by s.front
implementation, caller can't affect it.
Compiling
https://github.com/nordlow/justd/blob/master/t_splitter.d
with -vgc on dmd git master gives no warnings about GC
allocations!
Is
On Friday, 13 February 2015 at 11:34:50 UTC, Per Nordlöw wrote:
On Friday, 13 February 2015 at 09:13:48 UTC, Kagamin wrote:
Whether s.front uses GC is determined by s.front
implementation, caller can't affect it.
Compiling
https://github.com/nordlow/justd/blob/master/t_splitter.d
with -vgc
On Friday, 13 February 2015 at 13:07:04 UTC, bearophile wrote:
I suggest you to read how a marksweep GC works, or better to
implement a bare-bones marksweep GC in C language yourself for
Lisp-like cons cells, you only need 100 lines of code or so to
do it.
Got it. Thanks.
On Friday, 13 February 2015 at 12:50:14 UTC, Tobias Pankrath
wrote:
There are no reference counts involved, just simple arithmetic.
string a = abc;
string b = a[1 .. $];
Then how does the GC know when to release when there are multiple
references?
Is this because string references
On Friday, 13 February 2015 at 12:40:57 UTC, Per Nordlöw wrote:
On Friday, 13 February 2015 at 11:52:50 UTC, Tobias Pankrath
wrote:
On Friday, 13 February 2015 at 11:34:50 UTC, Per Nordlöw wrote:
On Friday, 13 February 2015 at 09:13:48 UTC, Kagamin wrote:
Whether s.front uses GC is determined
Per Nordlöw:
Then how does the GC know when to release when there are
multiple references?
The mark phase counts what's reachable and what can't be reached.
If an object has one pointer to it, or one hundred pointers, it
is not removed. If nothing points to it, it is removed.
I suggest
On Friday, 13 February 2015 at 12:58:40 UTC, Per Nordlöw wrote:
On Friday, 13 February 2015 at 12:50:14 UTC, Tobias Pankrath
wrote:
There are no reference counts involved, just simple arithmetic.
string a = abc;
string b = a[1 .. $];
Then how does the GC know when to release when there are
Tobias Pankrath:
Why should splitter.front allocate?
I think that front was able to throw Unicode exceptions, that
require the GC. But I think later they have become asserts, that
don't require the GC.
Bye,
bearophile
On Friday, 13 February 2015 at 11:52:50 UTC, Tobias Pankrath
wrote:
On Friday, 13 February 2015 at 11:34:50 UTC, Per Nordlöw wrote:
On Friday, 13 February 2015 at 09:13:48 UTC, Kagamin wrote:
Whether s.front uses GC is determined by s.front
implementation, caller can't affect it.
Compiling
25 matches
Mail list logo