freenode/#lisp - IRC Chatlog
Search
7:00:17
VincentVega
Hey guys! Got a question on types. Is there any danger in class slots initform being nil when I specify some non-compatible type e.g. double-float? Structs fail to compile w/ smth like that, but the class def is just fine.
7:01:44
beach
VincentVega: You should probably use the type (or null double-float) for cases like that.
7:08:01
VincentVega
flip214: well, the struct definition compiles, but making an instance produces an error
7:09:19
beach
It must be the case that the type is checked in a struct but not in a standard object.
7:10:25
flip214
VincentVega: yeah, you need to provide all missing values on your make-<struct> call
7:10:39
VincentVega
because the struct has to calculate it's own size, right? btw are there any good resources/articles on typing?
11:56:15
scymtym
ebrasca: i know. if you record a video about your work, i'm sure phoe would schedule it for a future installment of the online meetup
11:57:16
beach
It seems McCLIM is largely unknown to people. Maybe one talk should be about the listener, "debugger", and the integration of Clouseau.
11:59:00
scymtym
ebrasca: maybe i misunderstood what you were getting at. i just wanted to say that if you want to present your work, it shouldn't be a problem
11:59:50
_death
scymtym: here's a backtrace for the lock issue https://plaster.tymoon.eu/view/1980#1980
12:05:48
scymtym
_death: can you get a backtrace form McCLIM port thread when the image is in this state?
12:12:06
jackdaniel
n.b, it would be fantastic if the videos were available outside yt/twitch gardens, i.e as torrents
12:14:05
scymtym
_death: maybe the problem is also related to the inspected value. it seems to be printing the long list when trying to display documentation for the "swap place values" command. a very long list or putting that list in a vector alone doesn't trigger anything for me. is the value you were inspecting easy to reproduce?
12:19:08
scymtym
_death: anything "around" that in terms of composite objects containing the list or similar? i can't get the list alone to cause any problems
12:23:06
scymtym
i suspect two issues: 1) clouseau does not abbreviate the object representation when printing the command help 2) clx can get stuck when writing overlong requests (or something more specific to string-related requests)
12:23:23
jackdaniel
this warning is a known problem with a proposed solution blocked by drei design. uf, that was a long sentence
12:25:30
scymtym
_death: if you surround the (format stream "Drag ~A onto another slot to ...") call in Apps/Clouseau/src/commands.lisp with (let ((*print-length* 30) (*print-circle* t)), does the issue persist?
12:27:42
scymtym
(the proper fix will involve Clouseau's WITH-PRINT-ERROR-HANDLING and WITH-SAFE-AND-TERSE-PRINTING)
12:31:15
scymtym
yeah, there are multiple help messages one of which is chosen depending on the destination object and pressed modifiers. they probably all lack the necessary printer setup
12:34:34
scymtym
thank you for experimenting. i have now reproduced the issue with default *PRINT-LENGTH* etc.
13:24:30
_death
it is possible to attempt to swap the value of a pseudo-place, which signals a no-applicable-method-error
13:26:43
scymtym
that must be a missing (supports PLACE (eql :setf)) method or a failure to use the READ-ONLY-PLACE mixin
13:29:32
scymtym
of course, i meant the architecture has the necessary features and the problem is thus a "configuration error"
13:38:55
_death
it already uses read-only-place.. I think the drag-swap-place-values tester needs a little tweaking.. like a (and (safe-valuep object) (supportsp object 'setf)) in case from-object is nil
13:41:47
scymtym
right, i might have forgotten to finish this or rather adapt it to McCLIM changes regarding the names of the tester arguments
14:06:47
_death
the graph example was also very cool, though the layout algo could be improved for larger graphs https://i.imgur.com/14uWrs0.png
14:08:09
jackdaniel
a few people mentioned on the issue tracker ,that they are working on alternative layouts, but nothing came in as a pull request so far
14:19:51
jackdaniel
_death: if you are interested in extending graph functionality, then the file to look at is Core/clim-core/graph-formatting.lisp
14:20:22
jackdaniel
the interface is not documented (and not exported :), but it is possible to add new types of graph
14:21:44
jackdaniel
(define-graph-type :pretty-dawg pretty-dag-graph-output-record), and then add a few methods
14:54:07
garbochock
Good afternoon, lisp newbie here. I have a question about looking up documentation. I'm aware of (describe 'function). However, currently as I'm going through 'practical common lisp', I came across (eql value :unspecific) - and wanted to figure out what (the keyword?) ":unspecific" means. On (describe 'eql) I get no information. This type of situation have come up before, and I would be interested to know how one would go about getti
14:56:14
beach
So, apparently, it is possible that the variable VALUE can take on that symbol as a value.
14:58:08
garbochock
Ah thank you, I was looking for some magical meaning behind it. Just a symbol, thanks!
15:01:37
garbochock
Indeed, looked up context and it appears pathname-name and pathname-type can return :unspecific.
15:04:06
aeth
garbochock: The only way to "document" keywords afaik would be to define a member or eql type, e.g. (deftype possibly-specific () "Docstring here." `(member :unspecific :specific)) or (deftype unspecific () "Docstring here." `(eql :unspecific)) where obviously the member type is more useful.
15:04:31
aeth
Of course, this is one direction, from type to keyword(s)/symbol(s), and not the other way, so you still couldn't find it from describe.
15:05:46
aeth
It's definitely possible that a keyword (especially a common one) could be part of more than one member type.
15:12:06
aeth
(I doubt either would be useful in that specific example, since I'm guessing it's either a non-keyword or :unspecific)
15:23:26
phoe
every symbol inside that package is automatically exported and it becomes a constant that evaluates to itself
15:24:19
phoe
so you can use them kinda-sorta-like enums in other languages, except you do not need to declare them beforehand
15:24:56
phoe
they inherit the trait of symbols where they have identity, and so :FOO is EQ/EQL only to :FOO and nothing else, which is why that bit of PCL code used an EQL comparison with a keyword
15:46:05
beach
Josh_2: Oh, and scymtym had a great presentation for the online Lisp meeting today, in case you missed it.
15:52:22
sm2n
beach, I was wondering if the lispos paper on your website being replaced with an older version was on purpose?
15:56:14
Josh_2
beach: I see the presentations you made for CL, very impressed by your choice of beamer theme :P
15:59:04
sm2n
in particular, I think graphics would have to be integrated all the way down, because otherwise you can't maintain security
16:02:48
sm2n
current architectures all run the userland part of the graphics stack in a single process generally, so you end up with at least two different levels of privileges - in the graphics stack, and as mediated by the os kernel with user permissions or whatever
16:04:07
sm2n
but even if you consider things that are supposed to fix the issue, like wayland, it's still quite bad - you can't manage permissions for a computation in a single place
16:05:31
beach
I am trying to think how that would impact a single-address-space architecture without processes.
16:06:57
beach
sm2n: So I guess you are right, that it has to be integrated "all the way down", as opposed to copying existing architectures.
16:10:55
beach
There is no concept of ownership of capabilities. Who ever is in possession of one can use it.
16:12:37
sm2n
what's the unit of modularity? i.e at what level of granularity can I assign trust rankings to computations on my machine?
16:14:13
beach
Not sure what that means. The object store plays the role of a traditional file system. It contains ACLs, so when a user wants to obtain an object from the object store, then the ACL is checked and the user is handed a capability.
16:16:13
sm2n
more concrete: say I download a program off the internet, I want to run it in such a way that I can guarantee that it cannot do certain things, like I dunno, uploading all my private cat photos
16:17:21
beach
If you load the program into a first-class global environment that doesn't have your photos in it, then it can't access them.
16:18:27
sm2n
maybe environments could be represented graphically like how qubes has borders around vms
16:19:43
beach
First-class global environments were designed for that kind of isolation. My typical use case is to put the code generator of the compiler in a separate first-class global environment, so that ordinary code can't alter it and thereby making the entire system unsafe.
16:22:57
beach
I think again, you would obtain some kind of object to be used for the operations, and that object would be a capability. So it would be like `open' but for a window/frame/whatever.
16:23:44
sebboh
Hi all. This might be my first time visiting here in 2020? Oof. Anyway, I really like ikiwiki, but I don't speak perl, and so I've never really modified or extended it, and when one of my ikiwiki sites breaks, it stays broken.. Is there some CL-based wiki-like static site generator backed by some RCS? The web-based editing that ikiwiki offers is not really necessary for me, I think.
16:26:01
sm2n
would require very careful choices on what the capabilities are though, but it seems doable
16:29:12
sm2n
but if I run a graphical program, how do I know what capabilities it has? is it just required to specify it beforehand
16:29:55
beach
The graphics program does not have any capabilities. The thread that runs that program obtains capabilities to be used in graphics operations.
16:30:27
sebboh
So, https://gitlab.common-lisp.net/vsedach/cliki2 seems to be the cannonical site. But, it's not clear to me that CLiki2 meets the requirements I named, or if it was just a casual response to a subset of my query. :)
16:31:46
beach
I think it would be best to draw up a scenario. That would make things more concrete.
16:32:32
beach
But I am reaching the end of a very long day, and my (admittedly small) family is going to announce that dinner is served in just a little while, so we may have to continue this discussion some other day.
16:42:38
czrrrr
https://clipwatching.com/cbxbkbaip66m/Some_of_my_metal_detector_finds_in_this_year_from_B.C._300_to_modern_things.mp4.html
16:45:24
scymtym
phoe: i wanted to ask multiple times but forgot (or i already asked and forgot the answer): do you also make the slides available?
17:33:05
Bike
hey jackdaniel, quick question if you're around - does "return @logxor(2,x,ecl_make_fixnum(-1));" mean 2 xor x xor -1, or does the 2 just indicate the number of arguments so that it's x xor -1
17:53:29
Fare
jackdaniel, there was a bug report about ECL and ASDF recently regarding :init-name, did you see it?
18:02:40
jackdaniel
Fare: it should pass init-name argument from the build operatation to the operator in ecl
18:05:00
jackdaniel
afair I've opened issue in asdf issue tracker at some point of time when the init-name argument became more meaningful, but I may be wrong with this memory
18:07:55
Fare
jackdaniel, I'm not developing asdf anymore, but I believe rpgoldman could use your help figuring out what to do. Apparently the recent change to ASDF doesn't work well in all situations, particularly so for bundle operations.