libera/#commonlisp - IRC Chatlog
Search
20:41:50
dieggsy
it's quite weird that pathname-directory doesn't return a pathname - am I using the wrong function?
20:43:54
Josh_2
finally figured it out, turns out in one place you use a private key, the other you have to use a different key
22:15:37
pjb
waleee: I don't think there's a hard requirements for most /etc/ files. There's a standard sysexit code for such an occurence: EX_OSFILE
22:16:44
pjb
waleee: another consideration is that there's a configuration to specify what resource, and in what order, is used to perform various lookups, including DNS lookups.
22:18:17
pjb
waleee: version 2 of GNU glibc uses /etc/nsswitch.conf https://man7.org/linux/man-pages/man5/nsswitch.conf.5.html https://www.oreilly.com/library/view/linux-network-administrators/1565924002/ch06.html
22:19:52
waleee
pjb: it fails with "Failed to find the WRITE-DATE of /etc/hosts: No such file or directory"
22:25:25
pjb
gethostent() if you need to scan all the entries (for some value of "all", depending on the configuration, and what's available locally, I guess).
22:25:46
pjb
waleee: no, it's a posix function. It should be used by iolib/sockets instead of reading /etc/hosts.
22:34:26
waleee
wtf my email was registered on a ubuntu one-account (needed for launchpad bug-reports)
23:55:38
jcowan
That changes the definitions of the symbols t and nil, which is not the same as mutating either one (or any othr symbol)
23:57:38
pjb
Well, it is possible that an implementation uses the string passed to intern or make-symbol as string name, and if you mutate this string you could thus change the symbol name.
0:01:04
jcowan
Back when the pname was on the alist of a symbol, you could mutate it, but that wouldn't affect the inaccessible hash table that maps pnames to their symbols.
0:01:30
jasom
jcowan: what about (setf (get nil ...)...)? If the plist is part of the symbol, you're mutating the symbol, no?
0:04:02
jcowan
The story is about mutating symbol names. in Lisp 1.5, pnames were on the plist, but they were not Lisp objects (no strings yet), so you could only mutate a pname by assembly-language operations. And even if you mutated the plist of NIL to be T, it would still *work like* NIL in the sense of evaluating to itself and being the empty list. So typing in NIL would print out T, because that is the new pname of NIL.
0:05:38
pjb
jcowan: the story is foremost that modern implementations implement protections. The standard doesn't mandate them. It only forbids conforming programs to perform any retrospection on the CL stuff.
3:54:41
beach
People need to know how good McCLIM has become, and that it is going to get even better.
3:55:48
hirez
if they could reskin this to use a native-looking skin (or an approximation) I could probably sell this easily
3:57:15
hirez
because they feel very similar in terms of programming (though lispworks IDE makes life marginally easier...)
3:58:39
beach
I discovered the specification a little more than 20 years ago when I needed a GUI for Gsharp, and I didn't want to attempt an FFI solution.
4:00:49
beach
Then, it turned out that Mike McDonald and gilberth had written pieces of a free implementation. Mike had made "horizontal" progress (with the address-book application), and gilberth had done "vertical" progress with regions and transformations.
4:01:39
beach
So, I think in 2000, gilberth merged his and Mike's work, encouraged by me, and that was the start of McCLIM.
4:03:47
hirez
hah, now that I think about it bordeaux has come up a few conversations about computational geometry
4:04:57
beach
Otherwise, I was a grad student at Johns Hopkins when Joe O'Rourke and Subhash Suri were doing good work in computational geometry. They are fairly well known in the field.
4:07:29
hirez
I've found lisp to be a natural fit. Despite pressure to use python and what not I'm committed to porting everything over this direction.
4:07:54
hirez
Conses are natural representations of points. Functional composition is extremely useful.
4:07:57
beach
Good. Python would be horrible for that kind of computation. You would have to write your code in C.
4:08:27
hirez
And I have. In the process of running experiments in one of my papers python's GC was so aggressive I had to retool it in Cython
4:08:34
beach
It is usually estimated that Python has a factor 50 or so performance penalty compared to a good Common Lisp implementation like SBCL.
4:09:10
moon-child
hirez: could you not disable the gc entirely? That's frequently a reasonable tradeoff for batch processing work, even with a good gc
4:09:34
hirez
moon-child, not in python. At least not easily. Cython let me "get around" the GC by redefining structures as C structures.
4:10:46
moon-child
oh--I suppose cpython uses reference counting, so the main cost would be incrementing and decrementing reference counts, not actually allocating and freeing or tracing objects
4:10:48
hirez
Thankfully I am focused on robotic path planning. A nice fit for lisp and symbolic computation imo :D
4:12:00
hirez
moon-child, that and the representation of structures in the VM. They are extremely heavy. 80% or more of my GC penalty was coming from dicts/sets getting collected as I dumped them.
4:12:47
moon-child
ah, yeah, python's objects are quite heavy, and it can't really leave them unboxed
4:14:06
hirez
Tuples are close but not perfect, and classes are really the only other way. Each of those has a huge penalty in terms of all the free stuff it gives you.
4:15:03
hirez
Anyway, this all to say with McCLIM working and finally starting to really grok lisp I'm happy with what ive done far.
4:29:32
GreaseMonkey
what kinds of IRC bot libraries would you recommend on QuickLisp or via something i can check out into my local-projects directory? or would i be best to instead look for something that would let me parse lines fairly well... or should i just bite the bullet and use what's in cl + alexandria?
4:29:54
GreaseMonkey
...oh and usocket of course unless something tends to be a lot better than that
4:30:32
GreaseMonkey
but i suspect it's really only stuff like SDL that needs special treatment of the main thread and whatnot