libera/#commonlisp - IRC Chatlog
Search
12:26:18
Helmholtz1
hayley, neither do I... I'm considering it...https://fastapi.tiangolo.com/features/#based-on-open-standards
12:27:07
Helmholtz1
it seems we write a yaml file (to the openapi spec), and the endpoints, auth , interactive docs etc would be generated
15:08:45
mathrick
Nilby: OK, so it seems that my SBCL doesn't even have FSBV, so that's not the culprit
15:25:20
mathrick
Bike: oh, I don't know what file that would need to be, and since I'm loading it all through ASDF, it would be difficult even to inject it
15:26:54
mathrick
I did try with (asdf:disable-output-translations), but even then it seems that it only recompiled everything once, and on subsequent runs it doesn't really do much
15:30:37
mathrick
Bike: same results, it all seems to make a difference *once*, then it's back to immediate LDB
15:31:08
mathrick
it often still lands me in LDB even on the first run, but that happens after my code has run
15:31:57
mathrick
on subsequent runs, it gets to LDB almost immediately after it starts running my test code, much earlier than on the first run
15:32:22
Bike
sounds pretty mysterious. i dont think i can really guess much without seeing the code
15:41:56
mathrick
Bike: do you have a github account? The repo is currently private, but I could give you access and commit the test code I'm using
15:51:26
dbotton
_death the reason for you nginx issue was the choice of /clog for your url as that is clog uses that directory name to identifying the incoming websocket connectionl I'll add code to and document it for future. slipped mind when mentioned issue Friday
15:54:57
_death
not exactly.. if I used say /foo then clog would still try to use /clog, and that wouldn't then be passed to the clog process by nginx.. one solution would be to let the user specify the prefix
16:00:56
NotThatRPG_away
hefner: I was trying to update Garnet a while ago, but it was too big a job to do on spare time. I am really fond of it, though. Still think it's one of the best ways to design a UI that's available. I had a colleague once "re-skin" it for me, because the default look is SUPER ugly. High contrast, black and white, all square corners. Giving it a better look is critical for seeing how great it can be
16:02:00
NotThatRPG_away
hayley: I tried to use CL-SWAGGER and it's a total mess. Ended up using open-api-generator to make a Python server and invoking CL with cl4py ...
16:05:06
NotThatRPG
hefner: If you are interested, check in with me later: have to go do some errands.
16:36:36
masinter
(so if I have symbol and symbol-package and i just need the 1 bit I need to find-symbol search?
16:38:31
Bike
the symbol being external or internal or inherited or whatever is more a property of the package than of the symbol itself, since the same symbol can have different statuses in different packages
16:44:16
pjb
masinter: (defun external-symbol-p (symbol) (eql :external (nth-value 1 (find-symbol (symbol-name symbol) (symbol-package symbol)))))
16:45:26
pjb
masinter: possibly (defun exported-symbol-p (symbol &optional (package (symbol-package symbol))) (eql :external (nth-value 1 (find-symbol (symbol-name symbol) package)))) (exported-symbol-p 'if "CL-USER") #| --> nil |#
16:45:29
Bike
masinter: right, but iterating is probably not as efficient as find-symbol, which is probably just a hash lookup or two.
17:45:53
jeosol
In the abbreviation of different CL implementations, is SCL an abbreviation for Scieneer CL?
19:20:41
McParen
Hello, normally I can refer from package a to symbols in package b like b:bar, and to a:foo from b. But it doesnt seem to be possible to do that when I want to use local nicknames. You basically can not have a local nickname in A to package B if B is defined after A.
19:21:05
McParen
this seems weird, because you cant do with local nicknames what you can do with full package names.
19:24:14
Bike
you can't put it in the defpackage form, but you can add local nicknames after the fact
19:30:12
McParen
okay, that seems to be the solution to my problem, but that means that the defpackage interface is kind of useless. i've never used that till today, and in my absolutely firt use i immediately reach its limits.
19:30:53
McParen
I cant imagine how they agreed upon that interface if you cant use it in its most basic use case.
19:36:50
McParen
the "new" local nicknames interface in defpackage is useless if you cant actually use it in a very basic case.
19:39:28
Bike
the obvious (to me, anyway) would be to make local nicknames resolve to a package _name_ instead of a package itself, but that would be more complicated in a couple ways
19:41:28
yitzi
McParen: Here is an actual usage of local-nicknames that isn't just a "I don't wanna type a long name" usage. https://github.com/yitzchak/Inravina/blob/cd97004f49057d5fbc5745a09e28427e8f7b5524/code/packages.lisp#L18
19:42:20
yitzi
Aside from that, I wish I understood why people care about it...but that is just my opinion.
19:43:14
McParen
I've come to like not :use-ing packages, but refering to symbols with package prefixes, and for that, they need to be short.
19:46:18
yitzi
But, I don't see why you care about the length of the package names. I mean, there are some ridiculously long package names out there, but most are pretty reasonable. What is too long for you? ... Just curious.
19:47:23
Bike
a problem with USEing packages is that as soon as one of them adds or removes external symbols it can cause surprising and possibly silent conflicts. using package local nicknames lets you avoid that.
19:47:34
McParen
the reason i can tell is that once people :use a package, you cant add more symbols to the package and then you have to make up something like alexandria+.
19:49:17
masinter
I thought packages might be like XML namespaces (or the other way around), but use a URL a the "true name" of the package, with local short prefixes
19:50:27
McParen
yitzi: I dont know, a package name should not be longer that the symbol, i guess, that seems to be a matter of aesthetics. I seems "wrong" to deal with foo-bar-baz:a.
19:52:21
McParen
in python they shorten even shorten short names like numpy in code, you regularly see np.this np.that.
19:52:29
yitzi
McParen: That isn't bad logic, but you are right it is aesthetics. My argument against LPN's is that aliasing a = alexandria makes the code a lot less readable.
19:53:52
McParen
yitzi, this is right, but when you have 5 times the name alexandria in a 10-lines function, that creates a kind of annoying noise.
19:54:40
McParen
I do not want some name, that does absolutely add no functionality, to be repeated over and over and over a function.
19:57:16
contrapunctus
2. Using PLNs means freedom from switching to the `defpackage` and fiddling with the `:import-from` each time you need a new symbol and each time you're no longer using a symbol.
19:58:10
McParen
Even outside programming languages, you do not want to repeat long, multi-syllable names like Joseph, Gabriel, etc, so people make up Gabe, Joe, etc, to avoid going mad.
20:04:22
McParen
I mentioned that earlier because I thought this was a thing, and that thing is not compatible with local nicknames if you refer from A to B and from B to A.
20:06:58
contrapunctus
Recursive dependencies between packages might be a sign of code requiring restructuring...I've managed to avoid them in my CL projects so far, but perhaps that's due to inexperience 😀
20:09:17
Bike
i have also wanted mutual PLNs in the past, which is why i've thought about this stuff. it's not that weird, it just means you have subsystems using each other's APIs
20:15:29
McParen
contrapunctus, that might be correct, but what irks me is that this is not a problem with packages, but just with local nicknames. I dont know about the internals, but it seems weird that people who worked on this api for years let such a "obvious" flaw sli through.
20:16:28
McParen
maybe it was not possible any other way, i dont know. but as I said, today was actually the first time i used PLNs, and i immediately stumbled upon the bug.
20:18:14
McParen
like in: "ok, lets try using local nicknames for a change. *googles sbcl manual* *copy pasta* oh, it doesnt work."
20:25:51
pjb
On the other hand, a function foo remains a function foo, whatever the package she's implemented in.
20:26:29
pjb
alexandria:foo or com.informatimago.common-lisp.cesarum.foos:foo should do the same thing. So using the package and calling (foo …) should be a no-brainer.
20:47:08
jeosol
jcowan Bike: Thanks for your response regarding the Scieneer CL abbreviation. I don't recall seeing any SCL lisp but thought Scieneer CL is abbreviated that way.
22:33:46
brandflake11
Hello, does anyone know of a way, or a package, to get a file's last modified date in common lisp?
22:34:13
brandflake11
Right now, my program is using inferior shell with date -r, but I figured there may be a faster solution
23:46:14
aeth
not actually checking type unless the right implementation/optimization combination is present is so weird
23:46:33
aeth
another thing that's common is not exporting class/type names so you have to check-type on foo::bar