swog
swog copied to clipboard
Scala wrapper generator for interop with C, C++, Objective-C, and script languages.
In classes annotated with `CObj`, `CxxObj`, or `ObjC`, we should optionally transform `String` args passed to external functions into a `CString`, using a local zone. I.e. ```scala @CObj class Foo...
As a best practice, methods returning a wrapped C object should always take an implicit wrapper, i.e. ```scala def getFoo()(implicit w: CObjectWrapper[Foo]): Foo = extern ``` instead of ```scala def...
Required for iOS support, since the arm64 ABI doesn't work with vararg calls.
```scala @CObj class Foo private() ``` should produce ```scala class Foo (override val __ref: Ref[Byte]) { private def this() = this(Foo.__ext.foo_new()) } ```
scala-native/scala-native#1136
This currently fails: ```Scala @ObjC trait Foo { def foo(): Unit = extern } @ObjC class Bar extends Foo val bar: Bar = ... bar.foo() ```
```scala @retain case class Foo(id: NSInteger, date: NSDate, notes: String) ``` should transpile to ```scala case class Foo(id: NSInteger, date: NSDate, notes: String) extends Releasable { date.retain() def release(): Unit...
When an extern function have as return type an abstract type, the macro tries to instantiate it, resulting in a compile error. Example with `GtkBuilder`: ```scala @CObj class GtkBuilder {...
Mixing abstract CObj classes in a hierarchy with concrete CObj classes exhibits strange behavior: ```scala @CObj class GObject @CObj abstract GtkWidget extends GObject @CObj class GtkWindow extends GtkWidget ``` aince...