Commit Graph

50 Commits

Author SHA1 Message Date
e5c8e114bf Add garbage collection memory mangement mode (gogc). Lots of fixes
related to pointer handling and memory management.
2019-06-18 09:15:46 -04:00
79bb282188 Complete conversion to pointer wrapped types. Update tests, fix
parameter handling for functions.
2019-06-13 16:47:36 -04:00
ac9eecafd8 Convert all Go wrapped objects to pointers so the Go GC can track
all of the Objective-C pointers. Still working on bug with typedefs
to wrapped types.
2019-06-13 09:25:53 -04:00
b0139b9aa8 Bug fixes and clean up how methods are added to an interface from
superclasses and protocols. Ensure that "Unavailable" attributes are
handled properly.
2019-06-11 16:41:21 -04:00
9a4fabda24 Run gofmt -w on everything. Add 'gogc' option to use Go garbage
collector for memory management.
2019-06-11 12:38:22 -04:00
90166a4379 Bug fixes. Read availability attributes when adding interfaces and
categories. Memory leak fixes. Add "autorelease" confiruation directive.
Fix parameter types for subclass method overriding.
2019-06-06 00:22:07 -04:00
f93a893060 Bug fix in Objective-C method signature parsing. 2019-06-04 13:01:51 -04:00
a7df3a4e71 Enable -fobjc-arc for AST generation when arc=true in nswrap.yaml.
This still doesn't work
2019-05-31 16:28:51 -04:00
5a5a4f9406 AST tweaks and new tests. 2019-05-31 10:21:04 -04:00
8ce3b6a6de Remove dependencies, improve documentation. 2019-05-29 22:36:49 -04:00
370a2eb604 Package name tweaks. 2019-05-29 13:26:22 -04:00
a2d0f9bc4f Change domain name in package path. 2019-05-29 12:57:53 -04:00
2f4d76c6af Better handling of slice size vs. capacity in pointers to pointers. 2019-05-29 00:02:27 -04:00
840a055a11 Clean up variadic functions and methods. 2019-05-28 20:04:39 -04:00
1cc0f0e26a Handle pointers to pointers as Go slices. 2019-05-28 15:52:16 -04:00
154a2fac14 Disambiguate all class and instance method names. 2019-05-28 13:03:23 -04:00
86ff14b533 A few small fixes. 2019-05-24 15:40:01 -04:00
34fbcec965 Subclasses can have new methods in addition to overriding existing
methods (first draft).
2019-05-24 12:36:01 -04:00
38c7856b89 Bug fix and start improvements to subclassing. 2019-05-24 00:12:46 -04:00
a616761475 Change Go types to plain structs instead of pointers to structs.
Add methods for protocols that Objective-C interfaces claim to
implement. Separate class methods from instance methods in
internal data structures. Add layout constraints with visual
formats to examples/app. Fix typedefs for wrapped objective-c
object types.
2019-05-23 16:31:47 -04:00
4f6930002d First draft that handles subclasses and improvements to delegate
implementation.
2019-05-21 16:26:52 -04:00
8de87cddb7 Performance improvements (do not parse addresses or locations unless
location tracking is enabled). Allow profiling option. Add some
comments and clean-ups to types/*.go.
2019-05-11 23:03:56 -04:00
49fd749fe3 Use C.GoBytes() in examples/bluetooth. 2019-05-10 02:35:52 -04:00
dcb7105fca Complete the Delegates wrapper. Disambiguate polymorphic methods.
Bluetooth example is now a functioning heart rate monitor. Additional
bug fixes in Go types (instances where *Id needs to be used instead
of NSObject).
2019-05-10 02:00:56 -04:00
e7e2c2c7b6 Begin moving the bluetooth example to the new delegates system. 2019-05-09 22:33:06 -04:00
44b3b75e23 Complete implementation of delegates. Update app example with an
NSApplicationDelegate.
2019-05-09 22:05:04 -04:00
0d2321d516 Add autorelease helpers. 2019-05-09 13:33:28 -04:00
b00ecd4ac0 Switch from toml to yaml for configuration files. Begin scaffolding
for Protocols and Delegates.
2019-05-09 12:25:45 -04:00
cccbfbbc00 Autorelease all objective-C objects constructed using "alloc".
Clean up type-related comments in generated code. Do not use
pointers to Go interfaces as receivers, use pointer to Id instead.
2019-05-09 08:52:35 -04:00
ea34821fe6 Add a button to examples/app. 2019-05-07 15:49:43 -04:00
1c5c61308c Add SelectorHelpers() so you can send named selectors to Objective-C. 2019-05-07 15:17:23 -04:00
8ed05fb451 Work around cgo (or Clang dwarf) bug with incorrect struct size
calculation by returning void pointers for NS object constructors.
Expand examples/app to start building menus.
2019-05-07 14:48:06 -04:00
511f2f1968 Improve type handling for enums. Handle "__kindof" qualifiers.
Add examples/app. Allow VisibilityAttr "Hidden".
2019-05-06 13:21:36 -04:00
717c7e76fe Change name of New* functions to *Alloc to mimic Objective-C's
nested alloc/init call idiom.
2019-05-04 23:32:57 -04:00
eced251710 Create GoString helper methods for anything that has a "WithString"
method. Multiple bug fixes in type system, fixed parsing of id,
instancename and instancetype, allow NullableAnnotations after
generic lists (e.g. "id<ObjectType> _Nullable"). Helper function
to identify types that are function pointers.
2019-05-03 13:14:30 -04:00
8ea3d57cf0 Fix bug in examples/bluetooth/ble/ble_delegate: deleted references
to unused scanCallback property.
2019-05-02 14:22:20 -04:00
c5a523a8b8 Add bluetooth example. 2019-05-02 14:17:11 -04:00
758ea40679 Add constants for C enum types. Add NSEnumerator helper. Fix
bugs in Go class names. Add "Frameworks" option to nswrap.toml.
Improve handling of ast.EnumDecl and ast.EnumConstantDecl.
2019-05-02 14:14:29 -04:00
9b71889a69 Include type qualifiers and nullability attributes in Objective-C
function return types. Add NSEnumerator to examples/foundation.
2019-05-01 13:58:20 -04:00
11366be6d0 Convert *Id to any wrapped type. Shorten names for class methods
that return an instance of the class. Fix return types for Go
interfaces.
2019-05-01 12:34:29 -04:00
be92b200ad Handle functions identified by regexp in nswrap.toml config
file. Handle inherited class methods.
2019-05-01 10:58:29 -04:00
380fee39bf Update foundation example to query whether the array contains
specified objects.
2019-04-30 10:34:56 -04:00
e6232bdccb Fix VaArgs configuration. 2019-04-30 09:21:54 -04:00
3573aa9144 Change Go types to simple unsafe Pointers instead of pointers
wrapped in structs. It could be possible to handle pointers to
pointers now.
2019-04-30 09:14:25 -04:00
0e89d2c29a Do not memoize type parser as it causes bugs with typedefs,
'instancetype' etc. Clean up typedefs and type parameters as
soon as Types are created.
2019-04-30 06:59:05 -04:00
d78e055008 Handle Objective-C methods with variadic arguments. 2019-04-29 16:14:45 -04:00
c03e37bd54 Make a Go Interface instead of a struct for top level objects.
Use a new struct Id as a concrete version of that type.
2019-04-29 11:46:48 -04:00
c0c17e88d1 Fix to go type declarations. 2019-04-29 10:37:43 -04:00
500b457d32 Fix type wrapping and procesing so duplicate types do not get
declared.
2019-04-27 22:24:05 -04:00
977a09e77e Better handling of multiple classes and input files. Handle
Objective C type parameter declarations. Check Typedefs when
determining if a Type is a pointer or a function.
2019-04-26 22:44:30 -04:00