Skip to content

Commit

Permalink
upgrading to scala-native 0.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
nadavwr committed Jun 25, 2017
1 parent 5292a2d commit fd7cb0e
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 13 deletions.
6 changes: 2 additions & 4 deletions build.sbt
Expand Up @@ -49,7 +49,6 @@ lazy val cspice = crossProject(JVMPlatform, NativePlatform)
)
.configurePlatform(JVMPlatform)(p => p.enablePlugins(JniNative))
.jvmSettings(
libraryDependencies += "net.java.dev.jna" % "jna" % "4.4.0",
crossPaths := true
)

Expand All @@ -61,10 +60,9 @@ lazy val cspiceTest = crossProject(JVMPlatform, NativePlatform)
.settings(commonSettings)
.settings(
resolvers += Resolver.bintrayRepo("nadavwr", "maven"),
libraryDependencies += "com.github.nadavwr" %%% "makeshift" % "0.2.0-SNAPSHOT"
libraryDependencies += "com.github.nadavwr" %%% "makeshift" % "0.2.0",
test := { (run in Compile).toTask("").value }
)
.jvmSettings(test := { (run in Compile).toTask("").value })
.nativeSettings(test := { run.toTask("").value })
.dependsOn(cspice)

lazy val cspiceTestJVM = cspiceTest.jvm
Expand Down
19 changes: 12 additions & 7 deletions native/src/main/scala/com/github/nadavwr/cspice/package.scala
@@ -1,30 +1,34 @@
package com.github.nadavwr

import scala.scalanative.native._
import scala.scalanative.runtime.GC

package object cspice extends CSpiceFunctions {

/** @inheritdoc
*/
override def conics(elts: Elts, et: Double): State = {
val statePtr = stackalloc[StateValue]
binding.conics_c(eltsToPtr(elts), et, statePtr)
Zone { implicit alloc =>
binding.conics_c(eltsToPtr(elts), et, statePtr)
}
stateFromPtr(statePtr)
}

/** @inheritdoc
*/
override def oscelt(state: State, et: Double, mu: Double): Elts = {
val eltsPtr = stackalloc[EltsValue]
binding.oscelt_c(stateToPtr(state), et, mu, eltsPtr)
Zone { implicit alloc =>
binding.oscelt_c(stateToPtr(state), et, mu, eltsPtr)
}
eltsFromPtr(eltsPtr)
}


private type EltsValue = CArray[CDouble, Nat._8]
private def eltsToPtr(elts: Elts): Ptr[EltsValue] = {
val ptr = GC.malloc_atomic(sizeof[CDouble]*8).cast[Ptr[EltsValue]]
private def eltsToPtr(elts: Elts)
(implicit alloc: Alloc): Ptr[EltsValue] = {
val ptr = alloc.alloc(sizeof[CDouble]*8).cast[Ptr[EltsValue]]
!ptr._1 = elts.rp
!ptr._2 = elts.ecc
!ptr._3 = elts.inc
Expand All @@ -40,8 +44,9 @@ package object cspice extends CSpiceFunctions {
!ptr._5, !ptr._6, !ptr._7, !ptr._8)

private type StateValue = CArray[CDouble, Nat._6]
private def stateToPtr(state: State): Ptr[StateValue] = {
val ptr = GC.malloc_atomic(sizeof[CDouble]*6).cast[Ptr[StateValue]]
private def stateToPtr(state: State)
(implicit alloc: Alloc): Ptr[StateValue] = {
val ptr = alloc.alloc(sizeof[CDouble]*6).cast[Ptr[StateValue]]
!ptr._1 = state.px
!ptr._2 = state.py
!ptr._3 = state.pz
Expand Down
4 changes: 2 additions & 2 deletions project/plugins.sbt
@@ -1,4 +1,4 @@
addSbtPlugin("org.scala-native" % "sbt-crossproject" % "0.1.0")
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.0-SNAPSHOT")
addSbtPlugin("org.scala-native" % "sbt-crossproject" % "0.2.0")
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.0")
addSbtPlugin("ch.jodersky" % "sbt-jni" % "1.2.6")
addSbtPlugin("me.lessis" % "bintray-sbt" % "0.3.0")

0 comments on commit fd7cb0e

Please sign in to comment.