***Noisytoot is now known as noisytoot[x]
***noisytoot[x] is now known as Noisytoot
***RhodiumToad_ is now known as AndroidToad
***AndroidToad is now known as RhodiumToad_
***apteryx_ is now known as apteryx
<ManDay>No macros involved, I get this error 'In procedure car: Wrong type argument in position 1 (expecting pair): #f' on a line which reads merely '(complete-branches pd-branches completion)'. If that's not weird enough, if I make that line read '(complete-branches pd-branches (identity completion))' the error is suddenly marked on the line before (which reads '(if (or (dep.eq? branch (car parent-cp)) <ManDay>(member branch downstream dep.eq?))') <ManDay>Anyone mind to make sense of this? <ManDay>btw: same happens if I put the (identity) around pd-branches. <ManDay>well, apparently <parent-cp> in the (car) on the line before is #f <ManDay>Which explains the problem, but not this weird as hell error message <taylan>ManDay: which Guile version is this? <ManDay>uh oh, lemme guess, i'm direly outdated? <taylan>so if I understand correctly, the line number of the error is reported wrong? I would file a bug report, ideally after producing a minified self-contained example that showcases the bug. <ManDay>ok, fair answer. I was afraid I'd get some intricate explanation why despite all odds reporting weird lines actually made sense :D <ManDay>i'll try to strip that down when I have some downtime <dsmith>ManDay: Might want to try it on git (or at least 3.0.7). Just to make sure it hasn't been fixed already. <ManDay>yeah that's true, i'm sorry you have to point it out ;-/ <iwan>anyone interested in Guile-Elisp here? <iwan>hmm, more like emacs on guile <iwan>I recently submitted two Elisp reader bugs, but no one replied yet :^( <lispmacs[work]>hi, I'm trying to create a child process and get textual ports to its input and output. however, with the open-pipe command, it seems that you instead run the process and it inherits your current i/o ports. So, if I keep separate my guile program std i/o from the child process i/o, I guess I need to create some ports first and make them the current i/o ports. But I'm not sure how to go about that <iwan>set-current-input/output-ports I guess <lispmacs[work]>iwan: that seems like about half the puzzle. but I would need to create i/o ports first...? <iwan>maybe file ports? smth in /tmp or /log <dsmith>iwan: How manye years have you waited? ;^} <lispmacs[work]>iwan: if the process is reading from a file in /tmp, will I have a problem with the process getting an eof when I am not feeding data to the tmp file? <dsmith>iwan: elisp reader bugs you mentioned. <dsmith>Often it takes a while before the guile devs get to bugs. Even with patches. <dsmith>Usually it's just before a release, there is a flurry of patches applied. <iwan>they are pretty easy tho <dsmith>Just sayin, don't be surprised if no response for days or weeks (or months or..) <lispmacs[work]>seems like there must be a better way to do it, but I see now I could create some FIFO files with mkfifo, open them as files, and then open the processes with those set as default ports <iwan>can you give a more detailed example? <lispmacs[work]>it seems kind of funny that guile has a built-in function for generator random coordinates for the surface of a sphere. Is there an interesting story behind that...? <pyveteran>drakonis: ok thanks, I'll try to figure out by myself. <dsmith>lispmacs[work]: There is also number->string <lispmacs[work]>dsmith: okay, thanks, I didn't know that one had a radix parameter <dsmith>But if you want more control, format <apteryx>uh; (mkstemp! "/tmp/dbus-send-output-XXXXXXX") -> string is read-only: "/tmp/dbus-send-output-XXXXXXX". Am I using it wrong? ***lispmacs[work] is now known as forthmacs[work]
***forthmacs[work] is now known as lispmacs[work]
<dsmith>apteryx: Yes. A string literal is read-only. <drakonis>pyveteran: to be fair, its such a common question that people expect to be answered by simply waltzing into a channel and hoping for a satisfying answer <apteryx>ah, perhaps mutable string objects are a thing, I've never used those. <dsmith>scheme@(guile-user)> (mkstemp! (string-copy "/tmp/dbus-send-output-XXXXXXX")) <dsmith>$2 = #<input-output: /tmp/dbus-send-output-XMmrrVl 13> <dsmith>apteryx: A string literal is immutable. (or should be!) <iwan>@dsmith have you ever contributed to emacs or guile? <dsmith>I've submitted a few small patches over the years. Long ago, contributed a patch to dos emacs so it could use the windows clipboard. <iwan>your nickname seems familiar, but I can't remember where I saw it <dsmith>Well, "smith" is a *very* common name. <iwan>yeah, I know, maybe I just remembering time when #guile was on freenode <dsmith>Been there a while. I started when there was about 6 people in the channel. I remember how cool it was to see it double to 12! <taylan>iwan: I responded to a few Elisp reports recently, dunno if yours was under them <iwan>a-ha, your name is the same as nick <taylan>iwan: oh, I see you sent a patch earlier today. well I've sent some patches two weeks ago and am still waiting, so better to be patient :P <iwan>nice to meet you, Taylan <iwan>I was hoping to meet you or Maxime Devos here *holomorph checks to see how long the wip-elisp branch has been dormant <dsmith>There has been some recent activity. bipt has a new nick (can't remember right now) and was on here a few days ago. <sneek>bipt was last seen in (here?) 9 months ago, saying: i saw that your guile-emacs package made it into a guix release :). <taylan>iwan: happy to hear from another person who's interested in Guile-Elisp. sadly progress is slow, as everyone's quite busy <ManDay>Sorry to come back with more traceback trouble, but I can't fathom how guile can simply not mention stackframes. This for example http://dpaste.com/HAR22QBAH drives me mad to have to deal with this all the time. <taylan>bipt's new nick is robin, alternatively terpri <sneek>terpri?, pretty sure was seen in #guix 10 days ago, saying: so far, it's great. <sneek>Not as far as I can remember. <taylan>dsmith: robin is in the channel :D <ManDay>How am I supposed to find that error with that kind of debugging information?! <taylan>ManDay: 'map' takes two arguments. since the (lambda ...) will certainly not be #f, it must be 'pivots' <ManDay>taylan: Yes, I realize that <pivots> has the wrong type. But how am I supposed to find the error?! <ManDay>pivot->strings is called all over the place in my code <iwan>dude, I have had exceptions during printing stacktrace <taylan>ManDay: from the fact that it points at idg.scm line 61, and that this line is the start of the 'map' call, which has two arguments, one of which is evidently #f as the error message says <ManDay>taylan: idg.scm line 61 IS that map. that's what I marked in the paste <ManDay>but where is pivots->string called from!? <ManDay>i can't belive I have to ask that question. are you not familar with stacktraces from normal compilers? <taylan>ManDay: isn't it in idg.test.ss line 27? <ManDay>taylan: no. line 27 in idg.test.ss calls idg.recurse <taylan>oh nevermind, idg.recurse is in the stack trace <taylan>ManDay: well the pivots->string call ought to be somewhere in the body of idg.recurse then? <dsmith>ManDay: How about move that lambda into it's own define. From a repl (or geiser) try feeding it with what you expect the arg to be. <ManDay>dsmith that function (pivots->string) is fine. <dsmith>There has been a *lot* of work on the compiler lately. Bound to be some bugs. <ManDay>ok, i'll try the master version anyway (tomorrow) <dsmith>Emacs interface to Guile (and some other Schemes) <dsmith>It's nice to be able to C-x C-e to evaluate an expression. <taylan>not sure if updating from 3.0.4 to 3.0.7 will make much of a difference <ManDay>i rather have working stacktraces ;-/ <taylan>ManDay: is the code uploaded somewhere? <ManDay>there is a macro involved, though <taylan>I'd like to understand better what's going on... <dsmith>I wonder if using less optimization would provide better backtraces? <ManDay>it encapsulates the entire body of idg.recurse <ManDay>Not sure what else I can do to prevent optimization <taylan>could you paste the entirety of idg.scm and idg.test.ss? <ManDay>ironically, the macro which encapsulates the body is there to help me debug... <ManDay>taylan: you mean in a state that you can run it? or just look at it? <taylan>the state that produced that error would be ideal of course :) <ManDay>idg.test.ss is really nothing though <dsmith>There is a way to pass an -O1 or -O2 to guild compile. Not sure if there is a way to do that within a repl. <ManDay>can't one upload file to github gists? <taylan>gist works, any pastebin works just as well IMO <iwan>termbin.com is my favorite <ManDay>i want the paste to disappear after a while <dsmith>I think that one goes away after a while. <iwan>it'll disappear after one month <ManDay>by then we'll have that figured out either way :-P <ManDay>see the dbg-* macro at the beginning <ManDay>that's the only non-functional or macro thing there is <taylan>this is not the state of the file when that stack trace was produced though, right? <ManDay>taylan: yeah, line numbers don't match <taylan>no problem. so, I think pivots->string might be getting inlined or something... <taylan>it's certainly a crappy stack trace, no argument there <ManDay>i just wish I could turn off all those optimizations <ManDay>so I guess I'll have to try guild manually <ManDay>gosh, I wish `guile` could simply pass -O0 to guild <taylan>you could also see what the interpreter does, by executing the file like 'guile --no-auto-compile foo.scm' after deleting the cached .go file <ManDay>since compiling it isn't as easy as `guild compile idg.scm` I think I'll postpone this entire operation to tomorrow (which starts in about half an hour anyway) <taylan>ManDay: it should be as easy as that, actually <taylan>possibly with an -L thrown in there, just like when executing the file with 'guile' <taylan>and you might want to add a check for the 'pivots' argument to the beginning of pivots->string to give a marginally better error <ManDay> 142:2 3 (idg.recurse ((#<procedure 7f90818c8100 at ice-9…> . #)) …) <taylan>like (when (not pivots) (error "pivots->string called on #f")) <ManDay> 148:46 2 (vary-conjunctions -1 #f) <taylan>yeah I guess a lot was being optimized out there! <ManDay>i'll file a bug for guile to accept -O0, this seems awefully important <ManDay>i had tried to disable optimizations in the case of messy stacktraces in the paste but it had not helped <taylan>there might be an environment variable for that, lemme check... <ManDay>i didn't expect improvement this time <taylan>hmm I think there was just an env var to force fresh recompilation <ManDay>yes, i have also searched for any method to pass -O and didn't find any <ManDay>everything works now. many thanks!!! <taylan>can't even find that now, maybe I was dreaming. anyway, I guess an option to 'guile' and/or an env var to determine the optimization level might be good. <dsmith>ManDay: What made it work? Disableing optimizations? ***iwan is now known as ubah
***ubah is now known as iwan
***iwan is now known as ubah
***ubah is now known as iwan