From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tomas Volf <~@wolfsden.cz> Newsgroups: gmane.lisp.guile.user Subject: Re: Some issues with guile Date: Fri, 26 Apr 2024 22:39:25 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="pI4Trn6g3ZR2Wpp7" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9964"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-user@gnu.org To: Nikolaos Chatzikonstantinou Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Fri Apr 26 22:40:02 2024 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s0SMT-0002In-N8 for guile-user@m.gmane-mx.org; Fri, 26 Apr 2024 22:40:02 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s0SM5-0001J3-Hw; Fri, 26 Apr 2024 16:39:37 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <~@wolfsden.cz>) id 1s0SM3-0001Ir-Uy for guile-user@gnu.org; Fri, 26 Apr 2024 16:39:35 -0400 Original-Received: from wolfsden.cz ([37.205.8.62]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <~@wolfsden.cz>) id 1s0SM1-00088O-DO for guile-user@gnu.org; Fri, 26 Apr 2024 16:39:35 -0400 Original-Received: by wolfsden.cz (Postfix, from userid 104) id E6A9828F04C; Fri, 26 Apr 2024 20:39:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1714163968; bh=0LsbXuIDN/rBFyYeBWaZy9yk8jx3rIe5P5HhpM2H9r4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=oW759Obokj5UHxRlqd+hh4hFZ1zpku5mOPdy/HU3kapoMTnpJyHjt0cC5BeciOWHG W8MRGFMal/hCmsnSdoQ7G5TBwAmyuFbPvFjmE50BNB1RfORl17wSc9NGxqdI96chk1 OWwxhiwQgUQ4YBG+9IJz9CFxbeJDPkvUKlyeSdIqh0ozwjKgegqHgx25T+XFGOYmzF yjgxvhCG3395buxv9j8mAa0ETMEpcDUkvMkzbVi2tUqgo7Zqnf99ftHoD60HU9oS/H PUbM43MFH5Te+IrcTRYJ9ApTW3l74cGXWXSjRmPUqlu/VariKqK9lm+Y8+rSrsFt86 uF8ld6K9DLZvM0QKoneTZULEvO8pQs1njXj/WUnD+fNrlRw7YcguQM2ThMhGm/b7lL rUnGPCD7flAwaBeyFHiuzZjRL8ZrjdUuk0Tx29a0tH+OJFn7C/suafFnFiv44liVPb 6Y8JIVAALuQ7vPnpMD9rbe2Rci08NCi22FmsPcgxFkkkxMD4gARG1sLb2sf6pfcFYc D6YVf2V1nVluF8meDPodFOlkF9ZSIIm7McsuOit3n6JUv92yulXByCIOgW8l9BZJsk O8YgHhehbxdggQ6zNqXH6Kzq1/xRiR3KaAShsfVPs/IC3nUpmemuPYRz9nmK19U4qc 5eTbj5+ECO2jl6fPfGBLb5Xo= Original-Received: from localhost (unknown [146.70.134.183]) by wolfsden.cz (Postfix) with ESMTPSA id E1C4828B9D1; Fri, 26 Apr 2024 20:39:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1714163968; bh=0LsbXuIDN/rBFyYeBWaZy9yk8jx3rIe5P5HhpM2H9r4=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=oW759Obokj5UHxRlqd+hh4hFZ1zpku5mOPdy/HU3kapoMTnpJyHjt0cC5BeciOWHG W8MRGFMal/hCmsnSdoQ7G5TBwAmyuFbPvFjmE50BNB1RfORl17wSc9NGxqdI96chk1 OWwxhiwQgUQ4YBG+9IJz9CFxbeJDPkvUKlyeSdIqh0ozwjKgegqHgx25T+XFGOYmzF yjgxvhCG3395buxv9j8mAa0ETMEpcDUkvMkzbVi2tUqgo7Zqnf99ftHoD60HU9oS/H PUbM43MFH5Te+IrcTRYJ9ApTW3l74cGXWXSjRmPUqlu/VariKqK9lm+Y8+rSrsFt86 uF8ld6K9DLZvM0QKoneTZULEvO8pQs1njXj/WUnD+fNrlRw7YcguQM2ThMhGm/b7lL rUnGPCD7flAwaBeyFHiuzZjRL8ZrjdUuk0Tx29a0tH+OJFn7C/suafFnFiv44liVPb 6Y8JIVAALuQ7vPnpMD9rbe2Rci08NCi22FmsPcgxFkkkxMD4gARG1sLb2sf6pfcFYc D6YVf2V1nVluF8meDPodFOlkF9ZSIIm7McsuOit3n6JUv92yulXByCIOgW8l9BZJsk O8YgHhehbxdggQ6zNqXH6Kzq1/xRiR3KaAShsfVPs/IC3nUpmemuPYRz9nmK19U4qc 5eTbj5+ECO2jl6fPfGBLb5Xo= Mail-Followup-To: Nikolaos Chatzikonstantinou , guile-user@gnu.org Content-Disposition: inline In-Reply-To: Received-SPF: pass client-ip=37.205.8.62; envelope-from=~@wolfsden.cz; helo=wolfsden.cz X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.user:19553 Archived-At: --pI4Trn6g3ZR2Wpp7 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2024-04-26 03:05:51 -0400, Nikolaos Chatzikonstantinou wrote: > Hello list, > > I want to talk about some issues I've encountered with Guile. I'll > quickly summarize the points and I'll expand below. > > 1. Can't connect geiser from emacs to a remote REPL server unless > versions match. > 2. Documentation extraction sucks. > 3. Programs/libraries that use Guile as an extension language are > incompatible with one another. > > If anyone can help with these points I would appreciate it. Keep in > mind that I am not a seasoned schemer nor intimately familiar with the > GNU Guile manual and it is possible that I've misunderstood something. > > 1. The easiest OS to hack on Guile is Guix. I don't run Guix so I > spinned a VM with it, where I installed guile-next for the > bleeding-edge guile. I attempted to run `guile --listen` in the VM and > `connect-to-guile` in the (Debian) host, but I'm getting errors, it's > not working. I don't quite understand why. The errors seem to be > related to version incompatibility, but I don't understand what if > anything my host guile package has to do with the guest VM guile > package. > > 2. There's an issue with documentating source code. The best system > I've seen is Rust's, but sphinx and Doxygen work fine too. At the very > least, a documentation system should have the following features: > i. document all language constructs > ii. markup (i.e. code blocks, links to other items) > iii. exportable > Of course there can be more features, such as unit tests in > documentation, but I don't consider them essential. I don't know what > Guile does. I know there's `guild doc-snarf` and > `(ice-9 documentation)` with docstrings, as well as the package > document=E1 (.) These don= 't work: > - `guild doc-snarf` does something clumsily ONLY with > double-semicolon comments. Triple-semicolon file headers that > explain the purpose of a module are ignored, for example. It's not > clear what the utility of the output of this tool is. > - `object-documentation` from `(ice-9 documentation)` only seems to > work with docstrings of functions, although it claims to work with > macros too, suggesting that the `documentation` property should be > set. But how? It's not explained. The info page on "Object > Properties" makes it seem like this suffices: (set! (documentation > my-function) "the docstring.") but I can't get it to work like > that. Docstrings cannot document files. Maybe they can document > macros, variables, and modules at least? What you want is: (set-object-property! foo 'documentation "Contains a @code{'bar}.") > But the docstring format is raw, there is no markup! You can write them in whatever markup you want, I personally use texinfo fo= rmat (next version of geiser will be able to process and display it nicely). > - document=E1 in its page does not include an example of how it works! > Not a line of code to explain to the user which documentation is > extracted. I could not understand how to use it. > > 3. I use GNU GDB for debugging. Sometimes there's a desire to be able > to interpret byte values in memory. GNU poke allows for this sort of > thing. Both programs are very similar in how they behave, and in > theory it should be possible to run poke commands from gdb, especially > since there's libpoke for this exact purpose. However, this is not > possible as far as I've been told, and the reason is that both libpoke > and gdb load guile, and therefore, gdb cannot load libpoke in memory > because of some issue with the Guile garbage collector! This is > terribly disappointing. Can anyone clarify what is going on with this > sort of thing? Workarounds so far include compiling gdb without guile > support (everyone uses python for scripting in gdb anyway) or dumping > byte ranges from gdb and examining them from the poke process > separately. > -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. --pI4Trn6g3ZR2Wpp7 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmYsEP0ACgkQL7/ufbZ/ wakwPQ//Sy125B40pbdUgK12vy1qMRzDX02hQ2C3Iq7qmp7GkNWxVUAzwlRrk8F8 f6v1hcX3yA3XmerRHYw0bV3/FxAqJy2YDEZAKcFGNk7xlv8UwWpZsGnOulnBHq/S Uz++C6q66mipTSoPmoeBr3LhCVVW1/Xt2m83HEBHi12O3kXFZ0D0iIMeGwAOEcCX BrbzJ5nzWK+VMyQUCSD9XrfozyYd7AsHXmSigXNVvx+OiMt18Lp64De7efaWjnMl qJj/uvj85QeitiqiIvVF8TxOVZYOT2HGEGKp3oI61ur5YrsptOLvj3hVGBVMqQ5T kTlmXSpRCi0+bnMqbcjbiP+1NBTGhRjWtcx4YNK8enbSJ4i2X+/nWaYOMs7HiTHn ZjbqAxI+n0FenInUIan3F9oCUwwfwidesDvzxuxS9sMwYxV+WcEMQifqJxGai2gz RSAW5CktvViCOmZRfFghjFMdGWrr3UWndpWsB57M4W11xEU2R87UlOZDvHRANgB6 42F5vFyEvLJI2v1RYtGlmblffy3DQGfa2T/57N+vDzap11iXryv0Y94aTX/fsL0A +2f7c/Z0gxLiBwB1K7U+TQ2oLQ29mhIIp0AxvFr4qf6GXXiRtrUY/K0o0sMLXf23 xai+zUE2n1G9FY/M7hEe1is1wxXN0K1l3n7FLCK6pcDKgiLonmQ= =3m8q -----END PGP SIGNATURE----- --pI4Trn6g3ZR2Wpp7--