freenode/lisp - IRC Chatlog
Search
21:26:05
Xach
it will be an openpgp public key. it will be embedded in the bootstrap file, which is available via https.
21:26:26
Xach
the goal is that everything the bootstrap and client does can be verified by other tools.
21:30:12
jackdaniel
drmeister: it is used only for thread safety (concurrent access), see src/c/gfun.d (esp comments)
21:40:37
TruePika
It should be possible to detect their disappearance, but my plans involved part of the bot having a helper around each PLANE, to simulate TCAS
21:42:53
TruePika
I'd probably do something akin to a reinitialization to a dummy class which issues a condition
21:57:47
TruePika
hash test would need to be equalp, but there will only ever be up to 26 planes in the world
21:58:43
TruePika
though, I'd theoretically not need to use an alist (just a regular list), on second thought
22:04:29
X-Scale
http://www.cl-http.org:8002/lispdocuments/draft-proposed-ANSI-Common-Lisp.pdf seems to be gone. Any idea where one can find it now ?
22:10:10
X-Scale
I guess I've found a similar document -> ftp://linux4u.jinr.ru/pub/misc/symbolic/lisp/dpANS3/book.pdf
22:10:14
Xach
X-Scale: ok. the source material from which it is derived is freely available and widely copied.
22:11:56
dim
in the case of pgloader the perf impact is quite small, when measurable, because it's all IO bounded (network and disks) anyway
22:39:55
fiddlerwoaroof_
phoe: yeah, lisp is surprisingly versatile for web programming, despite the somewhat low-level apis it provides for string manipulation
22:52:10
fiddlerwoaroof_
That's true, I generally find that the various string manipulation libraries don't fit together very well and don't have some options that are useful. I.e. split-sequence takes a count argument, but that determines the number of split fields returned, not the number of splits made.
22:52:41
fiddlerwoaroof_
In Python, it's really useful that 'a b c d'.split(' ',3) returns ['a','b','c d']
22:53:13
fiddlerwoaroof_
On the other hand, lisp makes it really easy to fill in the gaps, in a way that few other languages do
23:01:42
TruePika
unable to optimize because: could not optimize away %SAP-ALIEN: forced to do runtime allocation of alien-value structure
23:23:44
pjb
fiddlerwoaroof: (split-sequence:split-sequence #\space "a b c d" :count 2) #| --> ("a" "b") ; 4 |#
23:25:06
pjb
fiddlerwoaroof: (let ((string "a b c d") (n 3)) (multiple-value-bind (splitted next) (split-sequence:split-sequence #\space string :count (- n 1)) (append splitted (list (subseq string next))))) #| --> ("a" "b" "c d") |#
23:26:32
fiddlerwoaroof
pjb: I'm not denying that it's easy to write your own, I'm just saying that all these little things introduce friction into the sorts of string processing I frequently do
23:27:12
pjb
fiddlerwoaroof: I agree. That's why you build up your own library. Or you may design a consistent string processing library.
23:27:15
fiddlerwoaroof
Lately, I've found a #{} reader macro that mirrors Clojure's #() macro for defining functions is useful
23:28:14
TruePika
but I'm most worried because the form being complained about is almost part of SBCL
23:29:03
fiddlerwoaroof
Tcl would make sense because macros there are essentially string transformations
1:58:45
pillton
You'll probably have to be more specific. I've solved graph problems by solving a linear system.
2:00:55
didi
pillton: I currently implement graphs using adjacency-lists and a hashtable. The hashtable hold the vertices as keys and the values are the adjacency-lists. I am wondering about different implementations and if anyone investigated this problem space in lisp before.
2:12:53
didi
I incidentally came across the passage that I mentioned: https://jaxenter.com/disadvantages-of-purely-functional-programming-126776.html "With a garbage collected imperative language, the relationships between the vertices and edges of a graph can be expressed using weak hash tables. The garbage collector will then collect unreachable subgraphs for you."
2:23:04
Petit_Dejeuner
didi: "It took 50 years for normal people to dilute the smug weenies to the point where you can get a useful answer about functional programming on social media."
2:31:07
fiddlerwoaroof
I like it how he tells us that the Lisp community had wrong arguments about Lisp's goodness, but doesn't bother to share them
3:02:04
didi
pillton: I am thinking about it. I want to retain the original vertices names, so I am thinking of using a map--possibly a hashtable--for names and indices and an array for the graph proper.
4:53:58
jack_rabbit
Is there a way to inspect the SBCL "heap"? I'm curious about the kinds of objects that are alive.
5:57:31
Petit_Dejeuner
I was going to say "Yeah, but I heard back then you could only get smug lisp weenie answers out of functional programmers.", but I wasn't sure if I should start hamming it up in #lisp.
6:20:28
axion
Does anyone know why the version of the quicklisp bootstrapper offered on its website (https://beta.quicklisp.org/quicklisp.lisp) is different than https://github.com/quicklisp/quicklisp-bootstrap/blob/master/quicklisp.lisp ...it seems like the git repo is behind?
8:06:18
dim
beach: fyi I failed to have clim talk to XQuartz because of protocol mismatch, and didn't have time to inquire after that
8:16:25
stilda
Hello. Sorry for a newby question but can not find anything in internet. Is it acceptable thing to use a construct like (defmacro mym (args-list) (destructuring-bind (a b c) (eval args-list) ...))? The question is in using eval there. I have a defparameter that holds a list which I want to pass to the macro. Is there a better ways to do it?
8:18:48
beach
stilda: And (again, if args-list is a list of arguments), you should call it ARGUMENTS instead. The convention is to use the plural for a list (or possibly a vector) of things.
8:19:25
beach
phoe_: Maybe. More likely, it sounds like the use of a macro where a function should be used instead.
8:22:49
dim
then tou can (loop for foo in foo-list ...) and it's easier to read (I think) than (for foo in foos ...)
8:25:43
stilda
ok. more detailed description is following: I want to generate a code of function. I have (defun define-loka-code (name params) (destructuring-bind (p1 p2 p3) params `(defun ,name () ...<use p1 p2 p3 here>))). Then I have (defmacro define-loka (name params) (define-loka-code name (eval params))). Then I have (defparameter *loka-parameters* (list value1 value2 value3)). And I use it like (define-loka myfuncname *loka-parameters*)
8:27:01
beach
dim: There are several things I don't like about accepted conventions. But I think it is more important to follow those conventions so as to facilitate communication, than to use my preferred style. And this goes for code as well as for prose.
8:27:08
stilda
value1 value2 value 3 is big enough so I want to keep it in a separate list and not inline in macro call.
8:30:42
phoe_
because if it is (list value1 value2 value3), this evaluates to (value1 value2 value3), and EVAL will treat this as a function call.
8:32:22
stilda
phoe_: no I define *loka-parameters* as (defparameter *loka-parameters* (list value1 value2 value3))
8:36:34
stilda
phoe_: in scope of define-loka params will have value '*loka-parameters* so there is no problems with evaluating (value1 value2 value3)
8:41:03
phoe_
then (define-loka myfuncname *loka-parameters*) will expand to (define-loka-code myfuncname (v1 v2 v3)).
8:42:08
stilda
sorry mybe quoute should not be there. I meant that params will be symbol *loka-parameters*.
8:43:22
stilda
no, without eval or symbol-value I will get expansion (define-loka-code myfuncname *loka-parameters*). And then it complains that can not destructure a symbol.
8:46:31
stilda
then why does it not substitute *loka-parameters* value there? Am I right that eval will be called on my macro body?
8:56:33
stilda
ok, I think I was wrong saying that (define-loka-code myfuncname *loka-parameters*) is the expansion of the (define-loka myfuncname *loka-parameters*) form.
9:05:13
phoe_
(defmacro define-loka (name params) (destructuring-bind (p1 p2 p3) (symbol-value params) `(defun ,name () ,p1 ,p2 ,p3)))
9:05:44
phoe_
now (macroexpand-1 '(define-loka myfuncname *loka-parameters*)) ;=> (DEFUN MYFUNCNAME () VALUE1 VALUE2 VALUE3)
9:16:06
stilda
ok, so I have to move it to separate file and ensure it is compiled before the call to macro
9:16:57
phoe_
(eval-when (:compile-toplevel :load-toplevel :execute) (defvar *loka-parameters* '(1 2 3)))