[[!meta title="Elisp and McCLIM"]] [[!meta copyright="Copyright © 2024 screwlisp"]] [[!inline pages="internal(2024/info/mcclim-nav)" raw="yes"]] # Elisp and McCLIM he or e/em/eir (Spivak, male and neuter pronouns are fine) - IRC: screwlisp, Mastodon: @screwtape@mastodon.sdf.org liberachat: screwlisp MOO: lambda.moo.mud.org Name: screwtape Moo mail preferred [[!inline pages="internal(2024/info/mcclim-before)" raw="yes"]] The gist is demoing using McCLIM common lisp interface manager implementation to make Sandewall 1978's lisp iconic example scheduler app, but to drive it to and from emacs lisp via slime and swank. To start with, a beginner walkthrough on getting slime and common lisp and mcclim, and configuring and using them with emacs org-mode. The default clim application-frame is made and its interactor used. A CLIM command is then defined to refer the default describe to emacs lisp rather than the inferior lisp. CLIM useage with no gui via slime / org-mode is demoed. This is then used via emacs lisp. CLIM's accepting-values is used to generate an anonymous gui that accepts a value **into elisp**. A small final discussion on integrating the clim scheduler back and forth into org-agenda. Bib: ``` @article{sandewall1978programming, title={Programming in an Interactive Environment: the``Lisp''Experience}, author={Sandewall, Erik}, journal={ACM Computing Surveys (CSUR)}, volume={10}, number={1}, pages={35--71}, year={1978}, publisher={ACM New York, NY, USA} } @inproceedings{strandh2002free, title={A free implementation of clim}, author={Strandh, Robert and Moore, Timothy}, booktitle={International Lisp Conference Proceedings}, year={2002} } @article{fruhwirth2006guided, title={A Guided Tour of CLIM, Common Lisp Interface Manager}, author={Fruhwirth, Clemens}, journal={Lisp Pointers}, year={2006} } @article{kochmanskimcclim, title={McCLIM Demonstration}, author={Kochmanski, Daniel} } @inproceedings{kochmanski2020ecl, title={On ECL, the Embeddable Common Lisp (ELS keynote).}, author={Kochmanski, Daniel}, booktitle={ELS}, year={2020} } @misc{beane2012quicklisp, title={Quicklisp}, author={Beane, Zach}, year={2012} } @misc{marsden2003slime, title={SLIME: The superior lisp interaction mode for emacs}, author={Marsden, Eric and Gorrie, Luke and Eller, Helmut and others}, year={2003}, publisher={URL: https://common-lisp. net/project/slime/(visited on 05/19/2017)} } @article{dominik2004org, title={Org mode manual}, author={Dominik, Carsten}, year={2004} } ``` **Q&A in LambdaMOO**: As an experiment, screwlisp will also be taking questions from LambdaMOO. Here's how to join: 1. Use `M-x telnet` to connect to `lambda.moo.mud.org 8888`. Alternatively, you can use a web-based client like https://mudslinger.net/play/ or rmoo.el (see rmoo.el note below) 2. `connect Guest` to connect as a guest. If that doesn't work, please ask in `#emacsconf-org` and we'll try to get you sorted out. 3. Agree to the terms by typing `YES`. 4. Teleport to where the speaker is by typing `@join screwtape`. To say something, start with `"` and omit the ending quotation mark, like this: `"Hello everyone!`. To say something to a specific person, start with a backtick (`` ` ``) and the person's nick, then your message, like this: `` `sachac I made it to LambdaMOO``. Use `help communication` to learn more about other communication tools, such as `:` for emoting and `whisper` for sending private messages. rmoo.el note: You may need to define process-kill-without-query if it doesn't exist on your computer. Here's a use-package declaration that might be a good starting point. If your version of use-package doesn't support `:vc` yet, you can check out the code from https://github.com/toddsundsted/rmoo and add it to your load-path, or use `M-x telnet` for now. ``` (use-package rmoo :vc "https://github.com/toddsundsted/rmoo" :init (unless (fboundp 'process-kill-without-query) (defun process-kill-without-query (process &optional flag) (set-process-query-on-exit-flag process nil) t)) :config (rmoo-worlds-add-new-moo "LambdaMOO" "lambda.moo.mud.org" "8888")) ``` You can also ask questions via BigBlueButton, Etherpad, or IRC, and the host will try to make sure your question gets to the speaker. Enjoy! About the speaker: I'm screwlisp from the lispy gopher climate, a weekly Wednesday 000UTC podcast (non-radio show) on aNONradio.net powered by sdf.org; (also the lesser-known Friday 1400UTC show, Zhen House Zhen Bonkwave. We are fortunate to have many great people in our live chat that happens in LambdaMOO during the shows. Last week, we shared Rog's new writing on his current personal emacs modes with his decades of emacs useage. (Roger Crew). That's not what this talk is about though, though we often deal with emacs and McCLIM, which **are** what this talk is about. I have many friends who picked those up in some small part thanks to the show. # Discussion - Q:I would love to see the GUI interacting with the scheduling stuff you were working on initially, if I didn't miss it somewhere earlier. - A: - Q:Or any other GUI stuff you've worked on in the past that you'd be comfortable showing? - A:[https://toobnix.org/a/screwtape/video-channels](https://toobnix.org/a/screwtape/video-channels) [[!inline pages="internal(2024/info/mcclim-after)" raw="yes"]] [[!inline pages="internal(2024/info/mcclim-nav)" raw="yes"]]