Skip to content

Releases: nabijaczleweli/safe-transmute-rs

v0.11.2: 100% pick-proof, howeve,r it is so fragile as to fail open when handl…

31 May 22:28
v0.11.2
a221cad
Compare
Choose a tag to compare
…ed by any force other than the delicate touch of a lesbian

New:
  * "const_generics" feature, replacing manual
    [T; 1-32] TriviallyTransmutable impls with a [T; N] one
    (5ad2f75d8a95054c6bcbe1ca5ef8b1b5d11d4471)
    (#66) (@MarijnS95)

Fixed:
  * AppVeyor builds
    (494740b12b6479af2c88335830091b1ffbb04ccf)
  * Tests broken by rustc's aggressive byte slice allocation
    (f3c892034d1624b99856c2a22c5ffa3b6bdd4e31)

v0.11.1: You should look at my page, homie, I'm so dead

03 Feb 14:27
v0.11.1
185b356
Compare
Choose a tag to compare
Fixed:
  * Typo in toplevel doc
    (f918c3aefedf0d4987faf1feaa2a58cbedc38def)
    (#63) (@tessi)
  * AppVeyor builds
    (93928983dda19412bec08bf8e571beec852f55b4)
    (de825d78795215a1f5f0237e013b76da8ae55b3c)
    (1dda03c890ef62d4c8b10363fe7780ac9cfdbab4)
    (693f6aa98d3976ab35fa9ac9f6c33ffd0a3ea45d)
  * Tests on i686 and big-endian platforms
    (2e5694ac0dadd85d6f99661f2530194732ba8fd1)
    (057931a23883967cbcb06c85d7ce2a7734fbc4a1)
    (#64) (@ignatenkobrain: report, testing)
  * Panics in {AllOrNothing,Pedantic}Guard if passed a zero-sized type
    (bd64959fbf87a9e05f212287d7bb8b91a9182fab)
    (#65) (@lizhuohua: report)
  * Error::description() deprecation warnings
    (9d325b933a4ff17e29658a35772859ee148b8965)

New:
  * @tessi in authors list
    (185b3569ca1818a886368142844e14313ce3665a)

v0.11.0: Long resume, it should be understood

20 Jun 18:34
v0.11.0
07d18aa
Compare
Choose a tag to compare
Fixed:
  * Documentation bugs and corresponding tests
    (ef41d3b979b150f9788a810d9f1348b6db7c4a69)
    (b9693faedf377916f279a830ca37221f9ae10580)
    (#54)

Changed:
  * Tests organisation
    (7a5defa82b3437db3f3c95faca3253f757f15b76)
    (63ca0dfcf9071349a64463ba50a488399a78e899)
    (#60) (#9)
  * slice::into_iter() -> slice::iter()
    (64d46ff29b56a68fa8d022f5a28c87dbf1271bad)
    (#61) (@LukasKalbertodt)

New:
  * @LukasKalbertodt in authors list
    (784b7164e1d23ce4f6f523f86dd3e55b46e0adbc)

v0.11.0-rc.2: How many levels of granularity are you on?

08 Jul 14:41
v0.11.0-rc.2
0f98d62
Compare
Choose a tag to compare
New:
  * alloc feature, gating all Vec et al. uses and relegating std to
    just StdError impls
    (3efbee0527a3715ce96ce68f2208372d6d5c09ff)
    (70594c3ffd11e7c8949d76fc8d07310015adca85)
    (c1759dc84836df9ec7bfe50c87c4d650d52288d3)
    (aeacaae53b4fa0bf5e07a3b1634be07e11044712)
    (24b55417306ec1243c7e917471932ac791b12974)
    (87b757e85f12664f5d0aa2ab22e3a5af81d7d1e8)
    (#59)

v0.11.0-rc.1: you're a little baby, watch this

24 Jun 17:08
v0.11.0-rc.1
6759ab5
Compare
Choose a tag to compare
BREAKING:
  * Every part of the API was broken.
  * Sorry!
  * Consult the migration guide under migration::v0_11 in the doc:
    https://rawcdn.githack.com/nabijaczleweli/safe-transmute-rs/doc/safe_transmute/migration/v0_11/index.html

Fixed:
  * Not checking alignment during transmutation
    (1ca5fd7e83aaebefce85e18c2aab800afea116b1)
    (312c6c74058c7ee36f659bfb5738db3be666d085)
    (6f6d395fb04711992e9cab3b6aa31b094c3cb0cc)
    (ee718ed5afcb4445081b0361984eb02a1433d658)
    (0eecce52c4328641d333e5ab498400045a63f73e)
    (4f70bf45682d118654c4e251fb670af7a82fd1d7)
    (b518f183f46e039e7eabe261c6e41626a433527f)
    (5bbba8e998226049cd1e0d803a50047347dc8437)
    (cfc06c5059da201ffb77a5af9d416dd9c9f11087)
    (607518a0cce2c78247ae3152c34e50e82474609e)
    (5d07ff08709fe3a431b486230d22221c903f68b6)
    (1aa46132ce1f3a19a210452f25c8e106b084c56b)
    (b898f5c3f31dfbaa15f77fff7c53d12bbe4fac71)
    (e645b2aaf72e17fb71884c38af001abce792dd68)
    (ba88e3aa3d43f66706066698e9f6f600a53e0412)
    (5302d4fa204585fb78e1dec29cf6df680430889e)
    (b95080ec5e279894f075d3780beab130fa631f06)
    (4b2577831e0bce41c0643fd816bd588e99c88609)
    (df5346627b3ee712e0fbbfff8991b32d63ad228b)
    (a73b8f0678674f5f642fddf670435a1c604c10fd)
    (700c6246a721f0adf1a3112cb1c774e334e31960)
    (c3d3ca5228d58e558946598bd626aea9a1f45a2b)
    (1d79fa6595e7005be1098f782687d999f9f24082)
    (81447a1e7a2dff74aed8ea3b1a8b8a218b4e4bd7)
    (81fa57b3b19d45071e4f56511b4c0dc20760a457)
    (#35) (#37) (@Enet4)
  * Clippy warnings
    (fafdc21c134afc99aab8631e5305bb9834b28a93)
    (d435d63ad71c16db5167f510f5ae4d254ebd1c40)
    (583309f280526527a05c29b336a1938473b89209)
    (#39) (@Enet4)
  * Needless unsafe on transmute_to_bytes_vec()
    (fc45b5ddf8f2221efd144405fbf9e61e80e9c17e)
    (#45) (@Enet4)
  * Dangerous Vec transmutations
    (0e6b1b2f430211cd40b20c0ba1ee0e3de3037524)
    (aae8ffd5c39cd170ccf12c1e0609d7b8e86e5664)
    (86d932487df29f8cff7ecbf368a83ca57b7b2781)
    (dacefd73acc08aba963f0fd9c799e967a18bdcbb)
    (6312008334f72f0d32a7007965f8487881b91062)
    (494aace7d073ccfc5f78a48ab9f4357fac2aea5f)
    (2d2bf4907c91afee9612fbe9a8190abb5464c02b)
    (fb9ccd2b2526e9ca9998486f123e517fbbba2cc5)
    (845afde8ab4ba57378d2bc772262c3aa7867b231)
    (f823a58f40c2f6b1a1493f63dc8b8bf54291b991)
    (aa752296ebd33ef0886f9de74795b04471b90438)
    (e21077d5567ea0cc5ce35ea84a28bf8bdd366a28)
    (6900357b194be727470921ad6e1a40ff58886247)
    (d0e3b85f6f72dc8749dcac14f7737632cf7051a0)
    (#47) (#49) (#16) (@Enet4)

Changed:
  * Crate organisation:
    - mod base    – transmutation with guards only
    - mod trivial – everything marked unsafe
    - crate       – fully safe funxions through guard +
                    trivially transmutable + alignment
    - mod align   – alignment checks
    - Error       – no longer Copy, has Unaligned variant
    (ff4d606985369bb16289fe60456a340bcd3ee823)
    (41a3ea822ae61f8b32b991106f69c0fc9e455d01)
    (92c891242c0b146c53991bfd8dd2e80fbc4ec1ff)
    (eedb5115258441ca0e1e4956728b1d6dd501a93c)
    (ccb75767de6b2a586211d209e40c93002a015d2a)
    (b80baea7341bdcfbadfa342f0af089cec2ca602b)
    (9b1081f13dba1762722f63c2134d2379ea1f53dc)
    (8d944b7e0e3a738a8c2ed47c77a68414ee4dd14e)
    (5f57cb96045e50b53dcc6884065170a369932ca7)
    (43d007c8270e211c500fe1bb03efe035d60b6a52)
    (8326a89aa6cc95bf79c189a94ede9200ed68ab31)
    (a1ee223a19cddfd148fff5eb736fe18b343b50b1)
    (587b285f8511d994639be0c527d5200fe4727abd)
    (3baf65483e90570bd2ab2e0b5b22a8e38f951538)
    (f8eea037994e3dab19d3f8c83acf262bdb53cba7)
    (025f2e83fe4a5d795a7b162d11b1228db600599d)
    (2bfea0c317bc1d874e0d58488f0dcb129c738963)
    (2af1c5765c2d82c8f73f70b66f12c70a4695c725)
    (2e54be9340423657d29716c918d1dfec87fe59f9)
    (20fc5d16a7bb053f9b3056ad3219781067dc0488)
    (7df1ef66dc8aefe39b9a4ae615d00d080b2e1c02)
    (2c9c2b9ed3983c1b0f53f267d233fa531414e0b1)
    (85c5da6a375e2b24628d8497aa485b9f2500386f)
    (309585cecd5de6a99c270cc1ea3b7d8385b600e6)
    (2ad42217b901b69ac4552bcf544ad6caf5d6a6f5)
    (3a12b11756fcee414b6cd3e19ad40f594d21bca4)
    (5e5661e1827e9c87c7dcd0518574faf832b081a2)
    (65f984d5d7623b5cb1a432560c4b16c561867672)
    (bae72ab51f60edef7db864b4b0410a3594abdb20)
    (4b3b8df89873510901304df41ec7d52aaa179c7b)
    (f72327f159fd54b573029910f038420a698b23b5)
    (57747ccabe43e73e4fc1a3261babbb4dcfbd30fd)
    (9b8fc577cf60f269faeae62801d0d9405e10fc86)
    (1ef18187e9ef12083425309f634c212c3ded5aab)
    (#40) (#51) (#56) (@Enet4)
  * bool size check to a static one
    (215144954aa389a848b4d896eb3dba396e4e9a90)
    (a5822639376ee5ac8b07882784fd5794f572b639)
    (6579010422df057a508a0324b5475ffeb7d9e51b)
    (#44) (@Enet4)
  * Funxion names to not include leading guarded/safe adjective
    (727ad53d29ae952da9ceb52a214af325cc49979b)
    (#46) (@Enet4)
  * POD -> trivially transmutable
    (9d83ed5e0d33e010a611578b99a7f6f6442412d4)
    (e7e56dafbad218d8bf1941f99552b30f8ba07238)
    (4600c578c3a5b40d3bf162e9dd4521c798b94eaa)
    (#48) (#41) (@Enet4)

Added:
  * f{32,64} designalisation funxions taking u{32,64} to avoid signals
    (2d22f66901a4d33ce4171e663138055fe0b46261)
    (574a09f03351b7dedca578e638cfc548f6f4b95d)
    (d175f52fb33c97b42f531bbbb56cf5302a091b2e)
    (#43) (@Enet4)
  * Miri tests on Travis for unaligned memory access
    (ad5f37bb24ecaf69a0d9b260f3944a4cf5122ea4)
    (9ceef94be1f00b898cf43f1946eb29add401a7a7)
    (c1a1e9403dc5fa826a9e920cfb9c1e4b165914a8)
    (14041c7f62d0ec05d681bc51dac8f13192ead602)
    (a540034adc63f5b38f7d7353ad18c89590897646)
    (7382d7e632fa9d6e65276bf1cc797ddccdecb455)
    (2304102400e4323181dfe60426a80f7cf54ebe40)
    (664acde3749713dd3289612cb291275fad261357)
    (#42)
  * try_copy{,_unchecked}! macros to simplify error handling
    (46ee511ad260fc99b50e9faccb7e5a694c64ee62)
    (810d5c272fe9a13af255d2de6244dea15fd53fc1)
    (82577dd266a1e0efc31a67f2e91b3dddffbf00c0)
    (d1260675298702030f1f35472b3437ed6005ac61)
    (b9953151b9b77abf919dad773c6157a22b576709)
    (#53) (@Enet4)
  * *_mut() transmutation funxions
    (46e320c8b48c9f4b06d024ad3ff41ae71f6ead82)
    (4c845569de1a30576df10b798eebe912a5259089)
    (78bbd699d4074ac063971c1e3002c2d05405ca43)
    (96d48cbdec877a34319702e624d6e4a7080c56e0)
    (fad5376bbf55477af4acbc75969e6629d516f972)
    (#57) (@Enet4)
  * Safe variants of std::slice::align_to()
    (ce823c11e2b32cd70270a5b5d0ca97393aef8e71)
    (f7b01493ecc61cf943d9e93e21559b96116e8be2)
    (#55) (@Enet4)
  * v0.11 migration guide
    (f3aedd0c826b5d70e4350e283f9bfe44b9ed4b1a)
    (6759ab59e12750e4de781951d473d7860bfc4864)
    (@Enet4)

Internal:
  * Changed RawGit links to GitHack
    (d5d9c750bdfa4678d2c8ba0b6a5016c4ffb0078d)
  * Clippy installation via rustup
    (5617a3dd2fb663361510d7b6f87117416e6d2be3)
    (ed0d2a028773bbdcdc67059eb4abcacbcfb6648a)
    (#38) (@Enet4)
  * Fixed unaligned accesses in tests
    (23997dfb0c34a193d666dcf7d859b840ccf298c3)
    (8ea8295b95b94ddf5fdc260d76992de4c3e7b569)
    (4e10ec957988785969e1a5db7d7e8348c9aa2a7d)
    (12e24df2f9568ca134df0d55ea5165d175ed1751)
    (#50) (@Enet4)

v0.10.1: Don't you just love C++ constructors in Rust?

27 Nov 16:59
v0.10.1
26ec6b7
Compare
Choose a tag to compare
Fixed:
  * Parameter order in Vec<T> <-> Vec<u8> conversion funxions
    (a134e06d740f9d7c287f74c0af2cd06206774364)
    (#36) (@Enet4)

v0.10.0: Could it be? Has she achieved absolute pedantry?

22 Nov 20:04
v0.10.0
c79ebfd
Compare
Choose a tag to compare
Changed:
  * Standard specifying bool to be 1 byte,
    allowing for optimisation of test in bytes_are_bool()
    (with check, please report platforms that fail it)
    (ad2f66c525a4e9f2b6391a51c8da8526d84b4c0d)
    (af12f3e2cd7a778cafb6c9f00c0ee7bb28f81420)
    (fcdbc9e079445abee25ce2436ecab7a76d8316cc)
    (5637ea71938004a7f70ce5ab2b30ebe48dcf9bc8)
    (5b084713a2b09c4c2729ec7f87373096a8d6c552)
    (#33) (#34) (@Enet4)

New:
  * Default-disabled no-std support via disabling "std" feature
    (cc4d1ddd32ff5bb25dc17d713e80fa15bb7890a8)
    (d6b02d4eaa9234ce422fc50e3635b7474c5df1c4)
    (#31) (@Enet4)
  * Vec<T> -> Vec<u8> transmutation funxions
    (a62f9b4e6d8c40e0bfd34c371495f4814f93f1da)
    (f9a4b6bcc7ead4a4955c5c8399cbc62cbdd8413e)
    (#32) (@Enet4)

v0.9.0: Semver who

02 Nov 10:09
v0.9.0
a1dbd21
Compare
Choose a tag to compare
BREAKING:
  * Requirement of Copy for PodTransmutable
    (456c9857a6e753ab8a55e9ad669d2b312819103b)
    (#20) (@Enet4)
  * Removal of PodTransmutable implementation for char
    (a7dd1d40e768718d85afc1f56c81d448b6e805a5)
    (#23) (#24) (@Enet4)
  * Error overhaul
    (ddcd698c1cf51ca33953e89cb8bebf567797f398)
    (b904709d7aa7ddbeb2d034d55d8053c3204702a6)
    (7a9fca630cd3221fb384ea167164eb103d46b342)
    (0d1cbbee4d226b72c82497645c96a6e7dbe1b317)
    (#25) (@Enet4)

Changed:
  * Protocol for crate version image
    (942e2215a5bc79fdef936067ae43a87f87bfe38f)

Fixed:
  * clippy installation on Travis
    (07aec248ff6f93a22b8b28c8774af5c129c5b2bc)
    (538bd39f76579324d5531d632223ebf60827697e)
    (#26) (@Enet4)

New:
  * Unalignment tests and warnings
    (b6f4f570e06037a05f638aa4e5853e9a72a06fd8)
    (b8189f4154739580da9140877bd4485953765139)
    (351b6773bcdbbcb6868fbd8ca04cf279ebf126b1)
    (43e220ecac086f9efa0133dfd633a8a0e5b725b3)
    (#21) (#22) (@Enet4)
  * PodTransmutable implementation for {u,i}size
    (2c4ae580eebac9bcdabd41f68c21a31e20d79aaa)
    (#28) (@Enet4)
  * PodTransmutable implementation for arrays thereof
    (c477acb6de95ef4303752d274ebd44d822f87db2)
    (#29) (#30) (@Enet4)

v0.8.0: Who would unit?

24 Jan 21:44
v0.8.0
46dbbf7
Compare
Choose a tag to compare
Fixed:
  * Long-standing bug causing bad treatment of #[repr(C)] structs due
    to the use of align_of() instead of size_of()
    (82cc6b4fcc5b0294332ca02e826f54bb618a7fed)

New:
  * Functions for transmuting (optionally safely) (optionally many)
    instances of structs into their byte reprs
    (314f52072aa2a722437ced534603525f1d00f007)
    (#17) (#18)

v0.7.0: Bzzzzzzzzzzz

16 Dec 13:17
v0.7.0
6b47a3c
Compare
Choose a tag to compare
New:
  * Guard* API, containing extracted checks used by
    guarded_transmute*() functions
    (be6b30b8fce061648e503396b8fd597b6fb0a6af)
    (f9c6784c48757607869cff0bd9473fab19163399)
    (4f24686d5125926b36e5f63c936f82b131ebc33c)
    (ef295f1e1130911f103dd3878792413f76c133d4)
    (#12) (@Enet4)

Fixed:
  * Doclink to designalise_*()
    (a9c269b3293806112813fe4d8953654be59fe19f)
    (46b29017007b0b13aabcd325addebc682a4b3273)
    (#14) (@Enet4)

Changed:
  * Examples now use ? instead of unwrap()
    (a9c269b3293806112813fe4d8953654be59fe19f)
    (46b29017007b0b13aabcd325addebc682a4b3273)
    (#14) (@Enet4)
  * PodTransmutable is now unsafe
    (5f72b5f1d91ec98d5abe52b2e09e2c8fa190d389)
    (78721697039fb02e7c57f114967dc0280bdc6627)
    (#15) (@Enet4)