Commit Graph

62 Commits

Author SHA1 Message Date
David Farler
9b06e78965 SwiftRemoteMirror: More convenience APIs for dumping
Add convenience functions for dumping the typeinfos via an isa pointer
and a typeref.
2016-04-28 18:07:31 -07:00
David Farler
f2189162fe SwiftRemoteMirror: Add convenience API for dumping typerefs. 2016-04-28 14:52:06 -07:00
David Farler
84c3613e12 SwiftRemoteMirror: Add API stub for projecting existentials
This API will take a pointer to the start of an existential
container and its typeref and provide a typeref for its
instance type and the address to the start of the instance's
data.

This has a dummy implementation that returns false for now.
2016-04-28 14:52:06 -07:00
Slava Pestov
7a9a4dca83 Reflection: Preliminary C API entry points for class instance layout
Tested by manually running swift-reflection-test, no automated
tests yet, but coming soon.
2016-04-27 23:15:08 -07:00
David Farler
88fde5050d SwiftRemoteMirror: Fix missing ReaderContext in creation API
swift_reflection_createReflectionContext was defaulting to C++ mangling
because the declaration under extern C in the header didn't match
its signature.
2016-04-27 12:53:39 -07:00
Slava Pestov
936d4e5e23 Reflection: Flesh out SwiftRemoteMirror C API
- Add swift_reflection_genericArgumentCountOfTypeRef()
- Flesh out swift_reflection_infoForTypeRef()
- Flesh out swift_reflection_infoForChild()
2016-04-24 23:36:31 -07:00
Slava Pestov
824bd7544d IRGen: Emit typerefs for all builtin types referenced from reflection metadata sections
In order to perform layout, the remote mirrors library needs to know
about the size, alignment and extra inhabitants of builtin types.

Ideally we would emit a reflection info section in libswiftRuntime.o,
but in the meantime just duplicate builtin type metadata for all
builtin types referenced from the current module instead.

In practice only the stdlib and a handful of overlays like the SIMD
overlay use builtin types, and only a few at a time.

Tested manually by running swift-reflection-tool on the standard
library -- I'll add automated tests by using -parse-stdlib to
reference Builtin types in a subsequent patch that adds more layout
logic.

NFC if -enable-reflection-metadata is off.
2016-04-15 00:12:11 -07:00
David Farler
20f5304b90 Revised SwiftRemoteMirror C API
Some minor changes to the SwiftRemoteMirror C API, NFC yet.
2016-04-13 13:09:27 -07:00
David Farler
0b04b90895 SwiftRemoteMirrors: Stub implementations for infoFor{TypeRef,Field}
These are just some dummy implementations to temporarily appease
the linker.
2016-04-11 20:03:45 -07:00
David Farler
90d29340a0 Add full SwiftRemoteMirror C API
This just adds the prototypes for the SwiftRemoteMirror C API, which
will call into the appropriate methods of the ReflectionContext.
2016-04-11 19:11:36 -07:00
practicalswift
c26098c877 [gardening] Fix file header formatting. 2016-04-06 21:30:01 +02:00
David Farler
358a0fefe8 Add SwiftRemoteMirror library
This will wrap the ./lib/Reflection functionality in a C
interface.
2016-04-05 13:45:46 -07:00