VDL codegen for Swift.

The codegen is largely complete. The following are missing:

- Generating const values for type Any
- vdl.Type support for VOM reflection/introspection
- TypeObject support, which requires vdl.Type
- Param support for Errors
- RPC support, which requires VOM.
- Proper integration with Xcode.

Reach:
- A post-process code re-formatter to make the generated code have
  the correct spacing, etc.

Notes:
- Currently v23 won't compile until we have support for migrating
  away from v23's types that use reserved words in Swift. This
  will come in another CL.
- We don't support the fixed length VDL type explicitly -- instead
  that gets deferred to VOM. The reason is that Swift's type system
  cannot express a fixed length array, so we can only error at
  runtime. If we are to error at runtime, then we must either wrap
  arrays and monitor their length, or use getter/setters to monitor
  the length there, or enforce at VOM. The last option is currently
  preferrable as it allows for VDL generated code to be more idiomatic
  by directly using Arrays. This might change in the future.

MultiPart: 4/4
Change-Id: Ic5348e8a92f6ce26ae68be0f47227e4c974a3020
1 file changed
tree: 593a6c43aa17dd3b517c2c071bc8d1f092b98372
  1. bendroid/
  2. dashboard/
  3. data/
  4. godepcop/
  5. gologcop/
  6. internal/
  7. jiri-api/
  8. jiri-contributors/
  9. jiri-copyright/
  10. jiri-dockergo/
  11. jiri-go/
  12. jiri-goext/
  13. jiri-oncall/
  14. jiri-profile-v23/
  15. jiri-run/
  16. jiri-swift/
  17. jiri-test/
  18. jiri-v23-profile/
  19. jiridoc/
  20. mailer/
  21. oncall/
  22. postsubmit/
  23. presubmit/
  24. tooldata/
  25. tracify/
  26. vbinary/
  27. vcloud/
  28. vjenkins/
  29. vkiosk/
  30. vmon/
  31. .gitignore
  32. .godepcop
  33. .jiriignore
  34. AUTHORS
  35. CONTRIBUTING.md
  36. CONTRIBUTORS
  37. LICENSE
  38. PATENTS
  39. README.md
  40. VERSION
README.md

This repository contains developer tools used to install and contribute to Vanadium.

For more information, see the installation and contributing instructions.

This repository is fetched and the tools are built as part of the Vanadium installation process for contributors.