freenode/lisp - IRC Chatlog
Search
12:12:55
Shinmera
clintm: Weew, looks like Smoke is not configured for Freebsd either, so I'll need to make fixes to that to get it to compile.
12:13:16
Shinmera
I'm gonna tackle that another time. Setting up a running desktop took me long enough already.
12:26:02
whoman
meditate instead if you wanna code better =P n some yoga and eating healthy never hurt anyone
12:41:58
pjb
http://www.ibtimes.co.uk/mummified-buddhist-monk-still-alive-after-200-years-nearly-buddha-1486570
12:45:26
pjb
and there are more than one: http://www.welikeviral.com/mummified-buddhist-monk-found-alive-almost-90-years-death.html
14:18:22
Xach
Sort of. It's a pull request from a new contributor, and marijn offers maintainership to him.
14:19:18
Xach
http://report.quicklisp.org/2017-08-24/failure-report.html <-- ieee-floats isn't in the failure list, but its dependant systems do.
15:16:25
minion
knusbaum, memo from jackdaniel: try (clim:accepting-values (t) (setf *config-name* (clim:accept 'string :prompt "Config nname:"))
15:18:26
jackdaniel
that said, as it was pointed out by nyef, this is a bug that accepting-values doesn't return last value(s) on `OK'
15:23:46
antoszka
Is there a preferred git hosting service for QuickLisp projects? As in github vs gitlab?
15:30:40
dim
some days using CL feels lonely. Today I wanted to see about implementing MySQL replication protocol, already existing in Java, Python and Go. Reading the docs makes me turn away.
15:30:58
dim
I would have implemented support for it in pgloader if I didn't have to implement the protocol myself :/
15:32:58
dim
that said I might be able to pay another CL hacker to implement the lib, then use it in pgloader
15:41:03
phoe
as long as Quicklisp can do a git clone from that location and you're sure no malicious agents can inject their code there, you're golden
15:46:25
jackdaniel
first thing is that you use keywords, many people consider it a bad thing in loop macro
15:47:27
phoe
(loop for wf in (list (list 1 #'1+) (list 2 #'1+)) collect (funcall (second wf) (first wf)))
16:35:19
oleo
the form maybe multiple values over which the function gets funcalled or it maybe a list to the function as in a lambda-list
17:11:52
Xach
random-nick: there are really very many ways! you could expose the repl, or commands that load stuff. document functions and data.
17:13:40
Xach
random-nick: i've always been interested in writing an application that is extensible with cl-js.
17:29:10
beach
random-nick: An important technique that I use it to make sure I use standard classes and generic functions as much as is practical. That way, client code can extend it with sub-classes and specific methods.
17:34:33
Shinmera
And you need to still take care to design things in a way that makes them actually extensible, even if you do use CLOS.
17:44:36
whoman
i like the analogy of prefabricated or closed objects. if i am building my whole house, i dont have to build my own furniture. also if i am building my own furniture, i dont need to build my own house. or i can build it all, or i can get them all prebuilt and arrange them according to how they are built
17:48:47
jasom
random-nick: for basic configuration stuff, a file that gets loaded at startup is great. almost no work and really easy
17:53:42
jasom
random-nick: http://paste.lisp.org/+7LC1 <-- here's my config from a small webapp I wrote
17:59:10
beach
jasom: The application must be written to allow for extensions and the possible extensions must be documented somewhere.
18:01:57
knusbaum
Should be obvious, but it's worth saying that files that the application calls (load) on shouldn't be writable by users with fewer/different permissions than the user the application runs as.
18:03:48
jasom
beach: yes, making an application properly extensible is a wide problem, hence I said "for basic configuration stuff"
18:04:56
dlowe
the downside of LOADing configuration is that your configuration file becomes un-analyzable by simple software.
18:05:41
jasom
dlowe: only if you do complicated stuff in it; if it's a line of a dozen SETFs then it's fine to analyze. It's only harder to analyze if you use things that you couldn't do in a simple file.
18:07:02
knusbaum
In general, my experience says that if something *can* be abused, it *will* be abused, especially in large teams.
18:08:36
jasom
many configuration files start out simple and get an ad-hoc turing complete language by accident at some point.
18:09:01
knusbaum
Just limit it to a file containing an assoc list or somesuch. If you're limiting your config to simple setf's anyway, what's the difference?
18:09:43
jasom
beach: well .emacs was always a turing-complete language (as was vimrc). I'm thinking things like every web server ever written.
18:10:26
knusbaum
To be clear, I'm saying for situations where you *don't* want it to get out of hand. loading configs is great for stuff like emacs, where I know it's only me that's going to be messing with the config. :)
18:11:23
jasom
I've just seen too many things where it starts out as like a .ini file and then they start adding [if condition=foo]... [else]... and it's now crappy *and* can't be analyzed
18:12:55
beach
My question is "why would you want it to be analyzed?" And that depends on the use case.
18:14:23
knusbaum
Well for machine-analysis that depends on the use-case, yes. For human-analysis, config files should ideally be as readable as possible (again, if they have to be shared among many people)
20:04:00
jackdaniel
random-nick: also #clim channel can provide you some good advice if you are stuck
20:07:50
jackdaniel
(lispworks guide is also good learning material of course, same as allegro clim manual)
21:07:12
carmack
Error while trying to load definition for system drakma from pathname ~/quicklisp/dists/quicklisp/software/drakma-v2.0.3/drakma.asd: SYSTEM::%EXPAND-FORM: (LOAD-SYSTEM TEST-OP) must
21:10:31
Bike
carmack: i remember seeing that before. i think it boiled down to making sure your asdf and quicklisp and such are recent versions
21:12:50
jasom
I think just dropping it in local-packages is sufficient, or you could just load the asdf.lisp in your clisprc.lisp
21:14:03
Bike
ASDF is the system that deals with what you call "packages". clisp is an old implementation, so its ASDF is too old to support modern "packages".
21:14:22
Bike
Okay how about: just don't use clisp. you have sbcl installed. try doing this on sbcl.
21:36:22
knusbaum
carmack: If a website is down, that's not really quicklisp's fault. Most of the time quicklisp works really well.
21:40:58
White_Flame
(in the "software packages" sense, not in the Common Lisp namespace package sense)
21:41:30
Shinmera
The problem that you pasted is that the website you're trying to access /with/ drakma is down.
21:42:51
Shinmera
And beside that, Quicklisp downloads from AWS. If that were down, a lot more would be affected too.
21:51:39
axion
He's asking why he doesn't see the result of an http request when he only loaded a file
21:53:34
whoman
after you (ql:quickload :drakma) , at the repl, type the other thing. the repl is slime i guess
21:54:03
axion
carmack: An http client library lets you connect to web sites. If you want to see the result of connecting to an http server, you have to, connect to an http server.
21:56:29
whoman
you are running faster than your legs will carry you, thats all. just slow down and takes things step by step, there is no rush
21:56:56
carmack
I thought there would be so many problems with such simple things. Now I begin to understand why common lisp is not such a popular
21:59:03
axion
Please follow the installation instructions. During quickinstall, you are given the chance to add it to your implementation's init file.
22:05:13
whoman
M-x slime -> (load "quicklisp.lisp") -> follow instruction both times, there is two commands it will ask you -> (ql:quickload :drakma) -> ..
22:36:50
dim
for allowing a better way to specify the target table in the user's DSL, because there's documentation and regression test support and then the “lisp API”
22:40:08
pjb
dim: I perfer to rebind: (defun bar (foo) (let ((foo (normalize foo))) …)) instead of (defun bar (foo) (setf foo (normalize foo)) …)
22:42:01
pillton
There is also this from the SBCL manual: "Python is very aggressive and clever about inferring the types of values bound with let, let*, inline function call, and so forth. However, it's much more passive and dumb about inferring the types of values assigned with setq, setf, and friends."
22:47:06
pjb
You can also break the indentation if your objective is to have short bearable commits.
22:51:08
dim
when 99% of the function's body has changed because of indentation, I find it hard to read the diff/project's history
23:18:58
zulu_inuoe
Is there any reason why a (successful) gethash followed by a remhash, with the exact same arguments, would fail?
23:22:53
White_Flame
if you built or linked to source, you could always step through & inspect what's going on, if you think it's a bug in the hashtable itself
23:22:56
dim
26 files changed, 570 insertions(+), 343 deletions(-) --- came to be quite a refacoring
23:23:29
zulu_inuoe
I just wanted to make sure that I wasn't overlooking some weird behavior in remhash/gethash when it came to say, an equalp test