1. 23 Sep, 2015 7 commits
  2. 22 Sep, 2015 3 commits
  3. 17 Sep, 2015 2 commits
  4. 15 Sep, 2015 4 commits
  5. 29 Jul, 2015 4 commits
  6. 27 Jul, 2015 1 commit
  7. 20 Jul, 2015 1 commit
    • Miro Knejp's avatar
      Generate convenience initializers for Objective-C records · 449ed7e9
      Miro Knejp authored
      This provides a consistent pair of initializers for all records:
      - (nonnull instancetype)initWithArg:(A*)arg;
      + (nonnull instancetype)myRecordWithArg:(A*)arg;
      
      The static convenience initializer is only created for records *without*
      the +o extension. This also applies to records with no members. Now even
      empty records have a designated initializer.
      449ed7e9
  8. 17 Jul, 2015 1 commit
  9. 15 Jul, 2015 5 commits
  10. 13 Jul, 2015 8 commits
    • Miro Knejp's avatar
      YAML file documentation · b704a7c3
      Miro Knejp authored
      b704a7c3
    • Miro Knejp's avatar
      "duration" as example of a complex external type · 4caf5c6e
      Miro Knejp authored
      This demonstrates some fancy template usage to provide a std::chrono::duration<rep, period> capable external type. It is mapped to NSTimeInterval and java.time.Duration.
      
      It can be used after importing "duration.yaml" as follows:
      - duration<i32, s> => std::chrono::duration<i32, std::ratio<1>>
      - duration<f64, ns> => std::chrono::duration<double, std::nano>
      4caf5c6e
    • Miro Knejp's avatar
      Provide the builtin "date" as example of a external type · 55fcd90e
      Miro Knejp authored
      This is a demonstration that the generator can be further simplified by moving types which do not require dedicated generator magic to externally declared types.
      55fcd90e
    • Miro Knejp's avatar
      Load YAML files into the AST · 6e958ef2
      Miro Knejp authored
      6e958ef2
    • Miro Knejp's avatar
      Generate YAML files with type descriptions for other projects · e181adc0
      Miro Knejp authored
      These YAML files generated by Djinni hold all the necessary information to integrate these types with other Djinni projects, thus making (precompiled) libraries with possible.
      
      There are still limitations:
      - Extern enums/records cannot be used as constants as their enumerant/field information is not yet preserved.
      - Include paths are fixed at the point of YAML generation, including paths do Djinni's support-lib. This may require some form of placeholders, or being smart about project structure in general.
      
      Generation is controlled with following options
      - --yaml-out: The output folder for YAML files (Generator disabled if unspecified).
      - --yaml-out-file: If specified all types are merged into a single YAML file instead of generating one file per type  (relative to --yaml-out).
      - --yaml-prefix: The prefix to add to type names stored in YAML files (default: "").
      e181adc0
    • Miro Knejp's avatar
      AST representation of external types · 730f7455
      Miro Knejp authored
      730f7455
    • Miro Knejp's avatar
      18b37727
    • Miro Knejp's avatar
      New meta MExtern with all data required to interface with extern types · 4c062e36
      Miro Knejp authored
      Marshals use the respective members to resolve typenames, signatures, parameter types etc.
      All names in MExtern are expected to be fully qualified.
      4c062e36
  11. 10 Jul, 2015 4 commits