From blake at mcbride.name Sun Feb 1 23:35:03 2015 From: blake at mcbride.name (Blake McBride) Date: Sun, 1 Feb 2015 22:35:03 -0600 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: Message-ID: > > 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. (/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: > ;; > ;; > ;; > ;; > ;; fib > ;; > ;; > ;; > ;; > ;; > > (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)) > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From feeley at iro.umontreal.ca Mon Feb 2 09:26:53 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Mon, 2 Feb 2015 09:26:53 -0500 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: Message-ID: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> You have to pull the latest version from the github repo. Marc > On Feb 1, 2015, at 11:35 PM, Blake McBride 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. (/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: > ;; > ;; > ;; > ;; > ;; fib > ;; > ;; > ;; > ;; > ;; > > (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)) > > -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From blake at mcbride.name Mon Feb 2 20:47:42 2015 From: blake at mcbride.name (Blake McBride) Date: Mon, 2 Feb 2015 19:47:42 -0600 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: I did that two days ago and built from scratch. Are you talking about something after that? Thanks. On Mon, Feb 2, 2015 at 8:26 AM, Marc Feeley wrote: > You have to pull the latest version from the github repo. > > Marc > > > On Feb 1, 2015, at 11:35 PM, Blake McBride 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. (/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: > > ;; > > ;; > > ;; > > ;; > > ;; fib > > ;; > > ;; > > ;; > > ;; > > ;; > > > > (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)) > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lucier at math.purdue.edu Mon Feb 2 21:46:57 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Mon, 02 Feb 2015 21:46:57 -0500 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: <54D036A1.5070509@math.purdue.edu> On 02/02/2015 08:47 PM, Blake McBride wrote: > I did that two days ago and built from scratch. Are you talking about > something after that? Try "make update". -------------- next part -------------- An HTML attachment was scrubbed... URL: From blake at mcbride.name Tue Feb 3 10:13:04 2015 From: blake at mcbride.name (Blake McBride) Date: Tue, 3 Feb 2015 09:13:04 -0600 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: 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 wrote: > You have to pull the latest version from the github repo. > > Marc > > > On Feb 1, 2015, at 11:35 PM, Blake McBride 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. (/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: > > ;; > > ;; > > ;; > > ;; > > ;; fib > > ;; > > ;; > > ;; > > ;; > > ;; > > > > (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)) > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blake at mcbride.name Tue Feb 3 10:33:20 2015 From: blake at mcbride.name (Blake McBride) Date: Tue, 3 Feb 2015 09:33:20 -0600 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: 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 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 > wrote: > >> You have to pull the latest version from the github repo. >> >> Marc >> >> > On Feb 1, 2015, at 11:35 PM, Blake McBride 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. (/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: >> > ;; >> > ;; >> > ;; >> > ;; >> > ;; fib >> > ;; >> > ;; >> > ;; >> > ;; >> > ;; >> > >> > (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: From magnan at categoricaldesign.com Tue Feb 3 10:26:43 2015 From: magnan at categoricaldesign.com (Francois Magnan) Date: Tue, 3 Feb 2015 10:26:43 -0500 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: 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 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 > wrote: > You have to pull the latest version from the github repo. > > Marc > > > On Feb 1, 2015, at 11:35 PM, Blake McBride > 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. (/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: > > ;; > > ;; > > ;; > > ;; > > ;; fib > > ;; > > ;; > > ;; > > ;; > > ;; > > > > (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: From blake at mcbride.name Tue Feb 3 10:58:55 2015 From: blake at mcbride.name (Blake McBride) Date: Tue, 3 Feb 2015 09:58:55 -0600 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: 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 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 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 >> wrote: >> >>> You have to pull the latest version from the github repo. >>> >>> Marc >>> >>> > On Feb 1, 2015, at 11:35 PM, Blake McBride 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. (/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: >>> > ;; >>> > ;; >>> > ;; >>> > ;; >>> > ;; fib >>> > ;; >>> > ;; >>> > ;; >>> > ;; >>> > ;; >>> > >>> > (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: From blake at mcbride.name Tue Feb 3 11:25:00 2015 From: blake at mcbride.name (Blake McBride) Date: Tue, 3 Feb 2015 10:25:00 -0600 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: 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 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 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 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 >>> wrote: >>> >>>> You have to pull the latest version from the github repo. >>>> >>>> Marc >>>> >>>> > On Feb 1, 2015, at 11:35 PM, Blake McBride >>>> 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. (/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: >>>> > ;; >>>> > ;; >>>> > ;; >>>> > ;; >>>> > ;; fib >>>> > ;; >>>> > ;; >>>> > ;; >>>> > ;; >>>> > ;; >>>> > >>>> > (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: From feeley at iro.umontreal.ca Tue Feb 3 12:00:20 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 3 Feb 2015 12:00:20 -0500 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: To understand why ?make from-scratch? is necessary, you have to know that Gambit is self-hosted. The Gambit system is mostly written in Scheme, and those Scheme files are compiled by the Scheme compiler into .c files. So for example gsc/_t-univ.scm (the file implementing the universal backend that I changed a few days ago) is compiled to gsc/_t-univ.c . However, the github repository does not contain the most up to date gsc/_t-univ.c file whereas gsc/_t-univ.scm is up to date. Keeping these files in sync in the repo would cause the git repo to take a lot of space. That?s because the smallest change to a Scheme file will result in most of the corresponding .c file to change (different label names, temporary variable names, register allocation, etc), and the .c files are huge (gsc/_t-univ.c is currently 130 KLOC). Instead of keeping the .scm and .c files in sync in the repo, the .c files of the most recent release of Gambit are kept in the repo. That way, when you do a ?make? after cloning the github repo you get the version of the Gambit compiler that existed at the most recent release. Then that compiler can be used on the .scm files to produce up to date .c files. That is what ?make from-scratch? does (it builds the .c files ?from scratch? from the current .scm files). The makefile rule is: from-scratch: fake_target $(MAKE) bootstrap # make gsc compiler of latest *release* $(MAKE) bootclean $(MAKE) bootstrap # make gsc compiler corresponding to repo HEAD $(MAKE) bootclean $(MAKE) all # make everything with repo HEAD gsc compiler Marc > On Feb 3, 2015, at 11:25 AM, Blake McBride wrote: > > Son-of-a-gun, that did fix it. Apparently, my imagination is a little short. > > Thanks! > > Blake -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From magnan at categoricaldesign.com Tue Feb 3 12:11:05 2015 From: magnan at categoricaldesign.com (Francois Magnan) Date: Tue, 3 Feb 2015 12:11:05 -0500 Subject: [gambit-list] Using the JavaScript back-end In-Reply-To: References: <6F3804C2-6D20-4599-B0CE-86C36CEF854C@iro.umontreal.ca> Message-ID: <4AF5A8B3-B0F8-4126-9B9B-75ED30E7623B@categoricaldesign.com> Told U! ;-) Francois > On Feb 3, 2015, at 11:25 AM, Blake McBride wrote: > > 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 > 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 > 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 > 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 > 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 > 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 > wrote: >>> You have to pull the latest version from the github repo. >>> >>> Marc >>> >>> > On Feb 1, 2015, at 11:35 PM, Blake McBride > 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. (/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: >>> > ;; >>> > ;; >>> > ;; >>> > ;; >>> > ;; fib >>> > ;; >>> > ;; >>> > ;; >>> > ;; >>> > ;; >>> > >>> > (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: From blake at mcbride.name Tue Feb 3 16:51:16 2015 From: blake at mcbride.name (Blake McBride) Date: Tue, 3 Feb 2015 15:51:16 -0600 Subject: [gambit-list] Improving error reporting Message-ID: Greetings, When running a JS target, if an unknown function is called, would it be possible to say something like: Error: call to unknown function XYZ Rather than: /home/blake/z/gambit/fib.js:348 pc = pc(); ^ TypeError: undefined is not a function at gambit_trampoline (/home/blake/z/gambit/fib.js:348:10) ...... Thanks. Blake McBride -------------- next part -------------- An HTML attachment was scrubbed... URL: From feeley at iro.umontreal.ca Tue Feb 3 17:26:39 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 3 Feb 2015 17:26:39 -0500 Subject: [gambit-list] Improving error reporting In-Reply-To: References: Message-ID: <32CBE388-7CBD-43F0-93AD-3BF47F8913C6@iro.umontreal.ca> 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: (define (##apply-global-with-procedure-check-nary gv . args) (declare (standard-bindings)) (println (list "*** ERROR -- call to unbound global variable " gv)) (0)) ;; really crash! (foo 1 2 3) The generated JS code calls the ##apply-global-with-procedure-check-nary function when a non-procedure bound to a global variable is called. Marc > On Feb 3, 2015, at 4:51 PM, Blake McBride wrote: > > Greetings, > > When running a JS target, if an unknown function is called, would it be possible to say something like: > > Error: call to unknown function XYZ > > Rather than: > > /home/blake/z/gambit/fib.js:348 > pc = pc(); > ^ > TypeError: undefined is not a function > at gambit_trampoline (/home/blake/z/gambit/fib.js:348:10) > ...... > > > Thanks. > > Blake McBride > -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From blake at mcbride.name Wed Feb 4 07:10:07 2015 From: blake at mcbride.name (Blake McBride) Date: Wed, 4 Feb 2015 06:10:07 -0600 Subject: [gambit-list] Improving error reporting In-Reply-To: <32CBE388-7CBD-43F0-93AD-3BF47F8913C6@iro.umontreal.ca> References: <32CBE388-7CBD-43F0-93AD-3BF47F8913C6@iro.umontreal.ca> Message-ID: Greetings, Your response leads to several questions as follows: 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.) 2. I don't know what univ-lib is. For example: blake at sony-linux-laptop /usr/local/Gambit-C $ find . |grep -i univ blake at sony-linux-laptop /usr/local/Gambit-C $ blake at sony-linux-laptop ~/Backup/gambit.git $ find . |grep -i univ ./gsc/_t-univ.o ./gsc/_t-univ.scm ./gsc/_t-univ.c blake at sony-linux-laptop ~/Backup/gambit.git $ Are you talking about gsc/_t-univ.scm? 3. With respect to JavaScript, I am not sure what you mean by "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. 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. Thanks! Blake On Tue, Feb 3, 2015 at 4:26 PM, Marc Feeley wrote: > 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: > > (define (##apply-global-with-procedure-check-nary gv . args) > (declare (standard-bindings)) > (println (list "*** ERROR -- call to unbound global variable " gv)) > (0)) ;; really crash! > > (foo 1 2 3) > > The generated JS code calls the ##apply-global-with-procedure-check-nary > function when a non-procedure bound to a global variable is called. > > Marc > > > On Feb 3, 2015, at 4:51 PM, Blake McBride wrote: > > > > Greetings, > > > > When running a JS target, if an unknown function is called, would it be > possible to say something like: > > > > Error: call to unknown function XYZ > > > > Rather than: > > > > /home/blake/z/gambit/fib.js:348 > > pc = pc(); > > ^ > > TypeError: undefined is not a function > > at gambit_trampoline (/home/blake/z/gambit/fib.js:348:10) > > ...... > > > > > > Thanks. > > > > Blake McBride > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From magnan at categoricaldesign.com Wed Feb 4 08:43:44 2015 From: magnan at categoricaldesign.com (Francois Magnan) Date: Wed, 4 Feb 2015 08:43:44 -0500 Subject: [gambit-list] Improving error reporting In-Reply-To: References: <32CBE388-7CBD-43F0-93AD-3BF47F8913C6@iro.umontreal.ca> Message-ID: <06B6F070-5245-46FB-8B24-35254AD23C14@categoricaldesign.com> Hi Blake, 1) Not really, appart from this mailing list from which we could extract some wiki entries. If you can you are welcome to contribute. 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. 3) Yes this is it. Here is a sample loader script: File: loader.scm ?????????????????????? (declare (standard-bindings) (extended-bindings) ;(fixnum) (not safe)) (declare (not inline-primitives equal?)) ; include Marc's code (##include ?~/gambit/univ-lib/lib/lib.scm") ; here you include your own modules (include "Sentio.scm") (include "Home.scm") (include "Sentio-Localization.scm") (include "Graph.scm") (include "State-transitions.scm") (include "Sentio-Forms.scm") (include "Media.scm") ?????????????????????? You need to change the path to to univ-lib.scm Then you compile this file with: /usr/local/Gambit-C/bin/gsc -:d-,f8,t8,-8 -c -target js loader.scm 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. Fran?ois > On Feb 4, 2015, at 7:10 AM, Blake McBride wrote: > > Greetings, > > Your response leads to several questions as follows: > > 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.) > > 2. I don't know what univ-lib is. For example: > > blake at sony-linux-laptop /usr/local/Gambit-C $ find . |grep -i univ > blake at sony-linux-laptop /usr/local/Gambit-C $ > > blake at sony-linux-laptop ~/Backup/gambit.git $ find . |grep -i univ > ./gsc/_t-univ.o > ./gsc/_t-univ.scm > ./gsc/_t-univ.c > blake at sony-linux-laptop ~/Backup/gambit.git $ > > Are you talking about gsc/_t-univ.scm? > > > 3. With respect to JavaScript, I am not sure what you mean by "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. > > 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. > > Thanks! > > Blake > > > > > On Tue, Feb 3, 2015 at 4:26 PM, Marc Feeley > wrote: > 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: > > (define (##apply-global-with-procedure-check-nary gv . args) > (declare (standard-bindings)) > (println (list "*** ERROR -- call to unbound global variable " gv)) > (0)) ;; really crash! > > (foo 1 2 3) > > The generated JS code calls the ##apply-global-with-procedure-check-nary function when a non-procedure bound to a global variable is called. > > Marc > > > On Feb 3, 2015, at 4:51 PM, Blake McBride > wrote: > > > > Greetings, > > > > When running a JS target, if an unknown function is called, would it be possible to say something like: > > > > Error: call to unknown function XYZ > > > > Rather than: > > > > /home/blake/z/gambit/fib.js:348 > > pc = pc(); > > ^ > > TypeError: undefined is not a function > > at gambit_trampoline (/home/blake/z/gambit/fib.js:348:10) > > ...... > > > > > > Thanks. > > > > Blake McBride > > > > > _______________________________________________ > 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: From magnan at categoricaldesign.com Wed Feb 4 11:25:09 2015 From: magnan at categoricaldesign.com (Francois Magnan) Date: Wed, 4 Feb 2015 11:25:09 -0500 Subject: [gambit-list] Improving error reporting In-Reply-To: <06B6F070-5245-46FB-8B24-35254AD23C14@categoricaldesign.com> References: <32CBE388-7CBD-43F0-93AD-3BF47F8913C6@iro.umontreal.ca> <06B6F070-5245-46FB-8B24-35254AD23C14@categoricaldesign.com> Message-ID: <62F2D07F-B9AD-4C83-9B7C-949049AD4AE4@categoricaldesign.com> Hi, The univ-lib is a git repo? https://github.com/feeley/univ-lib.git You must install it in your Gambit distribution directory. Francois > On Feb 4, 2015, at 8:43 AM, Francois Magnan wrote: > > Hi Blake, > > 1) Not really, appart from this mailing list from which we could extract some wiki entries. If you can you are welcome to contribute. > 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. > 3) Yes this is it. Here is a sample loader script: > > > File: loader.scm > ?????????????????????? > (declare (standard-bindings) > (extended-bindings) > ;(fixnum) > (not safe)) > > (declare (not inline-primitives equal?)) > > > ; include Marc's code > (##include ?~/gambit/univ-lib/lib/lib.scm") > > ; here you include your own modules > (include "Sentio.scm") > (include "Home.scm") > (include "Sentio-Localization.scm") > (include "Graph.scm") > (include "State-transitions.scm") > (include "Sentio-Forms.scm") > (include "Media.scm") > ?????????????????????? > > > You need to change the path to to univ-lib.scm > > Then you compile this file with: > > /usr/local/Gambit-C/bin/gsc -:d-,f8,t8,-8 -c -target js loader.scm > > 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. > > Fran?ois > > > > > > >> On Feb 4, 2015, at 7:10 AM, Blake McBride > wrote: >> >> Greetings, >> >> Your response leads to several questions as follows: >> >> 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.) >> >> 2. I don't know what univ-lib is. For example: >> >> blake at sony-linux-laptop /usr/local/Gambit-C $ find . |grep -i univ >> blake at sony-linux-laptop /usr/local/Gambit-C $ >> >> blake at sony-linux-laptop ~/Backup/gambit.git $ find . |grep -i univ >> ./gsc/_t-univ.o >> ./gsc/_t-univ.scm >> ./gsc/_t-univ.c >> blake at sony-linux-laptop ~/Backup/gambit.git $ >> >> Are you talking about gsc/_t-univ.scm? >> >> >> 3. With respect to JavaScript, I am not sure what you mean by "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. >> >> 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. >> >> Thanks! >> >> Blake >> >> >> >> >> On Tue, Feb 3, 2015 at 4:26 PM, Marc Feeley > wrote: >> 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: >> >> (define (##apply-global-with-procedure-check-nary gv . args) >> (declare (standard-bindings)) >> (println (list "*** ERROR -- call to unbound global variable " gv)) >> (0)) ;; really crash! >> >> (foo 1 2 3) >> >> The generated JS code calls the ##apply-global-with-procedure-check-nary function when a non-procedure bound to a global variable is called. >> >> Marc >> >> > On Feb 3, 2015, at 4:51 PM, Blake McBride > wrote: >> > >> > Greetings, >> > >> > When running a JS target, if an unknown function is called, would it be possible to say something like: >> > >> > Error: call to unknown function XYZ >> > >> > Rather than: >> > >> > /home/blake/z/gambit/fib.js:348 >> > pc = pc(); >> > ^ >> > TypeError: undefined is not a function >> > at gambit_trampoline (/home/blake/z/gambit/fib.js:348:10) >> > ...... >> > >> > >> > Thanks. >> > >> > Blake McBride >> > >> >> >> _______________________________________________ >> 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: From blake at mcbride.name Wed Feb 4 11:43:51 2015 From: blake at mcbride.name (Blake McBride) Date: Wed, 4 Feb 2015 10:43:51 -0600 Subject: [gambit-list] Improving error reporting In-Reply-To: <62F2D07F-B9AD-4C83-9B7C-949049AD4AE4@categoricaldesign.com> References: <32CBE388-7CBD-43F0-93AD-3BF47F8913C6@iro.umontreal.ca> <06B6F070-5245-46FB-8B24-35254AD23C14@categoricaldesign.com> <62F2D07F-B9AD-4C83-9B7C-949049AD4AE4@categoricaldesign.com> Message-ID: Thanks! That's what I needed. I'll get back to you. Blake On Wed, Feb 4, 2015 at 10:25 AM, Francois Magnan < magnan at categoricaldesign.com> wrote: > Hi, > > The univ-lib is a git repo? > > https://github.com/feeley/univ-lib.git > > You must install it in your Gambit distribution directory. > > Francois > > > On Feb 4, 2015, at 8:43 AM, Francois Magnan > wrote: > > Hi Blake, > > 1) Not really, appart from this mailing list from which we could extract > some wiki entries. If you can you are welcome to contribute. > 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. > 3) Yes this is it. Here is a sample loader script: > > > File: loader.scm > ?????????????????????? > (declare (standard-bindings) > (extended-bindings) > ;(fixnum) > (not safe)) > > (declare (not inline-primitives equal?)) > > > ; include Marc's code > (##include ?~/gambit/univ-lib/lib/lib.scm") > > ; here you include your own modules > (include "Sentio.scm") > (include "Home.scm") > (include "Sentio-Localization.scm") > (include "Graph.scm") > (include "State-transitions.scm") > (include "Sentio-Forms.scm") > (include "Media.scm") > ?????????????????????? > > > You need to change the path to to univ-lib.scm > > Then you compile this file with: > > /usr/local/Gambit-C/bin/gsc -:d-,f8,t8,-8 -c -target js loader.scm > > 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. > > Fran?ois > > > > > > > On Feb 4, 2015, at 7:10 AM, Blake McBride wrote: > > Greetings, > > Your response leads to several questions as follows: > > 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.) > > 2. I don't know what univ-lib is. For example: > > blake at sony-linux-laptop /usr/local/Gambit-C $ find . |grep -i univ > blake at sony-linux-laptop /usr/local/Gambit-C $ > > blake at sony-linux-laptop ~/Backup/gambit.git $ find . |grep -i univ > ./gsc/_t-univ.o > ./gsc/_t-univ.scm > ./gsc/_t-univ.c > blake at sony-linux-laptop ~/Backup/gambit.git $ > > Are you talking about gsc/_t-univ.scm? > > > 3. With respect to JavaScript, I am not sure what you mean by "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. > > 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. > > Thanks! > > Blake > > > > > On Tue, Feb 3, 2015 at 4:26 PM, Marc Feeley > wrote: > >> 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: >> >> (define (##apply-global-with-procedure-check-nary gv . args) >> (declare (standard-bindings)) >> (println (list "*** ERROR -- call to unbound global variable " gv)) >> (0)) ;; really crash! >> >> (foo 1 2 3) >> >> The generated JS code calls the ##apply-global-with-procedure-check-nary >> function when a non-procedure bound to a global variable is called. >> >> Marc >> >> > On Feb 3, 2015, at 4:51 PM, Blake McBride wrote: >> > >> > Greetings, >> > >> > When running a JS target, if an unknown function is called, would it be >> possible to say something like: >> > >> > Error: call to unknown function XYZ >> > >> > Rather than: >> > >> > /home/blake/z/gambit/fib.js:348 >> > pc = pc(); >> > ^ >> > TypeError: undefined is not a function >> > at gambit_trampoline (/home/blake/z/gambit/fib.js:348:10) >> > ...... >> > >> > >> > Thanks. >> > >> > Blake McBride >> > >> >> > _______________________________________________ > 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: From gambit at iro.umontreal.ca Wed Feb 4 17:37:59 2015 From: gambit at iro.umontreal.ca (Logiciel Gambit) Date: Wed, 04 Feb 2015 17:37:59 -0500 Subject: [gambit-list] [ANN] Gambit-C v4.7.4 released Message-ID: <20150204223759.6801E700B8@frontal04.iro.umontreal.ca> Gambit-C v4.7.4 is now available. Changelog: https://github.com/feeley/gambit/commits The sources and prebuilt distributions can be obtained from the Gambit web site by visiting one of the following links. sources: http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_4.tgz (for typical users) http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_4-devel.tgz (for developers) prebuilt: http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel32.dmg http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel64.dmg http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw32.exe http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw64.exe http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-visualc32.exe http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-visualc64.exe From blake at mcbride.name Thu Feb 5 18:51:13 2015 From: blake at mcbride.name (Blake McBride) Date: Thu, 5 Feb 2015 17:51:13 -0600 Subject: [gambit-list] Problem building univ-lib for JS Message-ID: Greetings, I built the latest Gambit and pulled univ-lib. The makefile in univ-lib first compiles ap.scm to app.js. It then tries to run ap.js with d8. Two things: 1. Could we use node instead of d8? 2. When I run it with node I get: /home/gambit.git/univ-lib/app.js:533 gambit_r1 = Gambit_js2scm(jsfn); ^ ReferenceError: Gambit_js2scm is not defined at gambit_bb1__20_app (/home/blake/z/gambit.git/univ-lib/app.js:533:15) at gambit_trampoline (/home/blake/z/gambit.git/univ-lib/app.js:333:10) at Object. (/home/blake/z/gambit.git/univ-lib/app.js:778: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) at node.js:929:3 I can't find any definition for Gambit_js2scm(). Not sure what to do. Thanks. Blake McBride -------------- next part -------------- An HTML attachment was scrubbed... URL: From feeley at iro.umontreal.ca Thu Feb 5 20:53:48 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Thu, 5 Feb 2015 20:53:48 -0500 Subject: [gambit-list] Not Emacs Message-ID: I?ve just received news that the ?Not Emacs? iOS app I?ve been working on has been approved to the app store. Check it out, it?s a free app! Not Emacs is an emacs-like editor that is built with Gambit and the ymacs editor (http://www.ymacs.org). Documents are shared using iCloud, so they are accessible from all devices automatically. Not Emacs also has an embedded Gambit REPL (started using M-x run_scheme). The app is best used with an external bluetooth keyboard, but the extended virtual keyboard has a bunch of extra keys to make editing possible if you don?t have an external keyboard. An update of the Gambit REPL app which includes the emacs-like editor is also available. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From akingcoder at gmail.com Thu Feb 5 23:41:29 2015 From: akingcoder at gmail.com (Adam King) Date: Thu, 5 Feb 2015 23:41:29 -0500 Subject: [gambit-list] Not Emacs In-Reply-To: References: Message-ID: Hi Marc: I've installed 'Not Emacs' on my iOS devices and will try it out with a keyboard tomorrow. I've also updated to the latest GambitREPL from the store, but both the new GambitREPL and 'Not Emacs' appears to crash on my iPhone5S (iOS8.1) and my iPadMiniRetina (iOS8.1). Both do work on my iPad2 (iOS7.1), so I'm not sure if the crashes are due to 64bit issues or iOS8. Here's the console log I pulled off my iPhone via Xcode (none of my devices are jailbroken) in case it helps (yes, my iPhone is called 'Droid'... ) Feb 5 23:35:31 Droid ReportCrash[261] : task_set_exception_ports(B07, 400, D03, 0, 0) failed with error (4: (os/kern) invalid argument) Feb 5 23:35:31 Droid ReportCrash[261] : ReportCrash acting against PID 260 Feb 5 23:35:31 Droid ReportCrash[261] : Formulating crash report for process GambitREPL[260] Feb 5 23:35:31 Droid SpringBoard[49] : BSXPCMessage received error for message: Connection invalid Feb 5 23:35:31 Droid ReportCrash[261] : Not saving crash log because we have reached the limit for logs to store on disk. Sync or otherwise clear logs from /var/mobile/Library/Logs/CrashReporter to save new logs. Feb 5 23:35:31 Droid ReportCrash[261] : Could not save crash report to disk! Feb 5 23:35:31 Droid com.apple.xpc.launchd[1] (UIKitApplication:GambitREPL[0xb05c][260]) : Service exited due to signal: Segmentation fault: 11 Feb 5 23:35:31 Droid ReportCrash[261] : Incident Identifier: 58B482B1-6072-4F7A-AAB8-D1FAF839DF34 Feb 5 23:35:31 Droid ReportCrash[261] : CrashReporter Key: af8ac549c64acc108eb3c500e681a64798aeeaea Feb 5 23:35:31 Droid ReportCrash[261] : Hardware Model: iPhone6,1 Feb 5 23:35:31 Droid ReportCrash[261] : Process: GambitREPL [260] Feb 5 23:35:31 Droid ReportCrash[261] : Path: /private/var/mobile/Containers/Bundle/Application/33C1A10D-A275-4621-8ECF-BD4DAB2CF390/GambitREPL.app/GambitREPL Feb 5 23:35:31 Droid ReportCrash[261] : Identifier: GambitREPL Feb 5 23:35:31 Droid ReportCrash[261] : Version: ??? Feb 5 23:35:31 Droid ReportCrash[261] : Code Type: ARM-64 (Native) Feb 5 23:35:31 Droid ReportCrash[261] : Parent Process: launchd [1] Feb 5 23:35:31 Droid ReportCrash[261] : Date/Time: 2015-02-05 23:35:31.033 -0500 Feb 5 23:35:31 Droid ReportCrash[261] : Launch Time: 2015-02-05 23:35:30.633 -0500 Feb 5 23:35:31 Droid ReportCrash[261] : OS Version: iOS 8.1.3 (12B466) Feb 5 23:35:31 Droid ReportCrash[261] : Report Version: 105 Feb 5 23:35:31 Droid ReportCrash[261] : Exception Type: EXC_BAD_ACCESS (SIGSEGV) Feb 5 23:35:31 Droid ReportCrash[261] : Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000008 Feb 5 23:35:31 Droid ReportCrash[261] : Triggered by Thread: 0 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 0 name: Dispatch queue: com.apple.main-thread Feb 5 23:35:31 Droid ReportCrash[261] : Thread 0 Crashed: Feb 5 23:35:31 Droid ReportCrash[261] : 0 GambitREPL 0x00000001000b4770 0x100030000 + 542576 Feb 5 23:35:31 Droid ReportCrash[261] : 1 GambitREPL 0x00000001000b47a0 0x100030000 + 542624 Feb 5 23:35:31 Droid ReportCrash[261] : 2 GambitREPL 0x00000001000b1b9c 0x100030000 + 531356 Feb 5 23:35:31 Droid ReportCrash[261] : 3 GambitREPL 0x00000001000b1ec0 0x100030000 + 532160 Feb 5 23:35:31 Droid ReportCrash[261] : 4 GambitREPL 0x0000000100075768 0x100030000 + 284520 Feb 5 23:35:31 Droid ReportCrash[261] : 5 GambitREPL 0x0000000100075f40 0x100030000 + 286528 Feb 5 23:35:31 Droid ReportCrash[261] : 6 UIKit 0x000000018cacd180 0x18cabc000 + 70016 Feb 5 23:35:31 Droid ReportCrash[261] : 7 UIKit 0x000000018cacce90 0x18cabc000 + 69264 Feb 5 23:35:31 Droid ReportCrash[261] : 8 UIKit 0x000000018cad3558 0x18cabc000 + 95576 Feb 5 23:35:31 Droid ReportCrash[261] : 9 UIKit 0x000000018cad0cd8 0x18cabc000 + 85208 Feb 5 23:35:31 Droid ReportCrash[261] : 10 UIKit 0x000000018cb41d20 0x18cabc000 + 548128 Feb 5 23:35:31 Droid ReportCrash[261] : 11 UIKit 0x000000018cd5588c 0x18cabc000 + 2726028 Feb 5 23:35:31 Droid ReportCrash[261] : 12 UIKit 0x000000018cd57e04 0x18cabc000 + 2735620 Feb 5 23:35:31 Droid ReportCrash[261] : 13 UIKit 0x000000018cd5649c 0x18cabc000 + 2729116 Feb 5 23:35:31 Droid ReportCrash[261] : 14 FrontBoardServices 0x000000019058d628 0x190574000 + 103976 Feb 5 23:35:31 Droid ReportCrash[261] : 15 CoreFoundation 0x00000001882d6a24 0x1881f8000 + 911908 Feb 5 23:35:31 Droid ReportCrash[261] : 16 CoreFoundation 0x00000001882d5b2c 0x1881f8000 + 908076 Feb 5 23:35:31 Droid ReportCrash[261] : 17 CoreFoundation 0x00000001882d3d2c 0x1881f8000 + 900396 Feb 5 23:35:31 Droid ReportCrash[261] : 18 CoreFoundation 0x00000001882010a0 0x1881f8000 + 37024 Feb 5 23:35:31 Droid ReportCrash[261] : 19 UIKit 0x000000018cb37aa8 0x18cabc000 + 506536 Feb 5 23:35:31 Droid ReportCrash[261] : 20 UIKit 0x000000018cb32aa0 0x18cabc000 + 486048 Feb 5 23:35:31 Droid ReportCrash[261] : 21 GambitREPL 0x000000010004a64c 0x100030000 + 108108 Feb 5 23:35:31 Droid ReportCrash[261] : 22 libdyld.dylib 0x000000019908aa04 0x199088000 + 10756 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 1 name: Dispatch queue: com.apple.libdispatch-manager Feb 5 23:35:31 Droid ReportCrash[261] : Thread 1: Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x0000000199188c94 0x199188000 + 3220 Feb 5 23:35:31 Droid ReportCrash[261] : 1 libdispatch.dylib 0x000000019907097c 0x199060000 + 67964 Feb 5 23:35:31 Droid ReportCrash[261] : 2 libdispatch.dylib 0x00000001990633b0 0x199060000 + 13232 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 2: Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 3: Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 4: Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 5 name: WebThread Feb 5 23:35:31 Droid ReportCrash[261] : Thread 5: Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a30c0 0x199188000 + 110784 Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d548 0x19923c000 + 5448 Feb 5 23:35:31 Droid ReportCrash[261] : 2 WebCore 0x0000000195db63fc 0x195d04000 + 730108 Feb 5 23:35:31 Droid ReportCrash[261] : 3 WebCore 0x0000000195db6360 0x195d04000 + 729952 Feb 5 23:35:31 Droid ReportCrash[261] : 4 CoreFoundation 0x00000001882d6a4c 0x1881f8000 + 911948 Feb 5 23:35:31 Droid ReportCrash[261] : 5 CoreFoundation 0x00000001882d39d8 0x1881f8000 + 899544 Feb 5 23:35:31 Droid ReportCrash[261] : 6 CoreFoundation 0x00000001882d3eac 0x1881f8000 + 900780 Feb 5 23:35:31 Droid ReportCrash[261] : 7 CoreFoundation 0x00000001882010a0 0x1881f8000 + 37024 Feb 5 23:35:31 Droid ReportCrash[261] : 8 WebCore 0x0000000195db461c 0x195d04000 + 722460 Feb 5 23:35:31 Droid ReportCrash[261] : 9 libsystem_pthread.dylib 0x000000019923fe7c 0x19923c000 + 15996 Feb 5 23:35:31 Droid ReportCrash[261] : 10 libsystem_pthread.dylib 0x000000019923fdd8 0x19923c000 + 15832 Feb 5 23:35:31 Droid ReportCrash[261] : 11 libsystem_pthread.dylib 0x000000019923cfac 0x19923c000 + 4012 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 6: Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 7: Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 Feb 5 23:35:31 Droid ReportCrash[261] : Thread 0 crashed with ARM Thread State (64-bit): Feb 5 23:35:31 Droid ReportCrash[261] : x0: 0x0000000000000000 x1: 0x0000000000000008 x2: 0x00000001000b2e10 x3: 0x0000000000000000 Feb 5 23:35:31 Droid ReportCrash[261] : x4: 0x0000000003000001 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000 Feb 5 23:35:31 Droid ReportCrash[261] : x8: 0x00000001004d56e0 x9: 0x0000000000000002 x10: 0x0000000000000020 x11: 0x000000010047c790 Feb 5 23:35:31 Droid ReportCrash[261] : x12: 0x0000000013c6ef37 x13: 0x000000000000006e x14: 0x0000000000000000 x15: 0x0000000000000000 Feb 5 23:35:31 Droid ReportCrash[261] : x16: 0x00000001992348b8 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x00000001004d58b8 Feb 5 23:35:31 Droid ReportCrash[261] : x20: 0x00000001002de8d0 x21: 0x000000018d29e773 x22: 0x00000001002b5000 x23: 0x0000000000000328 Feb 5 23:35:31 Droid ReportCrash[261] : x24: 0x000000018d29ed92 x25: 0x000000018d29ef2c x26: 0x00000001002b5000 x27: 0x000000018d29f1f3 Feb 5 23:35:31 Droid ReportCrash[261] : x28: 0x000000019506e705 fp: 0x000000016fdce050 lr: 0x00000001000b47a4 Feb 5 23:35:31 Droid ReportCrash[261] : sp: 0x000000016fdce040 pc: 0x00000001000b4770 cpsr: 0x80000000 Feb 5 23:35:31 Droid ReportCrash[261] : Binary Images: Feb 5 23:35:31 Droid ReportCrash[261] : 0x100030000 - 0x1002abfff GambitREPL arm64 /var/mobile/Containers/Bundle/Application/33C1A10D-A275-4621-8ECF-BD4DAB2CF390/GambitREPL.app/GambitREPL On Thu, Feb 5, 2015 at 8:53 PM, Marc Feeley wrote: > I?ve just received news that the ?Not Emacs? iOS app I?ve been working on > has been approved to the app store. Check it out, it?s a free app! > > Not Emacs is an emacs-like editor that is built with Gambit and the ymacs > editor (http://www.ymacs.org). Documents are shared using iCloud, so > they are accessible from all devices automatically. Not Emacs also has an > embedded Gambit REPL (started using M-x run_scheme). The app is best used > with an external bluetooth keyboard, but the extended virtual keyboard has > a bunch of extra keys to make editing possible if you don?t have an > external keyboard. > > An update of the Gambit REPL app which includes the emacs-like editor is > also available. > > Marc > > > _______________________________________________ > 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: From feeley at iro.umontreal.ca Fri Feb 6 09:32:48 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Fri, 6 Feb 2015 09:32:48 -0500 Subject: [gambit-list] Not Emacs In-Reply-To: References: Message-ID: <97B6A377-DF6D-4913-8F4F-0930A65F1763@iro.umontreal.ca> > On Feb 5, 2015, at 11:41 PM, Adam King wrote: > > Hi Marc: > > I've installed 'Not Emacs' on my iOS devices and will try it out with a keyboard tomorrow. I've also updated to the latest GambitREPL from the store, but both the new GambitREPL and 'Not Emacs' appears to crash on my iPhone5S (iOS8.1) and my iPadMiniRetina (iOS8.1). Both do work on my iPad2 (iOS7.1), so I'm not sure if the crashes are due to 64bit issues or iOS8. Here's the console log I pulled off my iPhone via Xcode (none of my devices are jailbroken) in case it helps (yes, my iPhone is called 'Droid'... ) Yikes? that?s not the best situation for a new product launch! I had to add the arm64 support at the last minute because it is required of new apps since February 1. I tested the app on an arm64 device, but it is running iOS 6.1 so the operating system was probably still launching the 32 bit version in the fat binary. I don?t want to upgrade the iOS on that device because it is the only one I have to test on iOS 6.1 . It is probably an easy bug to fix, but it will have to wait until I can get my hands on a device with a 64 bit processor and iOS 8.1 . Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From feeley at iro.umontreal.ca Fri Feb 6 13:27:16 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Fri, 6 Feb 2015 13:27:16 -0500 Subject: [gambit-list] Not Emacs In-Reply-To: <97B6A377-DF6D-4913-8F4F-0930A65F1763@iro.umontreal.ca> References: <97B6A377-DF6D-4913-8F4F-0930A65F1763@iro.umontreal.ca> Message-ID: <71F0ED8F-C42F-4B0F-B3AB-713D9D074BEA@iro.umontreal.ca> > On Feb 6, 2015, at 9:32 AM, Marc Feeley wrote: > > It is probably an easy bug to fix, but it will have to wait until I can get my hands on a device with a 64 bit processor and iOS 8.1 . Indeed it was a simple bug. The gambit.h file did not have a detection of the arm64 architecture, so it assumed wrongly that the cpu was big-endian. I have added that case to gambit.h, tested it on a friend?s iPhone 5s, and submitted new versions to the app store. I hope it gets processed promptly. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From iam at juanfra.info Sun Feb 8 14:08:35 2015 From: iam at juanfra.info (Juan Francisco Cantero Hurtado) Date: Sun, 08 Feb 2015 20:08:35 +0100 Subject: [gambit-list] [ANN] Gambit-C v4.7.4 released In-Reply-To: <20150204223759.6801E700B8@frontal04.iro.umontreal.ca> References: <20150204223759.6801E700B8@frontal04.iro.umontreal.ca> Message-ID: On 02/04/2015 11:37 PM, Logiciel Gambit wrote: > Gambit-C v4.7.4 is now available. > > Changelog: https://github.com/feeley/gambit/commits > > The sources and prebuilt distributions can be obtained from > the Gambit web site by visiting one of the following links. > > sources: > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_4.tgz (for typical users) 404 gambc-v4_7_4.tgz is not there. > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v4_7_4-devel.tgz (for developers) > > prebuilt: > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel32.dmg > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-macosx-intel64.dmg > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw32.exe > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-mingw64.exe > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-visualc32.exe > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/prebuilt/gambc-v4_7_4-windows-visualc64.exe > From feeley at iro.umontreal.ca Mon Feb 9 09:25:38 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Mon, 9 Feb 2015 09:25:38 -0500 Subject: [gambit-list] [ANN] Gambit-C v4.7.4 released In-Reply-To: References: <20150204223759.6801E700B8@frontal04.iro.umontreal.ca> Message-ID: > On Feb 8, 2015, at 2:08 PM, Juan Francisco Cantero Hurtado wrote: > > 404 > > gambc-v4_7_4.tgz is not there. Thanks for letting me know. Now fixed. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From feeley at iro.umontreal.ca Mon Feb 9 09:25:38 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Mon, 9 Feb 2015 09:25:38 -0500 Subject: [gambit-list] [ANN] Gambit-C v4.7.4 released In-Reply-To: References: <20150204223759.6801E700B8@frontal04.iro.umontreal.ca> Message-ID: > On Feb 8, 2015, at 2:08 PM, Juan Francisco Cantero Hurtado wrote: > > 404 > > gambc-v4_7_4.tgz is not there. Thanks for letting me know. Now fixed. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From framagnan at gmail.com Fri Feb 6 09:10:26 2015 From: framagnan at gmail.com (=?utf-8?Q?Fran=C3=A7ois_Magnan?=) Date: Fri, 6 Feb 2015 09:10:26 -0500 Subject: [gambit-list] Not Emacs In-Reply-To: References: Message-ID: <84DC065B-C3FA-4BE7-B8BA-B6BF947E1CAA@gmail.com> Hi. Same results for me. iPhone 5s iOS 8.1.3 Francois Sent from my iPhone > On Feb 5, 2015, at 23:41, Adam King wrote: > > Hi Marc: > > I've installed 'Not Emacs' on my iOS devices and will try it out with a keyboard tomorrow. I've also updated to the latest GambitREPL from the store, but both the new GambitREPL and 'Not Emacs' appears to crash on my iPhone5S (iOS8.1) and my iPadMiniRetina (iOS8.1). Both do work on my iPad2 (iOS7.1), so I'm not sure if the crashes are due to 64bit issues or iOS8. Here's the console log I pulled off my iPhone via Xcode (none of my devices are jailbroken) in case it helps (yes, my iPhone is called 'Droid'... ) > > Feb 5 23:35:31 Droid ReportCrash[261] : task_set_exception_ports(B07, 400, D03, 0, 0) failed with error (4: (os/kern) invalid argument) > Feb 5 23:35:31 Droid ReportCrash[261] : ReportCrash acting against PID 260 > Feb 5 23:35:31 Droid ReportCrash[261] : Formulating crash report for process GambitREPL[260] > Feb 5 23:35:31 Droid SpringBoard[49] : BSXPCMessage received error for message: Connection invalid > Feb 5 23:35:31 Droid ReportCrash[261] : Not saving crash log because we have reached the limit for logs to store on disk. Sync or otherwise clear logs from /var/mobile/Library/Logs/CrashReporter to save new logs. > Feb 5 23:35:31 Droid ReportCrash[261] : Could not save crash report to disk! > Feb 5 23:35:31 Droid com.apple.xpc.launchd[1] (UIKitApplication:GambitREPL[0xb05c][260]) : Service exited due to signal: Segmentation fault: 11 > Feb 5 23:35:31 Droid ReportCrash[261] : Incident Identifier: 58B482B1-6072-4F7A-AAB8-D1FAF839DF34 > Feb 5 23:35:31 Droid ReportCrash[261] : CrashReporter Key: af8ac549c64acc108eb3c500e681a64798aeeaea > Feb 5 23:35:31 Droid ReportCrash[261] : Hardware Model: iPhone6,1 > Feb 5 23:35:31 Droid ReportCrash[261] : Process: GambitREPL [260] > Feb 5 23:35:31 Droid ReportCrash[261] : Path: /private/var/mobile/Containers/Bundle/Application/33C1A10D-A275-4621-8ECF-BD4DAB2CF390/GambitREPL.app/GambitREPL > Feb 5 23:35:31 Droid ReportCrash[261] : Identifier: GambitREPL > Feb 5 23:35:31 Droid ReportCrash[261] : Version: ??? > Feb 5 23:35:31 Droid ReportCrash[261] : Code Type: ARM-64 (Native) > Feb 5 23:35:31 Droid ReportCrash[261] : Parent Process: launchd [1] > Feb 5 23:35:31 Droid ReportCrash[261] : Date/Time: 2015-02-05 23:35:31.033 -0500 > Feb 5 23:35:31 Droid ReportCrash[261] : Launch Time: 2015-02-05 23:35:30.633 -0500 > Feb 5 23:35:31 Droid ReportCrash[261] : OS Version: iOS 8.1.3 (12B466) > Feb 5 23:35:31 Droid ReportCrash[261] : Report Version: 105 > Feb 5 23:35:31 Droid ReportCrash[261] : Exception Type: EXC_BAD_ACCESS (SIGSEGV) > Feb 5 23:35:31 Droid ReportCrash[261] : Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000008 > Feb 5 23:35:31 Droid ReportCrash[261] : Triggered by Thread: 0 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 0 name: Dispatch queue: com.apple.main-thread > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 0 Crashed: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 GambitREPL 0x00000001000b4770 0x100030000 + 542576 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 GambitREPL 0x00000001000b47a0 0x100030000 + 542624 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 GambitREPL 0x00000001000b1b9c 0x100030000 + 531356 > Feb 5 23:35:31 Droid ReportCrash[261] : 3 GambitREPL 0x00000001000b1ec0 0x100030000 + 532160 > Feb 5 23:35:31 Droid ReportCrash[261] : 4 GambitREPL 0x0000000100075768 0x100030000 + 284520 > Feb 5 23:35:31 Droid ReportCrash[261] : 5 GambitREPL 0x0000000100075f40 0x100030000 + 286528 > Feb 5 23:35:31 Droid ReportCrash[261] : 6 UIKit 0x000000018cacd180 0x18cabc000 + 70016 > Feb 5 23:35:31 Droid ReportCrash[261] : 7 UIKit 0x000000018cacce90 0x18cabc000 + 69264 > Feb 5 23:35:31 Droid ReportCrash[261] : 8 UIKit 0x000000018cad3558 0x18cabc000 + 95576 > Feb 5 23:35:31 Droid ReportCrash[261] : 9 UIKit 0x000000018cad0cd8 0x18cabc000 + 85208 > Feb 5 23:35:31 Droid ReportCrash[261] : 10 UIKit 0x000000018cb41d20 0x18cabc000 + 548128 > Feb 5 23:35:31 Droid ReportCrash[261] : 11 UIKit 0x000000018cd5588c 0x18cabc000 + 2726028 > Feb 5 23:35:31 Droid ReportCrash[261] : 12 UIKit 0x000000018cd57e04 0x18cabc000 + 2735620 > Feb 5 23:35:31 Droid ReportCrash[261] : 13 UIKit 0x000000018cd5649c 0x18cabc000 + 2729116 > Feb 5 23:35:31 Droid ReportCrash[261] : 14 FrontBoardServices 0x000000019058d628 0x190574000 + 103976 > Feb 5 23:35:31 Droid ReportCrash[261] : 15 CoreFoundation 0x00000001882d6a24 0x1881f8000 + 911908 > Feb 5 23:35:31 Droid ReportCrash[261] : 16 CoreFoundation 0x00000001882d5b2c 0x1881f8000 + 908076 > Feb 5 23:35:31 Droid ReportCrash[261] : 17 CoreFoundation 0x00000001882d3d2c 0x1881f8000 + 900396 > Feb 5 23:35:31 Droid ReportCrash[261] : 18 CoreFoundation 0x00000001882010a0 0x1881f8000 + 37024 > Feb 5 23:35:31 Droid ReportCrash[261] : 19 UIKit 0x000000018cb37aa8 0x18cabc000 + 506536 > Feb 5 23:35:31 Droid ReportCrash[261] : 20 UIKit 0x000000018cb32aa0 0x18cabc000 + 486048 > Feb 5 23:35:31 Droid ReportCrash[261] : 21 GambitREPL 0x000000010004a64c 0x100030000 + 108108 > Feb 5 23:35:31 Droid ReportCrash[261] : 22 libdyld.dylib 0x000000019908aa04 0x199088000 + 10756 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 1 name: Dispatch queue: com.apple.libdispatch-manager > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 1: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x0000000199188c94 0x199188000 + 3220 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 libdispatch.dylib 0x000000019907097c 0x199060000 + 67964 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 libdispatch.dylib 0x00000001990633b0 0x199060000 + 13232 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 2: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 3: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 4: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 5 name: WebThread > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 5: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a30c0 0x199188000 + 110784 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d548 0x19923c000 + 5448 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 WebCore 0x0000000195db63fc 0x195d04000 + 730108 > Feb 5 23:35:31 Droid ReportCrash[261] : 3 WebCore 0x0000000195db6360 0x195d04000 + 729952 > Feb 5 23:35:31 Droid ReportCrash[261] : 4 CoreFoundation 0x00000001882d6a4c 0x1881f8000 + 911948 > Feb 5 23:35:31 Droid ReportCrash[261] : 5 CoreFoundation 0x00000001882d39d8 0x1881f8000 + 899544 > Feb 5 23:35:31 Droid ReportCrash[261] : 6 CoreFoundation 0x00000001882d3eac 0x1881f8000 + 900780 > Feb 5 23:35:31 Droid ReportCrash[261] : 7 CoreFoundation 0x00000001882010a0 0x1881f8000 + 37024 > Feb 5 23:35:31 Droid ReportCrash[261] : 8 WebCore 0x0000000195db461c 0x195d04000 + 722460 > Feb 5 23:35:31 Droid ReportCrash[261] : 9 libsystem_pthread.dylib 0x000000019923fe7c 0x19923c000 + 15996 > Feb 5 23:35:31 Droid ReportCrash[261] : 10 libsystem_pthread.dylib 0x000000019923fdd8 0x19923c000 + 15832 > Feb 5 23:35:31 Droid ReportCrash[261] : 11 libsystem_pthread.dylib 0x000000019923cfac 0x19923c000 + 4012 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 6: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 7: > Feb 5 23:35:31 Droid ReportCrash[261] : 0 libsystem_kernel.dylib 0x00000001991a3c78 0x199188000 + 113784 > Feb 5 23:35:31 Droid ReportCrash[261] : 1 libsystem_pthread.dylib 0x000000019923d390 0x19923c000 + 5008 > Feb 5 23:35:31 Droid ReportCrash[261] : 2 libsystem_pthread.dylib 0x000000019923cfa4 0x19923c000 + 4004 > Feb 5 23:35:31 Droid ReportCrash[261] : Thread 0 crashed with ARM Thread State (64-bit): > Feb 5 23:35:31 Droid ReportCrash[261] : x0: 0x0000000000000000 x1: 0x0000000000000008 x2: 0x00000001000b2e10 x3: 0x0000000000000000 > Feb 5 23:35:31 Droid ReportCrash[261] : x4: 0x0000000003000001 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000 > Feb 5 23:35:31 Droid ReportCrash[261] : x8: 0x00000001004d56e0 x9: 0x0000000000000002 x10: 0x0000000000000020 x11: 0x000000010047c790 > Feb 5 23:35:31 Droid ReportCrash[261] : x12: 0x0000000013c6ef37 x13: 0x000000000000006e x14: 0x0000000000000000 x15: 0x0000000000000000 > Feb 5 23:35:31 Droid ReportCrash[261] : x16: 0x00000001992348b8 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x00000001004d58b8 > Feb 5 23:35:31 Droid ReportCrash[261] : x20: 0x00000001002de8d0 x21: 0x000000018d29e773 x22: 0x00000001002b5000 x23: 0x0000000000000328 > Feb 5 23:35:31 Droid ReportCrash[261] : x24: 0x000000018d29ed92 x25: 0x000000018d29ef2c x26: 0x00000001002b5000 x27: 0x000000018d29f1f3 > Feb 5 23:35:31 Droid ReportCrash[261] : x28: 0x000000019506e705 fp: 0x000000016fdce050 lr: 0x00000001000b47a4 > Feb 5 23:35:31 Droid ReportCrash[261] : sp: 0x000000016fdce040 pc: 0x00000001000b4770 cpsr: 0x80000000 > Feb 5 23:35:31 Droid ReportCrash[261] : Binary Images: > Feb 5 23:35:31 Droid ReportCrash[261] : 0x100030000 - 0x1002abfff GambitREPL arm64 /var/mobile/Containers/Bundle/Application/33C1A10D-A275-4621-8ECF-BD4DAB2CF390/GambitREPL.app/GambitREPL > > >> On Thu, Feb 5, 2015 at 8:53 PM, Marc Feeley wrote: >> I?ve just received news that the ?Not Emacs? iOS app I?ve been working on has been approved to the app store. Check it out, it?s a free app! >> >> Not Emacs is an emacs-like editor that is built with Gambit and the ymacs editor (http://www.ymacs.org). Documents are shared using iCloud, so they are accessible from all devices automatically. Not Emacs also has an embedded Gambit REPL (started using M-x run_scheme). The app is best used with an external bluetooth keyboard, but the extended virtual keyboard has a bunch of extra keys to make editing possible if you don?t have an external keyboard. >> >> An update of the Gambit REPL app which includes the emacs-like editor is also available. >> >> Marc >> >> >> _______________________________________________ >> 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: From genevieve.habel at umontreal.ca Mon Feb 9 14:49:30 2015 From: genevieve.habel at umontreal.ca (=?utf-8?B?SGFiZWwgR2VuZXZpw6h2ZQ==?=) Date: Mon, 9 Feb 2015 19:49:30 +0000 Subject: [gambit-list] Job offer Message-ID: <1A91E87E-563D-4354-8DAC-1A08B3456981@umontreal.ca> Hi, You consider yourself one of the best in Web Programming and in scheme programming ? By joining us, you will be part of a dynamic team of online courses. Your Mission As programmeur-Int?grateur, you will work in the development of online courses. Your main tasks will be to: - Participate in conception, development, testing, maintenance and documentation of the application; - Online courses production (scheme-html-like code to express the rendering of pages of online courses) - Collaborate with the team to produce development needed in theses courses; - Resolve software defects and discrepancies; - Add new product features and enhancements The position we are offering is that of ? concepteur en m?diatisation pour les cours en ligne de la FAS ? at a salary/wage of P1 (junior position). This position reports to Genevi?ve Habel, coordonnatrice de la formation en ligne. Your working hours will be 35h/week. This is a seasonal position of a few months. We would like you to start work in march. Please report to Genevi?ve Habel (genevieve.habel at umontreal.ca), for documentation and orientation. We are confident a scheme skilled person would be able to make a significant contribution to the success of our service and look forward to working with you. Genevi?ve Habel From blake at mcbride.name Tue Feb 10 10:30:04 2015 From: blake at mcbride.name (Blake McBride) Date: Tue, 10 Feb 2015 09:30:04 -0600 Subject: [gambit-list] Problem building univ-lib for JS In-Reply-To: References: Message-ID: Would really appreciate some help with this. I'd really like to document and use the system but I am stuck. Thanks. Blake On Thu, Feb 5, 2015 at 5:51 PM, Blake McBride wrote: > Greetings, > > I built the latest Gambit and pulled univ-lib. The makefile in univ-lib > first compiles ap.scm to app.js. It then tries to run ap.js with d8. Two > things: > > 1. Could we use node instead of d8? > > 2. When I run it with node I get: > > /home/gambit.git/univ-lib/app.js:533 > gambit_r1 = Gambit_js2scm(jsfn); > ^ > ReferenceError: Gambit_js2scm is not defined > at gambit_bb1__20_app (/home/blake/z/gambit.git/univ-lib/app.js:533:15) > at gambit_trampoline (/home/blake/z/gambit.git/univ-lib/app.js:333:10) > at Object. (/home/blake/z/gambit.git/univ-lib/app.js:778: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) > at node.js:929:3 > > > I can't find any definition for Gambit_js2scm(). Not sure what to do. > > Thanks. > > Blake McBride > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From magnan at categoricaldesign.com Tue Feb 10 10:55:40 2015 From: magnan at categoricaldesign.com (Francois Magnan) Date: Tue, 10 Feb 2015 10:55:40 -0500 Subject: [gambit-list] Problem building univ-lib for JS In-Reply-To: References: Message-ID: <4EB8844E-2587-4F86-ADCF-763E02FFF169@categoricaldesign.com> grep -r "gambit_js2scm*" . ./gsc/_t-univ.scm:function gambit_js2scm(obj) { Hope this helps? don?t have more time for the moment? Francois > On Feb 10, 2015, at 10:30 AM, Blake McBride wrote: > > Would really appreciate some help with this. I'd really like to document and use the system but I am stuck. > > Thanks. > > Blake > > > On Thu, Feb 5, 2015 at 5:51 PM, Blake McBride > wrote: > Greetings, > > I built the latest Gambit and pulled univ-lib. The makefile in univ-lib first compiles ap.scm to app.js. It then tries to run ap.js with d8. Two things: > > 1. Could we use node instead of d8? > > 2. When I run it with node I get: > > /home/gambit.git/univ-lib/app.js:533 > gambit_r1 = Gambit_js2scm(jsfn); > ^ > ReferenceError: Gambit_js2scm is not defined > at gambit_bb1__20_app (/home/blake/z/gambit.git/univ-lib/app.js:533:15) > at gambit_trampoline (/home/blake/z/gambit.git/univ-lib/app.js:333:10) > at Object. (/home/blake/z/gambit.git/univ-lib/app.js:778: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) > at node.js:929:3 > > > I can't find any definition for Gambit_js2scm(). Not sure what to do. > > Thanks. > > Blake McBride > > > _______________________________________________ > 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: From feeley at iro.umontreal.ca Tue Feb 10 12:16:19 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 10 Feb 2015 12:16:19 -0500 Subject: [gambit-list] Problem building univ-lib for JS In-Reply-To: References: Message-ID: <12E0D19F-808A-40A1-90E3-8909B7B681E4@iro.umontreal.ca> > On Feb 10, 2015, at 10:30 AM, Blake McBride wrote: > > Would really appreciate some help with this. I'd really like to document and use the system but I am stuck. > > Thanks. > > Blake I?m not sure what version of Gambit and univ-lib you are using, but there was a change in the naming convention in the generated code. Initially ?Gambit_? was used to prefix all generated names, but this did not work out well for languages where an initial capital letter is used for classes. So in more recent version of Gambit, ?gambit_? is used for global variables and functions, and ?Gambit_? is used for classes. So you should call gambit_js2scm(?) instead of Gambit_js2scm(?). Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From blake at mcbride.name Tue Feb 10 18:09:25 2015 From: blake at mcbride.name (Blake McBride) Date: Tue, 10 Feb 2015 17:09:25 -0600 Subject: [gambit-list] Problem building univ-lib for JS In-Reply-To: <12E0D19F-808A-40A1-90E3-8909B7B681E4@iro.umontreal.ca> References: <12E0D19F-808A-40A1-90E3-8909B7B681E4@iro.umontreal.ca> Message-ID: I updated (last update was a few days ago) and it now works. There are two issues, however, as follows: 1. The resulting JavaScript file on a two line program is 5.7 MB. Is this correct? 2. How can several scheme files be compiled independently and then linked (combined)? Thanks! Blake On Tue, Feb 10, 2015 at 11:16 AM, Marc Feeley wrote: > > > On Feb 10, 2015, at 10:30 AM, Blake McBride wrote: > > > > Would really appreciate some help with this. I'd really like to > document and use the system but I am stuck. > > > > Thanks. > > > > Blake > > I?m not sure what version of Gambit and univ-lib you are using, but there > was a change in the naming convention in the generated code. Initially > ?Gambit_? was used to prefix all generated names, but this did not work out > well for languages where an initial capital letter is used for classes. So > in more recent version of Gambit, ?gambit_? is used for global variables > and functions, and ?Gambit_? is used for classes. > > So you should call gambit_js2scm(?) instead of Gambit_js2scm(?). > > Marc > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jsgrahamus at yahoo.com Tue Feb 10 19:17:04 2015 From: jsgrahamus at yahoo.com (Steve Graham) Date: Wed, 11 Feb 2015 00:17:04 +0000 (UTC) Subject: [gambit-list] Problems building Gambit-C Message-ID: <846445727.1769202.1423613824827.JavaMail.yahoo@mail.yahoo.com> On a Linux Mint 17.1 system, used git to download new version of Gambit.? When I run ./configure, I get the following: steve at steve-Satellite-L555D /opt/gambit $ ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for gcc... gcc checking whether the C compiler works... no configure: error: in `/opt/gambit': configure: error: C compiler cannot create executables See `config.log' for more details steve at steve-Satellite-L555D /opt/gambit $ The contents of config.log are: steve at steve-Satellite-L555D /opt/gambit $ cat config.log This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Gambit-C configure v4.7.4, which was generated by GNU Autoconf 2.69.? Invocation command line was ? $ ./configure ## --------- ## ## Platform. ## ## --------- ## hostname = steve-Satellite-L555D uname -m = x86_64 uname -r = 3.13.0-37-generic uname -s = Linux uname -v = #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 /usr/bin/uname -p = x86_64 /bin/uname -X???? = unknown /bin/arch????????????? = unknown /usr/bin/arch -k?????? = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo????? = unknown /bin/machine?????????? = unknown /usr/bin/oslevel?????? = unknown /bin/universe????????? = unknown PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH: /usr/bin PATH: /sbin PATH: /bin PATH: /usr/games PATH: /usr/local/games ## ----------- ## ## Core tests. ## ## ----------- ## configure:2825: checking build system type configure:2839: result: x86_64-unknown-linux-gnu configure:2859: checking host system type configure:2872: result: x86_64-unknown-linux-gnu configure:2892: checking target system type configure:2905: result: x86_64-unknown-linux-gnu configure:3143: checking for gcc configure:3159: found /usr/bin/gcc configure:3170: result: gcc configure:3399: checking for C compiler version configure:3408: gcc --version >&5 gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions.? There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3419: $? = 0 configure:3408: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) configure:3419: $? = 0 configure:3408: gcc -V >&5 gcc: error: unrecognized command line option '-V' gcc: fatal error: no input files compilation terminated. configure:3419: $? = 4 configure:3408: gcc -qversion >&5 gcc: error: unrecognized command line option '-qversion' gcc: fatal error: no input files compilation terminated. configure:3419: $? = 4 configure:3439: checking whether the C compiler works configure:3461: gcc??? conftest.c? >&5 /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory /usr/bin/ld: cannot find -lc /usr/bin/ld: cannot find crtn.o: No such file or directory collect2: error: ld returned 1 exit status configure:3465: $? = 1 configure:3503: result: no configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "Gambit-C" | #define PACKAGE_TARNAME "gambc-v4_7_4" | #define PACKAGE_VERSION "v4.7.4" | #define PACKAGE_STRING "Gambit-C v4.7.4" | #define PACKAGE_BUGREPORT "gambit at iro.umontreal.ca" | #define PACKAGE_URL "" | /* end confdefs.h.? */ | | int | main () | { | |?? ; |?? return 0; | } configure:3508: error: in `/opt/gambit': configure:3510: error: C compiler cannot create executables See `config.log' for more details ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-unknown-linux-gnu ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value= ac_cv_env_CXXFLAGS_set= ac_cv_env_CXXFLAGS_value= ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_XMKMF_set= ac_cv_env_XMKMF_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_host=x86_64-unknown-linux-gnu ac_cv_prog_ac_ct_CC=gcc ac_cv_target=x86_64-unknown-linux-gnu ## ----------------- ## ## Output variables. ## ## ----------------- ## AR='' BAT_EXTENSION='' BAT_EXTENSION_BAT='' BAT_EXTENSION_MF='' BAT_EXTENSION_SH='' BUILD_DYN='' BUILD_DYN_BAT='' BUILD_DYN_ECHO='' BUILD_DYN_ECHO_BAT='' BUILD_DYN_MF='' BUILD_DYN_SH='' BUILD_EXE='' BUILD_EXE_BAT='' BUILD_EXE_ECHO='' BUILD_EXE_ECHO_BAT='' BUILD_EXE_MF='' BUILD_EXE_SH='' BUILD_LIB='' BUILD_LIB_BAT='' BUILD_LIB_ECHO='' BUILD_LIB_ECHO_BAT='' BUILD_LIB_MF='' BUILD_LIB_SH='' BUILD_OBJ='' BUILD_OBJ_BAT='' BUILD_OBJ_ECHO='' BUILD_OBJ_ECHO_BAT='' BUILD_OBJ_MF='' BUILD_OBJ_SH='' CC='gcc' CFLAGS='' COMPILATION_OPTIONS='' CONF_BOOL='' CONF_MAX_CHR='' CONF_SINGLE_MULTIPLE_THREADED_VMS='' CONF_SINGLE_MULTIPLE_VMS='' CONF_THREAD_LOCAL_STORAGE_CLASS='' CONF_THREAD_SYSTEM='' CONF_VOIDSTAR_WIDTH='' CPP='' CPPFLAGS='' CXX='' CXXCPP='' CXXFLAGS='' C_COMPILER='' C_COMPILER_BAT='' C_COMPILER_MF='' C_COMPILER_SH='' C_COMP_CLANG='' C_COMP_GNUC='' C_COMP_LLVM='' C_COMP_VISUALC='' C_PREPROC='' C_PREPROC_BAT='' C_PREPROC_MF='' C_PREPROC_SH='' DASH_G='' DASH_KPIC='' DASH_O1='' DASH_O2='' DASH_OPT_IEEE_NaN_inf_ON='' DASH_OPT_IEEE_comparisons_ON='' DASH_OPT_Olimit_0='' DASH_TENV_large_GOT='' DASH_W='' DASH_Wall='' DASH_Wno_unused='' DASH_Wno_write_strings='' DASH_b='' DASH_bundle='' DASH_call_shared='' DASH_dynamiclib='' DASH_expect_unresolved='' DASH_fPIC='' DASH_fbranch_probabilities='' DASH_flat_namespace_undefined_suppress='' DASH_fmodulo_sched='' DASH_fno_common='' DASH_fno_keep_inline_dllexport='' DASH_fno_math_errno='' DASH_fno_move_loop_invariants='' DASH_fno_strict_aliasing='' DASH_fno_trapping_math='' DASH_fomit_frame_pointer='' DASH_fpic='' DASH_fprofile_arcs='' DASH_freschedule_modulo_scheduled_loops='' DASH_fschedule_insns2='' DASH_ftest_coverage='' DASH_fullwarn='' DASH_fwrapv='' DASH_g='' DASH_ieee='' DASH_mieee='' DASH_mieee_fp='' DASH_mieee_with_inexact='' DASH_no_cpp_precomp='' DASH_p='' DASH_pg='' DASH_rdynamic='' DASH_shared='' DASH_woff_1110_1174_1209_1552_3201='' DASH_xO2='' DEFS='' DEFS_BAT='' DEFS_DYN='-D___DYNAMIC' DEFS_DYN_BAT='' DEFS_DYN_MF='' DEFS_DYN_SH='' DEFS_EXE='' DEFS_EXE_BAT='' DEFS_EXE_MF='' DEFS_EXE_SH='' DEFS_LIB='' DEFS_LIB_BAT='' DEFS_LIB_MF='' DEFS_LIB_SH='' DEFS_MF='' DEFS_OBJ='' DEFS_OBJ_BAT='' DEFS_OBJ_MF='' DEFS_OBJ_SH='' DEFS_SH='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' ENABLE_ABSOLUTE_SHARED_LIBS='' ENABLE_COMPILER_NAME='' ENABLE_GUIDE='' ENABLE_INTERPRETER_NAME='' ENABLE_MULTIPLE_VERSIONS='' ENABLE_SHARED='' ENABLE_SYMLINKS='' ENABLE_VERSIONED_SHARED_LIBS='' EXEEXT='' EXE_EXTENSION='' EXE_EXTENSION_BAT='' EXE_EXTENSION_MF='' EXE_EXTENSION_SH='' FIXLIB='' FLAGS_DYN='' FLAGS_DYN_BAT='' FLAGS_DYN_MF='' FLAGS_DYN_SH='' FLAGS_EXE='' FLAGS_EXE_BAT='' FLAGS_EXE_MF='' FLAGS_EXE_SH='' FLAGS_LIB='' FLAGS_LIB_BAT='' FLAGS_LIB_MF='' FLAGS_LIB_SH='' FLAGS_OBJ='' FLAGS_OBJ_BAT='' FLAGS_OBJ_MF='' FLAGS_OBJ_SH='' GAMBCGSCLIB='' GAMBCGSCLIB_BAT='' GAMBCGSCLIB_MF='' GAMBCGSCLIB_SH='' GAMBCGSILIB='' GAMBCGSILIB_BAT='' GAMBCGSILIB_MF='' GAMBCGSILIB_SH='' GAMBCLIB='' GAMBCLIB_BAT='' GAMBCLIB_DEFS='' GAMBCLIB_DEFS_BAT='' GAMBCLIB_DEFS_MF='' GAMBCLIB_DEFS_SH='' GAMBCLIB_MF='' GAMBCLIB_SH='' GCC_42_OR_43='' GIT='' GREP='' HAVE_SPECIAL_CC='' HAVE_SPECIAL_CXX='' HELP_BROWSER='' HG='' INSTALL='' INSTALL_DATA='' INSTALL_LIB='' INSTALL_PROGRAM='' LDFLAGS='' LIBOBJS='' LIBS='' LIBS_BAT='' LIBS_MF='' LIBS_SH='' LIB_EXTENSION='' LIB_EXTENSION_BAT='' LIB_EXTENSION_MF='' LIB_EXTENSION_SH='' LIB_MAJOR_VERSION_SUFFIX='' LIB_PREFIX='' LIB_PREFIX_BAT='' LIB_PREFIX_MF='' LIB_PREFIX_SH='' LIB_VERSION_SUFFIX='' LINK='' LINK_FOR_INSTALL='' LINK_FOR_INSTALL_GSC_LIBS='' LINK_FOR_INSTALL_GSI_LIBS='' LN_S='' LTLIBOBJS='' MAKE_LIBRARY='' MAKE_LIBRARY_FOR_INSTALL='' MAKE_LIBRARY_FOR_INSTALL_LIBS='' OBJEXT='' OBJ_EXTENSION='' OBJ_EXTENSION_BAT='' OBJ_EXTENSION_MF='' OBJ_EXTENSION_SH='' OS_WIN32='' PACKAGE_BUGREPORT='gambit at iro.umontreal.ca' PACKAGE_NAME='Gambit-C' PACKAGE_SHORTNAME='gambc' PACKAGE_STRING='Gambit-C v4.7.4' PACKAGE_TARNAME='gambc-v4_7_4' PACKAGE_URL='' PACKAGE_VERSION='v4.7.4' PATH_SEPARATOR=':' POSSIBLE_LLVM_GCC_LABEL_VALUES_BUG='' QTINCPATH='' RANLIB='' RC='' RTLIBSUBSYS='' SETDLPATH='' SETDLPATHBOOT='' SET_MAKE='' SHELL='/bin/bash' XMKMF='' X_CFLAGS='' X_EXTRA_LIBS='' X_FLAGS='' X_LIBS='' X_PRE_LIBS='' ac_ct_CC='gcc' ac_ct_CXX='' bat='' bindir='${exec_prefix}/bin' build='x86_64-unknown-linux-gnu' build_alias='' build_cpu='x86_64' build_os='linux-gnu' build_vendor='unknown' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' emacsdir='' exe='' exec_prefix='NONE' host='x86_64-unknown-linux-gnu' host_alias='' host_cpu='x86_64' host_os='linux-gnu' host_vendor='unknown' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' obj='' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='NONE' program_transform_name='s,x,x,' psdir='${docdir}' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' srcdirpfx='' sysconfdir='${prefix}/etc' target='x86_64-unknown-linux-gnu' target_alias='' target_cpu='x86_64' target_os='linux-gnu' target_vendor='unknown' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "Gambit-C" #define PACKAGE_TARNAME "gambc-v4_7_4" #define PACKAGE_VERSION "v4.7.4" #define PACKAGE_STRING "Gambit-C v4.7.4" #define PACKAGE_BUGREPORT "gambit at iro.umontreal.ca" #define PACKAGE_URL "" configure: exit 77 What am I doing wrong? Steve???? -------------- next part -------------- An HTML attachment was scrubbed... URL: From feeley at iro.umontreal.ca Tue Feb 10 22:08:58 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 10 Feb 2015 22:08:58 -0500 Subject: [gambit-list] Problems building Gambit-C In-Reply-To: <846445727.1769202.1423613824827.JavaMail.yahoo@mail.yahoo.com> References: <846445727.1769202.1423613824827.JavaMail.yahoo@mail.yahoo.com> Message-ID: <36B78834-AEB0-46BC-95E1-A318CB5188D5@iro.umontreal.ca> Can you try compiling a simple C hello world program by hand? It looks like even that will fail... Marc > On Feb 10, 2015, at 7:17 PM, Steve Graham wrote: > > On a Linux Mint 17.1 system, used git to download new version of Gambit. When I run ./configure, I get the following: > > steve at steve-Satellite-L555D /opt/gambit $ ./configure > checking build system type... x86_64-unknown-linux-gnu > checking host system type... x86_64-unknown-linux-gnu > checking target system type... x86_64-unknown-linux-gnu > checking for gcc... gcc > checking whether the C compiler works... no > configure: error: in `/opt/gambit': > configure: error: C compiler cannot create executables > See `config.log' for more details > steve at steve-Satellite-L555D /opt/gambit $ > > The contents of config.log are: > > steve at steve-Satellite-L555D /opt/gambit $ cat config.log > This file contains any messages produced by compilers while > running configure, to aid debugging if configure makes a mistake. > > It was created by Gambit-C configure v4.7.4, which was > generated by GNU Autoconf 2.69. Invocation command line was > > $ ./configure > > ## --------- ## > ## Platform. ## > ## --------- ## > > hostname = steve-Satellite-L555D > uname -m = x86_64 > uname -r = 3.13.0-37-generic > uname -s = Linux > uname -v = #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 > > /usr/bin/uname -p = x86_64 > /bin/uname -X = unknown > > /bin/arch = unknown > /usr/bin/arch -k = unknown > /usr/convex/getsysinfo = unknown > /usr/bin/hostinfo = unknown > /bin/machine = unknown > /usr/bin/oslevel = unknown > /bin/universe = unknown > > PATH: /usr/local/sbin > PATH: /usr/local/bin > PATH: /usr/sbin > PATH: /usr/bin > PATH: /sbin > PATH: /bin > PATH: /usr/games > PATH: /usr/local/games > > > ## ----------- ## > ## Core tests. ## > ## ----------- ## > > configure:2825: checking build system type > configure:2839: result: x86_64-unknown-linux-gnu > configure:2859: checking host system type > configure:2872: result: x86_64-unknown-linux-gnu > configure:2892: checking target system type > configure:2905: result: x86_64-unknown-linux-gnu > configure:3143: checking for gcc > configure:3159: found /usr/bin/gcc > configure:3170: result: gcc > configure:3399: checking for C compiler version > configure:3408: gcc --version >&5 > gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 > Copyright (C) 2013 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > configure:3419: $? = 0 > configure:3408: gcc -v >&5 > Using built-in specs. > COLLECT_GCC=gcc > COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper > Target: x86_64-linux-gnu > Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu > Thread model: posix > gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) > configure:3419: $? = 0 > configure:3408: gcc -V >&5 > gcc: error: unrecognized command line option '-V' > gcc: fatal error: no input files > compilation terminated. > configure:3419: $? = 4 > configure:3408: gcc -qversion >&5 > gcc: error: unrecognized command line option '-qversion' > gcc: fatal error: no input files > compilation terminated. > configure:3419: $? = 4 > configure:3439: checking whether the C compiler works > configure:3461: gcc conftest.c >&5 > /usr/bin/ld: cannot find crt1.o: No such file or directory > /usr/bin/ld: cannot find crti.o: No such file or directory > /usr/bin/ld: cannot find -lc > /usr/bin/ld: cannot find crtn.o: No such file or directory > collect2: error: ld returned 1 exit status > configure:3465: $? = 1 > configure:3503: result: no > configure: failed program was: > | /* confdefs.h */ > | #define PACKAGE_NAME "Gambit-C" > | #define PACKAGE_TARNAME "gambc-v4_7_4" > | #define PACKAGE_VERSION "v4.7.4" > | #define PACKAGE_STRING "Gambit-C v4.7.4" > | #define PACKAGE_BUGREPORT "gambit at iro.umontreal.ca" > | #define PACKAGE_URL "" > | /* end confdefs.h. */ > | > | int > | main () > | { > | > | ; > | return 0; > | } > configure:3508: error: in `/opt/gambit': > configure:3510: error: C compiler cannot create executables > See `config.log' for more details > > ## ---------------- ## > ## Cache variables. ## > ## ---------------- ## > > ac_cv_build=x86_64-unknown-linux-gnu > ac_cv_env_CCC_set= > ac_cv_env_CCC_value= > ac_cv_env_CC_set= > ac_cv_env_CC_value= > ac_cv_env_CFLAGS_set= > ac_cv_env_CFLAGS_value= > ac_cv_env_CPPFLAGS_set= > ac_cv_env_CPPFLAGS_value= > ac_cv_env_CPP_set= > ac_cv_env_CPP_value= > ac_cv_env_CXXCPP_set= > ac_cv_env_CXXCPP_value= > ac_cv_env_CXXFLAGS_set= > ac_cv_env_CXXFLAGS_value= > ac_cv_env_CXX_set= > ac_cv_env_CXX_value= > ac_cv_env_LDFLAGS_set= > ac_cv_env_LDFLAGS_value= > ac_cv_env_LIBS_set= > ac_cv_env_LIBS_value= > ac_cv_env_XMKMF_set= > ac_cv_env_XMKMF_value= > ac_cv_env_build_alias_set= > ac_cv_env_build_alias_value= > ac_cv_env_host_alias_set= > ac_cv_env_host_alias_value= > ac_cv_env_target_alias_set= > ac_cv_env_target_alias_value= > ac_cv_host=x86_64-unknown-linux-gnu > ac_cv_prog_ac_ct_CC=gcc > ac_cv_target=x86_64-unknown-linux-gnu > > ## ----------------- ## > ## Output variables. ## > ## ----------------- ## > > AR='' > BAT_EXTENSION='' > BAT_EXTENSION_BAT='' > BAT_EXTENSION_MF='' > BAT_EXTENSION_SH='' > BUILD_DYN='' > BUILD_DYN_BAT='' > BUILD_DYN_ECHO='' > BUILD_DYN_ECHO_BAT='' > BUILD_DYN_MF='' > BUILD_DYN_SH='' > BUILD_EXE='' > BUILD_EXE_BAT='' > BUILD_EXE_ECHO='' > BUILD_EXE_ECHO_BAT='' > BUILD_EXE_MF='' > BUILD_EXE_SH='' > BUILD_LIB='' > BUILD_LIB_BAT='' > BUILD_LIB_ECHO='' > BUILD_LIB_ECHO_BAT='' > BUILD_LIB_MF='' > BUILD_LIB_SH='' > BUILD_OBJ='' > BUILD_OBJ_BAT='' > BUILD_OBJ_ECHO='' > BUILD_OBJ_ECHO_BAT='' > BUILD_OBJ_MF='' > BUILD_OBJ_SH='' > CC='gcc' > CFLAGS='' > COMPILATION_OPTIONS='' > CONF_BOOL='' > CONF_MAX_CHR='' > CONF_SINGLE_MULTIPLE_THREADED_VMS='' > CONF_SINGLE_MULTIPLE_VMS='' > CONF_THREAD_LOCAL_STORAGE_CLASS='' > CONF_THREAD_SYSTEM='' > CONF_VOIDSTAR_WIDTH='' > CPP='' > CPPFLAGS='' > CXX='' > CXXCPP='' > CXXFLAGS='' > C_COMPILER='' > C_COMPILER_BAT='' > C_COMPILER_MF='' > C_COMPILER_SH='' > C_COMP_CLANG='' > C_COMP_GNUC='' > C_COMP_LLVM='' > C_COMP_VISUALC='' > C_PREPROC='' > C_PREPROC_BAT='' > C_PREPROC_MF='' > C_PREPROC_SH='' > DASH_G='' > DASH_KPIC='' > DASH_O1='' > DASH_O2='' > DASH_OPT_IEEE_NaN_inf_ON='' > DASH_OPT_IEEE_comparisons_ON='' > DASH_OPT_Olimit_0='' > DASH_TENV_large_GOT='' > DASH_W='' > DASH_Wall='' > DASH_Wno_unused='' > DASH_Wno_write_strings='' > DASH_b='' > DASH_bundle='' > DASH_call_shared='' > DASH_dynamiclib='' > DASH_expect_unresolved='' > DASH_fPIC='' > DASH_fbranch_probabilities='' > DASH_flat_namespace_undefined_suppress='' > DASH_fmodulo_sched='' > DASH_fno_common='' > DASH_fno_keep_inline_dllexport='' > DASH_fno_math_errno='' > DASH_fno_move_loop_invariants='' > DASH_fno_strict_aliasing='' > DASH_fno_trapping_math='' > DASH_fomit_frame_pointer='' > DASH_fpic='' > DASH_fprofile_arcs='' > DASH_freschedule_modulo_scheduled_loops='' > DASH_fschedule_insns2='' > DASH_ftest_coverage='' > DASH_fullwarn='' > DASH_fwrapv='' > DASH_g='' > DASH_ieee='' > DASH_mieee='' > DASH_mieee_fp='' > DASH_mieee_with_inexact='' > DASH_no_cpp_precomp='' > DASH_p='' > DASH_pg='' > DASH_rdynamic='' > DASH_shared='' > DASH_woff_1110_1174_1209_1552_3201='' > DASH_xO2='' > DEFS='' > DEFS_BAT='' > DEFS_DYN='-D___DYNAMIC' > DEFS_DYN_BAT='' > DEFS_DYN_MF='' > DEFS_DYN_SH='' > DEFS_EXE='' > DEFS_EXE_BAT='' > DEFS_EXE_MF='' > DEFS_EXE_SH='' > DEFS_LIB='' > DEFS_LIB_BAT='' > DEFS_LIB_MF='' > DEFS_LIB_SH='' > DEFS_MF='' > DEFS_OBJ='' > DEFS_OBJ_BAT='' > DEFS_OBJ_MF='' > DEFS_OBJ_SH='' > DEFS_SH='' > ECHO_C='' > ECHO_N='-n' > ECHO_T='' > EGREP='' > ENABLE_ABSOLUTE_SHARED_LIBS='' > ENABLE_COMPILER_NAME='' > ENABLE_GUIDE='' > ENABLE_INTERPRETER_NAME='' > ENABLE_MULTIPLE_VERSIONS='' > ENABLE_SHARED='' > ENABLE_SYMLINKS='' > ENABLE_VERSIONED_SHARED_LIBS='' > EXEEXT='' > EXE_EXTENSION='' > EXE_EXTENSION_BAT='' > EXE_EXTENSION_MF='' > EXE_EXTENSION_SH='' > FIXLIB='' > FLAGS_DYN='' > FLAGS_DYN_BAT='' > FLAGS_DYN_MF='' > FLAGS_DYN_SH='' > FLAGS_EXE='' > FLAGS_EXE_BAT='' > FLAGS_EXE_MF='' > FLAGS_EXE_SH='' > FLAGS_LIB='' > FLAGS_LIB_BAT='' > FLAGS_LIB_MF='' > FLAGS_LIB_SH='' > FLAGS_OBJ='' > FLAGS_OBJ_BAT='' > FLAGS_OBJ_MF='' > FLAGS_OBJ_SH='' > GAMBCGSCLIB='' > GAMBCGSCLIB_BAT='' > GAMBCGSCLIB_MF='' > GAMBCGSCLIB_SH='' > GAMBCGSILIB='' > GAMBCGSILIB_BAT='' > GAMBCGSILIB_MF='' > GAMBCGSILIB_SH='' > GAMBCLIB='' > GAMBCLIB_BAT='' > GAMBCLIB_DEFS='' > GAMBCLIB_DEFS_BAT='' > GAMBCLIB_DEFS_MF='' > GAMBCLIB_DEFS_SH='' > GAMBCLIB_MF='' > GAMBCLIB_SH='' > GCC_42_OR_43='' > GIT='' > GREP='' > HAVE_SPECIAL_CC='' > HAVE_SPECIAL_CXX='' > HELP_BROWSER='' > HG='' > INSTALL='' > INSTALL_DATA='' > INSTALL_LIB='' > INSTALL_PROGRAM='' > LDFLAGS='' > LIBOBJS='' > LIBS='' > LIBS_BAT='' > LIBS_MF='' > LIBS_SH='' > LIB_EXTENSION='' > LIB_EXTENSION_BAT='' > LIB_EXTENSION_MF='' > LIB_EXTENSION_SH='' > LIB_MAJOR_VERSION_SUFFIX='' > LIB_PREFIX='' > LIB_PREFIX_BAT='' > LIB_PREFIX_MF='' > LIB_PREFIX_SH='' > LIB_VERSION_SUFFIX='' > LINK='' > LINK_FOR_INSTALL='' > LINK_FOR_INSTALL_GSC_LIBS='' > LINK_FOR_INSTALL_GSI_LIBS='' > LN_S='' > LTLIBOBJS='' > MAKE_LIBRARY='' > MAKE_LIBRARY_FOR_INSTALL='' > MAKE_LIBRARY_FOR_INSTALL_LIBS='' > OBJEXT='' > OBJ_EXTENSION='' > OBJ_EXTENSION_BAT='' > OBJ_EXTENSION_MF='' > OBJ_EXTENSION_SH='' > OS_WIN32='' > PACKAGE_BUGREPORT='gambit at iro.umontreal.ca' > PACKAGE_NAME='Gambit-C' > PACKAGE_SHORTNAME='gambc' > PACKAGE_STRING='Gambit-C v4.7.4' > PACKAGE_TARNAME='gambc-v4_7_4' > PACKAGE_URL='' > PACKAGE_VERSION='v4.7.4' > PATH_SEPARATOR=':' > POSSIBLE_LLVM_GCC_LABEL_VALUES_BUG='' > QTINCPATH='' > RANLIB='' > RC='' > RTLIBSUBSYS='' > SETDLPATH='' > SETDLPATHBOOT='' > SET_MAKE='' > SHELL='/bin/bash' > XMKMF='' > X_CFLAGS='' > X_EXTRA_LIBS='' > X_FLAGS='' > X_LIBS='' > X_PRE_LIBS='' > ac_ct_CC='gcc' > ac_ct_CXX='' > bat='' > bindir='${exec_prefix}/bin' > build='x86_64-unknown-linux-gnu' > build_alias='' > build_cpu='x86_64' > build_os='linux-gnu' > build_vendor='unknown' > datadir='${datarootdir}' > datarootdir='${prefix}/share' > docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' > dvidir='${docdir}' > emacsdir='' > exe='' > exec_prefix='NONE' > host='x86_64-unknown-linux-gnu' > host_alias='' > host_cpu='x86_64' > host_os='linux-gnu' > host_vendor='unknown' > htmldir='${docdir}' > includedir='${prefix}/include' > infodir='${datarootdir}/info' > libdir='${exec_prefix}/lib' > libexecdir='${exec_prefix}/libexec' > localedir='${datarootdir}/locale' > localstatedir='${prefix}/var' > mandir='${datarootdir}/man' > obj='' > oldincludedir='/usr/include' > pdfdir='${docdir}' > prefix='NONE' > program_transform_name='s,x,x,' > psdir='${docdir}' > sbindir='${exec_prefix}/sbin' > sharedstatedir='${prefix}/com' > srcdirpfx='' > sysconfdir='${prefix}/etc' > target='x86_64-unknown-linux-gnu' > target_alias='' > target_cpu='x86_64' > target_os='linux-gnu' > target_vendor='unknown' > > ## ----------- ## > ## confdefs.h. ## > ## ----------- ## > > /* confdefs.h */ > #define PACKAGE_NAME "Gambit-C" > #define PACKAGE_TARNAME "gambc-v4_7_4" > #define PACKAGE_VERSION "v4.7.4" > #define PACKAGE_STRING "Gambit-C v4.7.4" > #define PACKAGE_BUGREPORT "gambit at iro.umontreal.ca" > #define PACKAGE_URL "" > > configure: exit 77 > > What am I doing wrong? > > > Steve > > _______________________________________________ > 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: From feeley at iro.umontreal.ca Tue Feb 10 22:16:35 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 10 Feb 2015 22:16:35 -0500 Subject: [gambit-list] Problem building univ-lib for JS In-Reply-To: References: <12E0D19F-808A-40A1-90E3-8909B7B681E4@iro.umontreal.ca> Message-ID: <0A992A4D-EDEC-4034-B607-21645710D9A4@iro.umontreal.ca> Separate compilation is not yet fully supported, but it is on my TODO. It takes 5 MB because all of the univ library is there (including eval, bignums, etc). A smart linker could bring this down a bit. If you want a minimal library, write it yourself so that it only contains what you need. Marc > On Feb 10, 2015, at 6:09 PM, Blake McBride wrote: > > I updated (last update was a few days ago) and it now works. There are two issues, however, as follows: > > 1. The resulting JavaScript file on a two line program is 5.7 MB. Is this correct? > > 2. How can several scheme files be compiled independently and then linked (combined)? > > Thanks! > > Blake > > >> On Tue, Feb 10, 2015 at 11:16 AM, Marc Feeley wrote: >> >> > On Feb 10, 2015, at 10:30 AM, Blake McBride wrote: >> > >> > Would really appreciate some help with this. I'd really like to document and use the system but I am stuck. >> > >> > Thanks. >> > >> > Blake >> >> I?m not sure what version of Gambit and univ-lib you are using, but there was a change in the naming convention in the generated code. Initially ?Gambit_? was used to prefix all generated names, but this did not work out well for languages where an initial capital letter is used for classes. So in more recent version of Gambit, ?gambit_? is used for global variables and functions, and ?Gambit_? is used for classes. >> >> So you should call gambit_js2scm(?) instead of Gambit_js2scm(?). >> >> Marc > -------------- next part -------------- An HTML attachment was scrubbed... URL: From colingilbert86 at gmail.com Tue Feb 10 23:40:24 2015 From: colingilbert86 at gmail.com (Colin Gilbert) Date: Tue, 10 Feb 2015 22:40:24 -0600 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? Message-ID: Hi, Pardon the silly noob question, but I've been trying to use Gambit to quickly write up a small submodule, and then use each target's native compiler to embed it into the build. Unfortunately, I am getting link errors: Is my my mini program: hello.scm: (display "hello") (newline) Here is what happens when I try to use it. >> gsc -c hello.scm *** INFO -- loading syntax expander >> gcc hello.c cc hello.c /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' /tmp/ccpGbiFh.o: In function `___H__20_hello': hello.c:(.text+0x8d): undefined reference to `___gstate0' hello.c:(.text+0xd4): undefined reference to `___gstate0' hello.c:(.text+0xee): undefined reference to `___G_display' hello.c:(.text+0x132): undefined reference to `___G_display' hello.c:(.text+0x144): undefined reference to `___gstate0' hello.c:(.text+0x176): undefined reference to `___gstate0' hello.c:(.text+0x194): undefined reference to `___G_newline' hello.c:(.text+0x1d5): undefined reference to `___G_newline' hello.c:(.text+0x1e7): undefined reference to `___gstate0' /tmp/ccpGbiFh.o: In function `___setup_mod': hello.c:(.text+0x25c): undefined reference to `___G__20_hello' /tmp/ccpGbiFh.o: In function `___init_mod': hello.c:(.text+0x26f): undefined reference to `___gstate0' hello.c:(.text+0x281): undefined reference to `___G__20_hello' /tmp/ccpGbiFh.o: In function `____20_hello': hello.c:(.text+0x29b): undefined reference to `___S_hello' collect2: error: ld returned 1 exit status I tried using -link, -flat,-link -flat but no real difference. What files need to be present before you can compile the code natively? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mikael.rcv at gmail.com Tue Feb 10 23:57:08 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 11 Feb 2015 10:27:08 +0530 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? In-Reply-To: References: Message-ID: Colin, Gambit does its own compilation work using /usr/local/Gambit-C/bin/gambc-cc , check it out. Run Gambit with the env var GAMBC_CC_VERBOSE=yes set and thescript will print out what it does, giving you a better clue. Mikael 2015-02-11 10:10 GMT+05:30 Colin Gilbert : > Hi, > > Pardon the silly noob question, but I've been trying to use Gambit to > quickly write up a small submodule, and then use each target's native > compiler to embed it into the build. Unfortunately, I am getting link > errors: > > Is my my mini program: > hello.scm: (display "hello") (newline) > > Here is what happens when I try to use it. > > >> gsc -c hello.scm > *** INFO -- loading syntax expander > > >> gcc hello.c > > cc hello.c > /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crt1.o: In > function `_start': > (.text+0x20): undefined reference to `main' > /tmp/ccpGbiFh.o: In function `___H__20_hello': > hello.c:(.text+0x8d): undefined reference to `___gstate0' > hello.c:(.text+0xd4): undefined reference to `___gstate0' > hello.c:(.text+0xee): undefined reference to `___G_display' > hello.c:(.text+0x132): undefined reference to `___G_display' > hello.c:(.text+0x144): undefined reference to `___gstate0' > hello.c:(.text+0x176): undefined reference to `___gstate0' > hello.c:(.text+0x194): undefined reference to `___G_newline' > hello.c:(.text+0x1d5): undefined reference to `___G_newline' > hello.c:(.text+0x1e7): undefined reference to `___gstate0' > /tmp/ccpGbiFh.o: In function `___setup_mod': > hello.c:(.text+0x25c): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `___init_mod': > hello.c:(.text+0x26f): undefined reference to `___gstate0' > hello.c:(.text+0x281): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `____20_hello': > hello.c:(.text+0x29b): undefined reference to `___S_hello' > collect2: error: ld returned 1 exit status > > I tried using -link, -flat,-link -flat but no real difference. > > What files need to be present before you can compile the code natively? > > > _______________________________________________ > 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: From mikael.rcv at gmail.com Wed Feb 11 00:07:55 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 11 Feb 2015 10:37:55 +0530 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? In-Reply-To: References: Message-ID: When you figured the answer, please write it up on the wiki for instance a new page "How file compilation to C and to binary and link files and linking fit together". I believe your issue is either not having gambit.h included, or not having gambc linked in, or having your link file situation messed up - basically when compiling to binary or dylib (dylib is what |load| takes as binary file input), Gambit will produce a link file for properly exporting identifiers, and when you try to compile without one, you get every possible error. There are examples in the manual. The Gambit command line arguments for compilation e.g "-c" map internally to compile-file-to-c etc., other to link-incremental etc., so there are always double ways to do these things. 2015-02-11 10:10 GMT+05:30 Colin Gilbert : > Hi, > > Pardon the silly noob question, but I've been trying to use Gambit to > quickly write up a small submodule, and then use each target's native > compiler to embed it into the build. Unfortunately, I am getting link > errors: > > Is my my mini program: > hello.scm: (display "hello") (newline) > > Here is what happens when I try to use it. > > >> gsc -c hello.scm > *** INFO -- loading syntax expander > > >> gcc hello.c > > cc hello.c > /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crt1.o: In > function `_start': > (.text+0x20): undefined reference to `main' > /tmp/ccpGbiFh.o: In function `___H__20_hello': > hello.c:(.text+0x8d): undefined reference to `___gstate0' > hello.c:(.text+0xd4): undefined reference to `___gstate0' > hello.c:(.text+0xee): undefined reference to `___G_display' > hello.c:(.text+0x132): undefined reference to `___G_display' > hello.c:(.text+0x144): undefined reference to `___gstate0' > hello.c:(.text+0x176): undefined reference to `___gstate0' > hello.c:(.text+0x194): undefined reference to `___G_newline' > hello.c:(.text+0x1d5): undefined reference to `___G_newline' > hello.c:(.text+0x1e7): undefined reference to `___gstate0' > /tmp/ccpGbiFh.o: In function `___setup_mod': > hello.c:(.text+0x25c): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `___init_mod': > hello.c:(.text+0x26f): undefined reference to `___gstate0' > hello.c:(.text+0x281): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `____20_hello': > hello.c:(.text+0x29b): undefined reference to `___S_hello' > collect2: error: ld returned 1 exit status > > I tried using -link, -flat,-link -flat but no real difference. > > What files need to be present before you can compile the code natively? > > > _______________________________________________ > 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: From mikael.rcv at gmail.com Wed Feb 11 00:49:58 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 11 Feb 2015 11:19:58 +0530 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? In-Reply-To: References: Message-ID: Sure. I think the solution is really simple. So what is it you want to do, you have a file xyz.scm that you want to compile to >1 target platforms? If so, just to the GAMBC_CC_VERBOSE thing I suggested to get the gcc + ld commands for your local platform. Then just adapt those for your respective target platforms. To then get the full set of C files for xyz.scm, do (compile-file "xyz.scm") and then I think (link-incremental "mylinkfile.c" '("xyz")) in the same directory, and the full set of C files for your program will bemylinkfile.c + xyz.c . To compile those, gcc needs -I with your Gambit-C/include directory, and ld needs something like -lgsc , and maybe some define is needed - again the GAMBC_CC_VERBOSE thing clarifies that. I believe compile-file corresponds to the -c gsc option, and perhaps link-incremental is the -incremental option. Note that the link file production procedure requires both the total set of C file inputs, and the output filename for the link file, so (at least) two arguments. However, I wanted to express my gratitude for this quick reply; it will > definitely be a pleasure to write an article about this problem's solution, > if I find the solution. Now, I am confident that this is a problem that > interests a number of people here and I eagerly await your replies. > > As far as gambit is concerned, I poked around the internet and kept on >> trying a few more incantations. Presently, I have a deadline so "real work" >> has to take priority :( >> >> Alvaro (CC) knows how to do this. He's in Europe. I believe he will be >>> able to respond to you the next 3-4 hours. >>> >>> Colin, when you know the answer, please write it up on the wiki. The >>> reason you are experiencing this now is because others before you did not >>> write it up. >>> >>> Where are you? >>> >>> >>> I tried various other variations. No dice. It's a shame such an option >>>> isn't immediately apparent, as Gambit's biggest usecase is embeddding. :( >>>> Could the Mark give us an answer? >>>> >>>> When you figured the answer, please write it up on the wiki for >>>>> instance a new page "How file compilation to C and to binary and link files >>>>> and linking fit together". I believe your issue is either not having >>>>> gambit.h included, or not having gambc linked in, or having your link file >>>>> situation messed up - basically when compiling to binary or dylib (dylib is >>>>> what |load| takes as binary file input), Gambit will produce a link file >>>>> for properly exporting identifiers, and when you try to compile without >>>>> one, you get every possible error. There are examples in the manual. >>>>> >>>>> The Gambit command line arguments for compilation e.g "-c" map >>>>> internally to compile-file-to-c etc., other to link-incremental etc., so >>>>> there are always double ways to do these things. >>>>> >>>>> Hi, >>>>>> >>>>>> Pardon the silly noob question, but I've been trying to use Gambit to >>>>>> quickly write up a small submodule, and then use each target's native >>>>>> compiler to embed it into the build. Unfortunately, I am getting link >>>>>> errors: >>>>>> >>>>>> Is my my mini program: >>>>>> hello.scm: (display "hello") (newline) >>>>>> >>>>>> Here is what happens when I try to use it. >>>>>> >>>>>> >> gsc -c hello.scm >>>>>> *** INFO -- loading syntax expander >>>>>> >>>>>> >> gcc hello.c >>>>>> >>>>>> cc hello.c >>>>>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crt1.o: In >>>>>> function `_start': >>>>>> (.text+0x20): undefined reference to `main' >>>>>> /tmp/ccpGbiFh.o: In function `___H__20_hello': >>>>>> hello.c:(.text+0x8d): undefined reference to `___gstate0' >>>>>> hello.c:(.text+0xd4): undefined reference to `___gstate0' >>>>>> hello.c:(.text+0xee): undefined reference to `___G_display' >>>>>> hello.c:(.text+0x132): undefined reference to `___G_display' >>>>>> hello.c:(.text+0x144): undefined reference to `___gstate0' >>>>>> hello.c:(.text+0x176): undefined reference to `___gstate0' >>>>>> hello.c:(.text+0x194): undefined reference to `___G_newline' >>>>>> hello.c:(.text+0x1d5): undefined reference to `___G_newline' >>>>>> hello.c:(.text+0x1e7): undefined reference to `___gstate0' >>>>>> /tmp/ccpGbiFh.o: In function `___setup_mod': >>>>>> hello.c:(.text+0x25c): undefined reference to `___G__20_hello' >>>>>> /tmp/ccpGbiFh.o: In function `___init_mod': >>>>>> hello.c:(.text+0x26f): undefined reference to `___gstate0' >>>>>> hello.c:(.text+0x281): undefined reference to `___G__20_hello' >>>>>> /tmp/ccpGbiFh.o: In function `____20_hello': >>>>>> hello.c:(.text+0x29b): undefined reference to `___S_hello' >>>>>> collect2: error: ld returned 1 exit status >>>>>> >>>>>> I tried using -link, -flat,-link -flat but no real difference. >>>>>> >>>>>> What files need to be present before you can compile the code >>>>>> natively? >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> 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: From feeley at iro.umontreal.ca Wed Feb 11 09:31:04 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Wed, 11 Feb 2015 09:31:04 -0500 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? In-Reply-To: References: Message-ID: > On Feb 10, 2015, at 11:40 PM, Colin Gilbert wrote: > > Hi, > > Pardon the silly noob question, but I've been trying to use Gambit to quickly write up a small submodule, and then use each target's native compiler to embed it into the build. Unfortunately, I am getting link errors: > > Is my my mini program: > hello.scm: (display "hello") (newline) > > Here is what happens when I try to use it. > > >> gsc -c hello.scm > *** INFO -- loading syntax expander > > >> gcc hello.c > > cc hello.c > /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crt1.o: In function `_start': > (.text+0x20): undefined reference to `main' > /tmp/ccpGbiFh.o: In function `___H__20_hello': > hello.c:(.text+0x8d): undefined reference to `___gstate0' > hello.c:(.text+0xd4): undefined reference to `___gstate0' > hello.c:(.text+0xee): undefined reference to `___G_display' > hello.c:(.text+0x132): undefined reference to `___G_display' > hello.c:(.text+0x144): undefined reference to `___gstate0' > hello.c:(.text+0x176): undefined reference to `___gstate0' > hello.c:(.text+0x194): undefined reference to `___G_newline' > hello.c:(.text+0x1d5): undefined reference to `___G_newline' > hello.c:(.text+0x1e7): undefined reference to `___gstate0' > /tmp/ccpGbiFh.o: In function `___setup_mod': > hello.c:(.text+0x25c): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `___init_mod': > hello.c:(.text+0x26f): undefined reference to `___gstate0' > hello.c:(.text+0x281): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `____20_hello': > hello.c:(.text+0x29b): undefined reference to `___S_hello' > collect2: error: ld returned 1 exit status > > I tried using -link, -flat,-link -flat but no real difference. > > What files need to be present before you can compile the code natively? The default Gambit-C build procedure is designed for building on the same type of platform where the executable will be run. For portability to different platforms, the build procedure uses a ?configure? script that determines various properties of the platform (the existence of various system header files, the width of pointers, the type of operating system, etc). The ?configure? script will adapt the makefiles and also fill in some blanks in include/gambit.h.in to generate the Gambit header file include/gambit.h (and similarly for include/config.h.in). In a situation with multiple target platforms, the configure script would have to be run on each target platform to determine the properties of the platform and adapt the include/gambit.h.in file and the include/config.h.in file accordingly for compiling on that platform. I sense that you are looking for a different approach. I assume in the following that you want to compile a Scheme app into a set of .c and .h files that you can compile on multiple target platforms with little or no changes and no configure script or equivalent procedure. Here are two approches. The first assumes that your target platforms share similar characteristics with the development platform (same OS, same processor word size) so that the gambit.h and config.h files produced by the configure script are OK. The second approach uses options on the C compiler?s command line to fill in the information that the configure script normally determines. So we start with compiling Gambit on the development platform: % mkdir embed % cd embed % git clone http://github.com/feeley/gambit.git % cd gambit % ./configure --enable-single-host % make from-scratch % make install % cd .. Now we use the first approach that reuses the development platform?s gambit.h and config.h files. Note that we compile all the .c files (from the Gambit library and the Scheme app) in one call of the C compiler (this could be changed to a seperate compilation of each .c file). In any case it takes less than a minute to compile everything (this is with GNU gcc 4.9.2 on a fast machine with an SSD). % mkdir test1 % cd test1 % echo '(println "hello!")' > hello.scm % gsc -c hello.scm # generate hello.c from hello.scm % gsc -link hello.c # generate hello_.c from hello.c % cp ../gambit/include/stamp.h . % cp ../gambit/include/gambit.h . % cp ../gambit/include/config.h . % cp ../gambit/lib/*.c . % cp ../gambit/lib/*.h . % time gcc -O1 -DHAVE_CONFIG_H *.c -o hello.exe real 0m47.653s user 0m46.124s sys 0m1.443s % ./hello.exe hello! % cd test1 % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 5187576 Feb 11 08:09 hello.exe % strip hello.exe % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 4566440 Feb 11 08:09 hello.exe % cd .. Now for the second approach. Note that the gambit.h file is simply a copy of the gambit.h.in file. The ?blanks? in that file (normally filled in by the configure script) are filled in with C compiler options (-D___VOIDSTAR_WIDTH=8 for a 64 bit processor, D___MAX_CHR=0x10ffff for full Unicode support, etc). Similarly, the information in the config.h file is specified with C compiler options (-DHAVE_ERRNO_H to indicate that errno.h is available, etc). % mkdir test2 % cd test2 % echo '(println "hello!")' > hello.scm % gsc -c hello.scm # generate hello.c from hello.scm % gsc -link hello.c # generate hello_.c from hello.c % cp ../gambit/include/gambit.h.in gambit.h % cp ../gambit/include/stamp.h . % cp ../gambit/lib/*.c . % cp ../gambit/lib/*.h . % time gcc -O1 -DHAVE_ERRNO_H -DHAVE_STDLIB_H -DHAVE_STRING_H -D___VOIDSTAR_WIDTH=8 -D___MAX_CHR=0x10ffff -D___BOOL=int -D___SINGLE_VM -D___SINGLE_THREADED_VMS -D___USE_NO_THREAD_SYSTEM -D___NO_THREAD_LOCAL_STORAGE_CLASS -D___LABEL_ACCESS_OLD -D___SINGLE_HOST -D___GAMBCDIR='"/usr/local/Gambit-C"' *.c -o hello.exe real 0m48.342s user 0m46.860s sys 0m1.387s % ./hello.exe hello! % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 5150656 Feb 11 08:42 hello.exe % strip hello.exe % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 4532824 Feb 11 08:43 hello.exe % cd .. So once compiled, a Scheme app can be seen as a set of .c and .h files and building the app requires a bit of knowledge of the characteristics of the target platform (but not very much, in fact the only critical one is ___VOIDSTAR_WIDTH = sizeof(void*), which has to be known at C macro expansion time to adapt some of the macros defined in gambit.h). Note that the need to specify -D___LABEL_ACCESS_OLD and -D___GAMBCDIR='"/usr/local/Gambit-C"' (and maybe a few others) will go away in a future release of Gambit as they could have default values. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From feeley at iro.umontreal.ca Wed Feb 11 09:31:04 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Wed, 11 Feb 2015 09:31:04 -0500 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? In-Reply-To: References: Message-ID: > On Feb 10, 2015, at 11:40 PM, Colin Gilbert wrote: > > Hi, > > Pardon the silly noob question, but I've been trying to use Gambit to quickly write up a small submodule, and then use each target's native compiler to embed it into the build. Unfortunately, I am getting link errors: > > Is my my mini program: > hello.scm: (display "hello") (newline) > > Here is what happens when I try to use it. > > >> gsc -c hello.scm > *** INFO -- loading syntax expander > > >> gcc hello.c > > cc hello.c > /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crt1.o: In function `_start': > (.text+0x20): undefined reference to `main' > /tmp/ccpGbiFh.o: In function `___H__20_hello': > hello.c:(.text+0x8d): undefined reference to `___gstate0' > hello.c:(.text+0xd4): undefined reference to `___gstate0' > hello.c:(.text+0xee): undefined reference to `___G_display' > hello.c:(.text+0x132): undefined reference to `___G_display' > hello.c:(.text+0x144): undefined reference to `___gstate0' > hello.c:(.text+0x176): undefined reference to `___gstate0' > hello.c:(.text+0x194): undefined reference to `___G_newline' > hello.c:(.text+0x1d5): undefined reference to `___G_newline' > hello.c:(.text+0x1e7): undefined reference to `___gstate0' > /tmp/ccpGbiFh.o: In function `___setup_mod': > hello.c:(.text+0x25c): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `___init_mod': > hello.c:(.text+0x26f): undefined reference to `___gstate0' > hello.c:(.text+0x281): undefined reference to `___G__20_hello' > /tmp/ccpGbiFh.o: In function `____20_hello': > hello.c:(.text+0x29b): undefined reference to `___S_hello' > collect2: error: ld returned 1 exit status > > I tried using -link, -flat,-link -flat but no real difference. > > What files need to be present before you can compile the code natively? The default Gambit-C build procedure is designed for building on the same type of platform where the executable will be run. For portability to different platforms, the build procedure uses a ?configure? script that determines various properties of the platform (the existence of various system header files, the width of pointers, the type of operating system, etc). The ?configure? script will adapt the makefiles and also fill in some blanks in include/gambit.h.in to generate the Gambit header file include/gambit.h (and similarly for include/config.h.in). In a situation with multiple target platforms, the configure script would have to be run on each target platform to determine the properties of the platform and adapt the include/gambit.h.in file and the include/config.h.in file accordingly for compiling on that platform. I sense that you are looking for a different approach. I assume in the following that you want to compile a Scheme app into a set of .c and .h files that you can compile on multiple target platforms with little or no changes and no configure script or equivalent procedure. Here are two approches. The first assumes that your target platforms share similar characteristics with the development platform (same OS, same processor word size) so that the gambit.h and config.h files produced by the configure script are OK. The second approach uses options on the C compiler?s command line to fill in the information that the configure script normally determines. So we start with compiling Gambit on the development platform: % mkdir embed % cd embed % git clone http://github.com/feeley/gambit.git % cd gambit % ./configure --enable-single-host % make from-scratch % make install % cd .. Now we use the first approach that reuses the development platform?s gambit.h and config.h files. Note that we compile all the .c files (from the Gambit library and the Scheme app) in one call of the C compiler (this could be changed to a seperate compilation of each .c file). In any case it takes less than a minute to compile everything (this is with GNU gcc 4.9.2 on a fast machine with an SSD). % mkdir test1 % cd test1 % echo '(println "hello!")' > hello.scm % gsc -c hello.scm # generate hello.c from hello.scm % gsc -link hello.c # generate hello_.c from hello.c % cp ../gambit/include/stamp.h . % cp ../gambit/include/gambit.h . % cp ../gambit/include/config.h . % cp ../gambit/lib/*.c . % cp ../gambit/lib/*.h . % time gcc -O1 -DHAVE_CONFIG_H *.c -o hello.exe real 0m47.653s user 0m46.124s sys 0m1.443s % ./hello.exe hello! % cd test1 % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 5187576 Feb 11 08:09 hello.exe % strip hello.exe % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 4566440 Feb 11 08:09 hello.exe % cd .. Now for the second approach. Note that the gambit.h file is simply a copy of the gambit.h.in file. The ?blanks? in that file (normally filled in by the configure script) are filled in with C compiler options (-D___VOIDSTAR_WIDTH=8 for a 64 bit processor, D___MAX_CHR=0x10ffff for full Unicode support, etc). Similarly, the information in the config.h file is specified with C compiler options (-DHAVE_ERRNO_H to indicate that errno.h is available, etc). % mkdir test2 % cd test2 % echo '(println "hello!")' > hello.scm % gsc -c hello.scm # generate hello.c from hello.scm % gsc -link hello.c # generate hello_.c from hello.c % cp ../gambit/include/gambit.h.in gambit.h % cp ../gambit/include/stamp.h . % cp ../gambit/lib/*.c . % cp ../gambit/lib/*.h . % time gcc -O1 -DHAVE_ERRNO_H -DHAVE_STDLIB_H -DHAVE_STRING_H -D___VOIDSTAR_WIDTH=8 -D___MAX_CHR=0x10ffff -D___BOOL=int -D___SINGLE_VM -D___SINGLE_THREADED_VMS -D___USE_NO_THREAD_SYSTEM -D___NO_THREAD_LOCAL_STORAGE_CLASS -D___LABEL_ACCESS_OLD -D___SINGLE_HOST -D___GAMBCDIR='"/usr/local/Gambit-C"' *.c -o hello.exe real 0m48.342s user 0m46.860s sys 0m1.387s % ./hello.exe hello! % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 5150656 Feb 11 08:42 hello.exe % strip hello.exe % ls -l hello.exe -rwxr-xr-x+ 1 feeley staff 4532824 Feb 11 08:43 hello.exe % cd .. So once compiled, a Scheme app can be seen as a set of .c and .h files and building the app requires a bit of knowledge of the characteristics of the target platform (but not very much, in fact the only critical one is ___VOIDSTAR_WIDTH = sizeof(void*), which has to be known at C macro expansion time to adapt some of the macros defined in gambit.h). Note that the need to specify -D___LABEL_ACCESS_OLD and -D___GAMBCDIR='"/usr/local/Gambit-C"' (and maybe a few others) will go away in a future release of Gambit as they could have default values. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From blake at mcbride.name Wed Feb 11 21:54:12 2015 From: blake at mcbride.name (Blake McBride) Date: Wed, 11 Feb 2015 20:54:12 -0600 Subject: [gambit-list] Problem building univ-lib for JS In-Reply-To: <0A992A4D-EDEC-4034-B607-21645710D9A4@iro.umontreal.ca> References: <12E0D19F-808A-40A1-90E3-8909B7B681E4@iro.umontreal.ca> <0A992A4D-EDEC-4034-B607-21645710D9A4@iro.umontreal.ca> Message-ID: Dear Marc, I see what you are saying. I compiled a small function without the library and it was 16K. That's fine. I also understand what you are talking about regarding the library. I can pair that done. So, the big thing is the separate compilation. This way, I presume, I could compile any number of modules, compile them (somewhat) independently, and then combine them when needed without getting a lot of duplicate code. I gather that the tranpoline framework is required in each module. That should be okay. Keeping it, and any other code that is similar across modules minimum is important. Thanks! Blake On Tue, Feb 10, 2015 at 9:16 PM, Marc Feeley wrote: > Separate compilation is not yet fully supported, but it is on my TODO. > > It takes 5 MB because all of the univ library is there (including eval, > bignums, etc). A smart linker could bring this down a bit. If you want a > minimal library, write it yourself so that it only contains what you need. > > Marc > > > > On Feb 10, 2015, at 6:09 PM, Blake McBride wrote: > > I updated (last update was a few days ago) and it now works. There are > two issues, however, as follows: > > 1. The resulting JavaScript file on a two line program is 5.7 MB. Is > this correct? > > 2. How can several scheme files be compiled independently and then linked > (combined)? > > Thanks! > > Blake > > > On Tue, Feb 10, 2015 at 11:16 AM, Marc Feeley > wrote: > >> >> > On Feb 10, 2015, at 10:30 AM, Blake McBride wrote: >> > >> > Would really appreciate some help with this. I'd really like to >> document and use the system but I am stuck. >> > >> > Thanks. >> > >> > Blake >> >> I?m not sure what version of Gambit and univ-lib you are using, but there >> was a change in the naming convention in the generated code. Initially >> ?Gambit_? was used to prefix all generated names, but this did not work out >> well for languages where an initial capital letter is used for classes. So >> in more recent version of Gambit, ?gambit_? is used for global variables >> and functions, and ?Gambit_? is used for classes. >> >> So you should call gambit_js2scm(?) instead of Gambit_js2scm(?). >> >> Marc >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mikael.rcv at gmail.com Thu Feb 12 05:17:55 2015 From: mikael.rcv at gmail.com (Mikael) Date: Thu, 12 Feb 2015 15:47:55 +0530 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? In-Reply-To: References: Message-ID: Great. Remember to write up your findings on the Wiki. 2015-02-12 8:43 GMT+05:30 Colin Gilbert : > Hi, I would like to add a quick addition to method #2: you need to add > "-lm" at the end or else you'll get endless compiler errors about undefined > references to standard math libraries. The full command is: > > ``` > gcc -O1 -DHAVE_ERRNO_H -DHAVE_STDLIB_H -DHAVE_STRING_H > -D___VOIDSTAR_WIDTH=8 -D___MAX_CHR=0x10ffff -D___BOOL=int -D___SINGLE_VM > -D___SINGLE_THREADED_VMS -D___USE_NO_THREAD_SYSTEM > -D___NO_THREAD_LOCAL_STORAGE_ > CLASS -D___LABEL_ACCESS_OLD -D___SINGLE_HOST > -D___GAMBCDIR='"/usr/local/Gambit-C"' *.c -o hello.exe -lm > > ``` > > On 11 February 2015 at 18:38, Colin Gilbert > wrote: > >> Dr Feeley, >> >> Your prompt reply is very much appreciated. >> >> Once request I'd like to make, however: If you used C99 to compile your >> resulting files (or Gambit itself), would it automatically use C99's >> built-in types and not require __VOIDSTAR_WIDTH? >> >> >> Thank you. >> >> Colin, if you wanted to put a link to this Mailing list archive page on >>> the Wiki would be great, thanks. >>> >>> >>> >>> 2015-02-11 20:01 GMT+05:30 Marc Feeley : >>> >>>> >>>> > On Feb 10, 2015, at 11:40 PM, Colin Gilbert >>>> wrote: >>>> > >>>> > Hi, >>>> > >>>> > Pardon the silly noob question, but I've been trying to use Gambit to >>>> quickly write up a small submodule, and then use each target's native >>>> compiler to embed it into the build. Unfortunately, I am getting link >>>> errors: >>>> > >>>> > Is my my mini program: >>>> > hello.scm: (display "hello") (newline) >>>> > >>>> > Here is what happens when I try to use it. >>>> > >>>> > >> gsc -c hello.scm >>>> > *** INFO -- loading syntax expander >>>> > >>>> > >> gcc hello.c >>>> > >>>> > cc hello.c >>>> > /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/../../../../lib64/crt1.o: In >>>> function `_start': >>>> > (.text+0x20): undefined reference to `main' >>>> > /tmp/ccpGbiFh.o: In function `___H__20_hello': >>>> > hello.c:(.text+0x8d): undefined reference to `___gstate0' >>>> > hello.c:(.text+0xd4): undefined reference to `___gstate0' >>>> > hello.c:(.text+0xee): undefined reference to `___G_display' >>>> > hello.c:(.text+0x132): undefined reference to `___G_display' >>>> > hello.c:(.text+0x144): undefined reference to `___gstate0' >>>> > hello.c:(.text+0x176): undefined reference to `___gstate0' >>>> > hello.c:(.text+0x194): undefined reference to `___G_newline' >>>> > hello.c:(.text+0x1d5): undefined reference to `___G_newline' >>>> > hello.c:(.text+0x1e7): undefined reference to `___gstate0' >>>> > /tmp/ccpGbiFh.o: In function `___setup_mod': >>>> > hello.c:(.text+0x25c): undefined reference to `___G__20_hello' >>>> > /tmp/ccpGbiFh.o: In function `___init_mod': >>>> > hello.c:(.text+0x26f): undefined reference to `___gstate0' >>>> > hello.c:(.text+0x281): undefined reference to `___G__20_hello' >>>> > /tmp/ccpGbiFh.o: In function `____20_hello': >>>> > hello.c:(.text+0x29b): undefined reference to `___S_hello' >>>> > collect2: error: ld returned 1 exit status >>>> > >>>> > I tried using -link, -flat,-link -flat but no real difference. >>>> > >>>> > What files need to be present before you can compile the code >>>> natively? >>>> >>>> The default Gambit-C build procedure is designed for building on the >>>> same type of platform where the executable will be run. For portability to >>>> different platforms, the build procedure uses a "configure" script that >>>> determines various properties of the platform (the existence of various >>>> system header files, the width of pointers, the type of operating system, >>>> etc). The "configure" script will adapt the makefiles and also fill in >>>> some blanks in include/gambit.h.in to generate the Gambit header file >>>> include/gambit.h (and similarly for include/config.h.in). >>>> >>>> In a situation with multiple target platforms, the configure script >>>> would have to be run on each target platform to determine the properties of >>>> the platform and adapt the include/gambit.h.in file and the include/ >>>> config.h.in file accordingly for compiling on that platform. >>>> >>>> I sense that you are looking for a different approach. I assume in the >>>> following that you want to compile a Scheme app into a set of .c and .h >>>> files that you can compile on multiple target platforms with little or no >>>> changes and no configure script or equivalent procedure. >>>> >>>> Here are two approches. The first assumes that your target platforms >>>> share similar characteristics with the development platform (same OS, same >>>> processor word size) so that the gambit.h and config.h files produced by >>>> the configure script are OK. The second approach uses options on the C >>>> compiler's command line to fill in the information that the configure >>>> script normally determines. >>>> >>>> So we start with compiling Gambit on the development platform: >>>> >>>> % mkdir embed >>>> % cd embed >>>> % git clone http://github.com/feeley/gambit.git >>>> % cd gambit >>>> % ./configure --enable-single-host >>>> % make from-scratch >>>> % make install >>>> % cd .. >>>> >>>> Now we use the first approach that reuses the development platform's >>>> gambit.h and config.h files. Note that we compile all the .c files (from >>>> the Gambit library and the Scheme app) in one call of the C compiler (this >>>> could be changed to a seperate compilation of each .c file). In any case >>>> it takes less than a minute to compile everything (this is with GNU gcc >>>> 4.9.2 on a fast machine with an SSD). >>>> >>>> % mkdir test1 >>>> % cd test1 >>>> % echo '(println "hello!")' > hello.scm >>>> % gsc -c hello.scm # generate hello.c from hello.scm >>>> % gsc -link hello.c # generate hello_.c from hello.c >>>> % cp ../gambit/include/stamp.h . >>>> % cp ../gambit/include/gambit.h . >>>> % cp ../gambit/include/config.h . >>>> % cp ../gambit/lib/*.c . >>>> % cp ../gambit/lib/*.h . >>>> % time gcc -O1 -DHAVE_CONFIG_H *.c -o hello.exe >>>> >>>> real 0m47.653s >>>> user 0m46.124s >>>> sys 0m1.443s >>>> % ./hello.exe >>>> hello! >>>> % cd test1 >>>> % ls -l hello.exe >>>> -rwxr-xr-x+ 1 feeley staff 5187576 Feb 11 08:09 hello.exe >>>> % strip hello.exe >>>> % ls -l hello.exe >>>> -rwxr-xr-x+ 1 feeley staff 4566440 Feb 11 08:09 hello.exe >>>> % cd .. >>>> >>>> Now for the second approach. Note that the gambit.h file is simply a >>>> copy of the gambit.h.in file. The "blanks" in that file (normally >>>> filled in by the configure script) are filled in with C compiler options >>>> (-D___VOIDSTAR_WIDTH=8 for a 64 bit processor, D___MAX_CHR=0x10ffff for >>>> full Unicode support, etc). Similarly, the information in the config.h >>>> file is specified with C compiler options (-DHAVE_ERRNO_H to indicate that >>>> errno.h is available, etc). >>>> >>>> % mkdir test2 >>>> % cd test2 >>>> % echo '(println "hello!")' > hello.scm >>>> % gsc -c hello.scm # generate hello.c from hello.scm >>>> % gsc -link hello.c # generate hello_.c from hello.c >>>> % cp ../gambit/include/gambit.h.in gambit.h >>>> % cp ../gambit/include/stamp.h . >>>> % cp ../gambit/lib/*.c . >>>> % cp ../gambit/lib/*.h . >>>> % time gcc -O1 -DHAVE_ERRNO_H -DHAVE_STDLIB_H -DHAVE_STRING_H >>>> -D___VOIDSTAR_WIDTH=8 -D___MAX_CHR=0x10ffff -D___BOOL=int -D___SINGLE_VM >>>> -D___SINGLE_THREADED_VMS -D___USE_NO_THREAD_SYSTEM >>>> -D___NO_THREAD_LOCAL_STORAGE_CLASS -D___LABEL_ACCESS_OLD -D___SINGLE_HOST >>>> -D___GAMBCDIR='"/usr/local/Gambit-C"' *.c -o hello.exe >>>> >>>> real 0m48.342s >>>> user 0m46.860s >>>> sys 0m1.387s >>>> % ./hello.exe >>>> hello! >>>> % ls -l hello.exe >>>> -rwxr-xr-x+ 1 feeley staff 5150656 Feb 11 08:42 hello.exe >>>> % strip hello.exe >>>> % ls -l hello.exe >>>> -rwxr-xr-x+ 1 feeley staff 4532824 Feb 11 08:43 hello.exe >>>> % cd .. >>>> >>>> So once compiled, a Scheme app can be seen as a set of .c and .h files >>>> and building the app requires a bit of knowledge of the characteristics of >>>> the target platform (but not very much, in fact the only critical one is >>>> ___VOIDSTAR_WIDTH = sizeof(void*), which has to be known at C macro >>>> expansion time to adapt some of the macros defined in gambit.h). >>>> >>>> Note that the need to specify -D___LABEL_ACCESS_OLD and >>>> -D___GAMBCDIR='"/usr/local/Gambit-C"' (and maybe a few others) will go away >>>> in a future release of Gambit as they could have default values. >>>> >>>> Marc >>>> >>>> >>>> _______________________________________________ >>>> 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: From feeley at iro.umontreal.ca Thu Feb 12 07:07:23 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Thu, 12 Feb 2015 07:07:23 -0500 Subject: [gambit-list] Dump a .c file into another program's structure and compile it from another compiler? In-Reply-To: References: Message-ID: <07FE2F52-BDD4-4E88-AFAB-2AF53A38177C@iro.umontreal.ca> The -lm is required on some system but not others. You might need other options on some compilers. That is one of the portability issues that the configure script solves. Marc > On Feb 12, 2015, at 5:17 AM, Mikael wrote: > > Great. Remember to write up your findings on the Wiki. > > 2015-02-12 8:43 GMT+05:30 Colin Gilbert : > Hi, I would like to add a quick addition to method #2: you need to add "-lm" at the end or else you'll get endless compiler errors about undefined references to standard math libraries. The full command is: > > ``` > gcc -O1 -DHAVE_ERRNO_H -DHAVE_STDLIB_H -DHAVE_STRING_H -D___VOIDSTAR_WIDTH=8 -D___MAX_CHR=0x10ffff -D___BOOL=int -D___SINGLE_VM -D___SINGLE_THREADED_VMS -D___USE_NO_THREAD_SYSTEM -D___NO_THREAD_LOCAL_STORAGE_ > CLASS -D___LABEL_ACCESS_OLD -D___SINGLE_HOST -D___GAMBCDIR='"/usr/local/Gambit-C"' *.c -o hello.exe -lm -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From P.Achten at cs.ru.nl Fri Feb 13 08:41:46 2015 From: P.Achten at cs.ru.nl (Peter Achten) Date: Fri, 13 Feb 2015 14:41:46 +0100 Subject: [gambit-list] [TFP 2015] 2nd call for papers Message-ID: <54DDFF1A.4030806@cs.ru.nl> ----------------------------- S E C O N D C A L L F O R P A P E R S ----------------------------- ======== TFP 2015 =========== 16th Symposium on Trends in Functional Programming June 3-5, 2015 Inria Sophia Antipolis, France http://tfp2015.inria.fr/ The symposium on Trends in Functional Programming (TFP) is an international forum for researchers with interests in all aspects of functional programming, taking a broad view of current and future trends in the area. It aspires to be a lively environment for presenting the latest research results, and other contributions (see below). Authors of draft papers will be invited to submit revised papers based on the feedback receive at the symposium. A post-symposium refereeing process will then select a subset of these articles for formal publication. The selected revised papers will be published as a Springer Lecture Notes in Computer Science (www.springer.com/lncs) volume. TFP 2015 will be the main event of a pair of functional programming events. TFP 2015 will be accompanied by the International Workshop on Trends in Functional Programming in Education (TFPIE), which will take place on June 2nd. The TFP symposium is the heir of the successful series of Scottish Functional Programming Workshops. Previous TFP symposia were held in * Edinburgh (Scotland) in 2003; * Munich (Germany) in 2004; * Tallinn (Estonia) in 2005; * Nottingham (UK) in 2006; * New York (USA) in 2007; * Nijmegen (The Netherlands) in 2008; * Komarno (Slovakia) in 2009; * Oklahoma (USA) in 2010; * Madrid (Spain) in 2011; * St. Andrews (UK) in 2012; * Provo (Utah, USA) in 2013; * and in Soesterberg (The Netherlands) in 2014. For further general information about TFP please see the TFP homepage. (http://www.tifp.org/). == INVITED SPEAKER == TFP is pleased to announce a talk by the following invited speaker: * Laurence Rideau is a researcher at INRIA and is interested in the semantics of programming languages , the formal methods, and the verification tools for programs and mathematical proofs. She participated in the beginnings of the Compcert project (certified compiler), and is part of the Component Mathematical team in the MSR-INRIA joint laboratory, who performed the formalization of the Feit-Thompson theorem successfully. Thirty years ago, computers barged in mathematics with the famous proof of the Four Color Theorem. Initially limited to simple calculation, their role is now expanding to the reasoning whose complexity is beyond the capabilities of most humans, as the proof of the classification of finite simple groups. We present our large collaborative adventure around the formalization of the Feit-Thompson theorem (http://en.wikipedia.org/wiki/Feit%E2%80%93Thompson_theorem) that is a first step to the classification of finite groups and that uses a palette of methods and techniques that range from formal logic to software (and mathematics) engineering. == SCOPE == The symposium recognizes that new trends may arise through various routes. As part of the Symposium's focus on trends we therefore identify the following five article categories. High-quality articles are solicited in any of these categories: Research Articles: leading-edge, previously unpublished research work Position Articles: on what new trends should or should not be Project Articles: descriptions of recently started new projects Evaluation Articles: what lessons can be drawn from a finished project Overview Articles: summarizing work with respect to a trendy subject Articles must be original and not simultaneously submitted for publication to any other forum. They may consider any aspect of functional programming: theoretical, implementation-oriented, or experience-oriented. Applications of functional programming techniques to other languages are also within the scope of the symposium. Topics suitable for the symposium include: Functional programming and multicore/manycore computing Functional programming in the cloud High performance functional computing Extra-functional (behavioural) properties of functional programs Dependently typed functional programming Validation and verification of functional programs Debugging and profiling for functional languages Functional programming in different application areas: security, mobility, telecommunications applications, embedded systems, global computing, grids, etc. Interoperability with imperative programming languages Novel memory management techniques Program analysis and transformation techniques Empirical performance studies Abstract/virtual machines and compilers for functional languages (Embedded) domain specific languages New implementation strategies Any new emerging trend in the functional programming area If you are in doubt on whether your article is within the scope of TFP, please contact the TFP 2015 program chair, Manuel Serrano. == BEST PAPER AWARDS == To reward excellent contributions, TFP awards a prize for the best paper accepted for the formal proceedings. TFP traditionally pays special attention to research students, acknowledging that students are almost by definition part of new subject trends. A student paper is one for which the authors state that the paper is mainly the work of students, the students are listed as first authors, and a student would present the paper. A prize for the best student paper is awarded each year. In both cases, it is the PC of TFP that awards the prize. In case the best paper happens to be a student paper, that paper will then receive both prizes. == SPONSORS == TFP is financially supported by == PAPER SUBMISSIONS == Acceptance of articles for presentation at the symposium is based on a lightweight peer review process of extended abstracts (4 to 10 pages in length) or full papers (20 pages). The submission must clearly indicate which category it belongs to: research, position, project, evaluation, or overview paper. It should also indicate which authors are research students, and whether the main author(s) are students. A draft paper for which ALL authors are students will receive additional feedback by one of the PC members shortly after the symposium has taken place. We use EasyChair for the refereeing process. Papers must be submitted at: https://easychair.org/conferences/?conf=tfp2015 Papers must be written in English, and written using the LNCS style. For more information about formatting please consult the Springer LNCS web site: http://www.springer.com/computer/lncs?SGWID=0-164-6-793341-0 == IMPORTANT DATES == Submission of draft papers: March 17, 2015 Notification: March 24, 2015 Registration: April 7, 2015 TFP Symposium: June 3-5, 2015 Student papers feedback: June 9, 2015 Submission for formal review: July 1, 2015 Notification of acceptance: September 8, 2015 Camera ready paper: October 8, 2015 == PROGRAM COMMITTEE == Janis Voigtl?nder University of Bonn, DE Scott Owens University of Kent, UK Neil Sculthorpe Swansea University, UK Colin Runciman University of York, UK Manuel Serrano Inria (PC chair), FR Rinus Plasmeijer University of Nijmegen, NL Tomas Petricek University of Cambridge, UK Marco T. Morazan Seton Hall University, USA Wolfgang De Meuter Vrije Universiteit Brussel, BE Michel Mauny Ensta ParisTech, FR Sam Lindley The University of Edinburgh, UK Daan Leijen Microsoft, USA Jurriaan Hage Utrecht University, NL Andy Gill University of Kansas, USA Thomas Gazagnaire University of Cambrige, UK Lars-Ake Fredlund Universidad Polit?cnica de Madrid, ES Jean-Christophe Filliatre Universit? Paris Sud Orsay, FR Marc Feeley Universit? de Montr?al, CA Olaf Chitil University of Kent, UK Edwin Brady University of St Andrews, UK From icfp.publicity at googlemail.com Fri Feb 13 11:27:48 2015 From: icfp.publicity at googlemail.com (David Van Horn) Date: Fri, 13 Feb 2015 11:27:48 -0500 Subject: [gambit-list] ICFP 2015: Final Call for Papers Message-ID: ===================================================================== 20th ACM SIGPLAN International Conference on Functional Programming ICFP 2015 Vancouver, Canada, August 31 - September 2, 2015 http://www.icfpconference.org/icfp2015 ===================================================================== Important Dates ~~~~~~~~~~~~~~~ Submissions due: Friday, February 27 2015, 23:59 UTC-11 https://icfp15.hotcrp.com/ Author response: Tuesday, April 21, 2015 through Thursday, 23 April, 2015 Notification: Friday, May 1, 2015 Final copy due: Friday, June 12, 2015 Scope ~~~~~ ICFP 2015 seeks original papers on the art and science of functional programming. Submissions are invited on all topics from principles to practice, from foundations to features, and from abstraction to application. The scope includes all languages that encourage functional programming, including both purely applicative and imperative languages, as well as languages with objects, concurrency, or parallelism. Topics of interest include (but are not limited to): * Language Design: concurrency, parallelism, and distribution; modules; components and composition; metaprogramming; type systems; interoperability; domain-specific languages; and relations to imperative, object-oriented, or logic programming. * Implementation: abstract machines; virtual machines; interpretation; compilation; compile-time and run-time optimization; garbage collection and memory management; multi-threading; exploiting parallel hardware; interfaces to foreign functions, services, components, or low-level machine resources. * Software-Development Techniques: algorithms and data structures; design patterns; specification; verification; validation; proof assistants; debugging; testing; tracing; profiling. * Foundations: formal semantics; lambda calculus; rewriting; type theory; monads; continuations; control; state; effects; program verification; dependent types. * Analysis and Transformation: control-flow; data-flow; abstract interpretation; partial evaluation; program calculation. * Applications: symbolic computing; formal-methods tools; artificial intelligence; systems programming; distributed-systems and web programming; hardware design; databases; XML processing; scientific and numerical computing; graphical user interfaces; multimedia and 3D graphics programming; scripting; system administration; security. * Education: teaching introductory programming; parallel programming; mathematical proof; algebra. * Functional Pearls: elegant, instructive, and fun essays on functional programming. * Experience Reports: short papers that provide evidence that functional programming really works or describe obstacles that have kept it from working. If you are concerned about the appropriateness of some topic, do not hesitate to contact the program chair. Abbreviated instructions for authors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * By Friday, 27 February 2015, 23:59 UTC-11, submit a full paper of at most 12 pages (6 pages for an Experience Report) in standard ACM conference format, including bibliography, figures, and appendices. The deadlines will be strictly enforced and papers exceeding the page limits will be summarily rejected. * Authors have the option to attach supplementary material to a submission, on the understanding that reviewers may choose not to look at it. * Each submission must adhere to SIGPLAN's republication policy, as explained on the web at http://www.sigplan.org/Resources/Policies/Republication * Authors of resubmitted (but previously rejected) papers have the option to attach an annotated copy of the reviews of their previous submission(s), explaining how they have addressed these previous reviews in the present submission. If a reviewer identifies him/herself as a reviewer of this previous submission and wishes to see how his/her comments have been addressed, the program chair will communicate to this reviewer the annotated copy of his/her previous review. Otherwise, no reviewer will read the annotated copies of the previous reviews. Overall, a submission will be evaluated according to its relevance, correctness, significance, originality, and clarity. It should explain its contributions in both general and technical terms, clearly identifying what has been accomplished, explaining why it is significant, and comparing it with previous work. The technical content should be accessible to a broad audience. Functional Pearls and Experience Reports are separate categories of papers that need not report original research results and must be marked as such at the time of submission. Detailed guidelines on both categories are on the conference web site. Proceedings will be published by ACM Press. Authors of accepted submissions will have a choice of one of three ways to manage their publication rights. These choices are described at http://authors.acm.org/main.html Presentations will be videotaped and released online if the presenter consents. The proceedings will be freely available for download from the ACM Digital Library from one week before the start of the conference until two weeks after the conference. Formatting: Submissions must be in PDF format printable in black and white on US Letter sized paper and interpretable by Ghostscript. Papers must adhere to the standard ACM conference format: two columns, nine-point font on a ten-point baseline, with columns 20pc (3.33in) wide and 54pc (9in) tall, with a column gutter of 2pc (0.33in). A suitable document template for LaTeX is available at http://www.sigplan.org/Resources/Author/ Submission: Submissions will be accepted on the web using a link that will be posted at https://icfp15.hotcrp.com/ Improved versions of a paper may be submitted at any point before the submission deadline using the same web interface. Author response: Authors will have a 72-hour period, starting at 0:00 UTC on Tuesday, 21 April 2015, to read reviews and respond to them. ACM Author-Izer is a unique service that enables ACM authors to generate and post links on either their home page or institutional repository for visitors to download the definitive version of their articles from the ACM Digital Library at no charge. Downloads through Author-Izer links are captured in official ACM statistics, improving the accuracy of usage and impact measurements. Consistently linking the definitive version of ACM article should reduce user confusion over article versioning. After your article has been published and assigned to your ACM Author Profile page, please visit http://www.acm.org/publications/acm-author-izer-service to learn how to create your links for free downloads from the ACM DL. Publication date: The official publication date of accepted papers is the date the proceedings are made available in the ACM Digital Library. This date may be up to two weeks prior to the first day of the conference. The official publication date affects the deadline for any patent filings related to published work. General Chair: Kathleen Fisher Tufts University (USA) Program Chair: John Reppy University of Chicago (USA) Program Committee: Amal Ahmed Northeastern University (USA) Jean-Philippe Bernardy Chalmers University of Technology (Sweden) Matthias Blume Google (USA) William Byrd University of Utah (USA) Andy Gill University of Kansas (USA) Neal Glew Google (USA) Fritz Henglein University of Copenhagen (Denmark) Gabriele Keller University of New South Wales and NICTA (Australia) Andrew Kennedy Microsoft Research Cambridge (UK) Neelakantan Krishnaswami Birmingham University (UK) Daan Leijen Microsoft Research Redmond (USA) Keiko Nakata FireEye Dresden (Germany) Mike Rainey INRIA Rocquencourt (France) Andreas Rossberg Google (Germany) Manuel Serrano INRIA Sophia Antipolis (France) Simon Thompson University of Kent (UK) David Van Horn University of Maryland (USA) Stephanie Weirich University of Pennsylvania (USA) From feeley at iro.umontreal.ca Tue Feb 17 07:16:30 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 17 Feb 2015 07:16:30 -0500 Subject: [gambit-list] Gambit REPL update Message-ID: <34FDE827-6E8C-4E33-BF79-493BBD155760@iro.umontreal.ca> Gambit REPL for iOS has been updated to work on 64 bit devices (iPhone 5+/6, iPad air, etc). You?ll find the new version on the app store. Marc -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From dukeofperl at ml1.net Tue Feb 17 10:36:36 2015 From: dukeofperl at ml1.net (Duke Normandin) Date: Tue, 17 Feb 2015 08:36:36 -0700 Subject: [gambit-list] Newbie Checking in Message-ID: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> Is this list active? Access to the archives seems to be hosed!! -- Duke ><> From hendrik at topoi.pooq.com Tue Feb 17 10:48:35 2015 From: hendrik at topoi.pooq.com (Hendrik Boom) Date: Tue, 17 Feb 2015 10:48:35 -0500 Subject: [gambit-list] Newbie Checking in In-Reply-To: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> Message-ID: <20150217154835.GC6086@topoi.pooq.com> On Tue, Feb 17, 2015 at 08:36:36AM -0700, Duke Normandin wrote: > Is this list active? Access to the archives seems to be hosed!! Yes, it is active. Don't know what's with the archive; someone in charge of the archive should maybe investigate. But there's another archive on gmane, the newsgroup 'gmane.lisp.scheme.gambit'. You can point your usenet reader to the news.gmane.org to access gmane's extensive set of news groups. Or use a web browser on gmane's web archive, http://gmane.org/ -- hendrik From dukeofperl at ml1.net Tue Feb 17 11:02:34 2015 From: dukeofperl at ml1.net (Duke Normandin) Date: Tue, 17 Feb 2015 09:02:34 -0700 Subject: [gambit-list] Newbie Checking in In-Reply-To: <20150217154835.GC6086@topoi.pooq.com> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> <20150217154835.GC6086@topoi.pooq.com> Message-ID: <20150217090234.73c879d809d37dd2fd282743@ml1.net> On Tue, 17 Feb 2015 10:48:35 -0500 Hendrik Boom wrote: > On Tue, Feb 17, 2015 at 08:36:36AM -0700, Duke Normandin wrote: > > Is this list active? Access to the archives seems to be hosed!! > > Yes, it is active. > > Don't know what's with the archive; someone in charge of the > archive should maybe investigate. > > But there's another archive on gmane, the newsgroup > 'gmane.lisp.scheme.gambit'. You can point your usenet reader to > the news.gmane.org to access gmane's extensive set of news groups. > > Or use a web browser on gmane's web archive, http://gmane.org/ Thanks for the input Hendrik! I've got _some_ experience with newLISP, but I seem compeled to investigate scheme a bit more. If you know of a good newbie scheme tut let me know please. I'm only an avid, self-taught hobbyist. TIA .. -- Duke ><> From hendrik at topoi.pooq.com Tue Feb 17 11:25:43 2015 From: hendrik at topoi.pooq.com (Hendrik Boom) Date: Tue, 17 Feb 2015 11:25:43 -0500 Subject: [gambit-list] Newbie Checking in In-Reply-To: <20150217090234.73c879d809d37dd2fd282743@ml1.net> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> <20150217154835.GC6086@topoi.pooq.com> <20150217090234.73c879d809d37dd2fd282743@ml1.net> Message-ID: <20150217162543.GB6438@topoi.pooq.com> On Tue, Feb 17, 2015 at 09:02:34AM -0700, Duke Normandin wrote: > On Tue, 17 Feb 2015 10:48:35 -0500 > Hendrik Boom wrote: > > > On Tue, Feb 17, 2015 at 08:36:36AM -0700, Duke Normandin wrote: > > > Is this list active? Access to the archives seems to be hosed!! > > > > Yes, it is active. > > > > Don't know what's with the archive; someone in charge of the > > archive should maybe investigate. > > > > But there's another archive on gmane, the newsgroup > > 'gmane.lisp.scheme.gambit'. You can point your usenet reader to > > the news.gmane.org to access gmane's extensive set of news groups. > > > > Or use a web browser on gmane's web archive, http://gmane.org/ > > Thanks for the input Hendrik! > I've got _some_ experience with newLISP, but I seem compeled to > investigate scheme a bit more. If you know of a good newbie scheme > tut let me know please. I'm only an avid, self-taught hobbyist. Exactly how I started out in the 1960's. > TIA .. > -- *** There's How To Design Programs, but it starts more elementary than you need, and it doesn't seem to get into continuations, which is what Scheme was invented for. Both are available for free download or reading on the web. The first edition is available for purchase on paper, if you prefer. The second edition is still being written and revised, and it seems to be more fun. However, How To Design Programs is based on Racket, which is a very different dialect of Scheme from Racket, and actually on a series of teaching sublanguages at that, with some specialized libraries. *** The other book I'd recommend is The Structure and Interpretation of Cmoputer Programs. It goes into a lot more depth than How To Design Programs, but a brief look through it suggests it doesn't get into continuations either. Have a look at both; they're both available on the web for free. *** I wish I knew of a good current source about the use of continuations and continuation passing. Decades ago, there were a bunch of technical memoranda from MIT with titles like 'Lambda the Ultimate'. There's links to this stuff on http://library.readscheme.org/page1.html Steele's master's thesis is linked there, too. It describes one of the early implementatinos of Scheme. -- hendrik From dukeofperl at ml1.net Tue Feb 17 11:50:53 2015 From: dukeofperl at ml1.net (Duke Normandin) Date: Tue, 17 Feb 2015 09:50:53 -0700 Subject: [gambit-list] Newbie Checking in In-Reply-To: <20150217162543.GB6438@topoi.pooq.com> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> <20150217154835.GC6086@topoi.pooq.com> <20150217090234.73c879d809d37dd2fd282743@ml1.net> <20150217162543.GB6438@topoi.pooq.com> Message-ID: <20150217095053.ad1d315b6932e08834da3ac5@ml1.net> On Tue, 17 Feb 2015 11:25:43 -0500 Hendrik Boom wrote: [snip] > There's How To Design Programs, > The other book I'd recommend is The Structure and Interpretation > of Cmoputer Programs. Thanks for those suggestions!! And if my "Total & Instant Recall" serves me correctly (even at 68 yrs of age :D ) - I have those 2 resources collecting dust in my HD. > There's links to this stuff on > http://library.readscheme.org/page1.html I'm off to check it out!! Thx ... -- Duke ><> From feeley at iro.umontreal.ca Tue Feb 17 12:24:18 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 17 Feb 2015 12:24:18 -0500 Subject: [gambit-list] Newbie Checking in In-Reply-To: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> Message-ID: <5E847D65-B454-4266-9C28-7682CE9BA365@iro.umontreal.ca> Did you try https://mercure.iro.umontreal.ca/pipermail/gambit-list/ ? It works for me. Marc > On Feb 17, 2015, at 10:36 AM, Duke Normandin wrote: > > Is this list active? Access to the archives seems to be hosed!! > -- -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From dukeofperl at ml1.net Tue Feb 17 12:35:55 2015 From: dukeofperl at ml1.net (Duke Normandin) Date: Tue, 17 Feb 2015 10:35:55 -0700 Subject: [gambit-list] Newbie Checking in In-Reply-To: <5E847D65-B454-4266-9C28-7682CE9BA365@iro.umontreal.ca> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> <5E847D65-B454-4266-9C28-7682CE9BA365@iro.umontreal.ca> Message-ID: <20150217103555.a4bb018d8622acb62895d390@ml1.net> On Tue, 17 Feb 2015 12:24:18 -0500 Marc Feeley wrote: > Did you try > https://mercure.iro.umontreal.ca/pipermail/gambit-list/ ? > > It works for me. > > Marc > > > On Feb 17, 2015, at 10:36 AM, Duke Normandin > > wrote: > > > > Is this list active? Access to the archives seems to be hosed!! > > -- > I did!! This is what I get in my default Chrome browser: [quote] Your connection is not private Attackers might be trying to steal your information from mercure.iro.umontreal.ca (for example, passwords, messages, or credit cards). This server could not prove that it is mercure.iro.umontreal.ca; its security certificate is not trusted by your computer's operating system. This may be caused by a misconfiguration or an attacker intercepting your connection. [/quote] Do you have any pull with the sysadmin at umontreal? :) -- Duke ><> From feeley at iro.umontreal.ca Tue Feb 17 14:13:57 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Tue, 17 Feb 2015 14:13:57 -0500 Subject: [gambit-list] Compiling a gambit program with XCode In-Reply-To: References: Message-ID: <5D3D595B-D53B-48D8-9000-A9EAC53E1163@iro.umontreal.ca> All of those messages are warnings. Just add a compile flag to remove the warnings (and not treat them as errors). I don?t know what the flag is for clang. Marc > On Feb 17, 2015, at 12:30 PM, Francois Magnan wrote: > > Salut Marc, > > I?m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example: > > ???? program.scm ????? > > (c-define (factorial n) (char-string) char-string "factorial" "" > (number->string (fact (string->number n)))) > > > > (define (fact n) > (if (= n 0) > 1 > (* n (fact (- n 1))))) > > ???? program.scm ????? > > > > Then I call: > > gsc -link program > > and that generated program_.c and program.c > > I then add those two files to my XCode project and then > > ? Add the /usr/local/Gambit-C/include to my headers search path > ? Add the /usr/local/Gambit-C/lib to my libraries search path > ? Add -lgambc as a linked flag > ? Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time > > But when I compile the project I get a series of errors: > > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' > /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ?___ps' > > > > What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app. > > Thank you, > Francois Magnan > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From dukeofperl at ml1.net Wed Feb 18 07:19:56 2015 From: dukeofperl at ml1.net (Duke Normandin) Date: Wed, 18 Feb 2015 05:19:56 -0700 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating Message-ID: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> Begin forwarded message: Date: Wed, 18 Feb 2015 18:50:55 +1100 From: Jackson Doak To: Duke Normandin Cc: Ubuntu Developers Subject: Re: Gambit-C Version needs updating I tried to package it a year ago, it needs updating, but whoever takes it will have to be a fairly experienced developer. On Wed, Feb 18, 2015 at 10:38 AM, Duke Normandin wrote: > Hey .... > > Any chance of getting Gambit-C brought up to current? TIA ... > -- > Duke > ><> From mikael.rcv at gmail.com Wed Feb 18 07:41:49 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 18 Feb 2015 18:11:49 +0530 Subject: [gambit-list] Newbie Checking in In-Reply-To: <20150218053515.ea5831e3538592fff1193dab@ml1.net> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> <5E847D65-B454-4266-9C28-7682CE9BA365@iro.umontreal.ca> <20150217103555.a4bb018d8622acb62895d390@ml1.net> <20150218053515.ea5831e3538592fff1193dab@ml1.net> Message-ID: Yeah, or SSL could be turned off here because for what is it needed when reading an ML archive anyhow. 2015-02-18 18:05 GMT+05:30 Duke Normandin : > On Wed, 18 Feb 2015 17:55:30 +0530 > Mikael wrote: > > > Noone got an updated SSL certificate, just click through the "I > > understand" thing. > > > > If you want to donate a 10-year SSL certificate to fix it, feel > > free to, I guess. > > > > 2015-02-17 23:05 GMT+05:30 Duke Normandin : > > > > > On Tue, 17 Feb 2015 12:24:18 -0500 > > > Marc Feeley wrote: > > > > > > > Did you try > > > > https://mercure.iro.umontreal.ca/pipermail/gambit-list/ ? > > > > > > > > It works for me. > > > > > > > > Marc > > > > > > > > > On Feb 17, 2015, at 10:36 AM, Duke Normandin > > > > > wrote: > > > > > > > > > > Is this list active? Access to the archives seems to be > > > > > hosed!! > > > > > -- > > > > > > > > > > I did!! This is what I get in my default Chrome browser: > > > > > > [quote] > > > Your connection is not private > > > > > > Attackers might be trying to steal your information from > > > mercure.iro.umontreal.ca (for example, passwords, messages, or > > > credit cards). > > > > > > This server could not prove that it is mercure.iro.umontreal.ca; > > > its security certificate is not trusted by your computer's > > > operating system. This may be caused by a misconfiguration or an > > > attacker intercepting your connection. > > > [/quote] > > > > > > Do you have any pull with the sysadmin at umontreal? :) > > I don't think so!!! What's wrong with umontreal keeping their > security stuff up-to-date like every other site in the world??? :? > > -- > Duke > ><> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mikael.rcv at gmail.com Wed Feb 18 07:43:17 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 18 Feb 2015 18:13:17 +0530 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating In-Reply-To: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> References: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> Message-ID: Wait, what's the issue, it compiles perfectly out of the box e.g. 4.7.0?? What's its current version? 2015-02-18 17:49 GMT+05:30 Duke Normandin : > > > Begin forwarded message: > > Date: Wed, 18 Feb 2015 18:50:55 +1100 > From: Jackson Doak > To: Duke Normandin > Cc: Ubuntu Developers > Subject: Re: Gambit-C Version needs updating > > > I tried to package it a year ago, it needs updating, but whoever > takes it will have to be a fairly experienced developer. > > On Wed, Feb 18, 2015 at 10:38 AM, Duke Normandin > wrote: > > > Hey .... > > > > Any chance of getting Gambit-C brought up to current? TIA ... > > -- > > Duke > > ><> > _______________________________________________ > 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: From mikael.rcv at gmail.com Wed Feb 18 07:25:30 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 18 Feb 2015 17:55:30 +0530 Subject: [gambit-list] Newbie Checking in In-Reply-To: <20150217103555.a4bb018d8622acb62895d390@ml1.net> References: <20150217083636.e8d296d2501b71a6630e7bae@ml1.net> <5E847D65-B454-4266-9C28-7682CE9BA365@iro.umontreal.ca> <20150217103555.a4bb018d8622acb62895d390@ml1.net> Message-ID: Noone got an updated SSL certificate, just click through the "I understand" thing. If you want to donate a 10-year SSL certificate to fix it, feel free to, I guess. 2015-02-17 23:05 GMT+05:30 Duke Normandin : > On Tue, 17 Feb 2015 12:24:18 -0500 > Marc Feeley wrote: > > > Did you try > > https://mercure.iro.umontreal.ca/pipermail/gambit-list/ ? > > > > It works for me. > > > > Marc > > > > > On Feb 17, 2015, at 10:36 AM, Duke Normandin > > > wrote: > > > > > > Is this list active? Access to the archives seems to be hosed!! > > > -- > > > > I did!! This is what I get in my default Chrome browser: > > [quote] > Your connection is not private > > Attackers might be trying to steal your information from > mercure.iro.umontreal.ca (for example, passwords, messages, or > credit cards). > > This server could not prove that it is mercure.iro.umontreal.ca; > its security certificate is not trusted by your computer's > operating system. This may be caused by a misconfiguration or an > attacker intercepting your connection. > [/quote] > > Do you have any pull with the sysadmin at umontreal? :) > -- > Duke > ><> > _______________________________________________ > 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: From dukeofperl at ml1.net Wed Feb 18 08:50:53 2015 From: dukeofperl at ml1.net (Duke Normandin) Date: Wed, 18 Feb 2015 06:50:53 -0700 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating In-Reply-To: References: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> Message-ID: <20150218065053.88d081e38a19cfc0e281d51a@ml1.net> On Wed, 18 Feb 2015 18:13:17 +0530 Mikael wrote: > Wait, what's the issue, it compiles perfectly out of the box e.g. > 4.7.0?? > > What's its current version? 4.2.8 Whenever I try to "compile out-of-the-box" - I wind up IN the box!! :D -- Duke ><> From feeley at iro.umontreal.ca Wed Feb 18 10:50:19 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Wed, 18 Feb 2015 10:50:19 -0500 Subject: [gambit-list] Compiling a gambit program with XCode In-Reply-To: <62C64BA1-CE49-458B-898A-F28A1766A1F9@me.com> References: <5D3D595B-D53B-48D8-9000-A9EAC53E1163@iro.umontreal.ca> <62C64BA1-CE49-458B-898A-F28A1766A1F9@me.com> Message-ID: <8643CA01-E6FC-4D69-A832-5DA9EEE97BFD@iro.umontreal.ca> Make sure all the files (including the Gambit lib) are compiled using clang++. You have to force this somehow because by default .c files are compiled using clang. Also, make sure you are compiling to x86_64 in all cases. Marc > On Feb 18, 2015, at 9:31 AM, Francois Magnan wrote: > > > Hi, > > Ah? yes. XCode treated them as errors by default! > Now compilation succeeds but at link time I get errors for all used gambit functions: > > Undefined symbols for architecture x86_64: > "___cleanup()", referenced from: > gambit_cleanup() in cefsimple_mac.o > "___release_scmobj(long)", referenced from: > factorial(char*) in program.o > "___propagate_error(long)", referenced from: > factorial(char*) in program.o > "___setup_params_reset(___setup_params_struct*)", referenced from: > gambit_setup() in cefsimple_mac.o > ? > > > > Note that I tried to compile the program.c using the clang++ and clang because there are C++ files in the project. > Here is the full link command generated by XCode: > > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -L/usr/local/Gambit-C/lib -F/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -filelist /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple.LinkFileList -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-ObjC -Wl,-pie -Wl,-search_paths_first -Wl,-headerpad_max_install_names /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/Debug/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/libcef_dll/Debug/libcef_dll_wrapper.a -lpthread -framework Cocoa -framework AppKit -lgambc -Xlinker -dependency_info -Xlinker /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple_dependency_info.dat -o /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug/cefsimple.app/Contents/MacOS/cefsimple > > > What am I missing? > Thank you, > Francois > >> On Feb 17, 2015, at 2:13 PM, Marc Feeley wrote: >> >> All of those messages are warnings. Just add a compile flag to remove the warnings (and not treat them as errors). I don?t know what the flag is for clang. >> >> Marc >> >>> On Feb 17, 2015, at 12:30 PM, Francois Magnan wrote: >>> >>> Salut Marc, >>> >>> I?m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example: >>> >>> ???? program.scm ????? >>> >>> (c-define (factorial n) (char-string) char-string "factorial" "" >>> (number->string (fact (string->number n)))) >>> >>> >>> >>> (define (fact n) >>> (if (= n 0) >>> 1 >>> (* n (fact (- n 1))))) >>> >>> ???? program.scm ????? >>> >>> >>> >>> Then I call: >>> >>> gsc -link program >>> >>> and that generated program_.c and program.c >>> >>> I then add those two files to my XCode project and then >>> >>> ? Add the /usr/local/Gambit-C/include to my headers search path >>> ? Add the /usr/local/Gambit-C/lib to my libraries search path >>> ? Add -lgambc as a linked flag >>> ? Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time >>> >>> But when I compile the project I get a series of errors: >>> >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' >>> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ?___ps' >>> >>> >>> >>> What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app. >>> >>> Thank you, >>> Francois Magnan >>> >>> >>> >> > -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From lucier at math.purdue.edu Wed Feb 18 11:21:44 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Wed, 18 Feb 2015 11:21:44 -0500 Subject: [gambit-list] Building gambit with --enable-test-coverage Message-ID: <4A9BC880-9D4F-4988-81EC-1E6B1CC04FA8@math.purdue.edu> I've tried several ways to build gambit with test coverage. Gcc has problems with compiling gambit-generated C code with test coverage and profiling arcs; the PR is here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64928 So I tried LLVM on Mac OS X. Things got stuck compiling _t-univ.scm (at least, I ran out of patience). Which led me to wonder: can Gambit be configured not to incorporate _t-univ.scm? I don't think I ever use or need it, and it's the biggest thing in gsc/. Brad -------------- next part -------------- An HTML attachment was scrubbed... URL: From magnan at categoricaldesign.com Wed Feb 18 11:27:55 2015 From: magnan at categoricaldesign.com (Francois Magnan) Date: Wed, 18 Feb 2015 11:27:55 -0500 Subject: [gambit-list] Building gambit with --enable-test-coverage In-Reply-To: <4A9BC880-9D4F-4988-81EC-1E6B1CC04FA8@math.purdue.edu> References: <4A9BC880-9D4F-4988-81EC-1E6B1CC04FA8@math.purdue.edu> Message-ID: Hi, I also have problems compiling _t-univ.scm with clang or clang++. I left it working with clang for at least 6 hours and it never finished. I have the latest XCode tools: clang -v Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn) Target: x86_64-apple-darwin14.1.0 Thread model: posix Is there a simple way to remove it by hand in the meantime? Francois > On Feb 18, 2015, at 11:21 AM, Bradley Lucier wrote: > > I've tried several ways to build gambit with test coverage. > > Gcc has problems with compiling gambit-generated C code with test coverage and profiling arcs; the PR is here: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64928 > > So I tried LLVM on Mac OS X. Things got stuck compiling _t-univ.scm (at least, I ran out of patience). > > Which led me to wonder: can Gambit be configured not to incorporate _t-univ.scm? I don't think I ever use or need it, and it's the biggest thing in gsc/. > > Brad > _______________________________________________ > 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: From feeley at iro.umontreal.ca Wed Feb 18 12:01:57 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Wed, 18 Feb 2015 12:01:57 -0500 Subject: [gambit-list] Building gambit with --enable-test-coverage In-Reply-To: <4A9BC880-9D4F-4988-81EC-1E6B1CC04FA8@math.purdue.edu> References: <4A9BC880-9D4F-4988-81EC-1E6B1CC04FA8@math.purdue.edu> Message-ID: <1DAA8B03-BA82-44B0-96DA-56F6E7756C04@iro.umontreal.ca> You can?t configure it out, but you could change the makefiles to not compile it (but you need to bootstrap Gambit first). The proper solution is probably to chop _t-univ.scm into smaller files, like for _t-c-[123].scm . File an issue on github and I will add this to my todo. Marc > On Feb 18, 2015, at 11:21 AM, Bradley Lucier wrote: > > I've tried several ways to build gambit with test coverage. > > Gcc has problems with compiling gambit-generated C code with test coverage and profiling arcs; the PR is here: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64928 > > So I tried LLVM on Mac OS X. Things got stuck compiling _t-univ.scm (at least, I ran out of patience). > > Which led me to wonder: can Gambit be configured not to incorporate _t-univ.scm? I don't think I ever use or need it, and it's the biggest thing in gsc/. > > Brad -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From lucier at math.purdue.edu Wed Feb 18 12:17:41 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Wed, 18 Feb 2015 12:17:41 -0500 Subject: [gambit-list] Fwd: Building gambit with --enable-test-coverage References: <12BE79F4-1EC8-43CD-8CC0-BF00FE024EF8@purdue.edu> Message-ID: <07D3B9F1-9544-4E08-A5E0-DD3A1F5F6685@math.purdue.edu> Begin forwarded message: > From: Bradley Lucier > Subject: Re: Building gambit with --enable-test-coverage > Date: February 18, 2015 at 12:15:16 PM EST > To: Marc Feeley > Cc: Bradley Lucier , Bradley Lucier , Gambit List > > I think _t-univ.scm is useless for most people, so I have the following suggestion: > > Distribute gambit in git with _t-univ.c not incorporated into the build by ?make from-scratch?. > > Then add an ?enable-universal? configure option to rebuild gambit with _t-univ.scm if someone wants it. > > Then perhaps later we can have an ?enable-universal-remote? configuration option. > > Brad From hendrik at topoi.pooq.com Wed Feb 18 13:06:39 2015 From: hendrik at topoi.pooq.com (Hendrik Boom) Date: Wed, 18 Feb 2015 13:06:39 -0500 Subject: [gambit-list] Compiling a gambit program with XCode In-Reply-To: <8643CA01-E6FC-4D69-A832-5DA9EEE97BFD@iro.umontreal.ca> References: <5D3D595B-D53B-48D8-9000-A9EAC53E1163@iro.umontreal.ca> <62C64BA1-CE49-458B-898A-F28A1766A1F9@me.com> <8643CA01-E6FC-4D69-A832-5DA9EEE97BFD@iro.umontreal.ca> Message-ID: <20150218180639.GA3399@topoi.pooq.com> On Wed, Feb 18, 2015 at 10:50:19AM -0500, Marc Feeley wrote: > Make sure all the files (including the Gambit lib) are compiled using clang++. You have to force this somehow because by default .c files are compiled using clang. Also, make sure you are compiling to x86_64 in all cases. Yeah. C++'s sales point initially was that it was compatible with C. No more. -- hendrik From mikael.rcv at gmail.com Wed Feb 18 18:27:19 2015 From: mikael.rcv at gmail.com (Mikael) Date: Thu, 19 Feb 2015 04:57:19 +0530 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating In-Reply-To: <20150218065053.88d081e38a19cfc0e281d51a@ml1.net> References: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> <20150218065053.88d081e38a19cfc0e281d51a@ml1.net> Message-ID: Wait, something is weird - Gambit requires zero configuration to function on Ubuntu/Debian. It's a mystery to me what the ML poster may have meant by "fairly experienced developer". Any idea? 2015-02-18 19:20 GMT+05:30 Duke Normandin : > On Wed, 18 Feb 2015 18:13:17 +0530 > > > Wait, what's the issue, it compiles perfectly out of the box e.g. > > 4.7.0?? > > > > What's its current version? > > 4.2.8 > > Whenever I try to "compile out-of-the-box" - I wind up IN the > box!! :D > -- > Duke > ><> > 2015-02-18 17:49 GMT+05:30 Duke Normandin : > > > Begin forwarded message: > > Date: Wed, 18 Feb 2015 18:50:55 +1100 > From: Jackson Doak > To: Duke Normandin > Cc: Ubuntu Developers > Subject: Re: Gambit-C Version needs updating > > > I tried to package it a year ago, it needs updating, but whoever > takes it will have to be a fairly experienced developer. > > On Wed, Feb 18, 2015 at 10:38 AM, Duke Normandin > wrote: > > > Hey .... > > > > Any chance of getting Gambit-C brought up to current? TIA ... > > -- > > Duke > > ><> > _______________________________________________ > 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: From dukeofperl at ml1.net Wed Feb 18 18:32:11 2015 From: dukeofperl at ml1.net (Duke Normandin) Date: Wed, 18 Feb 2015 16:32:11 -0700 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating In-Reply-To: References: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> <20150218065053.88d081e38a19cfc0e281d51a@ml1.net> Message-ID: <20150218163211.0a651dfd6cbc57ff9d381fa3@ml1.net> On Thu, 19 Feb 2015 04:57:19 +0530 Mikael wrote: > Wait, something is weird - Gambit requires zero configuration to > function on Ubuntu/Debian. > > It's a mystery to me what the ML poster may have meant by "fairly > experienced developer". > > Any idea? Nope!! Zero idea! He's one of the Ubuntu developers, so maybe he means the whole process of putting together a `.deb' package? Not sure!! -- Duke ><> From mikael.rcv at gmail.com Thu Feb 19 03:54:30 2015 From: mikael.rcv at gmail.com (Mikael) Date: Thu, 19 Feb 2015 14:24:30 +0530 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating In-Reply-To: <20150218164244.efcf75108df0fab1444577ef@ml1.net> References: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> <20150218065053.88d081e38a19cfc0e281d51a@ml1.net> <20150218163211.0a651dfd6cbc57ff9d381fa3@ml1.net> <20150218164244.efcf75108df0fab1444577ef@ml1.net> Message-ID: Duke and maybe Jackson, So https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 says Ubuntu/Debian has had Gambit split up in four packages: gambc, libgambc4, libgambc4-dev, gambc-doc . I don't see why this would be a low-demand package, except that for the reason that compiling it is so simple there's little to no reason to do it yourself :) I essentially don't see why not exactly the same http://www.iro.umontreal.ca/~gambit/download/gambit/v4.*/source/gambc-v4_*-devel.tgz => Ubuntu package script as used with 4.2.8 wouldn't work with 4.7.0. Was this done manually from scratch for each package update by the former maintainer and he left with the knowledge? Since 4.2.8, nothing changed in how Gambit is linked or built, and essentially nothing changed with regard to configure script arguments. Historically there was one single potential issue, which was that Gambit doesn't work smoothly with some GCC versions in the 4.2 and 4.3 series, though with all >= 4.6 all is fine, and I guess that's what Ubuntu uses nowadays anyhow, anyhow so consideration was needed on that point. Anyhow to sum up from my end, my five cents to this conversation is that supposedly the packaging task is trivial. Mikael 2015-02-19 5:12 GMT+05:30 Duke Normandin : > > Would you mind emailing him and asking? > > > > The only thing I can see would be if Gambit wouldn't be nice with > > the OS' bundled GCC version. > > Could do!! > > But I'm thinking that they don't want to go through the > bother of putting a "package" together for software experiencing > very little demand (in their mind). > > -- > Duke > ><> > 2015-02-19 5:21 GMT+05:30 Duke Normandin : > > Would you mind emailing him and asking? > > I just sent Jackson Doak of Ubuntu an email asking him if they > would maintain the Gambit-C package, or whether the "maintainer" > has to originate from the Gambit-C community. > -- > Duke > ><> 2015-02-19 8:14 GMT+05:30 Duke Normandin : > > > Begin forwarded message: > > Date: Thu, 19 Feb 2015 13:38:04 +1100 > From: Jackson Doak > To: Duke Normandin > Subject: Re: Back with that Gambit-C issue > > > The maintainer can be from anywhere. The old packaging required the > compile to be run twice, but i'm not sure if that's still needed. > It's just a case of finding someone with the time. > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 and > https://bugs.launchpad.net/ubuntu/+source/gambc/+bug/422034 are the > bugs asking for adoption > > On Thu, Feb 19, 2015 at 10:48 AM, Duke Normandin > wrote: > > > Hey Jackson ... > > > > The Gambit gurus are telling me that the software compiles with > > zero issues (for someone that knows what their doing I suppose). > > > > Would that fact be enough to convince somebody at Ubuntu to > > maintain Gambit-C? Or does the maintainer *have* to come from the > > Gambit-C community? > > -- > Duke > ><> > 2015-02-19 8:14 GMT+05:30 Duke Normandin : > > > Begin forwarded message: > > Date: Thu, 19 Feb 2015 13:38:04 +1100 > From: Jackson Doak > To: Duke Normandin > Subject: Re: Back with that Gambit-C issue > > > The maintainer can be from anywhere. The old packaging required the > compile to be run twice, but i'm not sure if that's still needed. > It's just a case of finding someone with the time. > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 and > https://bugs.launchpad.net/ubuntu/+source/gambc/+bug/422034 are the > bugs asking for adoption > > On Thu, Feb 19, 2015 at 10:48 AM, Duke Normandin > wrote: > > > Hey Jackson ... > > > > The Gambit gurus are telling me that the software compiles with > > zero issues (for someone that knows what their doing I suppose). > > > > Would that fact be enough to convince somebody at Ubuntu to > > maintain Gambit-C? Or does the maintainer *have* to come from the > > Gambit-C community? > > -- > Duke > ><> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From noskcaj at ubuntu.com Thu Feb 19 03:57:46 2015 From: noskcaj at ubuntu.com (Jackson Doak) Date: Thu, 19 Feb 2015 19:57:46 +1100 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating In-Reply-To: References: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> <20150218065053.88d081e38a19cfc0e281d51a@ml1.net> <20150218163211.0a651dfd6cbc57ff9d381fa3@ml1.net> <20150218164244.efcf75108df0fab1444577ef@ml1.net> Message-ID: I said it was difficult because of the old Packaging being writers. It might not be an issue anymore On 19 Feb 2015 19:54, "Mikael" wrote: > Duke and maybe Jackson, > > So https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 says > Ubuntu/Debian has had Gambit split up in four packages: gambc, libgambc4, > libgambc4-dev, gambc-doc . > > I don't see why this would be a low-demand package, except that for the > reason that compiling it is so simple there's little to no reason to do it > yourself :) > > I essentially don't see why not exactly the same > http://www.iro.umontreal.ca/~gambit/download/gambit/v4.*/source/gambc-v4_*-devel.tgz > > => Ubuntu package script as used with 4.2.8 wouldn't work with 4.7.0. > > Was this done manually from scratch for each package update by the former > maintainer and he left with the knowledge? > > > > Since 4.2.8, nothing changed in how Gambit is linked or built, and > essentially nothing changed with regard to configure script arguments. > > Historically there was one single potential issue, which was that Gambit > doesn't work smoothly with some GCC versions in the 4.2 and 4.3 series, > though with all >= 4.6 all is fine, and I guess that's what Ubuntu uses > nowadays anyhow, anyhow so consideration was needed on that point. > > Anyhow to sum up from my end, my five cents to this conversation is that > supposedly the packaging task is trivial. > > Mikael > > > 2015-02-19 5:12 GMT+05:30 Duke Normandin : > >> > Would you mind emailing him and asking? >> > >> > The only thing I can see would be if Gambit wouldn't be nice with >> > the OS' bundled GCC version. >> >> Could do!! >> >> But I'm thinking that they don't want to go through the >> bother of putting a "package" together for software experiencing >> very little demand (in their mind). >> >> -- >> Duke >> ><> >> > > > 2015-02-19 5:21 GMT+05:30 Duke Normandin : > >> > Would you mind emailing him and asking? >> >> I just sent Jackson Doak of Ubuntu an email asking him if they >> would maintain the Gambit-C package, or whether the "maintainer" >> has to originate from the Gambit-C community. >> -- >> Duke >> ><> > > > > 2015-02-19 8:14 GMT+05:30 Duke Normandin : > >> >> >> Begin forwarded message: >> >> Date: Thu, 19 Feb 2015 13:38:04 +1100 >> From: Jackson Doak >> To: Duke Normandin >> Subject: Re: Back with that Gambit-C issue >> >> >> The maintainer can be from anywhere. The old packaging required the >> compile to be run twice, but i'm not sure if that's still needed. >> It's just a case of finding someone with the time. >> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 and >> https://bugs.launchpad.net/ubuntu/+source/gambc/+bug/422034 are the >> bugs asking for adoption >> >> On Thu, Feb 19, 2015 at 10:48 AM, Duke Normandin >> wrote: >> >> > Hey Jackson ... >> > >> > The Gambit gurus are telling me that the software compiles with >> > zero issues (for someone that knows what their doing I suppose). >> > >> > Would that fact be enough to convince somebody at Ubuntu to >> > maintain Gambit-C? Or does the maintainer *have* to come from the >> > Gambit-C community? >> >> -- >> Duke >> ><> >> > > > > 2015-02-19 8:14 GMT+05:30 Duke Normandin : > >> >> >> Begin forwarded message: >> >> Date: Thu, 19 Feb 2015 13:38:04 +1100 >> From: Jackson Doak >> To: Duke Normandin >> Subject: Re: Back with that Gambit-C issue >> >> >> The maintainer can be from anywhere. The old packaging required the >> compile to be run twice, but i'm not sure if that's still needed. >> It's just a case of finding someone with the time. >> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 and >> https://bugs.launchpad.net/ubuntu/+source/gambc/+bug/422034 are the >> bugs asking for adoption >> >> On Thu, Feb 19, 2015 at 10:48 AM, Duke Normandin >> wrote: >> >> > Hey Jackson ... >> > >> > The Gambit gurus are telling me that the software compiles with >> > zero issues (for someone that knows what their doing I suppose). >> > >> > Would that fact be enough to convince somebody at Ubuntu to >> > maintain Gambit-C? Or does the maintainer *have* to come from the >> > Gambit-C community? >> >> -- >> Duke >> ><> >> > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mikael.rcv at gmail.com Thu Feb 19 04:22:35 2015 From: mikael.rcv at gmail.com (Mikael) Date: Thu, 19 Feb 2015 14:52:35 +0530 Subject: [gambit-list] Fw: Re: Gambit-C Version needs updating In-Reply-To: References: <20150218051956.4e3601f1c2bca3b46bd8ec82@ml1.net> <20150218065053.88d081e38a19cfc0e281d51a@ml1.net> <20150218163211.0a651dfd6cbc57ff9d381fa3@ml1.net> <20150218164244.efcf75108df0fab1444577ef@ml1.net> Message-ID: Jackson, thanks for your response - wait, here, what's "writers"? So by "old Packaging" you mean that since the days of the 4.2.8 package, Ubuntu changed packaging system? Thanks! 2015-02-19 14:27 GMT+05:30 Jackson Doak : > I said it was difficult because of the old Packaging being writers. It > might not be an issue anymore > On 19 Feb 2015 19:54, "Mikael" wrote: > >> Duke and maybe Jackson, >> >> So https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 says >> Ubuntu/Debian has had Gambit split up in four packages: gambc, libgambc4, >> libgambc4-dev, gambc-doc . >> >> I don't see why this would be a low-demand package, except that for the >> reason that compiling it is so simple there's little to no reason to do it >> yourself :) >> >> I essentially don't see why not exactly the same >> http://www.iro.umontreal.ca/~gambit/download/gambit/v4.*/source/gambc-v4_*-devel.tgz >> >> => Ubuntu package script as used with 4.2.8 wouldn't work with 4.7.0. >> >> Was this done manually from scratch for each package update by the former >> maintainer and he left with the knowledge? >> >> >> >> Since 4.2.8, nothing changed in how Gambit is linked or built, and >> essentially nothing changed with regard to configure script arguments. >> >> Historically there was one single potential issue, which was that Gambit >> doesn't work smoothly with some GCC versions in the 4.2 and 4.3 series, >> though with all >= 4.6 all is fine, and I guess that's what Ubuntu uses >> nowadays anyhow, anyhow so consideration was needed on that point. >> >> Anyhow to sum up from my end, my five cents to this conversation is that >> supposedly the packaging task is trivial. >> >> Mikael >> >> >> 2015-02-19 5:12 GMT+05:30 Duke Normandin : >> >>> > Would you mind emailing him and asking? >>> > >>> > The only thing I can see would be if Gambit wouldn't be nice with >>> > the OS' bundled GCC version. >>> >>> Could do!! >>> >>> But I'm thinking that they don't want to go through the >>> bother of putting a "package" together for software experiencing >>> very little demand (in their mind). >>> >>> -- >>> Duke >>> ><> >>> >> >> >> 2015-02-19 5:21 GMT+05:30 Duke Normandin : >> >>> > Would you mind emailing him and asking? >>> >>> I just sent Jackson Doak of Ubuntu an email asking him if they >>> would maintain the Gambit-C package, or whether the "maintainer" >>> has to originate from the Gambit-C community. >>> -- >>> Duke >>> ><> >> >> >> >> 2015-02-19 8:14 GMT+05:30 Duke Normandin : >> >>> >>> >>> Begin forwarded message: >>> >>> Date: Thu, 19 Feb 2015 13:38:04 +1100 >>> From: Jackson Doak >>> To: Duke Normandin >>> Subject: Re: Back with that Gambit-C issue >>> >>> >>> The maintainer can be from anywhere. The old packaging required the >>> compile to be run twice, but i'm not sure if that's still needed. >>> It's just a case of finding someone with the time. >>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 and >>> https://bugs.launchpad.net/ubuntu/+source/gambc/+bug/422034 are the >>> bugs asking for adoption >>> >>> On Thu, Feb 19, 2015 at 10:48 AM, Duke Normandin >>> wrote: >>> >>> > Hey Jackson ... >>> > >>> > The Gambit gurus are telling me that the software compiles with >>> > zero issues (for someone that knows what their doing I suppose). >>> > >>> > Would that fact be enough to convince somebody at Ubuntu to >>> > maintain Gambit-C? Or does the maintainer *have* to come from the >>> > Gambit-C community? >>> >>> -- >>> Duke >>> ><> >>> >> >> >> >> 2015-02-19 8:14 GMT+05:30 Duke Normandin : >> >>> >>> >>> Begin forwarded message: >>> >>> Date: Thu, 19 Feb 2015 13:38:04 +1100 >>> From: Jackson Doak >>> To: Duke Normandin >>> Subject: Re: Back with that Gambit-C issue >>> >>> >>> The maintainer can be from anywhere. The old packaging required the >>> compile to be run twice, but i'm not sure if that's still needed. >>> It's just a case of finding someone with the time. >>> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677709 and >>> https://bugs.launchpad.net/ubuntu/+source/gambc/+bug/422034 are the >>> bugs asking for adoption >>> >>> On Thu, Feb 19, 2015 at 10:48 AM, Duke Normandin >>> wrote: >>> >>> > Hey Jackson ... >>> > >>> > The Gambit gurus are telling me that the software compiles with >>> > zero issues (for someone that knows what their doing I suppose). >>> > >>> > Would that fact be enough to convince somebody at Ubuntu to >>> > maintain Gambit-C? Or does the maintainer *have* to come from the >>> > Gambit-C community? >>> >>> -- >>> Duke >>> ><> >>> >> >> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From lucier at math.purdue.edu Mon Feb 23 11:03:19 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Mon, 23 Feb 2015 11:03:19 -0500 Subject: [gambit-list] Any big-time bit-twiddlers out there? Message-ID: <2DAB5ECD-27C2-4E8C-91FD-337578787D4B@math.purdue.edu> Do any of you Gambit users rely on fast execution of the bitwise-* and *-bit-field operations on bignums? I?m thinking about (a) cleaning up the implementation and (b) speeding things up a bit. But, is there any point? Brad From thewhimer at gmail.com Sat Feb 14 23:12:53 2015 From: thewhimer at gmail.com (Gmail) Date: Sun, 15 Feb 2015 12:12:53 +0800 Subject: [gambit-list] Embed gambit in c main loop, try to get 'compile-*' and 'load-*' working Message-ID: <9B8A670F-1C3E-45E7-8AD0-E7FCA55088F1@gmail.com> Hi, I had gambit embedded in a c main loop, setup and started ##repl-debug-main, and I got a working repl with ?load? function. But have yet to find a way to get ?compile-*? working, so I cannot do compile and load like in gsc. Would someone point me to the right direction? Linked with -lgambc -lgambcgsc, static libraries, os x. Thanks for your time. Here follows the code snippets that might be relevant. ? Code snippet 1: ; Start a repl in my init.scm. By the way, I was trying to start gambit from a separate thread, so there?s a loop at the end of init.scm. (thread-start! (make-thread (lambda () (##repl-debug-main)))) (let loop () (thread-sleep! 1) (loop)) ? Code snippet 2: // Just a normal setup. void gambit_setup() { /* * Setup the Scheme library by calling "___setup" with appropriate * parameters. The call to "___setup_params_reset" sets all * parameters to their default setting. */ // Taken from gambit, lib/main.c. int debug_settings = ___DEBUG_SETTINGS_INITIAL; // -:d- (force repl io to be stdin/stdout since terminal isn't // -attached) debug_settings = (debug_settings & ~___DEBUG_SETTINGS_REPL_MASK) | (___DEBUG_SETTINGS_REPL_STDIO << ___DEBUG_SETTINGS_REPL_SHIFT); // -:da debug_settings = (debug_settings & ~___DEBUG_SETTINGS_UNCAUGHT_MASK) | (___DEBUG_SETTINGS_UNCAUGHT_ALL << ___DEBUG_SETTINGS_UNCAUGHT_SHIFT); // -:dr debug_settings = (debug_settings & ~___DEBUG_SETTINGS_ERROR_MASK) | (___DEBUG_SETTINGS_ERROR_REPL << ___DEBUG_SETTINGS_ERROR_SHIFT); // -:d2 // debug_settings = // (debug_settings & ~___DEBUG_SETTINGS_LEVEL_MASK) // | (2 << ___DEBUG_SETTINGS_LEVEL_SHIFT); ___setup_params_struct setup_params; ___setup_params_reset (&setup_params); setup_params.version = ___VERSION; setup_params.linker = SCHEME_LIBRARY_LINKER; setup_params.debug_settings = debug_settings; ___setup (&setup_params); } From fmagnan at me.com Tue Feb 17 12:30:01 2015 From: fmagnan at me.com (Francois Magnan) Date: Tue, 17 Feb 2015 12:30:01 -0500 Subject: [gambit-list] Compiling a gambit program with XCode Message-ID: Salut Marc, I?m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example: ???? program.scm ????? (c-define (factorial n) (char-string) char-string "factorial" "" (number->string (fact (string->number n)))) (define (fact n) (if (= n 0) 1 (* n (fact (- n 1))))) ???? program.scm ????? Then I call: gsc -link program and that generated program_.c and program.c I then add those two files to my XCode project and then ? Add the /usr/local/Gambit-C/include to my headers search path ? Add the /usr/local/Gambit-C/lib to my libraries search path ? Add -lgambc as a linked flag ? Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time But when I compile the project I get a series of errors: /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ?___ps' What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app. Thank you, Francois Magnan -------------- next part -------------- An HTML attachment was scrubbed... URL: From fmagnan at me.com Wed Feb 18 09:31:37 2015 From: fmagnan at me.com (Francois Magnan) Date: Wed, 18 Feb 2015 09:31:37 -0500 Subject: [gambit-list] Compiling a gambit program with XCode In-Reply-To: <5D3D595B-D53B-48D8-9000-A9EAC53E1163@iro.umontreal.ca> References: <5D3D595B-D53B-48D8-9000-A9EAC53E1163@iro.umontreal.ca> Message-ID: <62C64BA1-CE49-458B-898A-F28A1766A1F9@me.com> Hi, Ah? yes. XCode treated them as errors by default! Now compilation succeeds but at link time I get errors for all used gambit functions: Undefined symbols for architecture x86_64: "___cleanup()", referenced from: gambit_cleanup() in cefsimple_mac.o "___release_scmobj(long)", referenced from: factorial(char*) in program.o "___propagate_error(long)", referenced from: factorial(char*) in program.o "___setup_params_reset(___setup_params_struct*)", referenced from: gambit_setup() in cefsimple_mac.o ? Note that I tried to compile the program.c using the clang++ and clang because there are C++ files in the project. Here is the full link command generated by XCode: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -L/usr/local/Gambit-C/lib -F/Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug -filelist /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple.LinkFileList -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-ObjC -Wl,-pie -Wl,-search_paths_first -Wl,-headerpad_max_install_names /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/Debug/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/libcef_dll/Debug/libcef_dll_wrapper.a -lpthread -framework Cocoa -framework AppKit -lgambc -Xlinker -dependency_info -Xlinker /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/cef.build/Debug/cefsimple.build/Objects-normal/x86_64/cefsimple_dependency_info.dat -o /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/Debug/cefsimple.app/Contents/MacOS/cefsimple What am I missing? Thank you, Francois > On Feb 17, 2015, at 2:13 PM, Marc Feeley wrote: > > All of those messages are warnings. Just add a compile flag to remove the warnings (and not treat them as errors). I don?t know what the flag is for clang. > > Marc > >> On Feb 17, 2015, at 12:30 PM, Francois Magnan wrote: >> >> Salut Marc, >> >> I?m trying to integrate a Gambit-C program into the XCode workflow. I tried a minimal example: >> >> ???? program.scm ????? >> >> (c-define (factorial n) (char-string) char-string "factorial" "" >> (number->string (fact (string->number n)))) >> >> >> >> (define (fact n) >> (if (= n 0) >> 1 >> (* n (fact (- n 1))))) >> >> ???? program.scm ????? >> >> >> >> Then I call: >> >> gsc -link program >> >> and that generated program_.c and program.c >> >> I then add those two files to my XCode project and then >> >> ? Add the /usr/local/Gambit-C/include to my headers search path >> ? Add the /usr/local/Gambit-C/lib to my libraries search path >> ? Add -lgambc as a linked flag >> ? Add gambit_setup() and gambit_cleanup() functions and call then at the appropriate time >> >> But when I compile the project I get a series of errors: >> >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:106:1: Variable '___result' is used uninitialized whenever 'if' condition is false >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u32_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s32_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:183:13: Unused label '___L__20_program' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___u64_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:174:1: Unused variable '___s64_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s32_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u64_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:214:13: Unused label '___L_factorial' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___s64_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:201:1: Unused variable '___u32_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:266:13: Unused label '___L_fact' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u64_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s64_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___u32_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:244:1: Unused variable '___s32_temp' >> /Users/magnan/Desktop/cef_binary_3.2295.2032_macosx64/cefsimple/program.c:437:1: Unused variable ?___ps' >> >> >> >> What am I doing wrong? I used to do that technique for iOS apps before but now it broke. I am trying to build a MaxOSX app. >> >> Thank you, >> Francois Magnan >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lucier at purdue.edu Wed Feb 18 12:15:16 2015 From: lucier at purdue.edu (Bradley Lucier) Date: Wed, 18 Feb 2015 12:15:16 -0500 Subject: [gambit-list] Building gambit with --enable-test-coverage In-Reply-To: <1DAA8B03-BA82-44B0-96DA-56F6E7756C04@iro.umontreal.ca> References: <4A9BC880-9D4F-4988-81EC-1E6B1CC04FA8@math.purdue.edu> <1DAA8B03-BA82-44B0-96DA-56F6E7756C04@iro.umontreal.ca> Message-ID: <12BE79F4-1EC8-43CD-8CC0-BF00FE024EF8@purdue.edu> I think _t-univ.scm is useless for most people, so I have the following suggestion: Distribute gambit in git with _t-univ.c not incorporated into the build by ?make from-scratch?. Then add an ?enable-universal? configure option to rebuild gambit with _t-univ.scm if someone wants it. Then perhaps later we can have an ?enable-universal-remote? configuration option. Brad From mo.falaschi at gmail.com Thu Feb 19 09:32:13 2015 From: mo.falaschi at gmail.com (Moreno Falaschi) Date: Thu, 19 Feb 2015 15:32:13 +0100 Subject: [gambit-list] LOPSTR 2015: 2nd Call for Papers Message-ID: ============================================================ 25th International Symposium on Logic-Based Program Synthesis and Transformation LOPSTR 2015 Special Issue of Formal Aspects of Computing http://alpha.diism.unisi.it/lopstr15/ University of Siena, Siena, IT, July 13-15, 2015 (co-located with PPDP 2015) DEADLINES Abstract submission: April 6, 2015 Paper/Extended abstract submission: April 13, 2015 ============================================================ The aim of the LOPSTR series is to stimulate and promote international research and collaboration on logic-based program development. LOPSTR is open to contributions in logic-based program development in any language paradigm. LOPSTR has a reputation for being a lively, friendly forum for presenting and discussing work in progress. Formal proceedings are produced only after the symposium so that authors can incorporate this feedback in the published papers. The 25th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2015) will be held at the University of Siena, Siena, Italy; previous symposia were held in Canterbury, Madrid, Leuven, Odense, Hagenberg, Coimbra, Valencia, Lyngby, Venice, London, Verona, Uppsala, Madrid, Paphos, London, Venice, Manchester, Leuven, Stockholm, Arnhem, Pisa, Louvain-la-Neuve, and Manchester. LOPSTR 2015 will be co-located with PPDP 2015 (International Symposium on Principles and Practice of Declarative Programming). Topics of interest cover all aspects of logic-based program development, all stages of the software life cycle, and issues of both programming-in-the-small and programming-in-the-large. Both full papers and extended abstracts describing applications in these areas are especially welcome. Contributions are welcome on all aspects of logic-based program development, including, but not limited to: * synthesis * transformation * specialization * composition * optimization * inversion * specification * analysis and verification * testing and certification * program and model manipulation * transformational techniques in SE * applications and tools Survey papers that present some aspects of the above topics from a new perspective, and application papers that describe experience with industrial applications are also welcome. Papers must describe original work, be written and presented in English, and must not substantially overlap with papers that have been published or that are simultaneously submitted to a journal, conference, or workshop with refereed proceedings. Work that already appeared in unpublished or informally published workshop proceedings may be submitted (please contact the PC chair in case of questions). Important Dates Abstract submission: April 6, 2015 Paper/Extended abstract submission: April 13, 2015 Notification: May 25, 2015 Camera-ready (for electronic pre-proceedings): June 15, 2015 Symposium: July 13-15, 2015 Submission Guidelines Authors should submit an electronic copy of the paper (written in English) in PDF, formatted in the Lecture Notes in Computer Science style. Each submission must include on its first page the paper title; authors and their affiliations; contact author's email; abstract; and three to four keywords which will be used to assist the PC in selecting appropriate reviewers for the paper. Page numbers should appear on the manuscript to help the reviewers in writing their report. Submissions cannot exceed 15 pages including references but excluding well-marked appendices not intended for publication. Reviewers are not required to read the appendices, and thus papers should be intelligible without them. Papers should be submitted via the Easychair submission website for LOPSTR 2015, which can be accessed through the website of LOPSTR 2015. Proceedings The formal post-conference proceedings will be published by Springer in the Lecture Notes in Computer Science series. Full papers can be directly accepted for publication in the formal proceedings, or accepted only for presentation at the symposium and inclusion in informal proceedings. After the symposium, all authors of extended abstracts and full papers accepted only for presentation will be invited to revise and/or extend their submissions in the light of the feedback solicited at the symposium. Then, after another round of reviewing, these revised papers may also be published in the formal proceedings. Special journal issue After the symposium, a selection of the best papers will be invited to a special issue of the 'Formal Aspects of Computing' journal. The submissions to the special issue must be substantial extensions of the proceedings versions and will undergo the usual journal reviewing process. Invited speakers Patrick Cousot, New York University, USA (Jointly with PPDP) Gilles Barthe, IMDEA Software Institute, Spain Dale Miller, INRIA and LIX/Ecole Polytechnique, France Program Committee Slim Abdennadher, German University of Cairo, Egypt Maria Alpuente, Universitat Politecnica de Valencia, Spain Demis Ballis, University of Udine, Italy Olaf Chitil, University of Kent, UK Michael Codish, Ben-Gurion University, Israel Moreno Falaschi, University of Siena, Italy (Program Chair) Jerome Feret, INRIA and ENS, France Maurizio Gabbrielli, University of Bologna, Italy Jurgen Giesl, RWTH Aachen University, Germany Miguel Gomez-Zamalloa, Complutense University of Madrid, Spain Arnaud Gotlieb, SIMULA Research Laboratory, Norway Gopal Gupta, University of Texas at Dallas, USA Manuel Hermenegildo, IMDEA, Spain Viktor Kuncak, EPFL Lausanne, Switzerland Luigi Liquori, INRIA Sophia-Antipolis Mediterranee, France Alexei Lisitsa, University of Liverpool, UK Narciso Marti-Oliet, Universidad Complutense de Madrid, Spain Jorge Navas, NASA, USA Kazuhiro Ogata, JAIST, Japan Carlos Olarte, ECT, Univ. Federal do Rio Grande do Norte, Brasil Catuscia Palamidessi, INRIA and Ecole Polytechnique, France Maurizio Proietti, IASI-CNR, Italy Albert Rubio, Universitat Politecnica de Catalunya, Barcelona, Spain Wim Vanhoof, University of Namur, Belgium Program and Symposium Chair: Moreno Falaschi, Dept. of Information Engineering and Mathematics, Univ. of Siena, Italy (moreno.falaschi at unisi.it) Organizing Committee Monica Bianchini, DIISM, Univ. of Siena, Italy Sara Brunetti, DIISM, Univ. of Siena, Italy Andrea Machetti, DIISM, Univ. of Siena, Italy Simonetta Palmas, DIISM, Univ. of Siena, Italy Maurizio Proietti, IASI-CNR, Italy Simone Rinaldi, DIISM, Univ. of Siena, Italy Elisa Tiezzi, DIISM, Univ. of Siena, Italy Sara Ugolini, Dip. Informatica, Univ. of Pisa -------------- next part -------------- An HTML attachment was scrubbed... URL: From moreno.falaschi at unisi.it Thu Feb 19 09:32:40 2015 From: moreno.falaschi at unisi.it (FALASCHI MORENO) Date: Thu, 19 Feb 2015 15:32:40 +0100 Subject: [gambit-list] PPDP 2015: 2nd call for papers Message-ID: <1d67d8e2dc3f3344de9be5278a34ab03@unisi.it> ====================================================================== Call for papers 17th International Symposium on Principles and Practice of Declarative Programming PPDP 2015 Special Issue of Science of Computer Programming (SCP) Siena, Italy, July 14-16, 2015 (co-located with LOPSTR 2015) http://costa.ls.fi.upm.es/ppdp15 ====================================================================== SUBMISSION DEADLINE: 20 MARCH, 2015 PPDP 2015 is a forum that brings together researchers from the declarative programming communities, including those working in the logic, constraint and functional programming paradigms, but also embracing languages, database languages, and knowledge representation languages. The goal is to stimulate research in the use of logical formalisms and methods for specifying, performing, and analyzing computations, including mechanisms for mobility, modularity, concurrency, object-orientation, security, verification and static analysis. Papers related to the use of declarative paradigms and tools in industry and education are especially solicited. Topics of interest include, but are not limited to * Functional programming * Logic programming * Answer-set programming * Functional-logic programming * Declarative visual languages * Constraint Handling Rules * Parallel implementation and concurrency * Monads, type classes and dependent type systems * Declarative domain-specific languages * Termination, resource analysis and the verification of declarative programs * Transformation and partial evaluation of declarative languages * Language extensions for security and tabulation * Probabilistic modeling in a declarative language and modeling reactivity * Memory management and the implementation of declarative systems * Practical experiences and industrial application This year the conference will be co-located with the 25th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2015). The conference will be held in Siena, Italy. Previous symposia were held at Canterbury (UK), Madrid (Spain), Leuven (Belgium), Odense (Denmark), Hagenberg (Austria), Coimbra (Portugal), Valencia (Spain), Wroclaw (Poland), Venice (Italy), Lisboa (Portugal), Verona (Italy), Uppsala (Sweden), Pittsburgh (USA), Florence (Italy), Montreal (Canada), and Paris (France). You might have a look at the contents of past PPDP symposia. Papers must describe original work, be written and presented in English, and must not substantially overlap with papers that have been published or that are simultaneously submitted to a journal, conference, or workshop with refereed proceedings. Work that already appeared in unpublished or informally published workshop proceedings may be submitted (please contact the PC chair in case of questions). After the symposium, a selection of the best papers will be invited to extend their submissions in the light of the feedback solicited at the symposium. The papers are expected to include at least 30% extra material over and above the PPDP version. Then, after another round of reviewing, these revised papers will be published in a special issue of SCP with a target publication date by Elsevier of 2016. Important Dates Abstract Submission: 14 March, 2015 Paper submission: 20 March, 2015 Notification: 14 May, 2015 Camera-ready: To be announced Symposium: 14-16 July, 2015 Authors should submit an electronic copy of the full paper in PDF. Papers should be submitted to the submission website for PPDP 2015. Each submission must include on its first page the paper title; authors and their affiliations; abstract; and three to four keywords. The keywords will be used to assist the program committee in selecting appropriate reviewers for the paper. Papers should consist of the equivalent of 12 pages under the ACM formatting guidelines. These guidelines are available online, along with formatting templates or style files. Submitted papers will be judged on the basis of significance, relevance, correctness, originality, and clarity. They should include a clear identification of what has been accomplished and why it is significant. Authors who wish to provide additional material to the reviewers beyond the 12-page limit can do so in clearly marked appendices: reviewers are not required to read such appendices. ----------------------------------------------------------------------- INVITED SPEAKERS Patrick Cousot, New York University, USA (Jointly with LOPSTR) Martin Hofmann, LMU Munich, Germany ----------------------------------------------------------------------- Program Committee Michael Adams, University of Utah, USA Puri Arenas, Complutense University of Madrid, Spain Amir Ben-Amram, Tel-Aviv Academic College, Israel Ines Castro, Universidade do Porto, Portugal Patrick Cousot, New York University, USA Gregory Duck, National University of Singapore, Singapore Fabio Fioravanti, University of Chieti-Pescara, Italy Thom Fr?hwirth, University of Ulm, Germany Roberto Giacobazzi, University of Verona, Italy Michael Hanus, CAU Kiel, Germany Andy King, University of Kent, UK F. L?pez-Fraguas, Complutense University of Madrid, Spain Ian Mackie, University of Sussex, UK Dale Miller, INRIA and LIX/Ecole Polytechnique, France Torsten Schaub, University of Potsdam, Germany Tom Schrijvers KU Leuven, Belgium Frank D. Valencia, CNRS and LIX, Ecole Polytechnique, France German Vidal, Universitat Politecnica de Valencia, Spain Marina Vos, University of Bath, UK Nobuko Yoshida, Imperial College London, UK Program Chair Elvira Albert Complutense University of Madrid C/ Profesor Garcia Santesmases E-28040 Madrid, Spain Email: elvira at sip.ucm.es Symposium Chair Moreno Falaschi Department of information engineering and mathematics University of Siena, Italy Email: moreno.falaschi at unisi.it From moreno.falaschi at unisi.it Thu Feb 19 09:28:17 2015 From: moreno.falaschi at unisi.it (FALASCHI MORENO) Date: Thu, 19 Feb 2015 15:28:17 +0100 Subject: [gambit-list] LOPSTR 2015: 2nd Call for Papers Message-ID: <0a2ba023519cbde344c65d07852fe909@unisi.it> ============================================================ 25th International Symposium on Logic-Based Program Synthesis and Transformation LOPSTR 2015 Special Issue of Formal Aspects of Computing http://alpha.diism.unisi.it/lopstr15/ University of Siena, Siena, IT, July 13-15, 2015 (co-located with PPDP 2015) DEADLINES Abstract submission: April 6, 2015 Paper/Extended abstract submission: April 13, 2015 ============================================================ The aim of the LOPSTR series is to stimulate and promote international research and collaboration on logic-based program development. LOPSTR is open to contributions in logic-based program development in any language paradigm. LOPSTR has a reputation for being a lively, friendly forum for presenting and discussing work in progress. Formal proceedings are produced only after the symposium so that authors can incorporate this feedback in the published papers. The 25th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2015) will be held at the University of Siena, Siena, Italy; previous symposia were held in Canterbury, Madrid, Leuven, Odense, Hagenberg, Coimbra, Valencia, Lyngby, Venice, London, Verona, Uppsala, Madrid, Paphos, London, Venice, Manchester, Leuven, Stockholm, Arnhem, Pisa, Louvain-la-Neuve, and Manchester. LOPSTR 2015 will be co-located with PPDP 2015 (International Symposium on Principles and Practice of Declarative Programming). Topics of interest cover all aspects of logic-based program development, all stages of the software life cycle, and issues of both programming-in-the-small and programming-in-the-large. Both full papers and extended abstracts describing applications in these areas are especially welcome. Contributions are welcome on all aspects of logic-based program development, including, but not limited to: * synthesis * transformation * specialization * composition * optimization * inversion * specification * analysis and verification * testing and certification * program and model manipulation * transformational techniques in SE * applications and tools Survey papers that present some aspects of the above topics from a new perspective, and application papers that describe experience with industrial applications are also welcome. Papers must describe original work, be written and presented in English, and must not substantially overlap with papers that have been published or that are simultaneously submitted to a journal, conference, or workshop with refereed proceedings. Work that already appeared in unpublished or informally published workshop proceedings may be submitted (please contact the PC chair in case of questions). Important Dates Abstract submission: April 6, 2015 Paper/Extended abstract submission: April 13, 2015 Notification: May 25, 2015 Camera-ready (for electronic pre-proceedings): June 15, 2015 Symposium: July 13-15, 2015 Submission Guidelines Authors should submit an electronic copy of the paper (written in English) in PDF, formatted in the Lecture Notes in Computer Science style. Each submission must include on its first page the paper title; authors and their affiliations; contact author's email; abstract; and three to four keywords which will be used to assist the PC in selecting appropriate reviewers for the paper. Page numbers should appear on the manuscript to help the reviewers in writing their report. Submissions cannot exceed 15 pages including references but excluding well-marked appendices not intended for publication. Reviewers are not required to read the appendices, and thus papers should be intelligible without them. Papers should be submitted via the Easychair submission website for LOPSTR 2015, which can be accessed through the website of LOPSTR 2015. Proceedings The formal post-conference proceedings will be published by Springer in the Lecture Notes in Computer Science series. Full papers can be directly accepted for publication in the formal proceedings, or accepted only for presentation at the symposium and inclusion in informal proceedings. After the symposium, all authors of extended abstracts and full papers accepted only for presentation will be invited to revise and/or extend their submissions in the light of the feedback solicited at the symposium. Then, after another round of reviewing, these revised papers may also be published in the formal proceedings. Special journal issue After the symposium, a selection of the best papers will be invited to a special issue of the 'Formal Aspects of Computing' journal. The submissions to the special issue must be substantial extensions of the proceedings versions and will undergo the usual journal reviewing process. Invited speakers Patrick Cousot, New York University, USA (Jointly with PPDP) Gilles Barthe, IMDEA Software Institute, Spain Dale Miller, INRIA and LIX/Ecole Polytechnique, France Program Committee Slim Abdennadher, German University of Cairo, Egypt Maria Alpuente, Universitat Politecnica de Valencia, Spain Demis Ballis, University of Udine, Italy Olaf Chitil, University of Kent, UK Michael Codish, Ben-Gurion University, Israel Moreno Falaschi, University of Siena, Italy (Program Chair) Jerome Feret, INRIA and ENS, France Maurizio Gabbrielli, University of Bologna, Italy Jurgen Giesl, RWTH Aachen University, Germany Miguel Gomez-Zamalloa, Complutense University of Madrid, Spain Arnaud Gotlieb, SIMULA Research Laboratory, Norway Gopal Gupta, University of Texas at Dallas, USA Manuel Hermenegildo, IMDEA, Spain Viktor Kuncak, EPFL Lausanne, Switzerland Luigi Liquori, INRIA Sophia-Antipolis Mediterranee, France Alexei Lisitsa, University of Liverpool, UK Narciso Marti-Oliet, Universidad Complutense de Madrid, Spain Jorge Navas, NASA, USA Kazuhiro Ogata, JAIST, Japan Carlos Olarte, ECT, Univ. Federal do Rio Grande do Norte, Brasil Catuscia Palamidessi, INRIA and Ecole Polytechnique, France Maurizio Proietti, IASI-CNR, Italy Albert Rubio, Universitat Politecnica de Catalunya, Barcelona, Spain Wim Vanhoof, University of Namur, Belgium Program and Symposium Chair: Moreno Falaschi, Dept. of Information Engineering and Mathematics, Univ. of Siena, Italy (moreno.falaschi at unisi.it) Organizing Committee Monica Bianchini, DIISM, Univ. of Siena, Italy Sara Brunetti, DIISM, Univ. of Siena, Italy Andrea Machetti, DIISM, Univ. of Siena, Italy Simonetta Palmas, DIISM, Univ. of Siena, Italy Maurizio Proietti, IASI-CNR, Italy Simone Rinaldi, DIISM, Univ. of Siena, Italy Elisa Tiezzi, DIISM, Univ. of Siena, Italy Sara Ugolini, Dip. Informatica, Univ. of Pisa From gucartier at gmail.com Mon Feb 23 09:35:59 2015 From: gucartier at gmail.com (Guillaume Cartier) Date: Mon, 23 Feb 2015 09:35:59 -0500 Subject: [gambit-list] Conditional compilation based on backend Message-ID: Hi, I want to expand a macro based on what backend (c, js, ...) is currently used to compile the file. Does the backend install a cond-expand symbol that I can reference or else is there a way to know what is the current backend from my macro? Thanks, Guillaume Cartier -------------- next part -------------- An HTML attachment was scrubbed... URL: From feeley at iro.umontreal.ca Mon Feb 23 12:55:21 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Mon, 23 Feb 2015 12:55:21 -0500 Subject: [gambit-list] Conditional compilation based on backend In-Reply-To: References: Message-ID: Yes there?s a macro for that, macro-case-target. (include ?~~lib/_gambit#.scm?) (macro-case-target ((c) ...) ;; when target is C ((js) ...) ;; when target is JavaScript (else ...)) ;; otherwise Marc > On Feb 23, 2015, at 9:35 AM, Guillaume Cartier wrote: > > Hi, > > I want to expand a macro based on what backend (c, js, ...) is currently used to compile the file. > > Does the backend install a cond-expand symbol that I can reference or else is there a way to know what is the current backend from my macro? > > Thanks, -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From mikael.rcv at gmail.com Mon Feb 23 13:01:04 2015 From: mikael.rcv at gmail.com (Mikael) Date: Mon, 23 Feb 2015 23:31:04 +0530 Subject: [gambit-list] Any big-time bit-twiddlers out there? In-Reply-To: <2DAB5ECD-27C2-4E8C-91FD-337578787D4B@math.purdue.edu> References: <2DAB5ECD-27C2-4E8C-91FD-337578787D4B@math.purdue.edu> Message-ID: Go for it! :D +1 2015-02-23 21:33 GMT+05:30 Bradley Lucier : > Do any of you Gambit users rely on fast execution of the bitwise-* and > *-bit-field operations on bignums? > > I'm thinking about (a) cleaning up the implementation and (b) speeding > things up a bit. > > But, is there any point? > > Brad > _______________________________________________ > 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: From mikael.rcv at gmail.com Mon Feb 23 13:10:32 2015 From: mikael.rcv at gmail.com (Mikael) Date: Mon, 23 Feb 2015 23:40:32 +0530 Subject: [gambit-list] New builtins in upcoming gcc 5.0.0 that may speed up bignum arithmetic In-Reply-To: <54BAD1C6.8020405@math.purdue.edu> References: <54BAD1C6.8020405@math.purdue.edu> Message-ID: What kind of speedup are we talking, like approx % on + - % * for bignum integers and bignum rationals, of size ~10^25/~10^25? For bignum rationals I guess GCD calculation is what really the heaviest work; will this make GCD calculation faster too? 2015-01-18 2:49 GMT+05:30 Bradley Lucier : > I just noticed this in > > https://gcc.gnu.org/gcc-5/changes.html > > A new set of built-in functions for arithmetics with overflow checking > has been added: __builtin_add_overflow, __builtin_sub_overflow and > __builtin_mul_overflow and for compatibility with clang also other > variants. These builtins have two integral arguments (which don't need to > have the same type), the arguments are extended to infinite precision > signed type, +, - or * is performed on those, and the result is stored in > an integer variable pointed to by the last argument. If the stored value is > equal to the infinite precision result, the built-in functions return > false, otherwise true. The type of the integer variable that will hold > the result can be different from the types of the first two arguments. The > following snippet demonstrates how this can be used in computing the size > for the calloc function: > > void * > calloc (size_t x, size_t y) > { > size_t sz; > if (__builtin_mul_overflow (x, y, &sz)) > return NULL; > void *ret = malloc (sz); > if (ret) memset (res, 0, sz); > return ret; > } > > On e.g. i?86 or x86-64 the above will result in a mul instruction > followed by a jump on overflow. > > Maybe we can exploit this to improve the speed of bignum arithmetic. > > Brad > > _______________________________________________ > 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: From lucier at math.purdue.edu Mon Feb 23 15:01:05 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Mon, 23 Feb 2015 15:01:05 -0500 Subject: [gambit-list] New builtins in upcoming gcc 5.0.0 that may speed up bignum arithmetic In-Reply-To: References: <54BAD1C6.8020405@math.purdue.edu> Message-ID: <54EB8701.6010900@math.purdue.edu> On 02/23/2015 01:10 PM, Mikael wrote: > What kind of speedup are we talking, like approx % on + - % * for bignum > integers and bignum rationals, of size ~10^25/~10^25? Well, it might double the speed of bignum addition/subtraction, but I'm not sure how much multiplication or division would benefit. It might speed up safe fixnum operations, too, perhaps by a factor of two. Brad From alvaro.castro.castilla at gmail.com Mon Feb 23 17:44:51 2015 From: alvaro.castro.castilla at gmail.com (=?UTF-8?Q?=C3=81lvaro_Castro=2DCastilla?=) Date: Mon, 23 Feb 2015 23:44:51 +0100 Subject: [gambit-list] Any big-time bit-twiddlers out there? In-Reply-To: <2DAB5ECD-27C2-4E8C-91FD-337578787D4B@math.purdue.edu> References: <2DAB5ECD-27C2-4E8C-91FD-337578787D4B@math.purdue.edu> Message-ID: Yes, please! On Mon, Feb 23, 2015 at 5:03 PM, Bradley Lucier wrote: > Do any of you Gambit users rely on fast execution of the bitwise-* and *-bit-field operations on bignums? > > I?m thinking about (a) cleaning up the implementation and (b) speeding things up a bit. > > But, is there any point? > > Brad > _______________________________________________ > 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: From lucier at math.purdue.edu Tue Feb 24 17:11:41 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Tue, 24 Feb 2015 17:11:41 -0500 Subject: [gambit-list] macro-check-index Message-ID: <54ECF71D.3090500@math.purdue.edu> Marc: Where is macro-check-index defined, and, more importantly, what does it do? Brad From feeley at iro.umontreal.ca Wed Feb 25 00:22:33 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Wed, 25 Feb 2015 00:22:33 -0500 Subject: [gambit-list] macro-check-index In-Reply-To: <54ECF71D.3090500@math.purdue.edu> References: <54ECF71D.3090500@math.purdue.edu> Message-ID: The macro macro-check-index checks that the argument is a non-negative fixnum suitable to be used as an index. It is defined in _num#.scm by calling the define-check-index-range-macro macro : (define-check-index-range-macro index macro-index?) The macro define-check-index-range-macro is defined in _gambit#.scm Marc > On Feb 24, 2015, at 5:11 PM, Bradley Lucier wrote: > > Marc: > > Where is macro-check-index defined, and, more importantly, what does it do? > > Brad -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From mikael.rcv at gmail.com Wed Feb 25 05:43:26 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 25 Feb 2015 16:13:26 +0530 Subject: [gambit-list] Just so I got it right: ___device_tcp_client_read/write_raw_virt doing *len_done = 0; return ___FIX(___NO_ERR); makes Gambit's IO scheduler select() and reiterate? Message-ID: Marc, Not super important at all but part of auditing, just to check that I understand this correctly: If a blocking Gambit IO operation (e.g. that would be a |read-subu8vector|/|write-subu8vector| with a positive |need| value or a |read-byte|/|write-byte|) is currently being invoked on a TCP port, and the respective ___device_tcp_client_read_raw_virt or ___device_tcp_client_write_raw_virt procedure invoked does *len_done = 0; return ___FIX(___NO_ERR); , then in response to it doing that, will Gambit's IO scheduler (presuming there's no constraint from TCP port timeout settings) wait for the socket to show readability or writability respectively using select() and then reiterate the procedure? E.g., * |read-byte| is invoked. * The TCP port's read buffer is empty so Gambit invokes ___device_tcp_client_read_raw_virt, and it does *len_done = 0; return ___FIX(___NO_ERR); . * In response to that, Gambit does select() for readability (not writability) on the socket, and after some while there socket is found to have more data available to be read. * In response to that, Gambit re-invokes ___device_tcp_client_read_raw_virt. This time it gives 5 bytes. The first of those bytes will become the |read-byte| call's result. Thanks, Mikael -------------- next part -------------- An HTML attachment was scrubbed... URL: From feeley at iro.umontreal.ca Wed Feb 25 07:17:58 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Wed, 25 Feb 2015 07:17:58 -0500 Subject: [gambit-list] Just so I got it right: ___device_tcp_client_read/write_raw_virt doing *len_done = 0; return ___FIX(___NO_ERR); makes Gambit's IO scheduler select() and reiterate? In-Reply-To: References: Message-ID: <10553E70-A983-4546-AB72-2AB6662B702B@iro.umontreal.ca> Yes, you got it right (if by ?positive need? you mean >= 1). Marc > On Feb 25, 2015, at 5:43 AM, Mikael wrote: > > Marc, > > Not super important at all but part of auditing, just to check that I understand this correctly: > > If a blocking Gambit IO operation (e.g. that would be a |read-subu8vector|/|write-subu8vector| with a positive |need| value or a |read-byte|/|write-byte|) is currently being invoked on a TCP port, > > and the respective ___device_tcp_client_read_raw_virt or ___device_tcp_client_write_raw_virt procedure invoked does *len_done = 0; return ___FIX(___NO_ERR); , > > then in response to it doing that, will Gambit's IO scheduler (presuming there's no constraint from TCP port timeout settings) wait for the socket to show readability or writability respectively using select() and then reiterate the procedure? > > > E.g., > * |read-byte| is invoked. > * The TCP port's read buffer is empty so Gambit invokes ___device_tcp_client_read_raw_virt, and it does *len_done = 0; return ___FIX(___NO_ERR); . > * In response to that, Gambit does select() for readability (not writability) on the socket, and after some while there socket is found to have more data available to be read. > * In response to that, Gambit re-invokes ___device_tcp_client_read_raw_virt. This time it gives 5 bytes. The first of those bytes will become the |read-byte| call's result. > > Thanks, > Mikael > -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From mikael.rcv at gmail.com Wed Feb 25 07:34:07 2015 From: mikael.rcv at gmail.com (Mikael) Date: Wed, 25 Feb 2015 18:04:07 +0530 Subject: [gambit-list] Just so I got it right: ___device_tcp_client_read/write_raw_virt doing *len_done = 0; return ___FIX(___NO_ERR); makes Gambit's IO scheduler select() and reiterate? In-Reply-To: <10553E70-A983-4546-AB72-2AB6662B702B@iro.umontreal.ca> References: <10553E70-A983-4546-AB72-2AB6662B702B@iro.umontreal.ca> Message-ID: Super thanks. 2015-02-25 17:47 GMT+05:30 Marc Feeley : > Yes, you got it right (if by "positive need" you mean >= 1). > > Marc > > > On Feb 25, 2015, at 5:43 AM, Mikael wrote: > > > > Marc, > > > > Not super important at all but part of auditing, just to check that I > understand this correctly: > > > > If a blocking Gambit IO operation (e.g. that would be a > |read-subu8vector|/|write-subu8vector| with a positive |need| value or a > |read-byte|/|write-byte|) is currently being invoked on a TCP port, > > > > and the respective ___device_tcp_client_read_raw_virt or > ___device_tcp_client_write_raw_virt procedure invoked does *len_done = 0; > return ___FIX(___NO_ERR); , > > > > then in response to it doing that, will Gambit's IO scheduler (presuming > there's no constraint from TCP port timeout settings) wait for the socket > to show readability or writability respectively using select() and then > reiterate the procedure? > > > > > > E.g., > > * |read-byte| is invoked. > > * The TCP port's read buffer is empty so Gambit invokes > ___device_tcp_client_read_raw_virt, and it does *len_done = 0; return > ___FIX(___NO_ERR); . > > * In response to that, Gambit does select() for readability (not > writability) on the socket, and after some while there socket is found to > have more data available to be read. > > * In response to that, Gambit re-invokes > ___device_tcp_client_read_raw_virt. This time it gives 5 bytes. The first > of those bytes will become the |read-byte| call's result. > > > > Thanks, > > Mikael > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lucier at math.purdue.edu Wed Feb 25 12:32:38 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Wed, 25 Feb 2015 12:32:38 -0500 Subject: [gambit-list] Type predicates in _system.scm Message-ID: <54EE0736.8070505@math.purdue.edu> Marc: A typical type predicate in _system.scm is (define-prim (##ratnum? obj) (and (##subtyped? obj) (##eq? (##subtype obj) (macro-subtype-ratnum)))) Should all these uses of ##eq? be changed to ##eqv? Also, it seems that you're set up to deserialize meroon objects, but not to serialize them. Is that easily fixed? Brad From feeley at iro.umontreal.ca Wed Feb 25 12:45:40 2015 From: feeley at iro.umontreal.ca (Marc Feeley) Date: Wed, 25 Feb 2015 12:45:40 -0500 Subject: [gambit-list] Type predicates in _system.scm In-Reply-To: <54EE0736.8070505@math.purdue.edu> References: <54EE0736.8070505@math.purdue.edu> Message-ID: <47837AA7-84BE-48E1-9577-31B48EF1E071@iro.umontreal.ca> Yes that?s a good point. Note however that due to the ?define-prim? on all the current backends the definition is really (define (##ratnum? obj) (##ratnum? obj)) So the body of the define-prim isn?t even used. I think for sanity it should be removed because it exposes a low-level representation that is not shared by all backends. So it should be (define-prim (##ratnum? obj)) and similarly for other type predicates. All uses of ##subtype and ##subtype-set! are suspect because they access the low-level representation and reduce portability of the Gambit runtime library. As for serializing meroon objects, it shouldn?t be hard. Add an issue on github and I?ll look at it when I have more time. Marc On Feb 25, 2015, at 12:32 PM, Bradley Lucier wrote: > > Marc: > > A typical type predicate in _system.scm is > > (define-prim (##ratnum? obj) > (and (##subtyped? obj) > (##eq? (##subtype obj) (macro-subtype-ratnum)))) > > Should all these uses of ##eq? be changed to ##eqv? > > Also, it seems that you're set up to deserialize meroon objects, but not to serialize them. Is that easily fixed? > > Brad -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4839 bytes Desc: not available URL: From lucier at math.purdue.edu Wed Feb 25 13:01:20 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Wed, 25 Feb 2015 13:01:20 -0500 Subject: [gambit-list] Type predicates in _system.scm In-Reply-To: <47837AA7-84BE-48E1-9577-31B48EF1E071@iro.umontreal.ca> References: <54EE0736.8070505@math.purdue.edu> <47837AA7-84BE-48E1-9577-31B48EF1E071@iro.umontreal.ca> Message-ID: <54EE0DF0.9030306@math.purdue.edu> On 02/25/2015 12:45 PM, Marc Feeley wrote: > As for serializing meroon objects, it shouldn?t be hard. Add an issue on github and I?ll look at it when I have more time. > > Marc I thought I might look into "write"ing and "pretty-print"ing Meroon objects today, but man, the code in _io.scm reminds me of the game "Adventure".^1 To serialize a Meroon object, one might need to serialize the entire class structure. It's possible, but Meroon doesn't have UUIDs attached to classes right now, so I'm not sure how useful it would be. I'd rather have printing of Meroon objects, which would be more useful at the moment. Brad ^1 "You're in a maze of twisty little passages, all alike." From lucier at math.purdue.edu Thu Feb 26 18:11:08 2015 From: lucier at math.purdue.edu (Bradley Lucier) Date: Thu, 26 Feb 2015 18:11:08 -0500 Subject: [gambit-list] Help with starting bitset library Message-ID: <54EFA80C.4040907@math.purdue.edu> Marc: I started writing a bitset library to leverage the bitwise-* operations. I need some help in working with type macros, etc. Can you look at the simple code below and tell me how to express it in the right way? Also, your define-prim-nary implements a fold operation, which is much, much slower for bitwise operations than just 1. Making sure all arguments are exact ints. 2. Determining the size of the resulting bignum (to be possibly normalized to a fixnum later) from the sizes and signs of the arguments. 3. Allocating the final bignum and destructively modifying it based on the arguments. Should I look into that a bit? Brad The start of bitsets.scm follows. (##include "../lib/header.scm") ;; accessors and constructors are not inlined unless I add ;; the following declaration. ;; Is that why you write constructors and accessors as macros? (declare (inlining-limit 300)) (define-structure ##bitset body) (define-prim (##bitset-union bs1 bs2) (##define-macro (type-error-on-x) `'(1)) (##define-macro (type-error-on-y) `'(2)) (if (##bitset? x) (if (##bitset? y) (make-##bitset (##bitwise-ior (##bitset-body x) (##bitset-body y))) (type-error-on-y)) (type-error-on-x))) (define-prim-nary (bitset-union x y) (make-##bitset 0) (if (##bitset? x) x '(1)) (##bitset-union x y) macro-force-vars macro-no-check (##pair? ##fail-check-bitset))