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.<anonymous> (/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
Afficher les réponses par date
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 blake@mcbride.name 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:
Could we use node instead of d8?
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.<anonymous> (/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
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 blake@mcbride.name 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 <blake@mcbride.name mailto:blake@mcbride.name> 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:
Could we use node instead of d8?
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.<anonymous> (/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@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
On Feb 10, 2015, at 10:30 AM, Blake McBride blake@mcbride.name 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
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 feeley@iro.umontreal.ca wrote:
On Feb 10, 2015, at 10:30 AM, Blake McBride blake@mcbride.name 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
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 blake@mcbride.name wrote:
I updated (last update was a few days ago) and it now works. There are two issues, however, as follows:
The resulting JavaScript file on a two line program is 5.7 MB. Is this correct?
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 feeley@iro.umontreal.ca wrote:
On Feb 10, 2015, at 10:30 AM, Blake McBride blake@mcbride.name 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
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 feeley@iro.umontreal.ca 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 blake@mcbride.name wrote:
I updated (last update was a few days ago) and it now works. There are two issues, however, as follows:
- The resulting JavaScript file on a two line program is 5.7 MB. Is
this correct?
- 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 feeley@iro.umontreal.ca wrote:
On Feb 10, 2015, at 10:30 AM, Blake McBride blake@mcbride.name 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