<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hi,</div><div class=""><br class=""></div><div class="">The univ-lib is a git repo… </div><div class=""><br class=""></div><a href="https://github.com/feeley/univ-lib.git" class="">https://github.com/feeley/univ-lib.git</a><div class=""><br class=""></div><div class="">You must install it in your Gambit distribution directory. </div><div class=""><br class=""></div><div class="">Francois</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 4, 2015, at 8:43 AM, Francois Magnan <magnan@categoricaldesign.com> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Blake,<div class=""><br class=""></div><div class="">1) Not really, appart from this mailing list from which we could extract some wiki entries. If you can you are welcome to contribute.</div><div class="">2) Univ-lib is the implementation of scheme that can compile to various architectures (targets), so you will need it to do any serious stuff with the js target.</div><div class="">3) Yes this is it. Here is a sample loader script:</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class="">File: loader.scm </div><div class="">——————————————————————</div><div class="">(declare (standard-bindings)</div><div class="">         (extended-bindings)</div><div class="">         ;(fixnum) </div><div class="">         (not safe))</div><div class=""><br class=""></div><div class="">(declare (not inline-primitives equal?))</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">; include Marc's code</div><div class="">(##include  “~/gambit/univ-lib/lib/lib.scm")         </div></div><div class=""><br class=""></div><div class="">; here you include your own modules</div><div class=""><div class="">(include "Sentio.scm")</div><div class="">(include "Home.scm")</div><div class="">(include "Sentio-Localization.scm")</div><div class="">(include "Graph.scm")</div><div class="">(include "State-transitions.scm")</div><div class="">(include "Sentio-Forms.scm")</div><div class="">(include "Media.scm")</div></div><div class=""><div class="">——————————————————————</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">You need to change the path to to univ-lib.scm</div><div class=""><br class=""></div><div class="">Then you compile this file with: </div><div class=""><br class=""></div><div class=""><div class="">/usr/local/Gambit-C/bin/gsc -:d-,f8,t8,-8 -c -target js loader.scm</div></div><div class=""><br class=""></div><div class="">I’m not sure now if this file in part of the gambit repo actually since this is so edgy. I will send you the file in a separate personal email to spare the list.</div><div class=""><br class=""></div><div class="">François</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 4, 2015, at 7:10 AM, Blake McBride <<a href="mailto:blake@mcbride.name" class="">blake@mcbride.name</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Greetings,<div class=""><br class=""></div><div class="">Your response leads to several questions as follows:</div><div class=""><br class=""></div><div class="">1.  Is there any documentation on all the stuff you have been telling regarding JS?  (It is okay if there is not.  I just don't want to keep bugging you if it's all documented and I just need to read it.)</div><div class=""><br class=""></div><div class="">2.  I don't know what univ-lib is.  For example:</div><div class=""><br class=""></div><div class=""><div class="">blake@sony-linux-laptop /usr/local/Gambit-C $ find . |grep -i univ</div><div class="">blake@sony-linux-laptop /usr/local/Gambit-C $ </div></div><div class=""><br class=""></div><div class=""><div class="">blake@sony-linux-laptop ~/Backup/gambit.git $ find . |grep -i univ</div><div class="">./gsc/_t-univ.o</div><div class="">./gsc/_t-univ.scm</div><div class="">./gsc/_t-univ.c</div><div class="">blake@sony-linux-laptop ~/Backup/gambit.git $ </div></div><div class=""><br class=""></div><div class="">Are you talking about gsc/_t-univ.scm?</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">3.  With respect to JavaScript, I am not sure what you mean by "<span style="font-size:13px" class="">when you link with the universal library".  Do you mean load the universal library first?  Also, which file is that?  I'd rather not start creating a bunch of cover functions for standard scheme stuff if I don't have to.</span></div><div class=""><span style="font-size:13px" class=""><br class=""></span></div><div class="">I am sorry about all of these questions.  For reasons I mentioned elsewhere, JavaScript has become a very important platform.  It may not be bad as a small scripting language, but it certainly is not a full-bore production language like it is being used as.  I am looking into leveraging off of Gambit Scheme if possible.  Presumably, once I get a critical mass of functioning code and understanding, I will be able to work without all these pestering questions.</div><div class=""><br class=""></div><div class="">Thanks!</div><div class=""><br class=""></div><div class="">Blake</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Feb 3, 2015 at 4:26 PM, Marc Feeley <span dir="ltr" class=""><<a href="mailto:feeley@iro.umontreal.ca" target="_blank" class="">feeley@iro.umontreal.ca</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes.  That’s handled when you link with the universal library (in fact the current univ-lib will raise an exception in that case).  But if this is all you want to handle, just write your code like this:<br class="">
<br class="">
  (define (##apply-global-with-procedure-check-nary gv . args)<br class="">
    (declare (standard-bindings))<br class="">
    (println (list "*** ERROR -- call to unbound global variable " gv))<br class="">
    (0)) ;; really crash!<br class="">
<br class="">
  (foo 1 2 3)<br class="">
<br class="">
The generated JS code calls the ##apply-global-with-procedure-check-nary function when a non-procedure bound to a global variable is called.<br class="">
<span class="HOEnZb"><font color="#888888" class=""><br class="">
Marc<br class="">
</font></span><div class="HOEnZb"><div class="h5"><br class="">
> On Feb 3, 2015, at 4:51 PM, Blake McBride <<a href="mailto:blake@mcbride.name" class="">blake@mcbride.name</a>> wrote:<br class="">
><br class="">
> Greetings,<br class="">
><br class="">
> When running a JS target, if an unknown function is called, would it be possible to say something like:<br class="">
><br class="">
> Error: call to unknown function XYZ<br class="">
><br class="">
> Rather than:<br class="">
><br class="">
> /home/blake/z/gambit/fib.js:348<br class="">
>     pc = pc();<br class="">
>          ^<br class="">
> TypeError: undefined is not a function<br class="">
>     at gambit_trampoline (/home/blake/z/gambit/fib.js:348:10)<br class="">
>     ......<br class="">
><br class="">
><br class="">
> Thanks.<br class="">
><br class="">
> Blake McBride<br class="">
><br class="">
<br class="">
</div></div></blockquote></div><br class=""></div></div>
_______________________________________________<br class="">Gambit-list mailing list<br class=""><a href="mailto:Gambit-list@iro.umontreal.ca" class="">Gambit-list@iro.umontreal.ca</a><br class="">https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list<br class=""></div></blockquote></div><br class=""></div></div>_______________________________________________<br class="">Gambit-list mailing list<br class="">Gambit-list@iro.umontreal.ca<br class="">https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list<br class=""></div></blockquote></div><br class=""></div></body></html>