<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libcore/unicode, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2020-07-28T00:51:13+00:00</updated>
<entry>
<title>mv std libs to library/</title>
<updated>2020-07-28T00:51:13+00:00</updated>
<author>
<name>mark</name>
<email>markm@cs.wisc.edu</email>
</author>
<published>2020-06-12T02:31:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2c31b45ae878b821975c4ebd94cc1e49f6073fd0'/>
<id>urn:sha1:2c31b45ae878b821975c4ebd94cc1e49f6073fd0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stabilize UNICODE_VERSION (feature unicode_version)</title>
<updated>2020-04-23T12:36:30+00:00</updated>
<author>
<name>Pyfisch</name>
<email>pyfisch@posteo.org</email>
</author>
<published>2020-04-12T17:18:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=aa0175c98d0530b32a80542aaf9dab1be03dbb2b'/>
<id>urn:sha1:aa0175c98d0530b32a80542aaf9dab1be03dbb2b</id>
<content type='text'>
The feature will become stable in Rust 1.45.
Noted that the value of UNICODE_VERSION is expected to change.
</content>
</entry>
<entry>
<title>Store UNICODE_VERSION as a tuple</title>
<updated>2020-04-11T10:56:25+00:00</updated>
<author>
<name>Pyfisch</name>
<email>pyfisch@posteo.org</email>
</author>
<published>2020-04-11T10:56:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7f4048c710249daafacdb6004da312e0681954f5'/>
<id>urn:sha1:7f4048c710249daafacdb6004da312e0681954f5</id>
<content type='text'>
Remove the UnicodeVersion struct containing
major, minor and update fields and replace it with
a 3-tuple containing the version number.
As the value of each field is limited to 255
use u8 to store them.
</content>
</entry>
<entry>
<title>Remove separate encoding for a single nonzero-mapping byte</title>
<updated>2020-03-27T23:02:23+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2020-03-27T22:01:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b6bc9060041bb5de18d9b31fe935d29193d9bad5'/>
<id>urn:sha1:b6bc9060041bb5de18d9b31fe935d29193d9bad5</id>
<content type='text'>
In practice, for the two data sets that still use the bitset encoding (uppercase
and lowercase) this is not a significant win, so just drop it entirely. It costs
us about 5 bytes, and the complexity is nontrivial.
</content>
</entry>
<entry>
<title>Add skip list based implementation for smaller encoding</title>
<updated>2020-03-27T23:02:23+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2020-03-26T01:00:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9c1ceece20e14e2a746c382b639f9288746e493c'/>
<id>urn:sha1:9c1ceece20e14e2a746c382b639f9288746e493c</id>
<content type='text'>
This arranges for the sparser sets (everything except lower and uppercase) to be
encoded in a significantly smaller context. However, it is also a performance
trade-off (roughly 3x slower than the bitset encoding). The 40% size reduction
is deemed to be sufficiently important to merit this performance loss,
particularly as it is unlikely that this code is hot anywhere (and if it is,
paying the memory cost for a bitset that directly represents the data seems
worthwhile).

Alphabetic     : 1599 bytes     (- 937 bytes)
Case_Ignorable : 949 bytes      (- 822 bytes)
Cased          : 359 bytes      (- 429 bytes)
Cc             : 9 bytes        (-  15 bytes)
Grapheme_Extend: 813 bytes      (- 675 bytes)
Lowercase      : 863 bytes
N              : 419 bytes      (- 619 bytes)
Uppercase      : 776 bytes
White_Space    : 37 bytes       (-  46 bytes)
Total table sizes: 5824 bytes   (-3543 bytes)
</content>
</entry>
<entry>
<title>Avoid relying on const parameters to function</title>
<updated>2020-03-21T22:01:50+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2020-03-21T22:01:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=af243d4d91400e071a5b8fe5041f55f07fd8a928'/>
<id>urn:sha1:af243d4d91400e071a5b8fe5041f55f07fd8a928</id>
<content type='text'>
LLVM seems to at least sometimes optimize better when the length comes directly
from the `len()` of the array vs. an equivalent integer.

Also, this allows easier copy/pasting of the function into compiler explorer for
experimentation.
</content>
</entry>
<entry>
<title>Arrange for zero to be canonical</title>
<updated>2020-03-21T21:53:18+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2020-03-21T21:20:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a7ec6f8fe0fb10fa91ac40f68beccd2675cba50c'/>
<id>urn:sha1:a7ec6f8fe0fb10fa91ac40f68beccd2675cba50c</id>
<content type='text'>
We find that it is common for large ranges of chars to be false -- and that
means that it is plausibly common for us to ask about a word that is entirely
empty. Therefore, we should make sure that we do not need to rotate bits or
otherwise perform some operation to map to the zero word; canonicalize it first
if possible.
</content>
</entry>
<entry>
<title>Push the byte of LAST_CHUNK_MAP into the array</title>
<updated>2020-03-21T21:51:40+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2020-03-21T19:22:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=233ab2f168d29d5e77abc1bc6c3923edf3575e08'/>
<id>urn:sha1:233ab2f168d29d5e77abc1bc6c3923edf3575e08</id>
<content type='text'>
This optimizes slightly better.

Alphabetic     : 2536 bytes
Case_Ignorable : 1771 bytes
Cased          : 788 bytes
Cc             : 24 bytes
Grapheme_Extend: 1488 bytes
Lowercase      : 863 bytes
N              : 1038 bytes
Uppercase      : 776 bytes
White_Space    : 83 bytes
Total table sizes: 9367 bytes  (-18 bytes; 2 bytes per set)
</content>
</entry>
<entry>
<title>Deduplicate test and primary range_search definitions</title>
<updated>2020-03-21T19:21:31+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2020-03-21T16:20:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5f71d98f90354f9ee67c2b77c8607fbc9169d63e'/>
<id>urn:sha1:5f71d98f90354f9ee67c2b77c8607fbc9169d63e</id>
<content type='text'>
This ensures that what we test is what we get for final results as well.
</content>
</entry>
<entry>
<title>Add a right shift mapping</title>
<updated>2020-03-21T16:14:26+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2020-03-21T16:11:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7b29b70d6ea52e9324f9328bed9beb6cf516c1ce'/>
<id>urn:sha1:7b29b70d6ea52e9324f9328bed9beb6cf516c1ce</id>
<content type='text'>
This saves less bytes - by far - and is likely not the best operator to choose.
But for now, it works -- a better choice may arise later.

Alphabetic     : 2538 bytes   (- 84 bytes)
Case_Ignorable : 1773 bytes   (- 30 bytes)
Cased          : 790 bytes    (- 18 bytes)
Cc             : 26 bytes     (-  6 bytes)
Grapheme_Extend: 1490 bytes   (- 18 bytes)
Lowercase      : 865 bytes    (- 36 bytes)
N              : 1040 bytes   (- 24 bytes)
Uppercase      : 778 bytes    (- 60 bytes)
White_Space    : 85 bytes     (-  6 bytes)
Total table sizes: 9385 bytes (-282 bytes)
</content>
</entry>
</feed>
