freenode/#lisp - IRC Chatlog
Search
19:19:28
pjb
(current Earth planets. Of course, we'll have more storage in the future; can you afford a time machine?)
19:19:59
_death
pjb: if you understood my meaning, you'd understand that I would get richer and richer so I can buy more and more galaxy to sell :)
20:27:03
jrm
Anyone here today affiliated with common-lisp.net ? Most or all of the tarball links at gitlab.common-lisp.net seem to be broken.
20:57:37
Posterdati
phoe I fixed an iolib issue with openbsd errno constants, if someone is interested...
21:03:21
pjb
Posterdati: it's rather very easy to know, you just log in into your github account, and it will tell you everything about your PR.
21:09:21
phoe
Common Lisp: where you suddenly remember that you made a pull request two years ago and go check if it was merged
21:32:09
rpg
I could perhaps ask Dave if I could put the LW evaluation license I have on his VM, but he'd have to agree it's only for ASDF testing use.
21:32:33
rpg
I'd like to punch the person who thought /var was a good place to put virtual machines.....
22:10:57
dim
I want to extend a feature from cl-mustache, and for that I want to add a bahevior when a defmethod returns nil, can I do that from an :after auxiliary method, or do I need to implement an :around method?
22:19:15
phoe
dim: you need to create a subclass of that class, unless the class is final, at which point you're screwed. inside that subclass, create a method with the same signature and include a call to super() that will return a value; based on that value, you will be able to implement the logic you want.
22:19:45
phoe
oh, whoops, this is not Java - here you can do it in three lines of code instead of a whole separate God damn class file <3
22:26:00
Shinmera
If reflection actually allowed replacing methods Java could be made to be much more bearable.
22:28:54
dim
phoe: and in Java you can't make anything happen unless you have access to all call sites instanciating the objects
22:30:34
phoe
dim: of course you have all call sites instantiating the objects, after all you've made your own Factory class that produces these objects for you, so you only change the Factory code.
22:31:04
phoe
it's obvious you don't create these objects anywhere else in any other places or ways and no other client code you're using creates them anywhere else, right? Right?
22:52:14
phoe
if you have foo(String, String default "bar") and foo(String) you have separate functions, but then a call to foo("asfads") would be ambiguous
23:06:13
pjb
public void foo(String a, String b); public void foo(String a){ foo(a,"bar"/*the default*/); }
23:07:37
dim
pjb: do you know http://p-nand-q.com/programming/obfuscation/java/computed_gotos_howto.html already? ;-)
2:07:12
malice
I inserted break after some let, but I can only see one variable of this LET, and there should be three.
2:07:29
malice
Is it possible that compiler optimized out these variables and that's why they're missing?
2:15:59
malice
I'm still wondering. After adding log statements some variables appeared, but not all.
3:00:24
|3b|
ACTION just does (break "foo" x y z ...) when i want to see variables in break, works for specials or expressions too :) (hit enter or middle click on "foo" at top of debugger window to see the values in inspector)
3:03:21
|3b|
well, usually i just try C-u C-c C-c on the function and try restarting the frame if i'm not doing something where that risks breaking state i want to keep (or repeating external side effects in a bad way)
3:38:01
drmeister
(defmacro := (x y) `(defparameter ,x ,y)) to reduce the horizontal space necessary to defparameter.
3:42:50
phoe
I see. It's a map, so does it mean these parts are connected in reality in atoms denoted by purple lines? What are *design-view* and *cagg*?
3:43:58
phoe
So you're basically telling the reader, "and here are these identical ring structures"?
4:03:10
akkad
cffi is blowing up on this with lw. Illegal car (OS-UNIX-P) in compound form ((OS-UNIX-P) "o").
4:37:55
drmeister
Common Lisp almost has one now - I need to switch to using Bordeaux threads from Clasp's threads to make it general.
4:40:10
drmeister
I heard that at the end of a very looong talk on Jupyter widgets: https://www.youtube.com/watch?v=eWzY2nGfkXk
4:57:36
drmeister
Which demo is that? There is this: dockerhub.com/drmeister/cando - but it's not yet set up as a demo.
5:21:04
drmeister
beach: I'm thinking more about implementing first class global environments for sandboxing.
6:59:11
fiddlerwoaroof
Every time I compile something to be run on another computer, I wish ASDF could statically link C libraries for things like osicat
7:00:16
fiddlerwoaroof
ACTION wishes we could program against a better abstraction layer than CFFI for inter-language communication
7:02:10
fiddlerwoaroof
Ah, I see, I was hoping that there was some way for the dumper to link in the object files
7:05:23
fiddlerwoaroof
What makes them difficult? (I barely know anything about how they work under the hood)
7:06:03
|3b|
save-lisp-and-die only rebuilds the lisp part, it doesn't rebuild the runtime (written in C)
7:06:40
Shinmera
|3b|: I didn't want to say because I'm not sure about it: does it basically just attach a memory block to the existing C binary that is loaded on boot?
7:07:01
fiddlerwoaroof
Yeah, but I'm talking about doing something to prevent things libraries like osicat from making your dumped image have a runtime dependency on a shared library
7:07:44
Shinmera
Well, again, if you need to deploy, you can set up static linking in the SBCL build.
7:07:46
fiddlerwoaroof
It would be nice if you could somehow convince dlopen to treat a bunch of memory as a .so
7:08:46
Shinmera
The issue with dynamic linking and all of that is the version mismatch possibilities.
7:09:27
|3b|
you could theoretically include the .so in the directory, but then you still need all of its dependencies (possibly even to libc depending on what you build on and care about running on)
7:09:59
fiddlerwoaroof
Sure, that's why I'd like (ql:quickload :osicat) to load the contents of the dependent .so files into memory in such a way that it can find them again when the image is run
7:10:06
Shinmera
For the C libraries I have in Quicklisp, I always ship prebuilt binaries and try to minimise dependencies as much as possible.
7:10:09
|3b|
probably easier to convince people to give you build scripts for their package manager of choice to include a dep on the shared library
7:10:55
fiddlerwoaroof
Perhaps, one way might be to bundle the libraries as constants and then to "unpack" them to a well-known location on first run
7:10:57
Shinmera
fiddlerwoaroof: If deployment of .so s is your issue, just use something like the Deploy library.
7:11:42
|3b|
including libs (particularly in memory as opposed to just in dir with executable) will annoy people when you include a version with security vulnerabilities (or other bugs) that are fixed upstream in the lib but not in your copy
7:12:37
Shinmera
I find having to dig for the library and installing the required version annoys a lot more people than the problem you outlined.
7:12:47
fiddlerwoaroof
Yeah, but that's one of the well-known trade offs between static-like linking and dynamic linking
7:12:50
|3b|
there are various installers outside normal distro package managers that try to deal with libraries etc
7:13:15
|3b|
maybe one of those would help, hopefully without annoying your users too much when you don't pick the one they like :)
7:13:46
Shinmera
If someone really cares about security / being up to date, they can just remove or replace the included .so file.
7:14:21
Shinmera
Which is something they'd probably know how to do, whereas someone uninitiated knowing to install the correct library and how is much less likely.