IRC channel logs

2017-05-04.log

back to list of logs

<janneke>i just implemented printf which enabled me to run 4 tinycc tests...time for bed
<janneke>ACTION ->zZzz
***micro` is now known as Guest38074
<CalAndroid>Can functional programming concepts (statelessness) be applied to a physical environment/objects?
<ArneBab_>CalAndroid: you might want to look into laws of conservation (and any undamped oscillator): give it starting conditions and a time delta to get another state. Look at celestial mechanics with up to 2 objects (3 not yet proven, 4 proven to not be analytically solvable)
<CalAndroid>I'm just trying to make it impossible to lose stuff.
<CalAndroid>ArneBab_:
<takside>hi, I'm getting "The TLS connection was non-properly terminated" when trying to access any HTTPS page with (web client), has anyone encountered this & know more about it?
***ertes is now known as ertes-w
***ertes-w is now known as ertes
<ertes-w>is there a way to turn certain signals into exceptions?
<ertes-w>like SIGINT, SIGTERM, etc.
<rekado_>would it be desirable if “with-output-to-string” captured the output produced by “system” or “system*”?
<rekado_>or is it on purpose that shell output cannot be captured like that?
<civodul>rekado_: it's not on purpose i think
<civodul>it's just that with-output-to-string changes current-output-port, but it does not change the undelying FD
<civodul>i think (ice-9 popen) would be the place for such things
<civodul>it's too limited currently
<civodul>like you cannot capture stderr for instance
<rekado_>it’s a bit awkward to use open-input-pipe
<civodul>yeah
<civodul>but it would be tricky for with-output-to-string to just work in this case
<civodul>we wouldn't want string ports to be systematically backed by a file descriptor
<rekado_>hmm, I see
<ertes-w>according to the docs, scheme signal handlers are run through the async mechanism, so they are pretty much run somewhere between my regular computations… so i should be able to just (throw) there safely, right?
<ertes-w>(sigaction SIGINT (lambda () (throw 'user-interrupt)))
<ertes-w>^ like this
<ertes-w>it *seems* to work, but guile is having trouble printing the backtrace in that case, which doesn't bother me personally too much, but it does indicate that asyncs are probably not expected to throw exceptions
<ertes-w>"Exception thrown while printing backtrace: ERROR: In procedure cdr: Wrong type argument in position 1 (expecting pair): ()"
<janneke>rekado_, civodul: i've been hacking a call-with-fdes for cuirass' system*
<janneke>having with-output-to-string handle this would be great
<janneke>or even with-output-error-to-strings -> (values stdout stderr)
<civodul>janneke: that sounds useful!
<civodul>ertes-w: which version of Guile do you use?
<ertes-w>civodul: 2.2.0
<manumanumanu>So... chicken has an extended srfi-8 that is pretty handy. (receive (values 1 2 3) expands into (receive blah (values 1 2 3) blah), which just returns a list. It it compatible with the regular srfi-8, and is a simple one-liner to implement. Is that something for guile?
<paroneayea>ijp: congrats btw https://summerofcode.withgoogle.com/dashboard/project/4700599110074368/overview/
<paroneayea>looking forward to this :)
<avoine>Guile based build-tool would have been interesting
<catonano>paroneayea: the link doesn't work for me
<paroneayea>catonano: I have no idea where the correct link is
<paroneayea>anwyay
<paroneayea>catonano: how about https://summerofcode.withgoogle.com/projects/#4700599110074368
<catonano>wow !
<OrangeShark>javascript backend :)
<amz3>If you ask me if it's possible to write a web application full stack in scheme, I would answer yes, but the database is in C
<amz3>the scheme executed in the browser is not the same as guile but it happens to provide the necessary features to build things that look good
<amz3>also in the future it will support define-record-type
<amz3>somekind of records at least
<amz3>the prototype I use is doesn't do isomorphic apps which I am not sure whether I like or not
<amz3>an app is said isomorphic if it's rendered the same by the server as it would be rendered by the client
<amz3>they don't use the same API to render the UI but they end up displaying the same thing
<amz3>this is useful for being able to be crawled by old bots
<amz3>and more generally displayed when javascript is off in the browser
<amz3>isomorphic apps are more accessible
<amz3>right now my prototype is not isomorphic
<amz3>the server does no rendering of the page, so if you don't have javascript you see a nice error message saying *javascript required*
<amz3>I will publish it somewhere
<rekado_>wow, this is exciting!
<rekado_>this sounds like it could really boost Guile adoption
<amz3>sort of, right now my demo is only a frontend, the demo is web game to learn scheme via exploring space
<amz3>so there is no use of guile :/
<amz3>I wrote the backend but did not have time to port it to the demo
<amz3>the backend = server side
<amz3>the backend side works with guile and fiber
<amz3>and small utility library from davexunit
<amz3>taken from the guix web project (with small fix I don't recall what).
<amz3>the boilerplate server side code is 1K sloc
<amz3>outside fibers dependency ofc
<amz3>I did not fork fibers
<rekado_>having Guile on the frontend would be smooth :)
<amz3>sort of, the issue I see with guile in the frontend is the initial runtime library size, which bootstrap scheme browser side. It's trade for speed tho.
<amz3>I to low on guile vm to hack on guile proper in the browser, so I try to translate graphical user developement in terms of schemey constructs
<amz3>s/constructs/concepts/
<amz3>I am too low on guile vm skills to hack on guile proper
<amz3>prolly also too low on guile skills in general :)
<amz3>that said, the way I want to go is use more guile, but not at the expense of expressivity
<amz3>it should be a win to use guile, not just to use guile for the sake of it
<amz3>for instance, biwascheme doesn't support match
<amz3>nor does it support 'use-modules' like feature
<spk121>Hey everybody, I have a macro question. I need a macro that prints an expression and its evaluation.
<spk121>For example (debug (+ 1 1)) would print "(+ 1 1) = 2"
<quigonjinn>spk121: (define-syntax debug
<quigonjinn>(lambda (x)
<quigonjinn> (syntax-case x ()
<quigonjinn> ((_ e)
<quigonjinn> #'(format #f "~s = ~s" 'e e)))))
<quigonjinn>should have probably used a paste service sorry for that
<spk121>quigonjinn: Thank you very much.