[gambit-list] Using the JavaScript back-end

Blake McBride blake at mcbride.name
Tue Feb 3 10:58:55 EST 2015


I will try that, but the commands I did removed ALL built files.  I can't
imagine what make from-scratch could do extra.  I will try it.
Thanks.


On Tue, Feb 3, 2015 at 9:48 AM, Francois Magnan <
magnan at categoricaldesign.com> wrote:

> Yes, you need more…
>
> Replace “make” in your workflow by “make from-scratch”
>
> Francois
>
> On Feb 3, 2015, at 10:33 AM, Blake McBride <blake at mcbride.name> wrote:
>
> Actually, I did:
>
> git pull
> rm -rf *
> git checkout --force
> ./configure --enable-single-host
> make
> sudo rm -rf  /usr/local/Gambit-C
> sudo make install
>
> Do I need more?
>
>
> On Tue, Feb 3, 2015 at 9:26 AM, Francois Magnan <
> magnan at categoricaldesign.com> wrote:
>
>> Hi.
>>
>> Gambit build is a complex thing but it is managed wisely by the makefile
>> if you use the right target. You cannot do just a “git pull; make”…
>> After you pull the latest version do a :
>>
>> > make from-scratch
>>
>> Then u will have a gambit built with the new feature Marc has just added
>> for you.
>>
>> Hope this helps.
>> Francois
>>
>>
>>
>> On Feb 3, 2015, at 10:13 AM, Blake McBride <blake at mcbride.name> wrote:
>>
>> I did a git pull and rebuilt everything.  Same error.  Note that node
>> doesn't have a "print" function.
>>
>> Thanks.
>>
>> Blake
>>
>> On Mon, Feb 2, 2015 at 8:26 AM, Marc Feeley <feeley at iro.umontreal.ca>
>> wrote:
>>
>>> You have to pull the latest version from the github repo.
>>>
>>> Marc
>>>
>>> > On Feb 1, 2015, at 11:35 PM, Blake McBride <blake at mcbride.name> wrote:
>>> >
>>> > Here is the result of your example:
>>> >
>>> > $ gsc -c -target js f1.scm
>>> > $ node f1.js
>>> >
>>> > /home/blake/gambit/f1.js:448
>>> >   print(obj);
>>> >   ^
>>> > ReferenceError: print is not defined
>>> >     at gambit_println (/home/blake/gambit/f1.js:448:3)
>>> >     at gambit_bb1_println (/home/blake/gambit/f1.js:323:3)
>>> >     at gambit_trampoline (/home/blake/gambit/f1.js:348:10)
>>> >     at Object.<anonymous> (/home/blake/gambit/f1.js:688:1)
>>> >     at Module._compile (module.js:456:26)
>>> >     at Object.Module._extensions..js (module.js:474:10)
>>> >     at Module.load (module.js:356:32)
>>> >     at Function.Module._load (module.js:312:12)
>>> >     at Function.Module.runMain (module.js:497:10)
>>> >     at startup (node.js:119:16)
>>> > $
>>> >
>>> >
>>> > In any case, here is a simple example and instructions on how to run
>>> the code in a JS shell and in the browser.  If you want to use
>>> non-primitive predefined Scheme library functions (such as equal?, append,
>>> map, write, etc) you will need to look into univ-lib .  The goal is to have
>>> all of this neatly packaged in gsc so that one invocation of gsc will do
>>> all that is necessary.  One issue is linking… should the .js file contain
>>> all of the application code including Scheme libraries, or should it
>>> contain just the code for the compiled file (so that it can be dynamically
>>> loaded by the web page)?  Both should be supported with an appropriate
>>> compile flag.
>>> >
>>> > Marc
>>> >
>>> >
>>> > ;; File: fib.scm
>>> > ;;
>>> > ;; compile with: gsc -c -target js fib.scm
>>> > ;;
>>> > ;; execute with: d8 fib.js
>>> > ;;
>>> > ;; or use it in an HTML page like this:
>>> > ;;
>>> > ;; <!DOCTYPE html>
>>> > ;; <html>
>>> > ;; <head>
>>> > ;;     <title>fib</title>
>>> > ;;     <script type="text/javascript">
>>> > ;;         function print(x) { console.log(x); }
>>> > ;;     </script>
>>> > ;;     <script type="text/javascript" src="fib.js"></script>
>>> > ;; </head>
>>> > ;; <body></body>
>>> > ;; </html>
>>> >
>>> > (declare
>>> >   (standard-bindings)
>>> >   (extended-bindings)
>>> >   (not safe)
>>> >   (fixnum)
>>> >   (block)
>>> > )
>>> >
>>> > (define (fib n)
>>> >
>>> >   (define (fib n)
>>> >     (if (< n 2)
>>> >         n
>>> >         (+ (fib (- n 1))
>>> >            (fib (- n 2)))))
>>> >
>>> >   (fib n))
>>> >
>>> > (define start (real-time-milliseconds))
>>> >
>>> > (println (fib 30))
>>> >
>>> > (define end (real-time-milliseconds))
>>> >
>>> > (println (- end start))
>>> >
>>> >
>>>
>>>
>> _______________________________________________
>> Gambit-list mailing list
>> Gambit-list at iro.umontreal.ca
>> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>>
>>
>>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20150203/d10f99ed/attachment.htm>


More information about the Gambit-list mailing list