picolisp.com appears to be down (2021-04-29 18:30GMT - 19:45GMT) /eof
-- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: Merry Christmas!!
> Wóškate aŋpétu wašté! (happy holidays in Lakota) from Nebraska USA. May > PicoLisp continue to bring joy to the world :) > > grant Hello, grant and everyone! Happy early New Year from Omaha, Nebraska, USA! :) Cheers, --David "sebboh" Loyall
RE: test message
> Off topic, but it would be really nice if you would not send HTML-*only* > messages. Apologies! I understand the problem and I'll try to remember to select 'Plain Text' mode in Outlook in the future. This message is text only, right? Cheers, --Dave PԔ � &j)mX�����zV�u�.n7�
test message
I have not received new picolisp mail for a while, so I am testing the mailing list.
RE: Success at last!
FYI, Arie, I didn't receive any attachment with your email. > From: Arie van Wingerden > Sent: Tuesday, April 17, 2018 10:02 AM > Subject: Success at last! > [...] > Attached a document with what I did. > [...] PԔ � &j)mX�����zV�u�.n7�
RE: I/O device access
> Sent from Mail for Windows 10 I use Outlook 2013 (not my first choice!) and I get those strange symbols, too. Cheers, --Dave L. -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: PicoLisp on quora.com
>> * one implementation is canonical: amd64 > >Meanwhile, I feel, the arm64 implementation the is primary one. Good to know! Yes, I think arm will become/remain dominate for a while. Cheers, --Dave L.
RE: PicoLisp on quora.com
> > Uh, oh, this is really tough. > > Just one smart paragraph. This is a guess: the original asker is more familiar with Common Lisp than picolisp. So, a fair answer would be to describe picolisp in terms that CL users are familiar with. Sorry, I'm not qualified to do that myself. But, here are some notes for others: * picolisp is a VM and the mechanics of that VM aren't hidden from the programmer--everthing is implementation specific. * the picolisp implementations are first class citizens, the picolisp language is second class. * A CL specification exists and it is important. (Is there a picolisp specification? Since I don't know, it probably isn't important...) * one implementation is canonical: amd64 * picolisp was made mostly by one person. * picolisp is small, light, and elegant. PԔ � &j)mX�����zV�u�.n7�
RE: Header parsing
Additional information: Capture.PNG is a screen shot of the email that software-lab.de sent me, which contained my own message. So I wondered if my own email that I sent to software-lab.de contained the extra data! To check this, I recreated my original message, step by step.. but changed the TO: address to another address instead of picolisp@software-lab.de... By that method, here is what I originally sent to the list: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 PiBJZiBwZW9wbGUgYXJlIGN1cnJlbnRseSB3b3JraW5nIG9uIGltcHJvdmluZyB0aGUgbWFpbGlu ZyBsaXN0Lg0KDQpJIHdvdWxkIGxpa2UgdG8gc3RvcCByZWNlaXZpbmcgYmluYXJ5IGp1bmsgYXQg dGhlIGVuZCBvZiBwbGFpbi10ZXh0IGVtYWlscy4NCg0K I hope that helps! Cheers, --Dave -Original Message- From: picolisp@software-lab.de [mailto:picolisp@software-lab.de] On Behalf Of Loyall, David Sent: Thursday, April 20, 2017 1:11 PM To: picolisp@software-lab.de Subject: RE: Header parsing See attached PNG. [snip]
RE: Header parsing
See attached PNG. I wasn't able to view the message source in Outlook, so I forwarded it to my personal account and got the following, which may or may not be exactly what I originally received... Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBwaWNvbGlzcEBzb2Z0d2FyZS1s YWIuZGUgW21haWx0bzpwaWNvbGlzcEBzb2Z0d2FyZS1sYWIuZGVdIE9uIEJlaGFsZiBPZiBMb3lh bGwsIERhdmlkDQpTZW50OiBXZWRuZXNkYXksIEFwcmlsIDE5LCAyMDE3IDM6NDAgUE0NClRvOiBw aWNvbGlzcEBzb2Z0d2FyZS1sYWIuZGUNClN1YmplY3Q6IFJFOiBIZWFkZXIgcGFyc2luZw0KDQo+ IElmIHBlb3BsZSBhcmUgY3VycmVudGx5IHdvcmtpbmcgb24gaW1wcm92aW5nIHRoZSBtYWlsaW5n IGxpc3QgWy4uLl0gDQoNCkkgd291bGQgbGlrZSB0byBzdG9wIHJlY2VpdmluZyBiaW5hcnkganVu ayBhdCB0aGUgZW5kIG9mIHBsYWluLXRleHQgZW1haWxzLg0KBQ0KSUBSCRIBEmbvv73vv73vv70p 77+977+9Je+/ve+/vWzvv73vv71wau+/ve+/vWnvv71e77+977+977+9ee+/vVTvv73Lm++/ve+/ ve+/vW0NCg== Cheers, --Dave -Original Message- From: picolisp@software-lab.de [mailto:picolisp@software-lab.de] On Behalf Of Alexander Burger Sent: Thursday, April 20, 2017 4:54 AM To: picolisp@software-lab.de Subject: Re: Header parsing Hi David, > I would like to stop receiving binary junk at the end of plain-text emails. Strange, what kind of junk might that be? I'm not aware of any ... ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: Header parsing
> If people are currently working on improving the mailing list [...] I would like to stop receiving binary junk at the end of plain-text emails.
RE: List graph library?
> Does somebody have a FOSS library handy for graphing a picolisp list (like, > hierarchically)? Say, SVG format or something? Christopher, are you familiar with Graphviz? It's a 26 year old suite of tools. https://en.wikipedia.org/wiki/Graphviz I generally use lisp (common lisp, actually) to generate text files in the DOT language and then use the standard graphviz tools to render images in various formats including SVG. Another option, which I have not tried but may be powerful is to use FFI to programmatically build graphs and render them using the various graphviz C APIs. I hope this information is helpful. Cheers, --Dave
RE: native calling
Graphviz! > From: picolisp@software-lab.de On Behalf Of Mike Pechkin > Subject: native calling ... > I need more experience in (native) usage. > If somebody need library bindings to something you can request here or > directly. ... PԔ � &j)mX�����zV�u�.n7�
RE: in the spirit of RosettaCode...
In the spirit of RosettaCode, may I present http://www.todobackend.com/ ? >>> >>> Seems I should give it a try :) >>> >>> I don't understand the full extent of the task yet, but could it be >>> something >> >> To be correct, I don't understand it at all! >> >> Is the only "spec" a bunch of JavaScript sources? I don't feel like >> wanting to analyze that, sorry! > > Another clue could be to look at the server end: > > For instance one in Python > > https://github.com/KixPanganiban/todo-falcon/blob/master/todo.py > > > AFAIK the whole thing is like a "hello world" for persistence on the server > and a very light GUI on the client. Visit http://www.todobackend.com/client/index.html?https://todo-backend-clojure.herokuapp.com/todos for example. This is a javascript client. It speaks to some backend. Which backend is actually configurable. The main site lists dozens. So the goal is to make a picolisp backend which is compatible with this client. For language learners, once they know a few of these backends... they will be able to learn about new languages by reading the source code of other backends. For daily grind developers, they can compare frameworks, I guess. :) I guess "backend" here means a RESTful API. (I'm probably misusing the term.) You don't have a read the javascript "spec", you can run this: http://www.todobackend.com/specs/index.html What it does is connect to any backend and attempt to perform actions that are expected to be implemented. (I wonder if anyone has used "machine learning" to implement a compliant backend...) Cheers, --Dave PԔ � &j)mX�����zV�u�.n7�
in the spirit of RosettaCode...
In the spirit of RosettaCode, may I present http://www.todobackend.com/ ? Perhaps one of you skilled picolisp folks could submit a new implementation to their growing list. Cheers, --Dave -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: An inferior small lisp runs on ATmega (Arduino)
Ok, Danilo... How about this then? :) http://www.technoblogy.com/show?1GX1 N.B. It's still "micro", not "pico"... I don't know how to evaluate a lisp engine/language spec, but I know that picolisp is older and more widely used (and it feels right to me). Cheers, --Dave > From: Danilo Kordic > Sent: Sunday, July 24, 2016 7:02 AM > > Interesting. Well nice try, I wouldn't call it v1.0 :D . It's Arduino (not > AVR!), nuf' said. > >> From: Loyall, David >> Sent: Friday, May 27, 2016 11:50 AM >> >> Perhaps picolisp can learn something from this project, but I expect they >> can learn more from picolisp. >> >> http://www.ulisp.com/
An inferior small lisp runs on ATmega (Arduino)
Perhaps picolisp can learn something from this project, but I expect they can learn more from picolisp. http://www.ulisp.com/ Cheers, --Dave -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: Emacs REPL not "full-featured"?
> I've got a REPL started in Emacs [...] but I'm noticing it > doesn't have such features as more, edit, what, etc. Sounds like you didn’t load some libraries. When you pass a + character to the interpreter, it loads `debug.l`, which defines (what ...) and other functions. Maybe you can just (load 'debug.l') after the fact, or maybe you need to tell emacs to include the + on the command line when starting the picolisp repl. I hope this helps. Cheers, --Dave
RE: bitmaps from random
> Suppose I implement the bmp format. Or, https://en.wikipedia.org/wiki/Netpbm Cheers, --Dave
RE: Another stack based CPU: J1
> > "The J1 is probably close to the simplest possible useful CPU." > > Alexander, do you agree with that statement? Is the J1 the same as pil? > > I see no similarities at all. Also, PilMCU doesn't strive particularly for > simplicity > (the PicoLisp *language* does). It is rather complex, with built-in database > and garbage collection. Ohh.. Of course! Thank you!
Another stack based CPU: J1
Today on HN I read about a tiny stack-based CPU called J1. This is its homepage: http://www.excamera.com/sphinx/fpga-j1.html and here is a more formal description: http://www.excamera.com/files/j1.pdf Here is the quote that made me bring this topic to the picolisp mailing list: "The J1 is probably close to the simplest possible useful CPU." Alexander, do you agree with that statement? Is the J1 the same as pil? Are there any neat tricks James Bowman used that could be useful in pilmcu? Cheers, --Dave -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: Google Code closing
>> Mike Pechkin has set up a repo at bitbucket. More next week. [...] > Github.com is more than a repo, it's a community of developers. Once the repo is available on bitbucket, it will be trivial to set up an automatic mirror. Philosophically, I favor bitbucket. Pragmatically, I favor github(R). A mirror (with bitbucket being primary) serves both masters. If no one on the list already knows how to set up the automatic mirror and volunteers to do it, I'll volunteer to learn how to do it. Cheers, --Dave
RE: A PicoLisp native library tutorial
> From: Alexander Williams [...] > I also wrote a tutorial explaining the code, to help other > newbies understand some useful features of PicoLisp: > > https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md This is great, Alexander! I really like this part: > (setq Result (12 104 101 108 108 111 0 0 8 0 0 0 0 0 0 0)) > -> (12 104 101 108 108 111 0 0 8 0 0 0 0 0 0 0) > : (head (car Result) (cdr Result)) > -> (104 101 108 108 111 0 0 8 0 0 0 0) > > [...] > > : (pack (mapcar char (head (car Result) (cdr Result > -> "hello^H" > > **Note:** What this means is it receives the 8K buffer which > contains a bunch of zeros at the end (assuming you didn't > fill the buffer), it maps over the list, sets the zeros to > NIL, packs it and you end up with a nice friendly string. Now, I can go back to some (failed) hobby code I made to interface with https://www.gnu.org/software/libc/manual/html_node/Regular-Expressions.html. In my first attempt, I got stuck at the point where I need to handle the Result struct... Thank you, --Dave PԔ � &j)mX�����zV�u�.n7�
RE: Installation issues
For what it is worth, here are the contents of every file named 'pil' in the 3.1.9 tarball. hobbes@metalbaby:~/src/pil319/picoLisp$ find . -name pil -exec head -1000 {} + ==> ./bin/pil <== #!/usr/bin/picolisp /usr/lib/picolisp/lib.l (load "@lib/misc.l" "@lib/btree.l" "@lib/db.l" "@lib/pilog.l") ==> ./ersatz/pil <== #!/bin/sh # 29nov10abu # Run Ersatz PicoLisp exec java -DPID=$$ -cp .:tmp:${0%/*}/picolisp.jar PicoLisp ${0%/*}/lib.l "$@" ==> ./pil <== #!/bin/sh exec ${0%/*}/bin/picolisp ${0%/*}/lib.l @ext.l "$@" NB the one that explicitly calls /usr/bin/picolisp (which is probably still the one installed by your package manager) and interprets the rest of the file as lisp source. Cheers, --Dave p.s. Here's what I use for my interactive REPL: hobbes@metalbaby:~/src/mb.pl.emu$ cat pil #!/bin/sh BROWSER=x-www-browser exec ${0%/*}/bin/picolisp ${0%/*}/lib.l @ext.l @lib/misc.l @lib/btree.l @lib/db.l @lib/pilog.l "$@" > -Original Message- > From: picolisp@software-lab.de [mailto:picolisp@software-lab.de] On Behalf > Of Alexander Burger > Sent: Saturday, February 07, 2015 12:29 AM > To: picolisp@software-lab.de > Subject: Re: Installation issues > > Hi Lawrence, > > > I've gotten the latest picolisp, 3.1.9, and am trying to install locally. > > OK > > > Following the instructions for 64-bit on my linux, I've built the > > executable picolisp all right. But the bin directory's pil seems to > > pick up the previous version I installed before from Ubuntu: > > I think I know what the problem is. It may be that the wrong 'pil' is > executed, > because there is another one in /bin, which is intended for the > global installation. > > You need to install /pil, e.g. > >$ cd >$ ./pil + > > (the '+' at the end is recommended, to get into debug mode). > > You can run it from any place, e.g. with an absolute path > >$ /path/to/my/installation/pil + > > or with a relative path > >$ ../../installation/pil + > > or whatever. > > ♪♫ Alex PԔ � &j)mX�����zV�u�.n7�
altering lists
Should either (insert ...) or (place ...) be destructive? Are they meant to be synonyms? Cheers, --Dave : (setq truck '(frame)) -> (frame) : (show truck) -> (frame) : (insert '2 truck 'cab) -> (frame cab) : (show truck) -> (frame) : (place '2 truck 'cab) -> (frame cab) : (show truck) -> (frame) : -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
visualization of machine state
Hi, Alexander. Hi, everyone. Consider https://github.com/r0nk/ward (and the animated .gif image linked at the bottom of the README). Could something like this be made for picolisp emu? Of course it should probably emit graphviz dot language instead of only ascii art. :) Just an idea. Cheers, --Dave
jeq instruction not documented in doc64/asm
Hello. FYI, I see an instruction 'jeq' in used in src64/io.l, but I don't see it described in doc64/asm. Hm, for that matter, I don't see 'jne' or 'jgt' either. Maybe I shouldn't expect to find 'jeq'? I encountered 'jeq' in the 12th line of the definition of testEscA_F (which I pasted below my signature). I guess ^@ is never valid inside a Transient Symbol? : "^@" Bad input '@' ? Nope, it's not valid. Looks like we jumped to badInputErrB. So jeq is some kind of "jmp if ...". But it is different from these? jz adr# Jump to 'adr' if Zero [---] js adr# Jump to 'adr' if Sign [---] jc adr# Jump to 'adr' if Carry [---] What does cmp do to the flags? cmp dst src # Compare 'dst' with 'src' [zsc] Within the flag notation [---] in doc64/asm, What is the difference between . and -? I see that _ is clear. Cheers, thanks, --Dave (code 'testEscA_F 0) do null A # EOF? if s # Yes clrc # Return NO ret end cmp B (char "\^") # Caret? if eq # Yes call (Get_A) # Skip '^' cmp B (char "@") # At-mark? jeq badInputErrB # Yes cmp B (char "?") # Question-mark? if eq # Yes ld B 127 # DEL else and B 31 # Control-character end 10 setc # Return YES ret end cmp B (char "\\") # Backslash? jnz 10 # No call (Get_A) # Skip '\' cmp B 10 # Newline? jnz 10 # No do call (Get_A) # Skip white space cmp B 32 continue eq cmp B 9 until ne loop -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
String syntax, or Transient Symbol syntax
Hello. I am having some trouble working with Strings or Transient Symbols. (I'll call them strings for now.) Consider this string: "^(a+)\)" In picoLisp, I must enter that as: "\^(a+)\\)" See, the escaping syntax is a pretty heavy burden for the types of strings I work with... So, I considered using a reader macro. I imagined something like: (re-handler /^(a+)(.*)'.*(\)+)/ "nd here's some input! :") --> (re-handler "\^(a+)(.*)'.*(\\)+)" "nd here's some input! :") See, the / is being used as a delimiter, instead of ". Javascript does this. /foo/ is a kind of literal like "foo" is a literal. ..Then I discovered that we don't have a defmacro. (I've read previous discussion about macros and I accept Alex's stance.) Any advice for implementing some sort of special case for /strings/, which would be just like "strings" but with different escape mechanics? I see src64/io.l contains (code 'readA_E) which handles reading "strings". But I don't understand this assembly code. I hope my question is clear. Thanks, cheers, --Dave -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: Syntax Highlighting in PicoLisp
> From: Henrik Sarvell > FWIW, I've attached what my emacs looks like. Hey, how'd you take a screen shot of my emacs?! ;)
RE: Lisp on board...
TL;DR: Tiny GNU/Linux box with a microcontroller stuck on it. The lisp is implemented in software. Says "open source" all over it but doesn't have any source code or hardware design files available online. > From: picolisp@software-lab.de [mailto:picolisp@software-lab.de] On Behalf Of > Rick Lyman > Sent: Thursday, October 23, 2014 8:52 PM > To: picolisp@software-lab.de > Subject: Lisp on board... > > IOT,WiFi Module,OpenWrt,Smart Device,APP,Chipduino,IFTTT,Lisp > > https://www.indiegogo.com/projects/zero-plus-prototype-your-iot-product-in-seconds > > -rl
RE: Announce: PicoLisp in Hardware (PilMCU)
> From: Alexander Burger > [...] And I can assure you that PicoLisp will never be a closed > system. > > My personal opintion has always been that developments should be shared, > and that the term "intellectual property" per se is unethical. Well said. If/when other implementations try to compete with you, this statement will give you a competitive advantage. > [...] But I also need to survive economically, > and it is really tough for a freelancer to do so. I understand. I thought you could release the design (even PCB layouts if you end up going that direction) and still sell the hardware. Most people never manufacture their own hardware--that includes me. But I'm a happier customer when I know that the product I'm purchasing has longevity--well known designs live longer. I still have my c64 programmer's manual complete with circuit diagrams, which will come in handy if I want to figure out how to connect it to a modern display device! Secret designs become black boxes once the parent company loses interest--no new display adapters (for example) and no hope of making your own. It sounds like you know this well already. :) > [...] 95 percent of the sources of the > PilMCU are standard 64-bit PicoLisp. I think I get it. Emu is another arch, like ppc64 or x86-64. Nice. :) I think that this product will have the longevity I seek. Carry on! Cheers, --Dave
RE: Announce: PicoLisp in Hardware (PilMCU)
> From: Thorsten Jolitz > > It's a Lisp machine. It probably shouldn't be born crippled (with > > closed design). :) > > I'm sure its technical design is not crippled at all. I am new to your mailing list and as such I'd like to listen more than I speak. But please don't speak for me. :) It should be clear that my implication was that *any* closed-source design is limited. I'll say it differently to be clear: open designs always have an advantage in the 'survival of the fittest' game. A chip that can 'have a descendent' any time anybody wants to make one will be more 'successful' in the chip ecosystem than a chip that is owned by some individual or company. Again, it's a Lisp Machine... Its future is something that should be considered. > > It still needs additional development, right Geo and Alex? Many hands > > make light work. > > With 'many hands' involved we would not have most amazing PicoLisp but > rather a kind of 'small common lisp', thats for sure ... PicoLisp is already released under an MIT-Expat license. I was referring to the Verilog source of PilMCU. > > Have you seen https://news.ycombinator.com/item?id=8340283 ? Folks > > are looking for the source already. > > Of course they are, but what will folks give in return? If you sell a FPGA configured to be an open source Lisp CPU, I'll buy a few
RE: Announce: PicoLisp in Hardware (PilMCU)
> From: Thorsten Jolitz > "Loyall, David" writes: > > The Internet would like to run this locally. Would you post the > > verilog source and build files? Or a link to a repository? > > I think this has the potential to make a very nice and successfull kickstarter > project, so why not try to build a business idea around it instead of just > giving > away the verilog source and build files? It's a Lisp machine. It probably shouldn't be born crippled (with closed design). :) It still needs additional development, right Geo and Alex? Many hands make light work. Have you seen https://news.ycombinator.com/item?id=8340283 ? Folks are looking for the source already. You can still make money on "open source" hardware. In fact, that's a new trend. https://www.google.com/search?q=open+hardware Cheers, --Dave -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
RE: Announce: PicoLisp in Hardware (PilMCU)
> From: picolisp@software-lab.de [mailto:picolisp@software-lab.de] On Behalf Of > George Orais > [...] pilMCU is running under Icarus Verilog Simulator [...] Nice. The Internet would like to run this locally. Would you post the verilog source and build files? Or a link to a repository? Cheers, --Dave -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
Subscribe
Subscribe