Commit Graph

630 Commits

Author SHA1 Message Date
Nathan Sashihara ceb8e6a113 Use identity hash for integers and pointers
This is appropriate because HashArray in tanya.container.entry uses
prime numbers instead of powers of 2 for its number of buckets so there
is no pitfall if the hashes are all multiples of some power of 2.
2018-08-02 12:37:02 -04:00
Eugen Wissner 900a7172bf Make format() public
Make format() public. Deprecate to!String.
2018-08-01 16:58:23 +02:00
Eugen Wissner fe0576a2d6 Fix format printing only the first argument 2018-07-29 12:51:38 +02:00
Eugen Wissner a5b84deca7 format: Add errol3 lookup 2018-07-28 13:52:59 +02:00
Eugen Wissner 24056d53c5 network.socket.Linger.enabled: Add return type
network.socket.Linger.enabled: Add missing return type (void).
2018-07-25 05:40:49 +02:00
Eugen Wissner d62f29abd1 Rename meta.metafunction.Tuple into Pack
typecons.Tuples and meta.metafunction.Tuples are often used together,
from the same module. So it is reasonable give them different names.
2018-07-24 20:16:21 +02:00
Eugen Wissner f2eb99bab0 Format fixed-point numbers 2018-07-22 15:28:17 +02:00
Eugen Wissner 531cae51a3 Stringish to integral type conversion. Fix #44 2018-07-18 06:33:45 +02:00
Eugen Wissner 1b203507f6 conv: Fix overflow hanndling in readIntegral 2018-07-17 16:03:05 +02:00
Eugen Wissner 99e06e0d04 format: Support text in the format string
Fix  #25.
2018-07-14 19:09:21 +02:00
Eugen Wissner 158a47d54a Update dmd to 2.081.1. Remove 2.077.1 2018-07-13 05:39:58 +02:00
Eugen Wissner 5865e355cd Fix EV_SET 0 length on 32-bit BSD 2018-07-08 12:54:47 +02:00
Eugen Wissner a94b1b0af4 Add functional module. Fix #52 2018-07-07 12:17:59 +02:00
Eugen Wissner 3df4eb6259 Don't check UTF-8 correctness when inserting chars
- Fix bug when inserting char ranges that are not arrays
- Optimize insertion from the String own range
- Assume char and char ranges are correclty encoded (as it actually
should be) and don't throw an exception. This should make the most
common use cases nothrow (Fix #19). Dchars and Wchars are still encoded
because they should be converted to UTF-8 before inserting anyway.
2018-07-06 05:36:13 +02:00
Eugen Wissner a332d727af Implement errol2 for floating point formatting
Handles whole floating point numbers in the range between 2^54 and 2^131.
2018-07-02 10:47:05 +02:00
Eugen Wissner 8241943a58 Add uint128 tailored for errol2 computations 2018-07-02 10:26:45 +02:00
Eugen Wissner d54e06f43c Iterate hash table by key or by value 2018-06-29 20:43:05 +02:00
Eugen Wissner 5e901f505c Make HashTable work complex types as key
- Add toHash() function for String
- The key type shouldn't match exact for a lookup.
The key type and lookup key type should be comparable.
- Move elements when inserting if passed by value.
2018-06-28 12:14:45 +02:00
Eugen Wissner 533fa3b023 container.HashTable: Fix infinite rehashing when inserting
Fix #53.
2018-06-27 05:45:53 +02:00
Eugen Wissner adf2d8b689 Add Option to typecons
Fix #47.
2018-06-26 04:25:32 +02:00
Eugen Wissner 74ece7ddf4 Replace floating pointer formatter with errol1 2018-06-23 16:21:19 +02:00
Eugen Wissner 411e45ec5c Remove functions deprecated in 0.9.0 2018-06-22 07:11:56 +02:00
Eugen Wissner f51e9405c9 Update socket documentation 2018-06-20 07:59:37 +02:00
Eugen Wissner de15281ccb Tuple with more than two fields
Fix #41.
2018-06-19 05:44:15 +02:00
Eugen Wissner a86b6690f0 Implement auto-decoding free equal comparison
Fix #39.
2018-06-12 20:19:06 +02:00
Eugen Wissner 15f7994187 Add takeExactly
Fix #43.
2018-06-10 19:03:26 +02:00
Eugen Wissner 37b0afe290 take: Remove moveFront, moveBack, moveAt 2018-06-10 14:46:40 +02:00
Eugen Wissner cd9960db2a Add take range adapter 2018-06-10 14:46:40 +02:00
Eugen Wissner 7357503c5a Update 2.080 series to 2.080.1 2018-06-09 05:05:30 +02:00
Eugen Wissner 173ae115ee readIntegral: Support base between 2 and 36 2018-06-08 21:05:35 +02:00
Eugen Wissner 7561b964d3 Make intToString -> readString more generic
Make readString work with any char range and unsigned integral type.
2018-06-07 07:23:39 +02:00
Eugen Wissner c663703221 container.list: Remove deprecated list length property 2018-06-01 14:13:27 +02:00
Eugen Wissner 58af2fd89b encoding.ascii: Make static const data immutable 2018-05-31 18:43:35 +02:00
Eugen Wissner 52ec88bd04 async: Annotate system tests 2018-05-31 18:43:21 +02:00
Eugen Wissner bfe0748a63 Insert a range into the hash table and set 2018-05-30 18:50:52 +02:00
Eugen Wissner 61814d5383 Make an independent function for converting port string 2018-05-23 05:10:44 +02:00
Eugen Wissner c268696ee9 HashTable/Set: Add proper assignment 2018-05-20 21:58:15 +02:00
Eugen Wissner 9efbc9d5e0 Make Array postblit safe if possible 2018-05-18 07:43:18 +02:00
Eugen Wissner c511b97b1b container.Set and HashTable: Fix constructors 2018-05-17 05:31:14 +02:00
Eugen Wissner 385ec19e2f hash.lookup: Reformat the docs 2018-05-17 05:30:49 +02:00
Eugen Wissner 205d7a080e Add KeyValue alias for value tuple 2018-05-14 21:55:49 +02:00
Eugen Wissner d545d6900e Make HashTable Range return Pair 2018-05-14 19:23:22 +02:00
Eugen Wissner 3ed46117d1 Port Set ranges for HashTable 2018-05-14 19:23:22 +02:00
Eugen Wissner 00dbb224f7 Move length tracking to HashArray 2018-05-14 19:23:22 +02:00
Eugen Wissner 9cf1b6f491 Use HashArray as internal storage 2018-05-14 19:23:22 +02:00
Eugen Wissner bdce5cda6a Add HashTable container 2018-05-14 19:23:22 +02:00
Eugen Wissner faf952b30e Rename Pair to Tuple 2018-05-12 06:11:24 +02:00
Eugen Wissner 53620cdddf Improve preconditions for the container.Set 2018-05-11 05:43:14 +02:00
Eugen Wissner 41a8e32351 Switch to travis-ci.com 2018-05-10 06:13:38 +02:00
Eugen Wissner 2ec750ca05 Fix math.nbtheory linkage to asm
Don't use extern for templated functions. If the function argument is
const, it gets a different mangling. So define a private function for
each floatint point length and call it from template.
2018-05-08 18:07:42 +02:00