Hello,
I have been playing around with Common Lisp for a while and I really want to get this idea working.
I have been reading a lot about Akka, but I'm not really a Java/Scala/distributed guy. To my understanding, Akka is an agnostic way to create Actors that can send messages at varying speeds, speeding up with the available memory and cores and easily extending itself for distributed communication via remote Actors. I'm not an expert by any means, so feel free to correct me on the description.
I would like to create bindings to this example http://doc.akka.io/docs/akka/2.1.2/java/untyped-actors.html and it was suggested to me that I might use "java:jnew-runtime-class" by the very nice ehu on #abcl.
My repository is at https://github.com/ubikation/chemicalambda if anyone is interested in my progress or wants a better idea of where I am (not really beyond starting the project at the moment).
At the minimum I would like to create bindings, but I would like to do something more interesting after I get some stuff working.
I do not know what I am doing at all, but I am hoping that creating these bindings will help solidify my understanding of Common Lisp and of ABCL in particular.
Thanks again!
On Tue, Aug 13, 2013 at 9:29 PM, ubikation _ ubikation@gmail.com wrote:
Hello,
I have been playing around with Common Lisp for a while and I really want to get this idea working.
I have been reading a lot about Akka, but I'm not really a Java/Scala/distributed guy. To my understanding, Akka is an agnostic way to create Actors that can send messages at varying speeds, speeding up with the available memory and cores and easily extending itself for distributed communication via remote Actors. I'm not an expert by any means, so feel free to correct me on the description.
I would like to create bindings to this example http://doc.akka.io/docs/akka/2.1.2/java/untyped-actors.html and it was suggested to me that I might use "java:jnew-runtime-class" by the very nice ehu on #abcl.
Hi! Yes, jnew-runtime-class could be the right tool for the job. However, sadly, it appears to have suffered from bit rot, and I can't get it to work on a recent ABCL. I have said many times that I would have resumed working on it sooner or later, but never actually did it. Now I have some spare time, so I might be able at least to make it work again.
Since UntypedActor is a function-like class (single abstract method or SAM), another effective way of tackling the problem is to code, in Java, a small class that extends UntypedActor and wraps a Lisp function. I've done it before (e.g. see [1] for a slightly more complex case) and while it is not ideal (it complicates the build process), you can quickly forget about it and build more useful abstractions upon it.
[1] http://code.google.com/p/dynaspring/source/browse/trunk/src/dynaspring/suppo...
My repository is at https://github.com/ubikation/chemicalambda if anyone is interested in my progress or wants a better idea of where I am (not really beyond starting the project at the moment).
At the minimum I would like to create bindings, but I would like to do something more interesting after I get some stuff working.
I do not know what I am doing at all, but I am hoping that creating these bindings will help solidify my understanding of Common Lisp and of ABCL in particular.
Well, I think a Lisp library based on Akka would be cool. It would at least give ABCL an edge over other implementations that don't have such a thing.
Thanks again!
Thanks to you for your interest in ABCL and Akka! :)
Alessio
On 8/14/13 9:24 PM, Alessio Stalla wrote:
[…]
Hi! Yes, jnew-runtime-class could be the right tool for the job. However, sadly, it appears to have suffered from bit rot, and I can't get it to work on a recent ABCL.
[…]
[Gathering tests][#330] to fix on trunk.
[#330]: http://lisp.not.org/trac/armedbear/ticket/330
On 8/13/13 9:29 PM, ubikation _ wrote:
[…]
My repository is at https://github.com/ubikation/chemicalambda if anyone is interested in my progress or wants a better idea of where I am (not really beyond starting the project at the moment).
I can't seem to load the Akka binaries purely via ABCL-ASDF: I had to "prime" via running Maven explicitly on the [chemicalambda pom][]1]. Well, I need to give the code some love anyways, so it is good to have a test case.
[1]: https://github.com/ubikation/chemicalambda/blob/master/pom.xml
Problem -------
(abcl-asdf:resolve "com.typesafe.akka:akka:RELEASE")
ARTIFACT_RESOLVED org.scala-lang:scala-library:jar:2.11.0-M3 (/home/evenson/.m2/repository/org/scala-lang/scala-library/2.11.0-M3/scala-library-2.11.0-M3.jar) @ central (http://repo1.maven.org/maven2/, releases+snapshots) ARTIFACT_RESOLVED com.typesafe.akka:akka:jar:RELEASE ; Evaluation aborted on #<JAVA-EXCEPTION org.sonatype.aether.resolution.DependencyResolutionException: Could not find artifact com.typesafe.akka:akka:jar:2.2.0-RC2 in central (http://repo1.maven.org/maven2/) {602ABB9E}>.
Solution --------
Likely problems with the distributed Maven artifact graph.
Run
~/work/chemicalambda$ mvn install
to get Maven to cache the jars under ~/.m2/repository. From there, ABCL-ASDF can locate
(abcl-asdf:resolve "com.typesafe.akka:akka:RELEASE")
"/Users/evenson/.m2/repository/com/typesafe/akka/akka/2.2/akka-2.2.jar:/Users/evenson/.m2/repository/com/typesafe/akka/akka-actor_2.10/2.2.0/akka-actor_2.10-2.2.0.jar:/Users/evenson/.m2/repository/org/scala-lang/scala-library/2.10.2/scala-library-2.10.2.jar:/Users/evenson/.m2/repository/com/typesafe/config/1.0.2/config-1.0.2.jar"
armedbear-devel@common-lisp.net