IRC channel logs

2020-02-13.log

back to list of logs

<lloda>I've just learned about git log -L begin,end:file
<lloda>wish vc-annotate did that
<lloda>would be even nicer if the lines were tracked across files
<nly>hi
<nly>sneek: later tell dsmith did you find any time to put sneek's source somewhere?
<sneek>Got it.
<nly>sneek: source
<sneek>Someone once said source is at http://git.savannah.gnu.org/gitweb/?p=guile.git
<nly>sneek: your source
<chrislck>anyone knows why guile-3.0 still does not have a hash-table pretty-printer and a hash read syntax? would it affect existing code that badly?
<dsmith>Does *any* scheme have a hash read syntax?
<sneek>dsmith, you have 1 message.
<sneek>dsmith, nly says: did you find any time to put sneek's source somewhere?
<dsmith>nly: Heh. No not yet. Consider, the last time I updated the code was about 7 years ago. Probably won't be for a few months at minimum.
<chrislck>beats me... but hash-tables seem reasonably "core" enough to be prettified as much as possible...
<chrislck>if it can be done without "breaking the law" then it should be done?
<lloda>reader extension that makes #hXXX into (alist->hash-table XXX) is trivial to write. But then there are several kinds of hashtables and you'd need to pick one.
<alextee[m]>hi! i'm writing a guile interface in my C program for extensions/scripting, any ideas which version i should use? should i use the latest (3) ?
<lloda>yes if you can alextee[m]
<lloda>the only reason to use old versions is your distros only carry that, or in some very rare cases for compatibility
<alextee[m]>lloda: thanks! is this still relevant? https://www.gnu.org/software/guile/docs/guile-tut/tutorial.html#Init-Guile
<jcowan>dsmith: R7RS requires support for datum labels, and many Schemes already have it (Gauche, MIT, Bigloo, Kawa, Chez, Ikarus/Vikare, Larceny, Mosh, STklos, FemtoLisp, Sagittarius, Foment, Picrin)
<alextee[m]>if there are similar guides/examples somewhere, please show me
<lloda> it should be alextee[m]
<alextee[m]>cool :)
<alextee[m]>er, guile is giving me compiler errors on the include file
<alextee[m]>not compiler errors actually, just warnings but i made those errors in my app
<alextee[m]> https://paste.debian.net/1130459/
<alextee[m]>i'll go around this by using different cflags for my guile module, but i guess this should be fixed ^ should never happen on header files
<dsmith-work>Morning Greetings, Guilers
<jcowan>dsmith-work: ^^
<alextee[m]>is there an example somewhere of spawning a window within a GUI app for running the guile REPL?
<alextee[m]>(within C)
<alextee[m]>i guess it would be hard to do with REPL, just a text editor with a "run" button would probably be easier
<dsmith-work>jcowan: (confused) How do datum lables relate to a hash table read syntax?
<dsmith-work>jcowan: Am I missing something obvious?
<jcowan>Oh, sorry, I thought that by "hash syntax" you meant datum lables, since they use #.
<dsmith-work>Ah
<dsmith-work>chrislck: I've heard there are difficulties with that. Like how to write them out to .go files?
<dsmith-work>Should a literal constant hash table be immutable? And if so, wht
<dsmith-work>'s the point?
<dsmith-work>You can load one with an alist, which can be a const literal, and can be written out.
<dsmith-work>So why not just use that?
<alextee[m]>is it possible to run specific commands or scripts with scm_shell(), but not have it exit? i can't seem to figure out from the docs how to pass commands for guile to run without exiting the whole process
<alextee[m]>found an example here, nvm https://www.ibm.com/developerworks/library/l-guile/index.html
<str1ngs>alextee[m]: you'll need a main loop for it not exit. or you can use --listen which will block
<alextee[m]>str1ngs: well, i don't really want the REPL to get hold of the CLI because i'm printing messages there, or for it to block, i just want to add the ability to run guile scripts while my GUI application is running. i think i'm starting to figure it out now
*alextee[m] uploaded an image: Screenshot from 2020-02-13 16-57-37.png (17KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/sTLEeZofzEtqUKzeVwRiVbkA >
<alextee[m]>something like this ^
<alextee[m]>a bunch of scm_call_0's would do it i guess :)
<str1ngs>alextee[m]: here's a more in depth gui example if you need one. http://git.savannah.nongnu.org/cgit/nomad.git/tree/src/main.c#n56
<str1ngs>assuming you are using GTK
<str1ngs>scm_boot_guile is nice for this
<str1ngs>main.c is kinda old I actually use g-golf and mostly scheme now a days
<alextee[m]>str1ngs: oh nice, thanks!
<str1ngs>alextee[m]: here's screenshot of nomad. you might find it intresting https://bufio.org/images/2020-02-13-091000_2044x2117_scrot.png
<alextee[m]>str1ngs: did you write the editor from scratch or are you using some kind of embedded emacs?
<str1ngs>alextee[m]: this is not emacs, it's all handled by nomad.
<str1ngs>alextee[m]: it's all by scratch but I use emacsy and g-golf. g-golf handles the GUI and emacys handles the emacs like features.
<str1ngs>err emacsy*
<alextee[m]>oh cool
<str1ngs>in the case of this *scratch* buffer emacsy has a <text-buffer> and provides the scratch buffer. I use g-golf to present the buffer in a <gtk-source-view>
<str1ngs>mainly though nomad uses webview buffers for browsing the web. think of it like emacs but for the web :)
<str1ngs>and using scheme of course.
<emys>hi, I am interested in how the `language` compilation feature is intended to be used in guile.
<emys>from my understanding the compile-scheme function you pass to `define-language` with the `#:compilers` keyword argument operates on "chunks" read by the reader
<emys>I.e. the argument to `#:reader` is very similar to acting like `read`, i.e. reading one expression at the time
<emys>or is it intended that the reader reads a whole file/buffer, and then the compile function compiles the whole chunk?
<chrislck>dsmith-work: it's for interactive use -- (write hash-table) is not useful, that's all
<chrislck>my approach is to write a custom pretty printer, eg (dump hash-table)
*chrislck knows nothing of compilers and .go files
<dsmith-work>chrislck: I was just trying to remember some of the reasons why it's not there. It's been asked before.