payload: {"push_id":3536408601,"size":19,"distinct_size":19,"ref":"refs/heads/primitive-floats","head":"c5abd36d5e75e20c6047a0db1a7526cfc6d12f5d","before":"7f4a35169f55686d2c884d0aa19f65226020817b","commits":[{"sha":"3f2bd219260eaa80fa5cecec61493a2ed89834ed","author":{"name":"Pierre Roux","email":"4454eb1cdbd3a6084f1777416a323311058342d4@onera.fr"},"message":"64 bit registers","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/3f2bd219260eaa80fa5cecec61493a2ed89834ed"},{"sha":"a0b0dcd437e94d6a56c0ebf65a7cd250ca432db6","author":{"name":"Pierre Roux","email":"ff019a5748a52b5641624af88a54a2f0e46a9fb5@roux01.fr"},"message":"Declare type of primitives in CPrimitives\n\nRather than in typeops","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/a0b0dcd437e94d6a56c0ebf65a7cd250ca432db6"},{"sha":"77dfb2e7b682399892301c89e157dd677a847415","author":{"name":"Guillaume Bertholon","email":"674122fced3abfcdabc6f3045be5a7d2c5724f9b@ens.fr"},"message":"Add primitive float computation in Coq kernel\n\nBeware of 0. = -0. issue for primitive floats\n\nThe IEEE 754 declares that 0. and -0. are treated equal but we cannot\nsay that this is true with Leibniz equality.\nTherefore we must patch the equality and the total comparison inside the\nkernel to prevent inconsistency.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/77dfb2e7b682399892301c89e157dd677a847415"},{"sha":"460c3e5fedd4860cc9e846edc1b6bf8017127c84","author":{"name":"Guillaume Bertholon","email":"674122fced3abfcdabc6f3045be5a7d2c5724f9b@ens.fr"},"message":"Add Floats to standard library\n\nAll supported floating point operations are defined on specification floats.\nThen we register the primitive type and functions, and add conversion\nfunctions to and from the specification type.\nFinally we put axioms to state that primitive operations behave exactly\nthe same as specification operations.\n\nCREDITS: Most of the code inside SpecFloat is adapted from the Flocq\nlibrary.\n\nNOTE: For the moment this code will not compile if native compilation is\nenabled in the configuration phase. This will be resolved later when\nnative_compute will be supported by primitive floats.\n\nSo please use option \"-native-compiler no\" in ./configure currently.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/460c3e5fedd4860cc9e846edc1b6bf8017127c84"},{"sha":"e3b28983b0a4720400d72fcb579f2e837ac58085","author":{"name":"Guillaume Bertholon","email":"674122fced3abfcdabc6f3045be5a7d2c5724f9b@ens.fr"},"message":"Add tests for primitive floats\n\nAdd utility ldexp and frexp functions to prevent dealing with the shift of\nldshiftexp and frshiftexp everywhere.\n\nAlso move primitive integer tests to place all primitive tests in the\nsame directory.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/e3b28983b0a4720400d72fcb579f2e837ac58085"},{"sha":"ad0081e1128ab4c08d02dde8097aa30b1771907a","author":{"name":"Guillaume Bertholon","email":"674122fced3abfcdabc6f3045be5a7d2c5724f9b@ens.fr"},"message":"Add primitive floats to 'vm_compute'\n\n* This commit add float instructions to the VM, their encoding in bytecode\n  and the interpretation of primitive float values after the reduction.\n\n* The flag '-std=c99' could be added to the C compiler flags to ensure\n  that float computation strictly follows the norm (ie. i387 80-bits\n  format is not used as an optimization).\n\n  Actually, we use '-fexcess-precision=standard' instead of '-std=c99'\n  because the latter would disable GNU asm used in the VM.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/ad0081e1128ab4c08d02dde8097aa30b1771907a"},{"sha":"d3026bb5d08c02214b48bba79cc74954849c033b","author":{"name":"Guillaume Bertholon","email":"674122fced3abfcdabc6f3045be5a7d2c5724f9b@ens.fr"},"message":"Add tests for primitive floats with 'vm_compute'\n\nTests are updated to include VM computations and check for double\nrounding.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/d3026bb5d08c02214b48bba79cc74954849c033b"},{"sha":"46f5e09ae3a1ca8c2cb3f56cfef623095847439a","author":{"name":"Guillaume Bertholon","email":"674122fced3abfcdabc6f3045be5a7d2c5724f9b@ens.fr"},"message":"Put axioms on ldshiftexp and frshiftexp\n\nAxioms on ldexp and frexp are replaced by proofs inside FloatLemmas.\n\nThe shift value has been increased to 2 * emax + prec because in ldexp\nwe want to be able to transform the smallest denormalized to the biggest\nfloat value in one call.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/46f5e09ae3a1ca8c2cb3f56cfef623095847439a"},{"sha":"b3e95b3da4478bb4158eec73d65f71bdf376e431","author":{"name":"Pierre Roux","email":"ff019a5748a52b5641624af88a54a2f0e46a9fb5@roux01.fr"},"message":"Change return type of primitive float comparison.\n\nReplace `option comparison` with `float_comparison` (:= `FEq | FLt |\nFGt | FNotComparable`) as suggested by Guillaume Melquiond to avoid\nboxing and an extra match when using primitive float comparison.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/b3e95b3da4478bb4158eec73d65f71bdf376e431"},{"sha":"c0cadb9a26106336d81c179abe9bbb23bd5e0f21","author":{"name":"Pierre Roux","email":"ff019a5748a52b5641624af88a54a2f0e46a9fb5@roux01.fr"},"message":"Implement classify on primitive float.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/c0cadb9a26106336d81c179abe9bbb23bd5e0f21"},{"sha":"322a57dd1ebc1de2a8d0f2fdd5c32a70af348b7e","author":{"name":"Pierre Roux","email":"ff019a5748a52b5641624af88a54a2f0e46a9fb5@roux01.fr"},"message":"Add next_{up,down} primitive float functions.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/322a57dd1ebc1de2a8d0f2fdd5c32a70af348b7e"},{"sha":"bb9126409174040cfd54864a8455d23c428b8ea7","author":{"name":"Pierre Roux","email":"4454eb1cdbd3a6084f1777416a323311058342d4@onera.fr"},"message":"Add primitive floats to 'native_compute'\n\n* Float added to is_value/get_value to avoid stack overflows\n  (cf. #7646)\n\n* beware of the use of Array.map with floats (cf. comment in the\n  makeblock function)\n\nNB: From here one, the configure option \"-native-compiler no\"\nis no longer needed.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/bb9126409174040cfd54864a8455d23c428b8ea7"},{"sha":"7b884992d2f75a83c1e4681f1005f13466811633","author":{"name":"Pierre Roux","email":"4454eb1cdbd3a6084f1777416a323311058342d4@onera.fr"},"message":"Add tests for primitive floats with 'native_compute'","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/7b884992d2f75a83c1e4681f1005f13466811633"},{"sha":"9fba96e11c3c5900205824fde8b798871f8a61b7","author":{"name":"Pierre Roux","email":"4454eb1cdbd3a6084f1777416a323311058342d4@onera.fr"},"message":"Add primitive floats to checker","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/9fba96e11c3c5900205824fde8b798871f8a61b7"},{"sha":"5371d7c231dc84b3f6f6529f562737f92cb23b9e","author":{"name":"Pierre Roux","email":"ff019a5748a52b5641624af88a54a2f0e46a9fb5@roux01.fr"},"message":"Parsing primitive float constants.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/5371d7c231dc84b3f6f6529f562737f92cb23b9e"},{"sha":"c3437755e12ab96849d085b4b96262747cbbbd63","author":{"name":"Erik Martin-Dorel","email":"71f9fbfacd9a4b3ec28bcce12bab8bccb88de59c@irit.fr"},"message":"Pretty-printing primitive float constants\n\n* map special floats to registered CRef's\n* kernel/float64.mli: add {is_infinity, is_neg_infinity} functions\n* kernel/float64.ml: Replace string_of_float with a safe pretty-printing function\n\nNamely:\n\n  let to_string_raw f = Printf.sprintf \"%.17g\" f\n  let to_string f = if is_nan f then \"nan\" else to_string_raw f\n\nSummary:\n\n* printing a binary64 float in 17 decimal places and parsing it again\n  will yield the same float, e.g.:\n\n  let f1 = 1. +. (0x1p-53 +. 0x1p-105)\n  let f2 = float_of_string (to_string f1)\n  f1 = f2\n\n* OCaml's string_of_float gives a sign to nan values which shouldn't be\n  displayed as all NaNs are considered equal here.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/c3437755e12ab96849d085b4b96262747cbbbd63"},{"sha":"fff4836fd31c6e93bc9922f550281bee0195de51","author":{"name":"Pierre Roux","email":"ff019a5748a52b5641624af88a54a2f0e46a9fb5@roux01.fr"},"message":"Make primitive float work on x86_32\n\nFlag -fexcess-precision=standard is not enough on x86_32\nwhere -msse2 -mfpmath=sse is required (-msse is not enough)\nto avoid double rounding issues in the VM.\n\nMost floating-point operation are now implemented in C because OCaml\nis suffering double rounding issues on x86_32 with 80 bits extended\nprecision registers used for floating-point values, causing double\nrounding making floating-point arithmetic incorrect with respect to\nits specification.\n\nAdd a runtime test for double roundings.","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/fff4836fd31c6e93bc9922f550281bee0195de51"},{"sha":"128a9a0561689fde008343a4379d0a7a0a7302a0","author":{"name":"Pierre Roux","email":"4454eb1cdbd3a6084f1777416a323311058342d4@onera.fr"},"message":"Make primitive float work on Windows","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/128a9a0561689fde008343a4379d0a7a0a7302a0"},{"sha":"c5abd36d5e75e20c6047a0db1a7526cfc6d12f5d","author":{"name":"Pierre Roux","email":"4454eb1cdbd3a6084f1777416a323311058342d4@onera.fr"},"message":"TODO doc","distinct":true,"url":"https://api.github.com/repos/validsdp/coq/commits/c5abd36d5e75e20c6047a0db1a7526cfc6d12f5d"}]}
other: {"actor":{"display_login":"proux01"}}