On 03.06.2018 18:00, guile-user-requ...@gnu.org wrote: > On 06/02/2018 10:13 AM, Zelphir Kaltstahl wrote: >> Hello Guile mailing list members, >> >> Guile Scheme beginner here. >> >> I want to play with network programming things in Guile a little, but I >> cannot figure out how to use the modules, which are described in the >> docs at >> https://www.gnu.org/software/guile/manual/html_node/Network-Sockets-and-Communication.html >> . >> >> There is no (use-modules ...) example anywhere I looked and I could also >> not find any examples in search engines. For other modules I somehow >> always found an example (use-modules ...) somewhere, mostly in the docs. >> >> Is there some inherent way of simply knowing how to import a module? I >> did not read all of the docs from front to back, but that really should >> not be necessary in order to use some part of it. >> >> What I've tried already: >> >> (use-modules (ice-9 posix))? ; maybe the same way many other things are >> imported? >> (use-modules (posix))? ; maybe it's its own module? >> (use-modules (std posix))? ; maybe "std" for "standard" works? >> >> None of those worked in the REPL. >> >> A search on Github: >> >> https://github.com/cky/guile/search?utf8=%E2%9C%93&q=use-modules+posix&type= >> >> Yielded the following interesting result: >> >> https://github.com/cky/guile/blob/c1eb929258fc6b9653d31c0d1bc654d9e300d4e5/module/ice-9/boot-9.scm#L1445 >> >> But why does (use-modules (ice-9 posix)) not work then? I am out of ideas. >> >> Can you point me to the part of the docs, which explain how to always >> know how to import a module, if there is such? Or, if there is no such >> thing, can you help me out in this case? >> >> Regards, >> >> Zelphir >> > The manual is not crystal clear in all uses of procedures. The posix > procedures are built-in so > no `(use-module ...)' is necessary. The test is to just type the procedure > name. You will get a > procedure object in return. see example below. (Note this does not work with > syntax.) > > mwette$ guile > GNU Guile 2.2.3 > Copyright (C) 1995-2017 Free Software Foundation, Inc. > > Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. > This program is free software, and you are welcome to redistribute it > under certain conditions; type `,show c' for details. > > Enter `,help' for help. > > scheme@(guile-user)> getaddrinfo > $1 = #<procedure getaddrinfo (_ #:optional _ _ _ _ _)> > > scheme@(guile-user)>
Thank you! Something must be up with either the Guile REPL or the Guile REPL inside Emacs' M-x shell. I tried to run socket in it and it could not find that. I also ran other code before that, so maybe the issue was, that that somehow prevented the REPL from finding the bindings. However, now that I tried what you wrote in a completely new REPL in a XFCE terminal, it works flawlessly. And such a thing has happened to me before with another module inside Emacs M-x shell mode. I think what I can take from this is, that if there is no use-modules part in the docs, it is likely available without running such and if it is not available I should check outside of Emacs in a standard terminal emulator.