***Server sets mode: +ntz
<sneek>wingo was last seen in #guile 5 hours and 45 minutes ago, saying: instead the function should be identified via its code (ip). <dsmith>sneek: later tell dsmith-work testing <dsmith>sneek: later tell dsmith-work testing <sneek>wingo was last seen in #guile 5 hours and 52 minutes ago, saying: instead the function should be identified via its code (ip). <dsmith>sneek: seen someone here that sometimes answers to wingo <sneek>Last time I checked atest is a test <dsmith>sneek: later tell dsmith-work testing <dsmith>sneek: tell dsmith-work testing also <dsmith>sneek: atest is also something else <sneek>Last time I checked atest is something <sneek>I could be wrong, but atest is something <dsmith>Well! The somewhat useless "tell" coommand is working again. ***jackhill is now known as jackhill[m]
***jackhill[m] is now known as jackhill
<tohoyn>statprof-display doesn't display call counts even though I use #t as the third argument to statprof-reset <tohoyn>calling statprof with "#:count-calls? #t" doesn't work either <sneek>rlb was last seen in #guile 2 days ago, saying: But I *did* like being able to write clj code for the browser (though I haven't been doing any of that for a good while now).. <wingo>dsmith: yeah, see what (system vm frame) does <dsmith>wingo: The tricky bit is getting to the SCM frame when you only have the scm_thread * <wingo>all of this should be done from scheme fwiw <wingo>there you have the ip because you have the stack trace <canant>I'm a newbie on guile and trying to be familiar with and understand the fundamental concepts. <canant>I couldn't get the Parameters concept. Why we need this instead of passing data as arguments? <canant>make-parameter and parameterize are very hard to understand for someone like me from the C/C++ world. <taw10>canant: Think of it as kind of like an improved version of a global variable <taw10>You *could* pass things round as arguments everywhere, but I'm sure you've encountered situations where that becomes a complete mess. Parameters fix that <canant>Thanks, taw10. Are there any meaningful examples rather than simple official ones? <taw10>I use it in one of my projects to help allow essentially arbitrary code to be used to create a certain type of object (https://github.com/taw10/starlet) - (lighting-state ...) expands to (parameterise ((current-state (make-empty-state))) ...), so anything inside the lighting-state form has access to the current "state" object <tohoyn>you could also consider fluid-let <canant>Thanks again taw10 and tohoyn. I'm looking into those. <taw10>Just for comparison, imagine how my lighting-state thing would look using arguments. I'd have to use some macro magic to inject the argument into every sub-form that needs it. And since there can be any type of form there, I'm not sure that's even possible. <taw10>tohoyn: Guile doesn't seem to have fluid-let. Guile parameters are built on top of fluids, though. The manual recommends to use parameters rather than fluids. But sure, it's the same basic idea. <leoprikler>tohoyn: with-fluid* and with-fluids* work kinda like let but take thunk as procedures <lloda>there's a bunch of stuff that has multiple versions in Guile, the original Guile version, the srfi version, the standard version <dsmith>Guile modules (which predate r6rs (and r5rs)) are mostly just mapping of names to scheme objects. <dsmith>R6rs modules (or is it libraries?) expose *immutable* bindings to objects. <dsmith>For the benefit of compilers I guess. <dsmith>But sometimes, you just need to provide a value that can change. <dsmith>Through an immutable binding, you get or mutate a value. <lloda>you don't need a parameter for that. You can export a box <dsmith>I've always thought the parameters were a r6rs thing. Pretty sure Guile didn't have them until it started added r6rs support. <lloda>guile had fluids, which are the same thing <dsmith>Yes. But I think r6rs lib immutability is the "why?" of parameters. <sneek>Welcome back dsmith-work, you have 4 messages! <sneek>dsmith-work, dsmith says: testing <sneek>dsmith-work, dsmith says: testing <sneek>dsmith-work, dsmith says: testing <sneek>dsmith-work, dsmith says: more testing ***thecatster is now known as thecatster_
<manumanumanu>dsmith-work: parameters are for dynamic binding. I use them to change behaviour of libraries whern parameters doesn't cut it <manumanumanu>You _can_ use parameters to change variables in a library, but boxes are probably more efficient <dsmith-work>manumanumanu: Soo... You use parameters when parameters aren't good enought? ;^} <lispmacs[work]>manumanumanu: this is scheme. Infinitely recursive explanations are okay. <lispmacs[work]>how do I change the current working directory, in regards to relative paths in (load path) commands? *sneek gives lispmacs[work] a botsmack ***rekado_ is now known as rekado