scala / pickling

Fast, customizable, boilerplate-free pickling support for Scala
lampwww.epfl.ch/~hmiller/pickling
BSD 3-Clause "New" or "Revised" License
831 stars 79 forks source link

Scalajs support in 0.11.x #420

Open jvican opened 8 years ago

jvican commented 8 years ago

This issue will keep track of the status of the scalajs support in the new upcoming release 0.11.x that will be ready soon. Any new issue that may appear can be described here instead of opening independent issues every time. /cc @andreaTP

jvican commented 8 years ago

Right now, we're blocked by https://github.com/scalatest/scalatest/issues/873. This issue prevents us from getting scalajs support with our current test suite. Hopefully, scalatest will fix this and therefore we'll keep the test infrastructure. Otherwise we'll need to replicate the test suite with a scalajs-compatible test framework.

andreaTP commented 8 years ago

Probably will be feasible to keep consistent the tests in the jvm project and gradually port what becomes available in shared .

jvican commented 8 years ago

That's what I'm doing, but I'm also applying some changes of my own.

In the meanwhile, as I see you're eager to work on this, I'm going to update the scalatest issue in 5' with a current solution and a branch with a fix that will allow you to test how many errors we get from scalatest. A big deal of them (the severe ones) will be fixed by josh and me in our upcoming already-planned refactorings!

andreaTP commented 8 years ago

ok, now core cross compiles! https://github.com/andreaTP/pickling I can go for the linking errors, what do you prefer? To keep the codebase more Scala.js friendly or to cover as much as possible java compatibility pushing to Scala.js (that's what I usually do, but this is up to you!)

jvican commented 8 years ago

Great! This is a big win.

Regarding the fixes, try to fix the easiest ones because the more complicated ones will probably be related to the tags that josh is fixing. W.r.t the codebase, the idea is to share everything that we have know and avoid any unnecessary duplication of code, so I'd go for java-ish code.

andreaTP commented 8 years ago

Linking problems right now involve: java.security.AccessControlException java.util.TimeZone java.text.SimpleDateFormat

scala.util.parsing.json.JSON scala.util.parsing.json.JSONType scala.util.parsing.json.JSONArray scala.util.parsing.json.JSONObject

scala.reflect.runtime.package

The first 3 will be targeted with PR on Scala-Js itself. JSON needs to be abstracted, I will check where it is involved and try to isolate it. Reflect should be avoided and ported under the JVM only side.

jvican commented 8 years ago

OK, so I just had a meeting with @andreaTP. Just for the record, he'll be working on:

java.security.AccessControlException
java.util.TimeZone
java.text.SimpleDateFormat

scala.util.parsing.json.JSON
scala.util.parsing.json.JSONType
scala.util.parsing.json.JSONArray
scala.util.parsing.json.JSONObject

While Josh and I will focus on the reflection, since we've already working on it.

andreaTP commented 8 years ago

Fixed the JSON linking (it will not work right now but it will be easy to implement it properly).

There are used methods like:

java.lang.Class.getClassLoader
java.lang.Class.getDeclaredMethod

that needs to be used only in the "reflection enabled" mode.

jvican commented 8 years ago

Yes, I know, I'll take care of them soon :smile:

phaller commented 8 years ago

@jvican @andreaTP Just wanted to say it's great to see the progress on Scala.js support.

ryan-richt commented 7 years ago

Hey guys! What ever happened to this feature that was "ready", did it make it?