<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tanya, branch v0.16.0</title>
<subtitle>GC-free, high-performance D library: Containers, networking, metaprogramming, memory management, utilities.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/'/>
<entry>
<title>net.ip.Address6.toString() recommended notation</title>
<updated>2019-03-01T07:28:36+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-03-01T07:28:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=d7dfa3f6f14309327934fa846aed6a5c3b40dd6a'/>
<id>d7dfa3f6f14309327934fa846aed6a5c3b40dd6a</id>
<content type='text'>
Fix #65.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix #65.
</pre>
</div>
</content>
</entry>
<entry>
<title>algorithm.iteration: Add singleton()</title>
<updated>2019-02-25T08:27:03+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-25T08:27:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=8fd0452cd021219d809627146dc6651c8bc36901'/>
<id>8fd0452cd021219d809627146dc6651c8bc36901</id>
<content type='text'>
... iterating over a single value.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... iterating over a single value.
</pre>
</div>
</content>
</entry>
<entry>
<title>range.adapter: new arrayInserter</title>
<updated>2019-02-24T12:14:30+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-24T12:10:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=df99ea45f286430205dbc68d4437f123a9efb3ea'/>
<id>df99ea45f286430205dbc68d4437f123a9efb3ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>format.sformat: Support range-based toString()</title>
<updated>2019-02-19T05:39:39+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-19T05:39:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=87ba58098efe46cf686c72fb927781dfd1a306d9'/>
<id>87ba58098efe46cf686c72fb927781dfd1a306d9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>net.ip: Implement .toString() with output ranges</title>
<updated>2019-02-16T07:37:45+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-16T07:37:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=5a134ce7682c8ca16b17093bd332eda04a584223'/>
<id>5a134ce7682c8ca16b17093bd332eda04a584223</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>range.adapter: Add container-range adapters. Fix #67</title>
<updated>2019-02-16T07:36:50+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-15T07:36:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=0835edce1d3c8bd2b09baa2b76d38efd3848027e'/>
<id>0835edce1d3c8bd2b09baa2b76d38efd3848027e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use word-wise hash instead of FNV-1a for arrays of word-aligned scalars</title>
<updated>2019-02-12T15:34:18+00:00</updated>
<author>
<name>Nathan Sashihara</name>
<email>21227491+n8sh@users.noreply.github.com</email>
</author>
<published>2019-02-12T14:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=a786bdbec5575bcfad6435978755064e1be5e975'/>
<id>a786bdbec5575bcfad6435978755064e1be5e975</id>
<content type='text'>
Also special case int-aligned scalars on 64-bit machines.
On a 64-bit machine hashing an array of pointers is now ~5.95x faster
with LDC2 and ~8.54x faster with DMD, and hashing an array of ints is
~3.34x faster with LDC2 and ~8.12x faster with DMD.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also special case int-aligned scalars on 64-bit machines.
On a 64-bit machine hashing an array of pointers is now ~5.95x faster
with LDC2 and ~8.54x faster with DMD, and hashing an array of ints is
~3.34x faster with LDC2 and ~8.12x faster with DMD.</pre>
</div>
</content>
</entry>
<entry>
<title>Add sformat() writing to an output range</title>
<updated>2019-02-12T06:37:24+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-12T06:37:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=0bef2ef76df51139d71083efa5eba175440347f0'/>
<id>0bef2ef76df51139d71083efa5eba175440347f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update dmd to 2.084.1</title>
<updated>2019-02-11T21:14:59+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-11T21:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=1d3d750adbcd99abbc34886e2afb6336e9410631'/>
<id>1d3d750adbcd99abbc34886e2afb6336e9410631</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecate InputRange source for OutputRanges</title>
<updated>2019-02-06T06:26:28+00:00</updated>
<author>
<name>Eugen Wissner</name>
<email>belka@caraus.de</email>
</author>
<published>2019-02-06T06:26:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.caraus.tech/tanya/commit/?id=0c8f1eb4ce729a3967b5fa905f5999ab439e186a'/>
<id>0c8f1eb4ce729a3967b5fa905f5999ab439e186a</id>
<content type='text'>
An output range for E won't be automatically an output range for [E]
anymore. The same, an output range for [E] won't be automatically an
output range for E. Automatic E &lt;-&gt; [E] conversion seems to be a nice
feature at first glance, but it causes much ambiguity.

1) If I want that my output range accepts only UTF-8 strings but not
single characters (because it could be only part of a code point and
look like broken UTF-8 without the remaining code units), I can't do it
because an OutputRange(R, E) can't distinguish between char and string.

2) Here is an example from 2013:

import std.range;
import std.stdio;
Appender!(const(char)[][]) app;
put(app, "aasdf");
put(app, 'b');
writeln(app.data);

This outputs: ["aasdf", "\0"].
Whether it is a common case or not, such code just shouldn't compile.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An output range for E won't be automatically an output range for [E]
anymore. The same, an output range for [E] won't be automatically an
output range for E. Automatic E &lt;-&gt; [E] conversion seems to be a nice
feature at first glance, but it causes much ambiguity.

1) If I want that my output range accepts only UTF-8 strings but not
single characters (because it could be only part of a code point and
look like broken UTF-8 without the remaining code units), I can't do it
because an OutputRange(R, E) can't distinguish between char and string.

2) Here is an example from 2013:

import std.range;
import std.stdio;
Appender!(const(char)[][]) app;
put(app, "aasdf");
put(app, 'b');
writeln(app.data);

This outputs: ["aasdf", "\0"].
Whether it is a common case or not, such code just shouldn't compile.
</pre>
</div>
</content>
</entry>
</feed>
