<html><head></head><body><div class="ydp3e2e089fyahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
<div dir="ltr" data-setdir="false"><div><div dir="ltr" data-setdir="false">I think what <a href="https://spark.apache.org/docs/latest/api/java/org/apache/spark/api/java/JavaSparkContext.html#parallelize-java.util.List-" rel="nofollow" target="_blank">parallelize </a>really
needs is a java.util.list. Alessio mentioned some reasons why an
automatic conversion is challenging; perhaps a restart is easier? I.e.
search for a method of the given name that takes a java.util.list, and
if you're giving it an abcl.cons, the restart asks if you want an
automatic conversion.</div><div dir="ltr" data-setdir="false"><br></div>Trying
such a conversion manually, it seems I need a jlist-from-list, but this
doesn't exist in the JAVA package. How do I get a java.util.list from
an abcl.cons ?</div><div><br></div><div><br></div></div><div><br></div>
</div><div id="yahoo_quoted_5879194436" class="yahoo_quoted">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
<div>
On Saturday, July 25, 2020, 5:20:30 AM GMT+8, Alan Ruttenberg <alanruttenberg@gmail.com> wrote:
</div>
<div><br></div>
<div><br></div>
<div><div id="yiv1121038856"><div><div dir="ltr"><div>If you send a smallish example of the code that doesn't work, and a list of the dependencies, I can have a look. I've been dealing with some stuff recently that might make it easier to debug. <br clear="none"></div><div>You definitely can't use CopyToArray that way. You need to work with a java array</div><div>(jarray-from-list '(1 2 3 4 5))</div><div>Maybe:</div><div><div dir="ltr"><font face="lucida console, sans-serif"><span><span><font style="background-color:inherit;" face="courier new, courier, monaco, monospace, sans-serif"><span><span>(#"parallelize" *sc* (jarray-from-list '(1 2 3 4 5)))</span></span></font></span></span></font></div><div dir="ltr"><font face="lucida console, sans-serif"><span><span><font style="background-color:inherit;" face="courier new, courier, monaco, monospace, sans-serif"><span><span><br clear="none"></span></span></font></span></span></font></div><div><font face="lucida console, sans-serif"><span><span><font style="background-color:inherit;" face="courier new, courier, monaco, monospace, sans-serif"><span><span><span style="font-family:arial, sans-serif;"><font style="background-color: inherit;" size="2">Alan</font></span><br clear="none"></span></span></font></span></span></font></div></div></div><br clear="none"><div class="yiv1121038856yqt8307286750" id="yiv1121038856yqt47068"><div class="yiv1121038856gmail_quote"><div class="yiv1121038856gmail_attr" dir="ltr">On Thu, Jul 23, 2020 at 11:03 PM Steven Nunez <<a rel="nofollow" shape="rect" ymailto="mailto:steve_nunez@yahoo.com" target="_blank" href="mailto:steve_nunez@yahoo.com">steve_nunez@yahoo.com</a>> wrote:<br clear="none"></div><blockquote class="yiv1121038856gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;"><div><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div dir="ltr">OK, I'm on lines 4 and 5 of 'hello world' and ran into yet another brick wall. Trying to convert the following two lines into ABCL:</div><div dir="ltr"><font face="lucida console, sans-serif"><br clear="none"></font></div><div dir="ltr"><div><pre><font face="lucida console, sans-serif"><code><span>List</span><span><</span><span>Integer</span><span>></span> <span>data</span> <span>=</span> <span>Arrays</span><span>.</span><span>asList</span><span>(</span><span>1</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>,</span> <span>4</span><span>,</span> <span>5</span><span>);</span>
<span>JavaRDD</span><span><</span><span>Integer</span><span>></span> <span>distData</span> <span>=</span> <span>sc</span><span>.</span><span>parallelize</span><span>(</span><span>data</span><span>);</span></code></font></pre></div><div><br clear="none"></div><div dir="ltr">it looks like it should be easy. Heck, I can do that in one line:</div><div dir="ltr"><br clear="none"></div><div dir="ltr"><font face="courier new, courier, monaco, monospace, sans-serif"><span>(#"parallelize" *sc* '(1 2 3 4 5)) ; *sc* defined yesterday and known to be correct</span></font></div><div dir="ltr"><span><br clear="none"></span></div><div dir="ltr"><span>But no, it claims "no applicable method named parallelize found on JavaSparkContext" (but there is!). Reading through section 3.1.1 of the documentation, it appears that this is probably because '(1 2 3...) is a LispObject and not a Java object (why no automatic conversion?). Let's try to convert it:</span></div><div dir="ltr"><span><br clear="none"></span></div><div dir="ltr"><span></span><font face="courier new, courier, monaco, monospace, sans-serif"><span>(#"parallelize" *sc* (#"copytoArray" '(1 2 3 4 5)))</span></font></div><div dir="ltr"><font face="courier new, courier, monaco, monospace, sans-serif"><span><br clear="none"></span></font></div><div dir="ltr"><font face="courier new, courier, monaco, monospace, sans-serif"><span><span>No instance method named copytoArray found for type org.armedbear.lisp.Cons'</span></span></font></div><div dir="ltr"><font face="lucida console, sans-serif"><span><span><br clear="none"></span></span></font></div><div dir="ltr"><font face="lucida console, sans-serif"><span><span><font style="background-color:inherit;" face="Helvetica Neue, Helvetica, Arial, sans-serif">And the same with using an array, e.g. </font><font style="background-color:inherit;" face="courier new, courier, monaco, monospace, sans-serif"><span><span>(#"parallelize" *sc* (#"copytoArray" #(1 2 3 4 5)))</span></span></font></span></span></font></div><div dir="ltr"><span><span><span><span><br clear="none"></span></span></span></span></div><div dir="ltr"><span><span><span><span><b><span><font style="background-color:inherit;" face="lucida console, sans-serif"><span><span><font style="background-color:inherit;" face="Helvetica Neue, Helvetica, Arial, sans-serif"><i><font size="3">Sigh</font></i></font></span></span></font></span></b><br clear="none"></span></span></span></span></div><div dir="ltr"><span><span><span><span><br clear="none"></span></span></span></span></div><div dir="ltr"><span><span><span><span></span></span></span></span>It's been a week and my intention was to have a working prototype by now and present ABCL as a viable alternative to use in a project. I haven't got past line 5 in 'hello world'. This doesn't bode well.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">I've been reading about ABCL for years, and it's impressive. Full MOP, extensible sequences, nearly 100% ANSI compliance, and the ability to deploy on the JVM are major achievements. However, as a not-inexperienced Lisp programmer, I find the barrier to entry remarkably high and the documentation and examples sparse and insufficient to surmount the hurdles I encountered.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">Please take these comments in the way they are intended: constructive feedback from someone who is a fan of the project and would love to be able to use it. It's nearly impossible to get Lisp introduced into enterprise environments, and ABCL provides a wedge into those types of projects, ticking the boxes on deployment and ability to work with legacy Java code. Perhaps it makes more sense to someone approaching Lisp from the Java side, but coming from the Lisp side to Java, there's a high barrier to entry. I know that no volunteer wants to write documentation, but more and clearer docs are sorely needed here. This is probably not news, but sometimes it helps to be reminded of the obvious.<br clear="none"></div><div dir="ltr"><br clear="none"></div><div dir="ltr">I hate giving up, so this will be a personal background project in the hopes that at the next opportunity things will have improved to the point where we can consider introducing ABCL, so if anyone has any pointers, generally (though I think I would have found any docs or examples (lsw2) by now) and explaining this problem in particular, it would be greatly appreciated.</div><div dir="ltr"><br clear="none"></div><div dir="ltr">@easye, you mentioned your ember project. If you're going to continue with that, please message me. A Spark wrapper would be useful, serve as a good exemplar for using ABCL to wrap a large library and, with a companion tutorial, help others overcome the kind of obstacles I've encountered. I'd be happy to contribute.<br clear="none"></div><div dir="ltr"><br clear="none"></div></div></div></div></blockquote></div></div></div></div></div>
</div>
</div></body></html>