Get Duckling to work
Opened this issue · 9 comments
I am attempting to incorporate Duckling project with eta but am running into some dependency issues. My main goal is to eventually use Duckling (Haskell) in an Android application. I am first attempting to get Duckling running via eta.
Duckling: https://github.com/facebook/duckling
It is also on Hackage: https://hackage.haskell.org/package/duckling
I clone the Duckling gitHub project here, and I run:
home$ etlas run
Resolving dependencies...
etlas: Could not resolve dependencies:
trying: base-4.11.1.0/installed-9g5... (dependency of duckling-0.1.6.1)
next goal: text-show (dependency of duckling-0.1.6.1)
rejecting: text-show-3.8.2, text-show-3.8.1, text-show-3.8 (conflict: duckling
=> text-show>=2.1.2 && <3.8)
trying: text-show-3.7.5
next goal: integer-gmp (dependency of text-show-3.7.5)
rejecting: integer-gmp-1.0.2.0 (conflict: base =>
ghc-prim==0.4.0.0/installed-Jhi..., integer-gmp => ghc-prim>=0.5.2)
rejecting: integer-gmp-1.0.1.0 (conflict: base =>
ghc-prim==0.4.0.0/installed-Jhi..., integer-gmp => ghc-prim>=0.5.1)
rejecting: integer-gmp-1.0.0.1 (conflict: base =>
ghc-prim==0.4.0.0/installed-Jhi..., integer-gmp => ghc-prim>=0.5)
rejecting: integer-gmp-1.0.0.0, integer-gmp-0.5.1.0 (only already installed
instances can be used)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: integer-gmp, base, text-show, duckling
Hi @argideritzalpea, some libs needed to be patched to make it work: #144
When the pr is merged it should be buildable with etlas update && etlas build
@argideritzalpea @jneira PR is merged.
@jneira @rahulmutt Thanks very much for the patches and PR. I'm having trouble building it still after updating etlas:
$ etlas update && etlas build
Downloading the latest package lists from:
- hackage.haskell.org
- git@github.com/typelead/etlas-index
Updating binary package index.
To revert to previous state run:
etlas update --index-state='2019-05-23T17:03:17Z'
Updating the eta-hackage patch set.
Resolving dependencies...
etlas: Could not resolve dependencies:
trying: base-4.11.1.0/installed-9g5... (dependency of duckling-0.1.6.1)
next goal: text-show (dependency of duckling-0.1.6.1)
rejecting: text-show-3.8.2, text-show-3.8.1, text-show-3.8 (conflict: duckling
=> text-show>=2.1.2 && <3.8)
trying: text-show-3.7.5
next goal: integer-gmp (dependency of text-show-3.7.5)
rejecting: integer-gmp-1.0.2.0 (conflict: base =>
ghc-prim==0.4.0.0/installed-Jhi..., integer-gmp => ghc-prim>=0.5.2)
rejecting: integer-gmp-1.0.1.0 (conflict: base =>
ghc-prim==0.4.0.0/installed-Jhi..., integer-gmp => ghc-prim>=0.5.1)
rejecting: integer-gmp-1.0.0.1 (conflict: base =>
ghc-prim==0.4.0.0/installed-Jhi..., integer-gmp => ghc-prim>=0.5)
rejecting: integer-gmp-1.0.0.0, integer-gmp-0.5.1.0 (only already installed
instances can be used)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: integer-gmp, base, text-show, duckling
Oh, i forgot to mention that you should download the package with etlas get duckling-0.1.6.1
again to get the version patched. When downloading it should output Found patch in eta-hackage for duckling-0.1.6.1
@jneira @rahulmutt Thanks for helping me get this running, it successfully built! I can debug some of the runtime errors now
As noted by @argideritzalpea, after compiling there are two issues:
- Being able to run the web app example that uses snap
- Run the test suite
Hi, i tried to run the test suite and, at first, i've got a compile error, solved in the new patch: #146
I actually i am getting a java exception instead the error about WrapPCRE.hsc
described in #144 (comment).
PS D:\dev\lang\eta\eta-pkgs\duckling-0.1.6.1> .\dist\build\eta-0.8.6.5\duckling-0.1.6.1\t\d
uckling-test\build\duckling-test\duckling-test.cmd
Duckling Tests
API Tests
Parse Test: Exception in thread "Thread-9" Exception in thread "Thread-8" Exception in thread "Thread-7" java.lang.NoClassDefFoundError: regex_pcre_bu__0.94.4.__3bceb134cf8075d23ca76fbd3ae999e26aae2df4/text/regex/pcre/ByteString$$w$cmatchAll
at duckling.duckling.Engine$$wlookupRegexAnywhere.call(Engine.hs:94)
at duckling.duckling.Engine$go3.apply1(Engine.hs:187)
at duckling.duckling.Engine$sat$29.thunkEnter(Engine.hs:187)
at eta.runtime.thunk.SingleEntryThunk.evaluate(SingleEntryThunk.java:19)
at eta.runtime.stg.Closure.evaluateTail(Closure.java:29)
at base.ghc.Base$zpzp.call(Base.hs:1145)
at duckling.duckling.Engine$$wparseString1.call(Engine.hs:181)
at duckling.duckling.Engine$parseAndResolve.call(Engine.hs:211)
at duckling.duckling.Api$$wanalyzze.call(Api.hs:56)
at duckling.duckling.Api$$wparse.call(Api.hs:40)
at main.duckling.api.Tests$tests147.call(Tests.hs:52)
at main.duckling.api.Tests$tests147.applyV(Tests.hs)
....
@jneira That name looks extremely odd. Perhaps that's an error with how the UnitId
is translated to a Java class name in Eta.CodeGen.Name
.
In gitter @justinphan3110 has shared a stacktrace trying to execute the example, replacing the web server with standard output