1. 09 Jan, 2020 3 commits
  2. 16 Dec, 2019 2 commits
  3. 04 Nov, 2019 1 commit
  4. 28 Aug, 2019 2 commits
  5. 27 Aug, 2019 3 commits
  6. 23 Aug, 2019 6 commits
  7. 02 Aug, 2019 3 commits
    • Julien Signoles's avatar
    • Julien Signoles's avatar
      [rational] rename Libr to Real · 0324062d
      Julien Signoles authored
      0324062d
    • Fonenantsoa Maurica 's avatar
      Extend Interval, Typing and Translate: · ad8d968c
      Fonenantsoa Maurica authored
        - Interval:
          - Not_an_integer -> Is_a_real|Not_a_number.
          - infer -> infer_with_real
            because Not_a_number has priority over Is_a_real
          - Ival.bottom when Is_a_real
            because the interval is for integers
        - Typing:
          - integer_ty -> number_ty=Cty|Gmpz|Libr|Nan
          - Other -> 'Other (Oreal|Onan)'
        - Translate:
          Encode real constants into strings:
            - **NO** conversion to float-point type
            - strnum_ty=StrZ|StrR|Not_a_strnum
              for tracking the type of the string
      Add Libr:
        - Gmpz -> Gmp=Gmpz+Gmpq
        - Libr=ref to Gmpq
      Add Gmpq builtins:
        - Custom mini-gmp -> libgmp
          because mini-gmp has no support for Q
        - Add arithmetic over Q in e_acsl_gmp_api.h
      Misc:
        - dec_to_frac: decimal expansion to fractional representation
          because decimal expansion is interpreted as double by Gmpq
      Tests:
        - BTS 1307 has an assertion wrongly evaluated, fixed
        - Add tests/gmp/reals.c
      THE MOST IMPORTANT TODO:
        - Completely hide the library for numbers (currently Gmp)
          inside Libr: Typing, Env and Translate should only know
          Libr and never directly call Gmp.
          This is crucial for extending E-ACSL in the future
          (eg: Gmp has no support for elementary functions), and
          also for using it as part of an abstract compiler
          (eg: with Fldlib)
          For the time being, in Translate,
          we have something as ugly as:
            let init_set =
              if Libr.is_t ty then Libr.init_set
              else Gmp.init_set
      ad8d968c
  8. 29 Apr, 2019 5 commits
  9. 18 Apr, 2019 3 commits
  10. 22 Nov, 2018 3 commits
  11. 15 Oct, 2018 1 commit
  12. 18 Sep, 2018 3 commits
    • Fonenantsoa Maurica 's avatar
      Addresses Julien's review no.2: · 2567cf83
      Fonenantsoa Maurica authored
       - Remove double warning for arithmetic over pointers
       - Not yet: size of memory area in GMP
       - Typing of Trange
       - Squashing pattern matchings
       - Use of has_set_as_index
       - No is_offset_of_array
       - Using exception in is_range_free
       - Using `call f`
       - Logic.is_set_type instead of catching Failure
       - Logic.const.taddrof
       - &t, instead of &t[0], is sufficient for arrays
       - No useless rec
       - Typos, useless parentheses, no camel case, comments, indentation
      2567cf83
    • Fonenantsoa Maurica 's avatar
      Addresses Julien's review no.1: · 07718350
      Fonenantsoa Maurica authored
      - Interval inference and typing
      - Multi-dimensional arrays with ranges as indexes:
        - If the only range is the last index -> single call to builtin
        - Else -> not yet "arithmetic over set of pointers" (requires Mmodel modification)
      - Tests for struct
      - Richer pattern matching instead of is_trange
      - has_range -> Misc.is_range_free
      - Using Cil_const.make_logic_var_kind, Logic_const.taddrof, Logic_const.type_of_element and Logic_utils.mk_cast
      - [elt] @ list -> elt :: list
      - Options.fatal -> Options.abort
      - Comments:
        - On the Range Elimination operation
        - Describing the formula for the range-free term
        - Describing mmodel_call_with_ranges and mmodel_call_default
      07718350
    • Fonenantsoa Maurica 's avatar
      \valid(p + (n1..n2)) · 8846f703
      Fonenantsoa Maurica authored
      8846f703
  13. 12 Apr, 2018 1 commit
  14. 30 Mar, 2018 2 commits
  15. 05 Dec, 2017 1 commit
  16. 12 Apr, 2017 1 commit