[gambit-list] Using the JavaScript back-end

Blake McBride blake at mcbride.name
Tue Feb 3 10:33:20 EST 2015


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
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20150203/c48a7850/attachment.htm>


More information about the Gambit-list mailing list