[gambit-list] Using the JavaScript back-end

Blake McBride blake at mcbride.name
Tue Feb 3 11:25:00 EST 2015


Son-of-a-gun, that did fix it.  Apparently, my imagination is a little
short.

Thanks!

Blake


On Tue, Feb 3, 2015 at 9:58 AM, Blake McBride <blake at mcbride.name> wrote:

> 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/ef62bda2/attachment.htm>


More information about the Gambit-list mailing list