<div dir="ltr"><div dir="ltr"><div>Hey Iain, Bil, and happy new year! (kind of late heh)</div><div><br></div><div>(sorry for the duplicate mail Iaian, I realized I replied only to you)<br></div><div><br></div><div>An in-house module system in s7 would help to build an ecosystem/share modular code and so on.</div><div>My 2cents though here, if the module system is not repl-friendly (ie redefining functions in some module A<br></div><div>and have its changes reflected on another submodule B that imported/required module A).</div><div><br></div><div>I stumbled upon this in chez and was a bummer. I recall reading that Guile enables this reload feature.<br></div><div><br></div><div>I found s7&#39;s environments quite amazing, they enabled me to build my own module system on top! Powerful stuff.</div><div>A usecase that I recently found the need for and it was a breeze to implement:<br></div><div><br></div><div>(ns foo-app-whatever</div><div>  :require ((secrets :fallback secrets-example)))</div><div><br></div><div>Here the idea is that I store sensitive info (an api token for example) under secrets.scm, but I&#39;d also ship</div><div>a secrets-example.scm file that gets loaded instead of the secrets.scm is not there. And in there you&#39;d normally</div><div>define things and you&#39;d use them like secrets/some-site-token.</div><div>Having the underlying language provide such powerful features is really something! :)<br></div><div><br></div><div>Iain keep in mind that (with-let ..) is the same (? Bil could correct me) with (eval &#39;(begin ...) (rootlet))</div><div>(or eval.. in any other environment in that sense). There was an interesting discussion recently about texmacs</div><div>and their usage of such features here in the mailing list.</div><div><br></div><div>As for the tutorials you mentioned Iaian, why not create some with s7 in web/wasm?<br></div><div><br></div><div>Speaking of, Bil I noticed that there&#39;s a typo in my last name in the s7 repo readme :)</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 14 Jan 2021 at 18:56, Iain Duncan &lt;<a href="mailto:iainduncanlists@gmail.com">iainduncanlists@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Thanks Bill, I&#39;m glad you liked the video. There will be a lot more tutorial content coming this semester. :-)<div><br></div><div>FWIW, I&#39;ve also heard people speak highly of Chicken&#39;s module system, in case you haven&#39;t looked at it.</div><div><br></div><div>iain</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 14, 2021 at 9:49 AM &lt;<a href="mailto:bil@ccrma.stanford.edu" target="_blank">bil@ccrma.stanford.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Yes, (with-let (rootlet)...) is unique to s7.  I haven&#39;t<br>
given any thought to a formal module definition -- I&#39;ll<br>
check out Gerbil&#39;s.<br>
<br>
I enjoyed your video!<br>
<br>
</blockquote></div>
_______________________________________________<br>
Cmdist mailing list<br>
<a href="mailto:Cmdist@ccrma.stanford.edu" target="_blank">Cmdist@ccrma.stanford.edu</a><br>
<a href="https://cm-mail.stanford.edu/mailman/listinfo/cmdist" rel="noreferrer" target="_blank">https://cm-mail.stanford.edu/mailman/listinfo/cmdist</a><br>
</blockquote></div>