Post Ac41sVOrPZ2GuDoJIO by fosskers@emacs.ch
 (DIR) More posts by fosskers@emacs.ch
 (DIR) Post #AbyITiyELtkI1iMdnM by galdor@emacs.ch
       2023-11-19T17:40:13Z
       
       0 likes, 1 repeats
       
       I just finished my article on interactive #CommonLisp development. Turned out to more than I expected and less that it should be. One could probably write a small book on the subject. Hopefully it will still be useful.https://www.n16f.net/blog/interactive-common-lisp-development/
       
 (DIR) Post #AbyUPxQlqVzFAMgSxs by ablock@social.linux.pizza
       2023-11-19T19:53:59Z
       
       0 likes, 0 repeats
       
       @galdor Hey!Thank you for so helpful article!While reading it, I think I encountered an error in the section 'Symbols and Packages' (I use sbcl 2.3.8):INTERN expects a string as an argument, so (INTERN (MAKE-SYMBOL "FOO")) doesn't work. It seems it should be (INTERN "FOO") or (IMPORT (MAKE-SYMBOL "FOO")). What do you think?"
       
 (DIR) Post #AbyUsU8rotm4j6ue9o by galdor@emacs.ch
       2023-11-19T19:59:09Z
       
       0 likes, 0 repeats
       
       @ablock You're 100% right, I have no idea why I wrote this. Fixed :)Thank you!
       
 (DIR) Post #AbyW6YxGp2Fzf6lUSu by Ardubal@mastodon.xyz
       2023-11-19T20:12:54Z
       
       0 likes, 0 repeats
       
       @galdor Any particular reason why you're basing this on CLtL2 instead of the ANSI Spec?
       
 (DIR) Post #AbyWdQBYRr261I7A2K by galdor@emacs.ch
       2023-11-19T20:18:50Z
       
       0 likes, 0 repeats
       
       @Ardubal The ANSI spec has to be bought, and for the price, you get a low resolution scan of a printed document. So you cannot even search for content (as usual, thanks ISO/ANSI for being obstacles and not useful partners).Fortunately there is very few differences between CLtL2 and the standard, and one can alway check the HyperSpec to be sure.
       
 (DIR) Post #AbyY1fJDyDGHpTpHqC by Ardubal@mastodon.xyz
       2023-11-19T20:34:25Z
       
       0 likes, 0 repeats
       
       @galdor Well yes, since the HyperSpec is available at several places, I'm primarily just using that, skipping the checking-to-be-sure.
       
 (DIR) Post #AbynWXPmrwL7dT4j0y by anticrisis@hachyderm.io
       2023-11-19T23:28:04Z
       
       0 likes, 0 repeats
       
       @galdor Excellent article, quite a lot to put together. From my experience, I frequently restart SBCL using Slime's "comma" command, and reload my system using asdf:load-system while developing, to put the image back in a clean and compiled state. I use structs extensively, not CLOS, and never fuss with redefining data structures while running.
       
 (DIR) Post #Ac06ywUNKYPBnSRHJQ by vindarel@framapiaf.org
       2023-11-20T14:40:48Z
       
       0 likes, 0 repeats
       
       @galdor Very precise post, I learnt a couple things thanks.re defpackage's error when removing a symbol: uiop:define-package fixes that. Smoother development.
       
 (DIR) Post #Ac1kqhUbORmuIJ86gC by svw@emacs.ch
       2023-11-21T09:42:14Z
       
       0 likes, 0 repeats
       
       @galdor Great article! I can now scratch a couple of itches rather than having to restart SBCL! 🤣 Thanks for writing and sharing this .
       
 (DIR) Post #Ac24EI4xQkHDYR64GG by lispm@moth.social
       2023-11-21T13:19:23Z
       
       0 likes, 0 repeats
       
       @galdor @Ardubal The HyperSpec has all the contents from ANSI CL (and more). There are other variants of that content. https://novaspec.org/cl/ https://cl-community-spec.github.io/pages/index.htmlHere is a PDF which also basically has the same contents as the ANSI CL Spec:https://franz.com/support/documentation/cl-ansi-standard-draft-w-sidebar.pdf
       
 (DIR) Post #Ac24StKrhxjj9qV3Ca by galdor@emacs.ch
       2023-11-21T13:22:03Z
       
       0 likes, 0 repeats
       
       @lispm @Ardubal The draft document is new to me, this is really good, thank you!
       
 (DIR) Post #Ac24rok7v6xI9bCXZo by lispm@moth.social
       2023-11-21T13:26:32Z
       
       0 likes, 0 repeats
       
       @galdor @lispm @Ardubal Draft here means that this is the last version before it was delivered to ANSI, without changes, IIRC. The HyperSpec OTOH has the permission of ANSI to use the contents for that webversion, created for/by LispWorks
       
 (DIR) Post #Ac25eIxsrK4XmkkyMC by ramin_hal9001@emacs.ch
       2023-11-21T13:35:18Z
       
       0 likes, 0 repeats
       
       Nicholas Martyanoff ( @galdor ) on what makes Common Lisp so good for interactive REPL-based developmentThis article is not so much about using the REPL itself, but about the features that Common Lisp provides that allows you to easily make changes to a program while it is running without restarting it. He talks about the mechanisms that make variables work (which is a subtly different compared to other languages), and how classes, methods, structures, and data types all work. Quoting the introduction:> "Common Lisp programming is often presented as “interactive”. In most languages, modifications to your program are applied either by recompiling it and restarting it. In contrast, Common Lisp lets you incrementally modify your program while it is running.> "While this approach is convenient, especially for exploratory programming, it also means that the state of your program during execution does not always reflect the source code. You do not just define new constructs: you look them up, inspect them, modify them or delete them. I had to learn a lot of subtleties the hard way. This article is a compendium of information related to the interactive nature of Common Lisp."
       
 (DIR) Post #Ac2iVTJktXQ3V3lXvM by louis@emacs.ch
       2023-11-21T20:50:39Z
       
       0 likes, 0 repeats
       
       @galdor I’m coming late to the party but still wanted to thank you for writing and sharing this great article. I’m sure it’ll serve the Common Lisp community for a long time. 👏
       
 (DIR) Post #Ac2kScao9axrJ0VinA by sigue@universeodon.com
       2023-11-21T21:12:36Z
       
       0 likes, 0 repeats
       
       @galdor Very nice post!If I may, I'd like to report a grammar-o:  you can drop the word "either" in the second sentence.
       
 (DIR) Post #Ac3CQc7xi5GM03qigK by fosskers@emacs.ch
       2023-11-22T02:25:58Z
       
       0 likes, 0 repeats
       
       @galdor I was surprised by:While this property allows implementations to handle structures in a more efficient way than classes, it makes structures unsuitable for incremental development. As such, they should only be used as a last resort, when a regular class has been proved to be a performance bottleneck.
       
 (DIR) Post #Ac3kWi2g1qucWVSI4m by galdor@emacs.ch
       2023-11-22T08:48:02Z
       
       0 likes, 0 repeats
       
       @fosskers Surprised about the fact that structure redefinition is undefined or surprised that my conclusion is that they are unsuitable for incremental development?
       
 (DIR) Post #Ac3kd2j62RlOPaJhcO by galdor@emacs.ch
       2023-11-22T08:49:11Z
       
       0 likes, 0 repeats
       
       @louis Thank you I appreciate that! Writing it forced me to double check a lot of things, I learned a lot. Also (re)learned how useful CLtL2 is.
       
 (DIR) Post #Ac3kkDxKgYYvGbOr5c by galdor@emacs.ch
       2023-11-22T08:50:30Z
       
       0 likes, 0 repeats
       
       @sigue Fixed, it was a leftover from the proofreading process. Thanks!
       
 (DIR) Post #Ac41sVOrPZ2GuDoJIO by fosskers@emacs.ch
       2023-11-22T12:02:27Z
       
       0 likes, 0 repeats
       
       @galdor Both! I've always reached first for structs (out of mistrust of the greater OO system). But I am admittedly not a CL expert.
       
 (DIR) Post #Ac4QP0xnzYAOxuBqMK by svetlyak40wt@fosstodon.org
       2023-11-22T16:37:02Z
       
       0 likes, 0 repeats
       
       @galdor great article. I'd like to translate it into russian if you don't mind!
       
 (DIR) Post #Ac4RkKhnt2uiEGR0dc by galdor@emacs.ch
       2023-11-22T16:52:19Z
       
       0 likes, 0 repeats
       
       @svetlyak40wt As long as you name me as original author and link back to my page, I'm OK with it.Hopefully it will help more people :)
       
 (DIR) Post #Ac4WGK1WME6FCIAMu8 by svetlyak40wt@fosstodon.org
       2023-11-22T17:42:56Z
       
       0 likes, 0 repeats
       
       @galdor great! Thank you!
       
 (DIR) Post #Ac6HccXp4FBo0uMzLc by veer66@mstdn.io
       2023-11-23T14:08:10Z
       
       0 likes, 0 repeats
       
       @galdor by reading this, I feel like Emacs has a telemetry. 😛
       
 (DIR) Post #Ac6NWTN8r9UHYOpFOC by galdor@emacs.ch
       2023-11-23T15:14:26Z
       
       0 likes, 0 repeats
       
       @veer66 Why is that?
       
 (DIR) Post #Ac6ODQVNONNl769vRQ by veer66@mstdn.io
       2023-11-23T15:22:10Z
       
       0 likes, 0 repeats
       
       @galdor I feel like how do you know that I'm redefining defpackage.  😅
       
 (DIR) Post #Ac6PigNqVQvDI76YRk by galdor@emacs.ch
       2023-11-23T15:39:03Z
       
       0 likes, 0 repeats
       
       @veer66 Everyone does it when they start using Common Lisp. Then they wonder what this strange error about symbols and exports means.Not ideal, but once you understand IMPORT and UNIMPORT it stops being a major issue.