Commit Graph

  • c2113215e9 Update documentation. master Greg Pomerantz 2021-11-16 18:11:25 -0500
  • e4f7e32887 Update to Big Sur 15.5.2 / Clang 12.0.5. Improved handing of avaiability attributes and boolean values. Greg Pomerantz 2021-11-16 16:01:03 -0500
  • f4a9dae250 Update to latest Clang AST spec. Greg 2021-06-11 11:24:25 -0400
  • 0bc23404da Doc updates. Greg 2020-06-25 16:56:55 -0400
  • 1704be1cbc Remove a stray debugging statement. Greg 2020-06-25 13:18:03 -0400
  • 8b3a956bbe Comprehensive update, add some GC fixes, update examples to new MacOS header file layout. Greg 2020-06-24 13:03:53 -0400
  • acc8cab583 Fix various memory management bugs in GC mode. Greg 2019-06-27 11:41:58 -0400
  • b5773b5525 Make GC mode the default. Greg 2019-06-19 14:29:24 -0400
  • 4aa1211d73 Complete working GC mode. Greg 2019-06-19 14:07:33 -0400
  • c8209dd260 Interim commit. Greg 2019-06-18 17:29:52 -0400
  • e5c8e114bf Add garbage collection memory mangement mode (gogc). Lots of fixes related to pointer handling and memory management. Greg 2019-06-18 09:15:46 -0400
  • 79bb282188 Complete conversion to pointer wrapped types. Update tests, fix parameter handling for functions. Greg 2019-06-13 16:47:36 -0400
  • 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. Greg 2019-06-13 09:25:53 -0400
  • b0139b9aa8 Bug fixes and clean up how methods are added to an interface from superclasses and protocols. Ensure that "Unavailable" attributes are handled properly. Greg 2019-06-11 16:41:21 -0400
  • 9a4fabda24 Run gofmt -w on everything. Add 'gogc' option to use Go garbage collector for memory management. Greg 2019-06-11 12:38:22 -0400
  • d0654613ea Documentation updates. Greg 2019-06-06 00:30:21 -0400
  • 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. Greg 2019-06-06 00:22:07 -0400
  • 50b9387a91 Add frameworkdirs: directive to allow the user to point to directories where Objective-C frameworks can be found. Rework the cgoFlags. Search Objective-C protocols when looking for subclass methods to override. Greg 2019-06-04 21:18:06 -0400
  • f93a893060 Bug fix in Objective-C method signature parsing. Greg 2019-06-04 13:01:51 -0400
  • 773886e0f1 Complete unit tests for nswrap/types. Greg 2019-06-04 11:27:46 -0400
  • a251e7382e Improve test coverage. Greg 2019-06-04 00:14:04 -0400
  • d8552bcf9d Use strict unmarshal for configuration file, to detect typos in config directives. Do not panic on failed regexp in AST parsing, instead return &ast.Unknown{} for further debugging. Add debutast: directive to print context when AST nodes are not recognized. Greg 2019-06-03 11:07:12 -0400
  • 4f0cdf4d1a Some AST tweaks and add astfile: config option to read AST from a file instead of running Clang. Attempt to port to MacOS Mojave. Greg 2019-06-01 15:10:51 -0400
  • a7df3a4e71 Enable -fobjc-arc for AST generation when arc=true in nswrap.yaml. This still doesn't work Greg 2019-05-31 16:25:58 -0400
  • e29ae58a9c Add experimental "arc" directive to nswrap.yaml to experiment with enabling Objective-C automatic reference counting. Bindings currently will not compile with this turned on. Greg 2019-05-31 12:42:52 -0400
  • 5a5a4f9406 AST tweaks and new tests. Greg 2019-05-31 10:21:04 -0400
  • 96edbba641 Documentation updates. Greg 2019-05-29 22:57:10 -0400
  • 8ce3b6a6de Remove dependencies, improve documentation. Greg 2019-05-29 22:36:49 -0400
  • 370a2eb604 Package name tweaks. Greg 2019-05-29 13:26:22 -0400
  • 9230222634 Merge branch 'master' of https://git.wow.st/gmp/nswrap Greg 2019-05-29 13:15:31 -0400
  • a94969338b Move main command to the main package directory. gmp 2019-05-29 13:13:04 -0400
  • 7bcd25bb05 Move main command to the main package directory. gmp 2019-05-29 13:13:04 -0400
  • a2d0f9bc4f Change domain name in package path. Greg 2019-05-29 12:57:53 -0400
  • 749fd503dd Add README.md and LICENSE. Greg 2019-05-29 00:03:51 -0400
  • 2f4d76c6af Better handling of slice size vs. capacity in pointers to pointers. Greg 2019-05-29 00:02:27 -0400
  • 840a055a11 Clean up variadic functions and methods. Greg 2019-05-28 20:04:39 -0400
  • 1cc0f0e26a Handle pointers to pointers as Go slices. Greg 2019-05-28 15:52:16 -0400
  • 86b27e6c42 Simplify polymorphic implementation, bug fix to variadic functions. Greg 2019-05-28 13:20:44 -0400
  • 154a2fac14 Disambiguate all class and instance method names. Greg 2019-05-28 13:03:23 -0400
  • d086c0fdfe Intermediate commit to work on polymorphic method handling. Greg 2019-05-27 13:47:59 -0400
  • 86ff14b533 A few small fixes. Greg 2019-05-24 15:40:01 -0400
  • 34fbcec965 Subclasses can have new methods in addition to overriding existing methods (first draft). Greg 2019-05-24 12:36:01 -0400
  • 38c7856b89 Bug fix and start improvements to subclassing. Greg 2019-05-24 00:12:46 -0400
  • 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. Greg 2019-05-23 16:31:47 -0400
  • 4f6930002d First draft that handles subclasses and improvements to delegate implementation. Greg 2019-05-21 16:26:52 -0400
  • 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. Greg 2019-05-11 23:03:56 -0400
  • 49fd749fe3 Use C.GoBytes() in examples/bluetooth. Greg 2019-05-10 02:35:52 -0400
  • 2fe435f137 Bug fix: delete exports.go if it is not needed. Greg 2019-05-10 02:23:07 -0400
  • 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). Greg 2019-05-10 02:00:56 -0400
  • 0de9249e6a Update .gitignore. Greg 2019-05-09 22:35:21 -0400
  • e7e2c2c7b6 Begin moving the bluetooth example to the new delegates system. Greg 2019-05-09 22:33:06 -0400
  • 44b3b75e23 Complete implementation of delegates. Update app example with an NSApplicationDelegate. Greg 2019-05-09 22:05:04 -0400
  • 0d2321d516 Add autorelease helpers. Greg 2019-05-09 13:33:28 -0400
  • b00ecd4ac0 Switch from toml to yaml for configuration files. Begin scaffolding for Protocols and Delegates. Greg 2019-05-09 12:25:45 -0400
  • 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. Greg 2019-05-09 08:52:35 -0400
  • ea34821fe6 Add a button to examples/app. Greg 2019-05-07 15:49:43 -0400
  • 1c5c61308c Add SelectorHelpers() so you can send named selectors to Objective-C. Greg 2019-05-07 15:17:23 -0400
  • 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. Greg 2019-05-07 14:48:06 -0400
  • 511f2f1968 Improve type handling for enums. Handle "__kindof" qualifiers. Add examples/app. Allow VisibilityAttr "Hidden". Greg 2019-05-06 13:21:36 -0400
  • 959b87342e Return Golang bools from Objective-C functions that return BOOL. Move nswrap command to cmd/nswrap. Greg 2019-05-06 09:00:38 -0400
  • 717c7e76fe Change name of New* functions to *Alloc to mimic Objective-C's nested alloc/init call idiom. Greg 2019-05-04 23:32:57 -0400
  • 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. Greg 2019-05-03 13:14:30 -0400
  • 8ea3d57cf0 Fix bug in examples/bluetooth/ble/ble_delegate: deleted references to unused scanCallback property. Greg 2019-05-02 14:22:20 -0400
  • c5a523a8b8 Add bluetooth example. Greg 2019-05-02 14:17:11 -0400
  • 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. Greg 2019-05-02 14:14:29 -0400
  • 9b71889a69 Include type qualifiers and nullability attributes in Objective-C function return types. Add NSEnumerator to examples/foundation. Greg 2019-05-01 13:58:20 -0400
  • 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. Greg 2019-05-01 12:32:42 -0400
  • 57ad898945 Bug fix: Process types before converting to go function parameter lists. Greg 2019-05-01 11:01:50 -0400
  • be92b200ad Handle functions identified by regexp in nswrap.toml config file. Handle inherited class methods. Greg 2019-05-01 10:58:29 -0400
  • 380fee39bf Update foundation example to query whether the array contains specified objects. Greg 2019-04-30 10:34:56 -0400
  • e6232bdccb Fix VaArgs configuration. Greg 2019-04-30 09:21:54 -0400
  • 3573aa9144 Change Go types to simple unsafe Pointers instead of pointers wrapped in structs. It could be possible to handle pointers to pointers now. Greg 2019-04-30 09:14:25 -0400
  • 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. Greg 2019-04-30 06:59:05 -0400
  • d78e055008 Handle Objective-C methods with variadic arguments. Greg 2019-04-29 16:14:45 -0400
  • 57232548fa Go type declarations should point to C typedefs. Add parser for C enum types. Greg 2019-04-29 13:31:13 -0400
  • 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. Greg 2019-04-29 11:46:48 -0400
  • c0c17e88d1 Fix to go type declarations. Greg 2019-04-29 10:37:43 -0400
  • 500b457d32 Fix type wrapping and procesing so duplicate types do not get declared. Greg 2019-04-27 22:24:05 -0400
  • 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. Greg 2019-04-26 22:44:30 -0400
  • 6135381cc7 Allow #pragma directives to be provided in the config file. Greg 2019-04-26 15:41:29 -0400
  • 009a974a1a Rename to nswrap, put configuration in a toml file, allow imports and sysimports. Greg 2019-04-26 15:34:36 -0400
  • ead1623d4b Eliminate unnecessary code from wrap/main.go. Include full attributes in return types of C functions to reduce compiler warnings. Greg 2019-04-26 15:08:44 -0400
  • b93ba4c01f Fix handling of signed, unsigned, complex, and long long types in Go type declarations. Greg 2019-04-26 14:15:18 -0400
  • 4f260dda0e Fix handling of id and void* types. Add helper functions to convert char* to and from Go strings. Parse block (^) types. Skip methods with functions as parameters. Fix passing pointers go C code. Greg 2019-04-26 14:08:43 -0400
  • 98e19ca726 Fix handling of wrapped types. Use new type system for go function declarations. Working wrapper for simple test case. Greg 2019-04-26 10:56:00 -0400
  • e143dbb6a7 Fixed type wrapping, further conversion to new type system. The Go side looks pretty good at this point. Greg 2019-04-26 10:07:34 -0400
  • fb21881a8b Add type conversion functions to types package. Start moving the wrapper to the new type system. Intermediate commit before I rip out the old stuff, not working yet. Greg 2019-04-26 09:04:53 -0400
  • 885658b67b Implement new type system. Working wrapper for simple Objective-C interfaces. Greg 2019-04-23 15:48:11 -0400
  • 4867bb80f4 Memoize types/TypeName() for performance. Greg 2019-04-18 14:40:02 -0400
  • da2008c597 Function to print text version of a C TypeName. Fix bugs in Nest(), ZeroOrMore(), OneOrMore() and Objective-C Generics parsers. Greg 2019-04-18 14:04:01 -0400
  • b7134bedb7 Restructure the type parsers. Remove struct declaration parsers. Greg 2019-04-18 11:22:53 -0400
  • 6955d79702 Bug fix to stripAbstract(), some minor parser restructuring. Greg 2019-04-18 10:21:03 -0400
  • e7270e95cf Add type parsing infrastructure. Greg 2019-04-18 09:38:46 -0400
  • 0b0b73c6bd Handle class methods. Greg 2019-04-11 17:00:36 -0400
  • 3ecb3b1eeb Fix types in c and go parameter lists. Greg 2019-04-11 13:09:02 -0400
  • 9e3c7c2ce8 Fix objective-c method calls. Greg 2019-04-11 12:00:10 -0400
  • 74f4073d35 Improved type handling. Greg 2019-04-11 11:46:24 -0400
  • 2fbd9134a0 Generate go and objc wrapper functions. Translate classes into wrapped unsafe.Pointer() instances. Embed super-class to simulate inheritance and hold pointers only at the base class. Greg 2019-04-10 14:00:48 -0400
  • bcb4a0680d Identify methods from interfaces and categories, determine their parameter and return types. Greg 2019-04-09 23:19:49 -0400
  • 6a9c5c2811 Initial commit. Greg 2019-04-09 11:52:21 -0400