freenode/#lisp - IRC Chatlog
Search
16:54:52
jeosol
phoe: about swank-crew, I meant I have looked at it for managing and distributing the work but not starting the repls
16:55:07
adlai
ACTION supposes that is sane if both are actually identical compilers, on the same machine; beyond that, "now you have two problems"
16:56:27
jeosol
adlai: pardon that I use the word optimization loosely where where many might get confused with "code optimization". I am referring to mathematical optimization F(x) given some x, which each F1(x) and F2(x) corresponding to different images
17:48:48
sjl
I have a relatively long question about the MOP, defclass, and the evaluation of custom slot arguments. Pasted here to not flood the channel: https://gist.github.com/sjl/bc5903c62677f0a0ea16a2936e5d3c12
17:49:04
sjl
(the actual thing I'm trying to do is not quite as simple as this example, but this illustrates the problem)
17:57:18
Bike
the reason it's not getting the initarg is, iirc, that slot definition machinery gathers initargs from the direct slotds and applies inheritance rules, and it doesn't know about :tick so it just ignores it? something like that
18:02:28
Bike
i don't think there's any way to customize the evaluation like you want. the defclass macro always quotes extended options. I believe.
18:05:42
Bike
it would be tricky to extend the protocol, since you'd presumably want to use the direct slotd class to customize the macro behavior, but the class isn't known yet
18:08:10
lxsameer
hey folks, CL has more rules when it comes to quasiquotation, what does ",." resolves ?
18:09:11
Bike
«Anywhere ``,@'' may be used, the syntax ``,.'' may be used instead to indicate that it is permissible to operate destructively on the list structure produced by the form following the ``,.'' (in effect, to use nconc instead of append). »
18:14:41
Bike
sjl: you could define your own defclass replacement macro of course. i know that's not convenient, but ensure-class is pretty easy to use
18:38:02
sjl
Bike: yeah, that's what I figured. just wanted to make sure I wasn't missing something. thanks.
19:38:49
mseddon
Stupid question- anyone know if I can license some of the fonts from Genera? or is symbolics just a giant dead holding company now?
19:41:13
mseddon
although it seems very much quite a dead situation now, looks more like a guy in his basement selling boards for people who have to maintain old machines.
19:43:12
mseddon
well. that depends on who has them. there are naturally no copyright notices in the bdfs
19:44:18
mseddon
I suppose a bunch of them I may be able to yoink from the CADR, since MIT actually respond to emails
19:48:34
mseddon
meh. it may be easier and better to do it right and commission them from a font designer to be honest. It'd stand up better anyway.
19:50:46
mseddon
it's kinda easier these days now that we have high dpi screens and you don't need decent 72dpi font hinting
19:51:40
mseddon
yeah the fonts themselves are useless. They look cute and evoke a particular style, but even Cyrillic is not well supported imo
19:54:08
Lycurgus
i found garnet worked fine but it's not usable for anything new because it looks so stone age
19:57:33
mseddon
hehe, yeah. but for example garnet (which I recall from the Amiga days) was a great retro font.
22:08:52
arichiardi[m]
Hi there! I was wondering if anybody know whether CL bindings for LUKS functions (libcryptsetup)? No problem if not, just making sure I am not missing any :D
23:51:34
lotuseater
hehe I tried and it word: #1=(loop :for i :in '#1# :when (keywordp i) :collect i)
23:54:06
thmprover
Is there some way to check if a CL project name has been taken, or is currently in use? I have a horrible pun I want to use, but I don't want to steal it if someone else already has it.
23:57:01
lotuseater
yes! and writing LOOP words as real keywords is not only good for syntax highlighting but also something like DESTRUCTURING-BIND
23:58:34
lotuseater
thmprover: but for catching bigger area in the Venn diagram of names github would also be useful
23:59:06
no-defun-allowed
There aren't any other software projects called Netfarm, but there is an Italian open source consultancy named Netfarm.
0:00:06
no-defun-allowed
Prior to that, there was also GNU Nettle (a C cryptography library). So it's not just Lisp projects, and it's not just software projects either.
0:02:01
lotuseater
i wonder how difficult it is to realize good and safe cryptostuff in CL. someone told me two years ago the best is in deterministic aka direct assembly
0:05:08
no-defun-allowed
Ironclad makes an attempt to be constant-time IIRC, for example there is an equality operator that computes error |= x[n] ^ y[n], but it's really up to how the implementation handles things.
0:06:17
thmprover
My experiment with declarative theorem provers will henceforth occupy the CL-AIM project.
0:06:47
thmprover
CL-AIM will test my claim about the irrelevance of the choice for the foundations of mathematics.
0:08:16
lotuseater
thmprover: oh sounds interesting. i want to understand more how to work with ACL2, Coq and recently i read L∃∀N should also be good
0:09:26
thmprover
ACL2 looks fascinating. I have a love/hate relation with Coq, but my interest is in doing mathematics with theorem provers, not verifying software.
0:10:41
no-defun-allowed
ACL2 is very different. It does the theorem proving process automatically, but you usually need to steer it with lemmas, and it only does first order logic (no higher order functions).
0:11:20
lotuseater
yeah and my knowledge of category theory, dependent types is not deep enough yet. but Haskell drills me to widen it. but that's another story. and I know ACL2 is another approach than Coq
0:12:15
thmprover
Automath is a good way to learn dependent types, but it's quirky...it's not even in the lambda cube.
0:13:43
thmprover
no-defun-allowed: I thought that "wandering" aspect to ACL2 was particularly unique and intriguing.
0:14:29
thmprover
Wait, hypothetical question: CL is a lisp-2, so there are separate namespaces for functions and values, right?
0:15:36
no-defun-allowed
Yes, usually you would use a hash-table, and some accessor functions like FIND-THEOREM, (SETF FIND-THEOREM), ... to use the namespace.
0:19:10
thmprover
no-defun-allowed: that was my first instinct, too, but it is a "poor man's namespace" rather than a first-class namespace.
0:19:45
no-defun-allowed
I don't think there are first-class namespaces in Common Lisp. And if you implicitly FIND-THEOREM on some things, you wouldn't be able to tell the difference.
0:20:01
no-defun-allowed
eg (make-instance 'some-class ...) == (make-instance (find-class 'some-class) ...)
0:21:12
thmprover
Yeah, I was just curious if first-class namespaces were allowed. It seems like quite a niche thing, so completely understandable CL would not have it.
0:22:11
no-defun-allowed
And all the CL namespaces are just sets of accessors (occasionally with an environment object).
0:30:04
Bike
having an actual namespace would be most useful for when you want lexical bindings. not sure that's the case for theorems, though.
0:32:52
thmprover
I will have to study symbol-macrolet, I have a peripheral awareness of it, but haven't looked at it.
0:33:29
Bike
well, basically you can have your binding macro expand into (symbol-macrolet ((some-magic-symbol bindings)) ...), and then use (macroexpand-1 'some-magic-symbol env) to get the bindings.
0:36:23
thmprover
But you couldn't re-bind, say, 'let' (or some other builtin function) temporarily using symbol-macrolet?
0:37:09
Bike
let is a special operator, not a function. and symbol-macrolet deals with variables rather than operators. you can use macrolet to shadow operators.
0:44:30
Bike
oh, and you said CL was a lisp-2, but there are actually some more namespaces too, like the one for types and classes. doesn't come up immediately in the evaluation semantics though.
3:30:22
loke[m]
Imagine a list of "graphical objects" (because that's what they are in Climaxima), and there is a generic function called SAVE-STATE that, when called with a graphical object as an argument returns its configuration as a specially formatted list (a Maxima list actually, but that doesn't matter).
3:31:02
loke[m]
The caller has a list of these objects, and it collects the class name and the output of SAVE-STATE for each object.
3:32:59
loke[m]
Now, I need to write a LOAD-STATE that does the opposite. One way of doing that would be to take the class name, and call MAKE-INSTANCE on it with the values previously returned from SAVE-STATE as argument.
3:33:25
loke[m]
Another would be to have a big ECASE that knows about the object types and dispatch to the correct initialiser.
3:36:00
loke[m]
Bike: But that would add the requirement that whatever is returned from SAVE-STATE is in a form valid as argument to MAKE-INSTANCE. And it may be that some special internal state needs to be initialised that isn't visible from MAKE-INSTANCE. I'd like my solution to be as flexible as possible.
3:36:16
loke[m]
Another idea I had was to use ALLOCATE-INSTANCE and then call a generic function with this instance.
3:37:05
Bike
what make-instance does is call allocate-instance and then call initialize-instance on the result. initialize-instance can be customized with whatever keyword parameters for providing whatever state.