[jira] [Updated] (MESOS-3345) Expand the range of integer precision when converting into/out of json.
[ https://issues.apache.org/jira/browse/MESOS-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marco Massenzio updated MESOS-3345: --- Sprint: Mesosphere Sprint 18, Mesosphere Sprint 19 (was: Mesosphere Sprint 18) > Expand the range of integer precision when converting into/out of json. > --- > > Key: MESOS-3345 > URL: https://issues.apache.org/jira/browse/MESOS-3345 > Project: Mesos > Issue Type: Task > Components: stout >Reporter: Joseph Wu >Assignee: Joseph Wu >Priority: Minor > Labels: json, mesosphere, protobuf > > For [MESOS-3299], we added some protobufs to represent time with integer > precision. However, this precision is not maintained through protobuf <-> > JSON conversion, because of how our JSON encoders/decoders convert numbers to > floating point. > To maintain precision, we can try one of the following: > * Try using a {{long double}} to represent a number. > * Add logic to stringify/parse numbers without loss when possible. > * Try representing {{int64_t}} as a string and parse it as such? > * Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} > In all cases, we'll need to make sure that: > * Integers are properly stringified without loss. > * The JSON decoder parses the integer without loss. > * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and > small integers. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (MESOS-3345) Expand the range of integer precision when converting into/out of json.
[ https://issues.apache.org/jira/browse/MESOS-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joseph Wu updated MESOS-3345: - Description: For [MESOS-3299], we added some protobufs to represent time with integer precision. However, this precision is not maintained through protobuf <-> JSON conversion, because of how our JSON encoders/decoders convert numbers to floating point. To maintain precision, we can: 1) Try using a {{long double}} to represent a number. 2) Add logic to stringify/parse numbers without loss when possible. 3) Try representing {{int64_t}} as a string and parse it as such? 4) Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} In all cases, we'll need to make sure that: * Integers are properly stringified without loss. * The JSON decoder parses the integer without loss. * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and small integers. was: For [MESOS-3299], we added some protobufs to represent time with integer precision. However, this precision is not maintained through protobuf <-> JSON conversion, because of how our JSON encoders/decoders convert numbers to floating point. To maintain precision, we can: 1) Try using a {{long double}} to represent a number. 2) Add logic to stringify/parse numbers without loss when possible. In all cases, we'll need to make sure that: * Integers are properly stringified without loss. * The JSON decoder parses the integer without loss. * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and small integers. > Expand the range of integer precision when converting into/out of json. > --- > > Key: MESOS-3345 > URL: https://issues.apache.org/jira/browse/MESOS-3345 > Project: Mesos > Issue Type: Task > Components: stout >Reporter: Joseph Wu >Assignee: Joseph Wu >Priority: Minor > Labels: json, mesosphere, protobuf > > For [MESOS-3299], we added some protobufs to represent time with integer > precision. However, this precision is not maintained through protobuf <-> > JSON conversion, because of how our JSON encoders/decoders convert numbers to > floating point. > To maintain precision, we can: > 1) Try using a {{long double}} to represent a number. > 2) Add logic to stringify/parse numbers without loss when possible. > 3) Try representing {{int64_t}} as a string and parse it as such? > 4) Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} > In all cases, we'll need to make sure that: > * Integers are properly stringified without loss. > * The JSON decoder parses the integer without loss. > * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and > small integers. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (MESOS-3345) Expand the range of integer precision when converting into/out of json.
[ https://issues.apache.org/jira/browse/MESOS-3345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joseph Wu updated MESOS-3345: - Description: For [MESOS-3299], we added some protobufs to represent time with integer precision. However, this precision is not maintained through protobuf <-> JSON conversion, because of how our JSON encoders/decoders convert numbers to floating point. To maintain precision, we can try one of the following: * Try using a {{long double}} to represent a number. * Add logic to stringify/parse numbers without loss when possible. * Try representing {{int64_t}} as a string and parse it as such? * Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} In all cases, we'll need to make sure that: * Integers are properly stringified without loss. * The JSON decoder parses the integer without loss. * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and small integers. was: For [MESOS-3299], we added some protobufs to represent time with integer precision. However, this precision is not maintained through protobuf <-> JSON conversion, because of how our JSON encoders/decoders convert numbers to floating point. To maintain precision, we can: 1) Try using a {{long double}} to represent a number. 2) Add logic to stringify/parse numbers without loss when possible. 3) Try representing {{int64_t}} as a string and parse it as such? 4) Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} In all cases, we'll need to make sure that: * Integers are properly stringified without loss. * The JSON decoder parses the integer without loss. * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and small integers. > Expand the range of integer precision when converting into/out of json. > --- > > Key: MESOS-3345 > URL: https://issues.apache.org/jira/browse/MESOS-3345 > Project: Mesos > Issue Type: Task > Components: stout >Reporter: Joseph Wu >Assignee: Joseph Wu >Priority: Minor > Labels: json, mesosphere, protobuf > > For [MESOS-3299], we added some protobufs to represent time with integer > precision. However, this precision is not maintained through protobuf <-> > JSON conversion, because of how our JSON encoders/decoders convert numbers to > floating point. > To maintain precision, we can try one of the following: > * Try using a {{long double}} to represent a number. > * Add logic to stringify/parse numbers without loss when possible. > * Try representing {{int64_t}} as a string and parse it as such? > * Update PicoJson and add a compiler flag, i.e. {{-DPICOJSON_USE_INT64}} > In all cases, we'll need to make sure that: > * Integers are properly stringified without loss. > * The JSON decoder parses the integer without loss. > * We have some unit tests for big (close to {{INT32_MAX}}/{{INT64_MAX}}) and > small integers. -- This message was sent by Atlassian JIRA (v6.3.4#6332)