Subscribe
Hello Alexis :-) You are now subscribed -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
Lawrence Bottorff writes: New install. Put picoLisp in ~/opt/picoLisp/ Then I created an alias for the pil: alias pil='~/opt/picoLisp/pil +' This works fine from shell; starts up REPL. However emacs can't start the REPL (run-picolisp): Searching for program: no such file or directory, pil What can I do to make emacs see ~/opt/picoLisp/pil ? i'm running a manually-compiled Emacs 24.4, and i don't have any `run-picolisp` command available - what version of Emacs are you using? In any event, you might be interested in using the `picolisp-mode` package i've started developing: https://github.com/flexibeast/picolisp-mode You can specify the location of the `pil` executable via the `picolisp` customize-group, or by setting the value of `picolisp-pil-executable`. Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
Lawrence Bottorff writes: No matter what I do, M-x picolisp-repl gives: Searching for program: no such file or directory, pil I've set customize group thus: .. '(picolisp-picolisp-executable "/home/lawrence/opt/picoLisp/bin/picolisp") '(picolisp-pil-executable "/home/lawrence/opt/picoLisp/pil") in a fresh install of the melpa picolisp-mode. Help? Could you please show the context surrounding the above settings? Do things work if you go to the *scratch* buffer, enter: (setq picolisp-pil-executable "/home/lawrence/opt/picoLisp/pil") and then evaluate that with C-x C-e? (On my system, the `pil` script is actually in /usr/bin/.) Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
Lawrence Bottorff writes: . . I'm sure if I install a ubuntu-debian package version of picolisp (3.1.7) picolisp-repl will see that, i.e., it's hardwired somewhere to look for a /usr/bin/ executable (pil or picolisp). Not quite: the problem turns out to be that i've failed to make use of the `picolisp-pil-executable` variable in `picolisp-repl`, such that `pil` is only searched for in whatever paths have been specified in Emacs' execution environment. Sorry! i'll fix that now. Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
Alexis writes: Lawrence Bottorff writes: . . I'm sure if I install a ubuntu-debian package version of picolisp (3.1.7) picolisp-repl will see that, i.e., it's hardwired somewhere to look for a /usr/bin/ executable (pil or picolisp). Not quite: the problem turns out to be that i've failed to make use of the `picolisp-pil-executable` variable in `picolisp-repl`, such that `pil` is only searched for in whatever paths have been specified in Emacs' execution environment. Sorry! i'll fix that now. i've now pushed the correction to GitHub; the corrected version should be available from MELPA within an hour or so (if not sooner). Sorry again for the hassle, and thanks for finding this issue! Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
Lawrence Bottorff writes: BTW, I don't see a drop-down menu when I start picolisp-mode. The old version (bundled with the picolisp download had one. Just thought I'd mention it. . . . Well, what i've written isn't any sort of 'update' of the version you mention; i wrote it from scratch, as i wasn't aware of any other actively-maintained Emacs support for PicoLisp. :-) What sort of functionality did the drop-down menu provide? i'm happy to work on feature requests Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
Lawrence Bottorff writes: Okay, this is what I get with the latest melpa picolisp-mode: emacs-snapshot: /usr/bin/pil: No such file or directory Process picolisp-repl exited abnormally with code 127 This is /after/ you've set the value of `picoliso-pil-executable` appropriately? Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
andr...@itship.ch writes: @Alexis: Just have a look into lib/el/ in your picolisp installation. i'm on Debian Wheezy(+updates), and having installed the available PicoLisp package (3.1.0.7-1), couldn't see any .el files within the PicoLisp directory (/usr/share/picolisp/), which doesn't have a /lib or /lib/el directory either. However, having downloaded the 3.1.9 tarball and unpacked it, i can now see the files you're talking about. Have i missed in the documentation where support for editing in Emacs is mentioned? From: http://picolisp.com/wiki/?Documentation i can't see any mention of it in any of: * Manual Page * Reference Manual * Common Index * README * INSTALL or * FAQ ... Maybe your efforts aren't really necessary (but surely a good exercise anyway). ... Maybe you should rename your emacs extensions, so it doesn't get mixed up with the one coming with the picolisp standard distribution. Well, if i'd known that Emacs support was already available, i wouldn't have written my package in the first place! i already maintain a couple of other Emacs packages, and have lots of other coding i'd like to be doing, so i only worked on my PicoLisp package to help myself and other Emacs users, rather than to learn about writing and/or packaging Emacs Lisp - the package as it currently stands didn't require extensive knowledge of PicoLisp. Now that i know comprehensive Emacs support for PicoLisp is available, i'll probably just remove my own PicoLisp package from MELPA. The only thing that my package provides that the distribution package doesn't - as far as i can tell! - is support for showing documentation for the symbol at point, either in a browser or in Emacs itself. i'd be happy for my code for that to be added to the distribution package, assuming i don't have to sign any paperwork to do so Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
Henrik Sarvell writes: Hi Alexis, if I google "picolisp emacs" I see the following URL as the #1 result: https://github.com/tj64/picolisp-mode That is what I use when I code PL in Emacs, works great! Excellent. :-) However, that code hasn't been updated for over 2 years, and since i've had a few bad experiences recently with unmaintained code (bug reports and pull requests ignored, even by people still definitely actively coding), i'd rather not develop a workflow that relies on such code. Having said that, to me it also demonstrates that the presence of PicoLisp support in the standard distribution should be noted on the PicoLisp site itself. Although - is `picolisp.el` actively maintained? Possible copyright issues aside, would proposed patches be reviewed / accepted? Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
On 2015-02-14T00:39:55+1100, Lawrence Bottorff said: LB> Is this different from the distribution version? Yes. The distribution version includes `picolisp-wiki-mode.el`, which the GitHub version doesn't, and a running a diff on `picolisp.el` and `inferior-picolisp.el` shows various differences; i've included the diff outputs at the end of this message. The files with -1 in their name are from the GitHub version, the files with -2 in their name are from the distribution version. LB> BTW, the dist version doesn't seem to have a customize - mode LB> variable for the picolisp exe or for pil. Again, the default seems LB> to be /usr/bin/pil . How do I override this? i guess the easiest thing to do would be to open `inferior-picolisp.el` and modify the following line such that the text "pil" is replaced with the full path to the `pil` executable: (defvar picolisp-program-name "pil +" "The name of the program used to run Picolisp." ) which for you would result in: (defvar picolisp-program-name "/home/lawrence/opt/picoLisp/pil +" "The name of the program used to run Picolisp." ) Alexis. *** BEGIN DIFFS *** ** picolisp-1.el vs. picolisp-2.el ** 27c27 < --- 98c98 < --- 199c199 < --- 243c243 < --- 285c285 < --- 378c378 < --- 396c396 < --- 498c498 < --- 539c539 < --- 582c582 < --- 617c617,618 < (let* ((unit (get-selection-or-unit 'word)) --- (let* ((thing (thing-at-point 'word)) (unit (get-selection-or-unit 'word)) 645c646 < --- 751c752 < --- ** inferior-picolisp-1.el vs. inferior-picolisp-2.el 1,22c1,2 < ;; * inferior-picolisp.el --- picolisp repl in a buffer < ;; ** MetaData < ;; :PROPERTIES: < ;; :copyright: Guillermo_R._Palavecino Thorsten_Jolitz < ;; :copyright-since: 2009 < ;; :version: 1.2 < ;; :licence: GPL2+ < ;; :licence-url: http://www.gnu.org/licenses/ < ;; :part-of-emacs: no < ;; :git-repo: https://github.com/tj64/iorg < ;; :git-clone: g...@github.com:tj64/iorg.git < ;; :authors: Guillermo_R._Palavecino Thorsten_Jolitz < ;; :contact: < ;; :inspiration: cmuscheme.el < ;; :keywords: emacs picolisp comint repl iorg < ;; :END: < < ;; ** Commentary < < ;; For comments, bug reports, questions, etc use the picolisp mailing list, < ;; the #picolisp channel on irc.freenode.net, or the author's emails given < ;; above. --- ;; inferior-picolisp: Picolisp repl in a buffer. ;; Version: 1.2 24c4,18 < ;; * Requires --- ;;; Copyright (c) 2009, 2012, 2013, Guillermo R. Palavecino, Thorsten Jolitz ;; This file is NOT part of GNU emacs. Credits: ;; It's and adaptation of GNU emacs' cmuscheme.el ;; Contact: ;; For comments, bug reports, questions, etc, you can contact me via IRC ;; to the user named grpala (or armadillo) on irc.freenode.net in the ;; #picolisp channel or via email to the author's nickname at gmail.com ;; License: ;; This work is released under the GPL 2 or (at your option) any later ;; version. 29,30d22 < ;; * Mode definitions < ;; ** Inferior Picolisp Mode 32,33c24,26 < (define-derived-mode inferior-picolisp-mode comint-mode "Inferior Picolisp" < "Major mode for interacting with an inferior Picolisp process. --- (defgroup picolisp nil "Run an Picolisp process in a buffer." :group 'picolisp ) 35,36c28,29 < The following commands are available: < \\{inferior-picolisp-mode-map} --- ;;; INFERIOR PICOLISP MODE STUFF ;;; 38c31,32 < An Picolisp process can be fired up with 'M-x run-picolisp'. --- (defconst inferior-picolisp-version "1.2" "Verion-number of library") 40,41c34,37 < Customization: Entry to this mode runs the hooks on `comint-mode-hook' and < `inferior-picolisp-mode-hook' (in that order). --- (defcustom inferior-picolisp-mode-hook nil "*Hook for customizing inferior-picolisp mode." :type 'hook :group 'picolisp ) 43,44c39,44 < You can send text to the inferior Picolisp process from other < buffers containing Picolisp source. --- (defvar inferior-picolisp-mode-map (let ((m (make-sparse-keymap))) (define-key m "\M-\C-x" 'picolisp-send-definition) ;gnu convention (define-key m "\C-x\C-e" 'picolisp-send-last-sexp) (define-key m "\C-c\C-l" 'picolisp-load-file) m ) ) 46,47c46,47 < - `switch-to-picolisp' switches the current buffer to the <Picolisp process buffer. --- (defvar picolisp-local-program-name "./pil +") (defvar picolisp-process-number 0) 49,50
Re: Installation issues
On 2015-02-15T02:56:38+1100, Alexander Burger said: AB> Unfortunately, Thorsten (the original maintainer) is currently AB> offline. AB> I can't do anything in 'picolisp.el', as I'm ignorant of emacs, AB> but I can gladly take changes (if they are thoughtfully reviewed AB> and agreed upon by competent people) and put them into the AB> PicoLisp release. Excellent. :-) Thanks! i'll try to find some time to: * examine the diffs between the distribution version and the GitHub version; * add to the former any fixes and/or extra functionality found in the latter; * add in my code to present documentation for the symbol at point; and * add in things like user configuration of the path to the `pil` executable. :-) Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Installation issues
On 2015-02-17T17:12:54+1100, Alexander Burger said: AB> as I mentioned in my previous mail, is Thorsten currently AB> offline. He asked me to post this for him A> "i'll try to find some time to: A> * examine the diffs between the distribution version and the A> GitHub version; TJ> Why? Just use the newer version, i.e. the Github TJ> version. Nobody else but me did change anything recently. Then why isn't the GitHub version the one currently distributed with PicoLisp? The fact that it's not suggested to me there might be some issues around doing so. And why does the distribution version contain picolisp-wiki-mode.el, whereas the GitHub version doesn't? (A separate issue is, why do users have to manually patch paredit.el? Has there been some issue with upstream not being willing or able to modify paredit.el so that it can better support PicoLisp?) A> * add to the former any fixes and/or extra functionality A> found in the latter; TJ> Again - why? Just replace the older version with the TJ> newer version ... See above. A> * add in my code to present documentation for the symbol at A> point; TJ> and you mean an eldoc implementation for picolisp? No, although that's certainly a good idea. What my code does is (for Emacs > 24.3) to open the full reference documentation for a particular function in a new buffer via `shr`, or (for Emacs < 24.4) in a Web browser. TJ> patches are welcome, just fork me on github. ... except you're currently offline, for a period of time not specified. As i've mentioned elsewhere in this thread, given my experiences of spending time coding and submitting PRs/issues, only to have the latter ignored even by people who are demonstrably still actively coding, i'm not much inclined to get involved with code whose maintainer is very explicitly offline. A> * add in things like user configuration of the path to the A> `pil` executable. :-)" TJ> AFAIK the path is remembered, to avoid typing, but can be TJ> changed - just try using a prefix before the command, that TJ> should give you the opportunity to type in your own path TJ> (but I'm not sure right now). TJ> Try C-h f on the core functions, there is quite a lot of TJ> info in the docstrings. Here's the doc for `run-picolisp` (which, i note, isn't mentioned in the README; nor does it begin with the `picolisp-` prefix to assist its discoverability and limit namespacing issues) from the GitHub version: run-picolisp is an interactive autoloaded Lisp function in `inferior-picolisp.el'. It is bound to . (run-picolisp CMD) Run an inferior Picolisp process, input and output via buffer `*picolisp*'. If there is a process already running in `*picolisp*', switch to that buffer. With argument, allows you to edit the command line (default is value of `picolisp-program-name'). Runs the hook `inferior-picolisp-mode-hook' (after the `comint-mode-hook' is run). (Type C-h m in the process buffer for a list of commands.) The fact that one can add a prefix arg to it to specify the full path to the `pil` executable, and that such a specification will be automatically remembered, isn't mentioned. TJ> Sorry for being late to the discussion, but I'm TJ> not really online at the moment. Fair enough; life happens! i myself have a lot happening, so it's important to me that my FOSS contributions aren't to no effect, or become more complex to manage than i've got the time and energy for. Consequently, given that the more i look at the situation around the above implementations, the more contextual complexity[1] i find, i feel it's best for someone else to take on the work of sorting things out. [1] As distinct from any complexity in the code itself. At any rate, i've started the process of renaming my own `picolisp-mode` to `a-picolisp-mode`, so that it doesn't get confused with these other existing codebases; and in the README for my package, i'll be emphasising that my code is in no way connected with the PicoLisp support included in the PicoLisp distribution, or the modified version thereof available on GitHub. Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Reference Manual diagram conventions
Hi all, The "Symbols" section of the PicoLisp Reference Manual: http://software-lab.de/doc/ref.html#symbol seems to have the convention: +-+-+ | cdr | car | +-+-+ whereas the "Numbers" and "Lists" sections has the convention: +-+-+ | car | cdr | +-+-+ which, in an English-language left-to-right document, is what i would expect. Is there a particular reason for the former? Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Reference Manual diagram conventions
Alexander Burger writes: In all these documentations, cells are always displayed in the form +-+-+ | CAR | CDR | +-+-+ The left half of the cell is the CAR, and the right half the CDR. Just as the cell resides in memory. The CAR is at the lower address, and the CAR at the higher. The important point is that the pointer *TO* a PicoLisp item may point to different parts of the cell: Ah, okay, now i understand. Confusing? No, i found your explanation succinct and clear - thank you! Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Machine Learning in PicoLisp
Amaury Hernández Águila writes: Any suggestions to the name of the library? PicoML sounds good. i would suggest not using 'PicoML' - that sounds like a dialect of the ML programming language: https://en.wikipedia.org/wiki/ML_%28programming_language%29 Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Emacs REPL not "full-featured"?
Lawrence Bottorff writes: I've got a REPL started in Emacs (called from ELPA version of picolisp major mode with run-picolisp) The only picolisp-mode i'm aware of that's on an ELPA is my picolisp-mode on MELPA: http://melpa.org/#/picolisp-mode As the documentation on that page notes, this mode is not related to the one bundled with PicoLisp[1]. In particular, it does not contain a command `run-picolisp` (such non-namespace-prefixed names are nowadays considered poor ELisp programming style). So it sounds like you're actually using the bundled-with-PicoLisp mode, not the mode available on MELPA, i.e. the former is loaded and shadowing the latter. Alexis. [1] For a discussion on why my package on MELPA still has the same name as the one bundled with PicoLisp, cf. https://github.com/milkypostman/melpa/issues/2514. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Emacs REPL not "full-featured"?
Lawrence Bottorff writes: Yes, I've got this going in my init (*and *the ELPA installed) (add-to-list 'load-path "/home/hercynian/opt/picoLisp/lib/el") (load "tsm.el") ;; Picolisp TransientSymbolsMarkup (*Tsm) (autoload 'run-picolisp "inferior-picolisp") (autoload 'picolisp-mode "picolisp" "Major mode for editing Picolisp." t) *nod* Well, my recommendation is to either uninstall my MELPA package, or remove the above from your config - otherwise you'll probably start encountering all sorts of odd issues, and it might be difficult for people familiar with either package to help you untangle what's going on. Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: picolisp-mode
Jean-Christophe Helary writes: There are currently 2 picolisp modes for emacs, one is distributed with picolisp and the other is on melpa. Is there a reason for that ? Yes: https://github.com/melpa/melpa/issues/2514 One of the MELPA maintainers said in that thread: If the time comes that users start saying that picolisp-mode on MELPA should be the official version then lets cross that road when we get there. If people here would now like me to rename my mode, i'd be happy to initiate that process. Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: picolisp-mode
andr...@itship.ch writes: I greatly enjoy using paredit, which works well. I have not tried out the other emacs modules for picolisp, and I don't know if the one in MELPA works well with paredit, which I see as the essential feature for an emacs picolisp-mode. i myself don't use paredit - i've tried it, and have made an effort to use it, but in the end i found it to be much more of a hindrance than a help[1]. So i don't have any experience with paredit's interactions with my mode. If the MELPA package supports paredit Could you please explain what it means to "support paredit"? i certainly wouldn't want my mode to get in the way of people who want to use paredit. and the other features of the picolisp-mode coming with picolisp, ideally by also supporting the nice tools from the vim/vip editors Could you please elaborate on this? Which tools in particular are you thinking of? Different users might find different versions, but I would not consider it impossible or even difficult to get to the things you want. In the end everyone should use whatever fits that person the best, we don't need one way to rule them all. *nod* i very much agree. Whilst i definitely see the benefits of there being only one 'picolisp-mode', i also feel that there are benefits to having than one set of functionality available. Take the vc/magit situation as an example: vc and magit have quite different approaches to providing a UI to git, and that allows different users to choose the approach that works better for them. Having said all that, if the PicoLisp community generally felt it would be best to settle on the mode currently bundled with the distribution as /the/ Emacs mode for PicoLisp, and wanted me to remove my mode from MELPA - or at least, rename it - in order to avoid confusion, i'd be fine with that as well. :-) Alexis. [1] Yes, i'm aware of the claim that "[i]f you think paredit is not for you then you need to become the kind of person that paredit is for." :-) -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: Setup for Emacs org-mode?
r...@tamos.net writes: My 2 cents (and I hope somebody corrects any errors or omissions on my part). Happy hacking! Nice summary - thanks Rick. :-) Lawrence, i've now replied to the issue you raised about config: https://github.com/flexibeast/picolisp-mode/issues/3#issuecomment-499743025 Also, did you end up resolving the issue you raised about calling `picolisp-repl`? i don't appear to have received any response from you to my last query: https://github.com/flexibeast/picolisp-mode/issues/2#issuecomment-478310047 Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: plisp-mode on melpa
Jean-Christophe Helary writes: And, I'm using plisp-mode from melpa. My problem is that I don't see a place to set the inferior-picolisp executable in the customize buffer and everytime I rerun Emacs the setting falls back on /usr/bin/pil +. Is there a way to set the path somewhere ? It's currently not a defcustom, but i'll change that asap (hopefully in the next 24 hours or so). In the meantime, though, you can add `(setq inferior-plisp--command-line " +")` to your Emacs config. Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: plisp-mode on melpa
Jean-Christophe Helary writes: Thank you Alexis, and sorry to bother you about that. It was late but it's something I could have checked myself. It's no problem! As it was marked as an internal variable, it's good to err on the side of not trying to mess with it externally. :-) But i can't think of any reason it /needs/ to be internal, so it should definitely be a defcustom instead. Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Re: FEXPRs / PilCon
Alexander Burger writes: On Sat, Mar 13, 2021 at 06:48:22PM +0100, Tomas Hlavaty wrote: (de (Col . Prg) (prin "") (run Prg) (prin "") ) prin has side-effect. Nonsense! 'prin' *is* the only and desired effect. Mm, it seems to me that there might be a mutual misunderstanding here, due to two different meanings of 'side-effect'. The lay meaning of 'side-effect' is "an effect in addition to the one that was intended/desired". A technical meaning of 'side-effect', in functional programming, is "something which changes state": https://en.wikipedia.org/wiki/Side_effect_(computer_science) In this context, printing something to an output device changes global state; the 'state of the world' has been changed to one that includes the content output. My guess is that Tomas is using the latter meaning, and wants 'pure' functions that simply return strings, without sending them to an output device. The final string to be output would be created by combining the return values of multiple functions, possibly performing transformations on them along the way, then sending _that_ string to an output device. Is that correct, Tomas? Alexis. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Unsubscribe
Good bye Alexis :-( You are now unsubscribed -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe