freenode/#lisp - IRC Chatlog
Search
15:52:40
vms14
It tells things that make me understand why lisp gives you that "enlightenment" everyone hears lisp will give you
15:54:59
ludston
vms14: Use evil mode and have both. Vim is worth the investment imho, because you can get a vim mode plugin in pretty much any IDE worth using and therefor avoid re-learning shortcuts.
15:57:10
vms14
I really trust this book, so I'll forget vi and go for emacs, I didn't want to learn emacs, because it requires time
16:04:23
loke`
The horrific parenthesis rendering in climaxima annoyed me greatly but the thought of fixing it just took all my inspiration away. It's kinda like design work, and I hate design work :-)
16:04:50
TheWild
beach: some time ago I said "I choose Lisp because it seems to be the most easily parseable higher-than-assembly programming language if one had to write parser entirely from scratch, but seems that I will likely end up with my own dialect.", so really what I want to do is to know the inner workings of Lisp, what decisions were made and why and by chance learn some Lisp.
16:06:31
loke`
Anyway, I finally decided to add some capabilities to the output records so that they can carry rendering hints (something along the lines of: "this part here should not be considered part of the bounding rectangle when computing the size of surrounding parenthesis
16:07:01
beach
TheWild: But if you are programming from scratch, there is no particular reason to use a static programming language at all.
16:08:27
loke`
beach: Yeah, it works. The dimensions still don't come out right, but that's a matter of tuning the dimensions :-)
16:19:34
TheWild
a couple of year ago I wanted to write assembler for ARM processors which could offer a bunch of higher level constructs. I didn't have experience in compiler design though so I eventually gave up. Bah, I still don't have an experience, but writing a parser and evaluator for limited dialect of Lisp seems a good attempt to build something that works.
16:22:40
p_l
(with VAX-oriented MACRO-32 turned into a compiler that generated Alpha code from VAX assembly)
16:22:56
vms14
I would recommend common lisp (mostly sbcl) since it has support for more things, like backend with hunchentoot
16:24:06
p_l
TheWild: well, KA-10 and KI-10 as well as PDP-6 I think all required writing the early bootstrap code into memory by hand, but that was in limited cases AFAIK
16:24:24
p_l
TheWild: the code was essentially few instructions that would loop over reading from paper tape
16:26:28
vms14
It's likely that you'll end writing more stuff with lisp that what you intended when you "entered" to the lisp world
16:27:05
beach
vms14: I think TheWild has decided that it is fun to design a programming language. This is my conclusion because no advice about existing languages or other techniques seem to get across.
16:27:26
p_l
loke`: though I will have to hunt down how exactly certain people made it so that programs built with early MIDAS worked while MACRO-1 didn't
16:30:53
vms14
I cannot say that really, but I guess if I use scheme would be as an embedded language rather than a standalone
16:36:13
neeasade
hi all -- what is the mechanism by which asdf finds ffi .so files? -- I ask because i'm on nixos where a dynamic ld wrapper gets set that just adds many rpath params and I'm trying to connect some things in a non-nix way probably.
16:38:42
jackdaniel
cffi looks at the standard locations, I don't know anything about asdf looking for so files (nor having anything to do with ffi)
16:39:01
liambrown[m]1
Sorry if this question comes across as noise. I've just started picking up LISP to work better with Emacs, and I've realized I probably want to do a lot more with it than that. Question is this: Node has NPM, PHP has Composer, Python has Pip, etc.; do equivalent facilities exist for LISP where I can write a program with dependencies and have them imported? From my searches since yesterday, it looks like Quicklisp might
16:41:38
neeasade
jackdaniel: thanks -- I think I was thinking asd gets in the mix because the reference is coming from the 'components' part of a definition -- https://github.com/swaywm/cl-wlroots/blob/master/cl-wlroots.asd#L21 -- so the issue is the .so can't be found while building that component
16:42:35
liambrown[m]1
I just read that LISP is used for AI, as well as a lot of other things. Not the silly little scripting language I've been led to believe it was, I guess.
16:42:40
jackdaniel
I don't know much about it, but I'd guess it also looks exactly where cffi does look
16:44:04
liambrown[m]1
@jackdaniel sorry, I'm conflating names. I take it CL is a good place to start for professional use?
16:44:35
jackdaniel
yes, Common Lisp is a result of standarization of various dialects being LISP descendants
16:45:07
pjb
Loading the boot code by hand made for computers you could trust. Nowadays, you don't know what code boots your computers!
16:45:19
vms14
one of their students was reading a paper from his teacher and thought he could write the eval function in asm
16:45:46
jackdaniel
then, for ones delight, read PAIP, which is a profound lecture with case studies of Common Lisp code
16:45:58
p_l
to be honest, a lot of very early foundational work in Computing Science can be divided into "numerical processing" and "AI" with growing side of "programming language theory"
16:47:20
liambrown[m]1
It's an interesting experience, coming from years of JS, PHP, and Python. I decided to go back to extreme basics this time around; that's been a helpful approach for me before.
16:47:56
vms14
and this is why prolog and lisp have some relation, just because they're known to be used for ai
16:48:29
p_l
well, Lisp arguably makes it quite easy to write the kind of object oriented code common in symbolic AI
16:48:30
beach
liambrown[m]1: I think you will find that Common Lisp is an extremely powerful language, and that there are some excellent implementations out there, capable of generating fast native code.
16:49:10
liambrown[m]1
Some of the ML/AI folks harp on the importance of GPUs for app performance. Any good starting points for that in CL, or should I even worry about it?
16:49:38
p_l
liambrown[m]1: don't worry about GPUs unless you're into statistics or similar pure numerics
16:50:49
p_l
and with TensorFlow and the like you're mostly stringing together abstract commands in a pipeline
17:00:37
pjb
beach: you don't mean "AI", you mean stockastic machine learning ;-) Hofstadter wouldn't call that AI…
17:21:00
flip214
Is there a function to convert a 2-dimensional array to 1-dimensional, like ROW-MAJOR-AREF then addresses it?
17:39:31
flip214
when given a function like #'=, is there a way to get back to the symbol? (doesn't work for anonymous functions or closures, of course)
17:51:47
flip214
TheWild: '(1) potentially gives you an immutable list - it could be stored in ROM, for example. So changing the CDR of that CONS is not allowed.
19:27:50
TheWild
lists in Lisp are linked lists or something similar. I wanted to see what will happen if I connect end of the list to its beginning.
19:35:23
vms14
this makes lisp reader check if the member of that list was seen yet by tracking what it reads
19:40:38
sjl
I wish backquote DID have to produce a fresh list each time... it would make it more generally useful, I think. But, oh well.
19:42:39
pjb
(setf *print-circle* t) #| prepare the printer |# (let ((item (list 1 2 3))) (setf (cdr (last item)) item) #| make it circular |# item) #| --> #1=(1 2 3 . #1#) |#
19:43:22
pjb
You can also use com.informatimago.common-lisp.cesarum.list:ensure-circular which does the same.
19:43:31
pjb
(com.informatimago.common-lisp.cesarum.list:ensure-circular (list 1 2 3)) #| --> #1=(1 2 3 . #1#) |#
20:44:39
puchacz
hi, can I loop :in many lists, but to the longest one, not the shortest, as by default please?
20:49:46
pjb
puchacz: (loop :for c1 := l1 :then (cdr c1) … :for cn := ln :then (cdr cn) :for e1 := (car c1) … :for en := (car en) :while (and c1 … cn) :do (something e1 … en))
20:53:09
pjb
(loop :for cs := (list l1 … ln) :then (mapcar (function cdr) cs) :for es := (mapcar (function car) ls) :while (some (function identity) cs) :do (apply (function something) es))
20:58:29
aeth
That might be the first time I've seen that be genuinely useful rather than just a question of ergonomics/style
21:02:33
pjb
otherwise, if cs contains list: ((a nil b) (c nil) (nil nil)) es will be (nil nil nil) the second time, and you'd stop there.
2:28:08
jsatk
Hi all. I'm new to Common Lisp. And I'm a vim user. I installed Quicklisp & Vlime (Slime-like plugin for vim). Whenever I start up my server via Vlime I get this strange error. http://i.jsatk.us/AH2bpp
2:49:10
sjl
That's "interesting". I use Vlime and don't get those warnings (well, I do get the emacs-inspect one, but that's fine). The warnings about undefined variables I wasn't seeing.
2:50:01
sjl
But I haven't updated my Quicklisp dist in a while. So I updated, and now I see those same errors.
2:50:04
p_l
first run of slime after update of either SBCL or SLIME always printed a bunch of warnings for me
2:50:30
sjl
Looking at the commit history, there was this on Feb 26 which "fixed" something for SBCL, but actually causes those warnings
2:51:13
sjl
Then there's this from Mar 1 https://github.com/usocket/usocket/commit/5c4c99568a49958adcab137516b6a05ced1a7fb6 which changed them back
2:51:46
sjl
But the version in the latest quicklisp dist is 0.8.1, not 0.8.1.1, so I guess the latest dist just missed getting that extra fix
2:52:06
sjl
Anyway, you can just ignore those errors. They won't affect you unless you try to run usocket's unit tests
3:47:26
beach
I found that writing papers for ELS takes 4 months per year. It is hard to concentrate on anything else for that time. First, figure out what to write about, then figure out how to write it. Then write it, fix it, submit it. Then modify according to the wishes of the referees. Then submit again. Then prepare the talk, make travel plans, buy tickets, reserve hotel rooms, travel.
3:48:21
beach
So I decided I have 8 months to think about design and coding, and I decided to work very hard to try to get an initial native version of SICL going before the end of that period.