freenode/#lisp - IRC Chatlog
Search
15:15:28
shrdlu68
Ahh. Christ, someone make a docker image or something for people trying CL out. Shouldn't be this hard.
15:18:31
shrdlu68
jackdaniel: Well he has to get rid of this mysterious /usr/share/emacs swank, right?
15:19:56
jackdaniel
if he insists on configuring things himself, then yes. and after that quicklisp-slime-helper should be quickloaded and .emacs should be adjusted
15:22:07
shrdlu68
carmack: Grab sbcl from github, compile it, then completely uninstall your distro's SBCL.
15:25:47
pfdietz
I always keep several versions of sbcl around. A release one to build with, and a current one built off master.
15:28:09
shrdlu68
carmack: Yeah, remove it and follow portacle's installation guide. That should work.
15:28:23
ogamita
Common Lisp has several implementations. ccl, sbcl, abcl, clisp, cmu cl, corman lisp, allegro common lisp, lispworks, mocl, etc.
15:30:01
Xach
carmack: I worry about that, too, but I've found that even very popular systems have similar issues of getting and properly using the right things to get started.
15:31:27
carmack
shrdlu68: I really hope so, because so far I get negative emotions from the process. But I'll try to handle it.
15:32:12
ogamita
Actually, in the seventies, software system came to newbies all setup by an IT team, or hardwired in a ROM.
15:33:34
shrdlu68
Anyone know of a tutorial that would've made this process more pleasant for carmack?
15:35:23
ogamita
carmack: I've never used portacle. I wasn't a newbie for a long time when it appeared. Tell us, what do you get from portacle?
15:42:25
carmack
(Portacle:12945): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_rowstride: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
15:42:28
carmack
(Portacle:12945): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
15:42:31
carmack
(Portacle:12945): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_pixels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
15:44:49
ogamita
yeah, that's the problem with portacle and this kind of IDE: they rely on too many dependencies, including GUIs…
15:45:10
ogamita
You'd need a VM image with everything included, and even with that, either it boots or not.
15:46:15
ogamita
to learn how to do (car '(1 2 3)), you just need sbcl, in a terminal. No need for quicklisp and IDEs. At most, add rlwrap.
15:51:24
carmack
ok, so. you guys pretty cool, but it seems to me that I was left alone with his problem
16:02:37
jkordani
https://stackoverflow.com/questions/11869705/gdkpixbuf-critical-gdk-pixbuf-get-width-assertion-gdk-is-pixbuf-pixbuf
16:03:56
jkordani
I mean, the answer suggests that either portacle needs to be built differently, or the supporting libraries it depends on need to be installed differently on the user system
16:06:15
ogamita
carmack: IMO, the problem comes from the fact that you were told to use systems that try to do things automatically for you. Unfortunately, they break (general bit-rot, dependencies version compatibility, etc).
16:06:39
ogamita
carmack: the only solution is that you install yourself the component, by hand, one by one, and that you understand what and why you install them.
16:22:06
kyby64
hi everybody.i want use caveman2 but after create project when i load it with quicklisp i get this error https://0x0.st/slU8.png
16:26:35
Xach
kyby64: that can happen if you use a new version of sbcl with an old version of ironclad/nibbles, I think
16:29:21
kyby64
sorry i dont know what you mean,i'm using sbcl-1.4.13 and i'm reading caveman2 github page
16:30:28
Xach
kyby64: no worries. but i can help troubleshoot if you type the command i gave and tell me what it shows.
16:32:51
Xach
kyby64: ok! that is too old. you can get a new one by using (ql:update-dist "quicklisp")
16:36:01
kyby64
ok after update quicklisp when i want load caveman2 i get this: "NINGLE.CONTEXT" is a package name, so it cannot be a nickname for "NINGLE/CONTEXT".
17:02:44
dim
maybe there are? some companies want solutions that work and are easy to maintain and don't care so much about the programming language that's used to deliver the solution
17:26:03
anamorphic
Is there a loop clause that works for things that are sequences? I found "for foo being the elements of fooseq" works, but I think it's a loop impl specific
17:28:13
anamorphic
So something like (loop with length = (length myseq) for i below length do ... (elt myseq i)) would be the way to go?
17:52:12
aeth
anamorphic: Never use length more than once, ideally on something known to be small. It's O(n) on lists.
17:57:08
aeth
If your loop is simple enough you could have a macro use for ... in ... when it's a list or for ... across ... when it's a vector. If you need to set, you would have to set the car on for ... across if it's a list (if that's not undefined behavior) and use indices for vectors
17:57:55
aeth
anamorphic: Iterate is problematic imo. It is not just a strict superset of loop with s-expressions for clauses
17:59:10
aeth
You would have to learn it (and it has a 40+ page PDF manual) and expect the reader to know it. You also would, apparently, have to use iterate:foo symbols for its clauses instead of keywords
17:59:57
sjl_
You can use keywords with iterate, except for the first symbol. (iterate (for x :from 0))
17:59:58
aeth
I have added writing something like iterate but readable by people who only know loop to my macro todo list
18:00:57
aeth
sjl_: That means that you need to :use iterate if it isn't a symbol in CL (never :use packages) or prefix always or explicitly import those symbols one-by-one
18:02:18
aeth
I'm perfectly happy to start with a keyword in a DSL and, in fact, it helps hint that it is a DSL and not a Lisp macro/function.
18:02:21
sjl_
Sure. That's the point of the package system -- if I extend iterate with an iteration construct (foo ...) and someone else extends it with a different (foo ...), the names don't clash.
18:03:56
aeth
sjl_: One possible solution is to do the extensible part in a clause that begins with keyword and then is followed by a symbol
18:04:20
pjb
(defmacro while …) (defmacro for …) and with do dolist and dotimes, you don't need anything lese.
18:04:35
Bike
saying extensibility is overrated now, in the midst of "how can i use this LOOP extension", is a little odd
18:05:37
sjl_
aeth: ... I'd rather use the package system than invent some kind of inheritance system for loops.
18:06:49
sjl_
And I very much like iterate's extensibility. I probably have 50+ custom iterate driver macros/clauses that save me boilerplate.
18:08:17
aeth
Bike: Outside of LOOP similar super-iteration macros/functions, the solution is simple when extending: write your own macro or higher order function on top of a more basic one, e.g. my do-destructuring-bind macro on top of dolist.
18:11:48
pfdietz
LOOP is so simple a child of five could understand it. Someone please get me a child of five.
18:12:07
aeth
Bike: Even for something that replaces loop, the solution for extensibility might just be to write your own macro/HOF on top of it
18:13:48
Bike
how exactly would you write another macro on top of loop that gives it a new thing to iterate over
18:14:23
aeth
Bike: The only problem with either of my extension solutions (pseudo-inheritance, probably trivially implemented on actual inheritance; or write a macro) is when you want to combine two separate extensions in one iteration construct
18:15:07
aeth
Bike: I'm talking about a superset of s-expressionized LOOP, let's call this hypothetical DO-LOOP
18:37:39
aeth
Someone should write a bot that posts irc://irc.freenode.net/#lisp when someone says "pwd" (with a limit of once every 12 hours so people don't spam it and it only happens to accidents)
20:28:02
anamorphic
Do any of the various documentation utils let you reference an image file (e.g. diagrams) from within doc strings?
20:51:12
jackdaniel
docstrings are strings. you may create a library which can interpret a special syntax, but for CL it will be a bunch of letters anyway
20:53:23
dim
I think anamorphic is asking specifically about such syntax supporting utilities that would read the docstrings etc
21:01:00
fisxoj
it's not markdown, but I've been working on https://github.com/fisxoj/coo that works with docstrings that are restructured text
21:01:31
fisxoj
it's not super usable, yet, I just found https://github.com/eudoxia0/docparser and need to incorporate that
21:29:27
z3t0
How do I go down a line in the slime repl? Pressing enter causes the code to be evaluated
22:59:59
jiby
I'm fighting with string ~basics. Objective is getting regex "[abc]" from list of #\[ '(#\a #\b #\c) #\]
23:01:32
jiby
so I'd need to give it a sequence-of-char? it doesn't like (concatenate 'string '(#\[) char-list '(#\[)) either
0:20:20
no-defun-allowed
what was that program that typeset mathematical equations using boxes and stuff in the terminal?
2:18:08
Bike
clschool is for learning the language, lisp is for when you've learned the language but not really