freenode/#lisp - IRC Chatlog
Search
15:42:55
Bronsa
loke: see, but I don't know what you're talking about when you say it "fails in some spectacular ways" or "a lot of its design choices are outright bad", you've just thrown attacks at it and that's not a productive thing to say (not taking into account that what common lispers perceive as bad design choices simply aren't for what clojure targets). But ok, to each their opinions on languages, I could say the same things you've just said, with CL as a subject ins
15:44:54
verisimilitude
Right; it's easy to forget that #lisp is about Common Lisp and not Lisp in general.
15:48:13
beach
schweers: What other people said. The term means something else, and the mechanisms are very different too, so it gives the wrong impression.
15:49:01
schweers
I never really made this connection between the terms used in different languages, and the mechanisms. But yes, I get it now
15:49:35
schweers
At first it seemed to me like a C++ guy asking in a python channel about exceptions being thrown, and the python guys correcting him on his use of terms.
15:52:00
Arathnim
Yeah, further work would require (and be made much easier by) direct access to the compiler, which is largely unique to lisps.
15:52:13
beach
schweers: Terminology is utterly important. And since it is often language specific, it is even more important to use it correctly in the context of a specific language.
15:53:37
jmercouris
schweers: I wasn't annoyed because as beach said, indeed there is a difference, and it is important to be precise
15:55:35
jmercouris
I'm just saying, if it was the situation you described, I would have been annoyed
15:56:07
jmercouris
just how python insists on the term "module" when deep inside, we really know they mean file, 99.99% of the time
15:56:28
cess11_
Haven't used it so I can't say what it can do but this is Antik: https://www.common-lisp.net/project/antik/
16:04:17
haduken
another thing I recall was the awfully outdated snippets which where constantly corrected here.
16:05:38
beach
haduken: If Common Lisp is your first language, many people here would recommend "gentle".
16:05:46
minion
haduken: please look at gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/
16:06:28
beach
haduken: Before you choose what programming tools to install, you should consult with people here. It is easy to get it wrong.
16:06:33
minion
haduken: portacle: Portacle is a complete IDE for Common Lisp that you can take with you on a USB stick https://shinmera.github.io/portacle/
16:09:48
schweers
jmercouris: I also think that some languages have important ideas to teach, even if one never uses them in production
16:10:43
Bronsa
schweers: but I don't recall having major difficulties learning it, I was reading PCL/ACL/On Lisp/SICP at the time and the union of all those made for a comprehensive learning experience
16:14:19
Bronsa
schweers: re: languages having important ideas even if never used in prod -- I absolutely agree! my instance of this is shen, I'll never ever think of using it in production but it has some very interesting (and crazy) ideas
16:16:09
Bronsa
once you accept it's a "special" lisp tho, it's got some very unique and super interesting things
16:28:29
verisimilitude
It will be good when github dies; then Free Software projects won't be able to prioritize it at the expense of other venues.
17:38:05
fiddlerwoaroof
Did something change about the way Quicklisp/ASDF handles symlinks in local-projects?
17:38:56
fiddlerwoaroof
I've been symlinking my projects into ~/quicklisp/local-projects for a while, but recently I been running into situations where ASDF can't find them.
17:40:16
fiddlerwoaroof
I'll occasionally upgrade SBCL, etc., but I've used both SBCL and CCL without problems for a long time
18:18:56
pyc
What Common Lisp compiler should I use that would compile my LISP to machine code and is available on Linux, Windows and Mac?
18:22:32
pyc
https://cliki.net/Common%20Lisp%20implementation says SBCL is only experimental on Mac, FreeBSD and Windows.
18:23:15
makomo
fiddlerwoaroof: if you made the symlink without restarting the lisp image, perhaps you have to use (ql:register-local-projects)?
18:23:17
dlowe
though I think perhaps a newcomer shouldn't have to worry about whether or not it compiles to machine code while learning
18:23:25
Bike
that page could be out of date. i believe it works perfectly well on mac and freebsd, and pretty well on windows.
18:23:26
beach
pyc: On Mac and Windows, you can buy a license for a commercial Common Lisp implementation.
18:24:06
Bike
http://sbcl.org/platform-table.html as you can see on sbcl's own webpage, freebsd, windows, and darwin are marked as "Available and supported" (on some architectures)
18:24:18
makomo
fiddlerwoaroof: another thing that caused problems for me was that i was violating ASDF's rules (afaik) by not having the system named "foo" in the file named "foo.asd"
18:25:29
makomo
not sure if either of these apply to you since you said you've been using sbcl/ccl for a long time, but it doesn't hurt to check i guess
18:40:10
ealfonso
can I have an extendable nx3 array? I'm getting "only vectors can have fill pointers"
18:42:02
Younder
Remember the 'golden rule' if you have more data you usually have a *lot* more data so grow by a factor of 2^x
18:42:49
Bike
you can use adjust-array to change the size of an array (pass make-array :adjustable t), but vector-push-extend will only work on vectors
18:45:23
light2yellow
how does one call ' (quote-operator)? an alias for `quote'? a special operator? a macro? what is it?
18:47:25
Younder
Reader macro's are a part of the extensible syntax of Lisp allowing custom languages like Yacc and Lex
18:47:56
ealfonso
sjl thanks. I guess I would have to call vector-push-extend 3 times in my case. I can also just pack/unpack multiple small ints into one
18:48:23
sjl
ealfonso: you might just want to write a function that takes 3 elements and does 3 aref's
18:50:47
ealfonso
Younder not much to do with math, I'm storing a game move that consists of a 3-tuple, and an arbitrary # of moves can be added
18:53:36
phoe
How can I access a slot's value if the slot is defined with :ALLOCATION :CLASS and I only want to access the class metaobject and not an instance of that class?
18:56:37
light2yellow
from the definition of reader macro ( http://www.lispworks.com/documentation/lw51/CLHS/Body/26_glo_r.htm#reader_macro ) it is now clear if it has any relation to quote special operator. in learning materials they often go together, but do they really have any connection? because one is not defined in terms of another. in notes to quote ( http://www.lispworks.com/documentation/HyperSpec/Body/s_quote.htm#quote )
18:56:39
light2yellow
it says "The textual notation 'object is equivalent to (quote object); see Section 3.2.1 (Compiler Terminology).", but I didn't manage to find anything relevant
19:33:33
verisimilitude
So, I've experienced some issues with xterm I don't believe I'll be able to work around, but which I also don't believe are my problem at this point, with regards to my terminal library. I'll explain.
19:34:58
verisimilitude
Here, x, y, and z are arbitrary bytes, with x denoting the mouse and y and z denoting the mouse position, plus thirty two.
19:35:35
verisimilitude
So, clicking the top left corner with the first mouse button sends ESCAPE followed by ``[M !!''.
19:36:05
verisimilitude
In their wisdom, the xterm developers thought a limit below 256x256 was reasonable, but that's not the main issue.
19:36:34
verisimilitude
So, a Common Lisp that doesn't understand UTF-8 won't be able to read it properly.
19:36:50
verisimilitude
A Common Lisp that does understand UTF-8 will return a different character, since it's an invalid sequence.
19:39:13
verisimilitude
One can already look at X11 and tell it was designed by idiots, but this is a great example of just how stupid they are.
19:39:47
jasom
doh! *standard-input* is bivalent, but *terminal-io* is not. You can get the underlying FD from sbcl though and make a new fd stream from it
19:40:03
verisimilitude
The ECMA-48 standards sends real control functions for reporting this kind of information, but I suppose they wanted to save a few bytes or spare C from parsing anything, since it would get that wrong.
19:40:50
jasom
verisimilitude: you can't do binary IO to the teriminal in ANSI common lisp. Just like you can't invoke the GC or run an external program
19:41:40
phoe
surely they haven't thought of everything that everyone would have been doing years after they've designed the protocol, have they
19:41:42
jasom
verisimilitude: there is a good chance that this protocol did not come originally from xterm. Many escape codes predate X by at least a decade.
19:41:55
verisimilitude
Again, even if I could do this, it still wouldn't work on a terminal larger than 224x224.
19:43:11
verisimilitude
Now, the ECMA-48 ACTIVE POSITION REPORT sends the current cursor position, but it encodes this in decimal. So, you may get ESCAPE [ 1 ; 1 R or ESCAPE [ 100 ; 50 R, but this clearly works at any reasonable terminal dimension and technically has no limit.
19:43:28
verisimilitude
Meanwhile, xterm limits itself to 224x224 to save a few bytes and remove the need to parse things.
19:44:07
jasom
It's almost like they were writing this in C where parsing strings is hard, but treating characters like integers is trivial?
19:44:53
foom
All day you've been saying this or that was disgusting, disgrace, these people are idiots, etc.
19:45:10
jasom
I try to design things with no mind to the future. 99% of the time it won't last so why waste the effort?
19:45:34
phoe
verisimilitude: no, it's the idiots behind CL who designed the language in a way that it's impossible to switch streams between binary and character modes. This thing is broken and was designed with no mind to the future. /s
19:48:03
verisimilitude
Well, I thought that was an interesting little tidbit; I hope some of you also found it interesting.
19:48:41
jasom
someone calling people idiots who built something 30 years ago that is still being used today seems a bit arrogant. All engineering decisions are imperfect, so finding an imperfection does not imply the decision maker was an idiot
19:50:41
verisimilitude
People always like to claim that every thing is broken or imperfect, but they get angry if their processor decides to stop adding numbers correctly.
19:51:29
foom
I mean, I'm not sure why you're even complaining about this, when you could just use the other mouse-reporting mode?
19:51:39
phoe
verisimilitude: well, good luck with making your own decisions. if you fail, you'll likely get called an idiot by someone like-minded.
19:51:41
verisimilitude
The correct way to do this, jasom, would've been to send a control function similar to ACTIVE POSITION REPORT, which wouldn't have any of these issues.
19:52:04
verisimilitude
You see, that control function and others were designed by people with some foresight and brains.
19:54:17
sukaeto
<schweers> beach: why do you (and others?) insist on the terminology of a condition being “signalled” instead of being “thrown”? Is there a deeper meaning to the terms than I am seeing?
19:54:46
sukaeto
^ since (unless I missed it, in which case, sorry) no one else explicitly pointed it out - because that is the term defined and used in the Common Lisp spec
19:58:35
sukaeto
jmercouris: again, I did not ask the question. I merely quoted schweers (who, it would unfortunately appear, is not in the channel right now) for context since it was asked a while ago in the back buffer
22:29:00
catern
so many lisps drop the user into a nested-REPL when there is an error, and let the user handle the error and resume computation
22:29:39
catern
is there any syntax or usual way to handle, "I want some value but I don't know how to get it, I'll drop to a REPL and the human will return it to me"?
22:29:53
catern
like, I'm essentially looking for syntax for handling "asking a human" for something
22:33:03
catern
but I'm talking presenting the user with a full-on REPL, where they might use data passed to them or inspect the stack or whatever, in their quest to produce the desired value
22:59:20
Bike
(make-array ... :fill-pointer t) initializes the fill pointer to be the initial length
23:06:45
p_l
nickername: well, there's a faq on website, iirc, github issues are AFAIK the actual final submission mechanism, but for stuff not covered there you can probably bug Xach ?
23:40:02
nickername
Email isn't too good to me right now. I hate to ask, but can I just put it here?
23:43:08
nickername
I don't like being forced to use Freenode, but it's the least objectionable option.
23:43:30
nickername
Now, you can either add my programs, as I've been asking for months, or I can create a quicklisp competitor.
23:44:23
Xach
If you email me about it, I'll look at them again, but if you don't want to email and don't want to use github, please do whatever you like.
23:45:03
Xach
I think it would be very challenging to work with a community if you don't want to interact with gmail or github, but life would be boring without challenges.
23:45:53
jasom
ebrasca: you were asking for examples of when defun (setf ...) doesn't work? I just thought of one; if you e.g. wanted to make a (setf (assoc ...) ...) that might add a new item to the front of the list without modifying the tail, you can't do that in a function (if you are okay modifying the tail then it's no problem because you could just add a cons after the head, and swap the CARs)
23:50:07
Xach
For those not in #quicklisp, verisimilitude/nickername is someone who wants to remain anonymous while submitting libraries to quicklisp. I told them I had to think about that a while, and every day, sometimes multiple times per day, they asked for status updates. I didn't want that pressure while thinking about it.
23:50:55
Xach
I decided I am ok with it, but I don't really appreciate the way it has been requested.
23:54:32
jasom
I'm just happy I live in a different world from verisimilitude; he seems to live in a world with a lot more idiots in it than mine.
0:18:37
jasom
is there a library that provides atomic increment/decrement operations across implementations?
0:29:38
sukaeto
Let's just say that verisimilitude hasn't been making the best impression on me since they've showed up here. I'll try to hold my tongue from here on out.
0:30:55
Bike
i am curious if/when quicklisp will be non-beta. of course it works pretty fine as-is, and i vaguely remember the block being documentation
0:43:17
p_l
Xach: I've been thinking recently about possibly packaging QL into separate static executable, kinda like roswell, to provide an environment a bit more familiar to newcomers (and to be able to easily link with TLS libs for verification)
2:20:32
z3t0
I am using QTools with SBCL and am having the application and sbcl crash once a window receives focus
2:54:25
iqubic
like prettify-symbols-alist and I want replace the entry ("<->" . 8596) with ("<->" . 8660).
2:56:01
Bike
(setf (alexandria:assoc-value "<->" alist :test #'string=) 8660) is how i'd do it probably
2:57:02
iqubic
I see. Why do you have to pull in a library for what I assume would be a simple operation.
2:58:28
Bike
(let ((pair (assoc "<->" alist :test #'string=))) (if (null pair) (push (cons "<->" 8660) alist) (setf (cdr pair) 8660)))
3:06:06
Bike
they have basically the same performance characteristics as alists, and match function call syntax
3:11:04
Bike
'(a . b) will evaluate to a cons, but it won't be freshly allocated at runtime, and as pierpa alluded to, a and b won't be evaluated as they would be in (cons a b)
3:12:45
iqubic
Now, this is going to sound stupid, but the THEN and ELSE arguments of the if macro can only ever be one s-exp, right?
3:13:44
iqubic
No. Emacs tells me that COND is only ever one s-exp, but ELSE can be as many as I want.