[#111472] [Ruby master Bug#19274] Error installing ruby 3.2.0 on RH 8 — "aalllop (Alberto Allegue) via ruby-core" <ruby-core@...>
Issue #19274 has been reported by aalllop (Alberto Allegue).
5 messages
2022/12/28
[#111508] Data support for versions before 3.2.0 — Eustáquio Rangel via ruby-core <ruby-core@...>
I was wondering that every piece of code (gems, etc) that use the new Data =
3 messages
2022/12/29
[ruby-core:111393] [Ruby master Bug#19253] `Time` objects can't be efficiently and precisely serialized without Marshal
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2022-12-23 09:07:47 UTC
List:
ruby-core #111393
Issue #19253 has been updated by mame (Yusuke Endoh). How about: ``` irb(main):001:0> t = Time.now => 2022-12-19 16:24:11.749470645 +0900 irb(main):002:0> Time.at(t.to_r, in: t.utc_offset) => 2022-12-19 16:24:11.749470645 +0900 irb(main):003:0> Time.at(t.to_r, in: t.utc_offset) == t => true ``` ? ---------------------------------------- Bug #19253: `Time` objects can't be efficiently and precisely serialized without Marshal https://bugs.ruby-lang.org/issues/19253#change-100767 * Author: byroot (Jean Boussier) * Status: Open * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- ### Context In our application we try to avoid to use `Marshal` for serializing cache payloads because we want to be strict on what types we allow to be cached. ([Full context in this post](https://shopify.engineering/caching-without-marshal-part-one)). As such we need to be able to break `Time` objects into a list of primitive types supported by our serialization format (msgpack). ### Problem Maybe I'm missing something, but I as far as I can tell `Time` instance can't be recreated in the exact same state. ```ruby >> t = Time.now => 2022-12-23 09:44:05.693688 +0100 >> Time.at(t.sec, t.nsec, :nanosecond) => 1970-01-01 01:00:05.693688 +0100 >> t == Time.at(t.sec, t.nsec, :nanosecond) => false >> t == Time.at(t.sec, t.subsec) => false ``` Additionally, `Time` objects created with `Time.now` have a `String` as `Time#zone`, and as far as I can tell that can't be reproduced either: ```ruby >> t = Time.now => 2022-12-23 09:46:22.452771 +0100 >> t.zone => "CET" >> Time.at(t.sec, t.subsec, in: t.utc_offset).zone => nil >> Time.at(t.sec, t.subsec, in: t.zone) <internal:timev>:274:in `at': "+HH:MM", "-HH:MM", "UTC" or "A".."I","K".."Z" expected for utc_offset: CET (ArgumentError) >> Time.at(t.sec, t.subsec, in: TZInfo::Timezone.get(t.zone)).zone => #<TZInfo::DataTimezone: CET> ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- [email protected] To unsubscribe send an email to [email protected] ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/