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: 3/4
Change-Id: I6c5bdb65f15751e605d98863e5ecb89571344b80
19 files changed
tree: ae23193bbb1d2db624e5ec87bf10819631f9d016
  1. cmd/
  2. examples/
  3. internal/
  4. lib/
  5. runtime/
  6. services/
  7. test/
  8. .gitignore
  9. AUTHORS
  10. CONTRIBUTING.md
  11. CONTRIBUTORS
  12. envvar.go
  13. envvar_test.go
  14. LICENSE
  15. PATENTS
  16. README.md
  17. VERSION
README.md

Vanadium

This repository contains a reference implementation of the Vanadium APIs.

Unlike the APIs in https://github.com/vanadium/go.v23, which promises to provide backward compatibility this repository makes no such promises.