<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Vyzo,</div><div dir="ltr"><br></div><div dir="ltr">So finally read <a href="https://github.com/vyzo/gerbil/blob/master/README.md">https://github.com/vyzo/gerbil/blob/master/README.md</a> and all subpages on <a href="https://cons.io/">https://cons.io/</a> word by word.</div><div dir="ltr"><br></div><div>I was trying to go through the obvious moves of incremental dev and it crashed down totally. Kindly point out the misunderstandings and any Gerbil customizations that are needed for this obvious usecase:<br></div><ol><li>I create a module "a.ss" (this is a typo, should be "a.scm" but i understand Gerbil has an exotic default, query about how to normalize the setting in subsequent email). Code is:<br><br>(display "Hello world\n")<br><br></li><li>Compile the module:<br><br>The documentation does not disclose how to do this from the REPL, so I do it by<br><br>,q<br>GAMBCOMP_VERBOSE=yes gsx a.ss<br>GAMBCOMP_VERBOSE=yes gsi<br><br>I see that this works as ~/.gerbil/lib/ now gets a module file (.o*), great. Now,<br><br></li><li>Import the module:<br><br>(import "a")<br><br>So far, the correct thing happens: The text "Hello world" is printed out.<br><br></li><li>Now, with gsi running, separately in another xterm we alter a.ss (a.scm) a bit, we add two exclamation marks to the string, so the content is now:<br><br>(display "Hello world!!\n")<br><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></li><li>In the gsi REPL, we run again:<br><br>(import "a")<br></li></ol><div>What happens now is a mysterious nothing!</div><div><br></div><div>This shows that Gerbil does not automatically reimport updated dependencies.</div><div><b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br></div><div>Also, no new binary is produced - there is no output showing any gcc invocation (which is the behaviour specified by "GAMBCOMP_VERBOSE=yes"), and also "ls -l ~/.gerbil/lib/" shows that no new .o* files have been produced.</div><div><br></div><div>Disaster.</div><div><br></div><div>There is no mentioning in the documentation of how to make |import| automatically recompile any module that has been compiled already AND automatically reimport any module in the dependency graph, whose modification timestamps have changed since the previous |import|.</div><div><br></div><div>The obvious usecase at hand is that you have more files as dependencies in a code project, and as you go about development you edit them sporadically, and Gerbil will have them auto-recompiled, auto-reimported and their global namespace auto-evaluated (in a.ss's case, a |display|) as you go along, this is essential.</div><div><br></div><div>Is this about a Gerbil setting that I need to configure, or a question of deep Gerbil hacking, or is Gerbil unfit for the work and I should leave it altogether?</div><div><br></div><div>Thanks,</div><div>Adam</div><div><br></div><div><br>PS</div><div><br></div><div>Following rectification of the above, I would throw in some FFI stuff like</div><div><br></div><div>echo "((c-lambda () void "printf(\"Hi from C\\n\");\"))" >> a.ss</div><div><br></div><div>to see that FFI stuff is handled symmetrically in the same fashion as any other Scheme code.<br></div></div></div></div></div></div></div>