freenode/#lisp - IRC Chatlog
Search
17:41:38
makomo
what would be the difference between: (1) an accessor, (2) a place and (3) a generalized reference? i suppose (2) == (3) but (1) is the name of the operator within *some* of the places (some places might not use an accessor). is this right?
17:43:36
Bike
according to the glossary, an accessor is an operator that performs an access, and an access is to read or write a place.
17:47:00
Inline
otherwise there are read-only acessors, in which case you don't call them acessors or so
17:50:29
makomo
so places == generalized references, but accessors are a thing of their own and could be used within places
17:51:30
Inline
maybe i should have said, it's an operator, defined in the context of a slot (but the slot can name it's acessors name, so it's independent of it) and it can fiddle with anything it's designed to
17:53:26
Inline
if the accessors name happens to be referencing a function (i.e. pointing to it) then it will be a function, otherwise it can be anything
17:59:26
makomo
Inline: an accessor doesn't necessarily have anything to do with slots. DEFCLASS has the option of defining accessor for your slots for you, but all it does is define a function of the same name that sets the object's slot
18:01:38
makomo
also, in the context of DEFCLASS, they're not plain functions but generic functions/methods
21:00:55
edgar-rft
dtornabene, maybe because nobody can tell what time it is in outer space right now
22:05:26
dxtr
So is there a complete list of all the quicklisp packages with the description of each package?
22:06:25
dxtr
The reason I'm asking is because I want to code something but I can't really come up with anything fun to do so I was hoping to get some inspiration from that list :)
22:37:25
pillton
dxtr: I got as far as (map nil (lambda (s) (print (ql-dist:short-description s))) (ql:provided-systems (ql-dist:find-dist "quicklisp"))).
22:38:22
pillton
dxtr: I don't think long descriptions are part of the quicklisp distribution metadata.
22:41:18
mfiano
I would urge you to a) work on something in Lisp, rather than some foreign bindings, and b) work on something that would benefit the Lisp ecosystem -- if it's duplicated work, it should be for good reason, but there are lots of areas untouched still that would benefit all.
22:42:36
mfiano
So looking at a list of existing Lisp software may or may not be a good idea. It'd be a good idea if it's to check what is not already available.
22:55:45
Beep-Lord
pillton, it's pretty much all I do. I wrote a library to help me change functionality of foreign libraries on the fly because I do it a lot it seems.
22:59:59
pillton
I understand the issues surrounding debugging. The binary packaging can be fixed. People don't complain about having to ship resources like images, video, 3D meshes and the like.
23:02:28
aeth
Compiling CL that works on both Linux and Windows is a completely different thing than compiling C than works on both Linux and Windows.
23:03:14
aeth
For one, you can use SBCL on both Linux and Windows. You'd generally use an entirely different C compiler on Linux than on Windows afaik.
23:12:30
mfiano
Side topic: If I were to develop a large project with many tens or even hundreds of files offering a wide variety of functionality, that has already been decided not to be split up into several systems for internal reasons, my first instinct would be to split it up logically into multiple packages. I've never developed such monolithic applications apart a few game engines where package exports and the like soon
23:12:32
mfiano
became a problem. I'm wondering if anyone has developed very large systems using a different packaging scheme. My primary concern is preventing myself and other the other developers from maintaining an internal use API with exports, and a user API in parallel, because I dislike accessing un-exported symbols cross-package with ::. Thoughts?
23:16:31
pillton
aeth: UIOP is a common lisp system designed to address incompatibilities across common lisp implementations. The same approach could be used to solve the C issues you mentioned.
23:20:59
pillton
What is the likelihood of finding people willing and capable of implementing things like eigen decomposition, singular value decomposition, image codecs and video codecs in CL?
23:26:50
pfdietz
If you use ::, you are exposing the entire inside of a package to your use. The maintainer of that package either can't change anything, or can break what you're depending on. Exported symbols, on the other hand, are the public interface that can be held steady.
23:34:27
White_Flame
I use in on rare occasion where 1 package that I control needs to do some deep-dive into another packaget that I also control, for some lower level stuff that I really don't want public
23:44:34
pillton
aeth: The fundamental principles of Microsoft's Component Object Model are sufficient.
23:46:45
aeth
Let's say that there's a function and the function is defun'd under a top-level let to get variables that persist across calls to that function. How would this interact with threads?
23:47:09
aeth
The function would always be called in the same thread, but not the thread where it was defined.
23:48:34
pillton
I doubt there would be a lexical environment per thread if that is what you are asking.
23:49:22
aeth
Would there be a performance issue with such a closure being accessible to all threads? The potential to be out of sync?
23:59:06
pillton
There was a blog post about this subject years and years ago. Something about lock free communication between threads. I think it was by Christophe Rhodes or Paul Khuong but I cannot find it.
1:58:38
didi
How would you compare the memory usage of different data structures? For example, between a list, a vector, and a hash-table, all of them with 10 k elements.
2:05:01
didi
I don't want to make a general statement. Just compare these things inside my own program.
2:06:58
mfiano
Youre going to have a hard time. At best you can use ROOM to get an approximation at any point in time, garbage collection aside.
2:07:17
Jachy
A portable hack might be to load up the data in one data structure and call (room), exit, rerun with the other data structure...
2:26:39
montxero
Quick question... I have some functions in funcs.lisp and I want to use them in a differnt file other_funcs.lisp. How do I achieve that
2:29:26
montxero
for something as simple as importing a couple of sorting functions, surely one doesnt have to worry about asdf, quicklisp and the like
2:32:49
Jachy
didi: Your Q also reminded me of this blog post that I read not too long ago, SBCL's memory profiler is pretty cool.. http://unthought.net/2016/12/22-lisp-memory-woes-but-not/
2:37:49
aeth
didi: It also depends on what you're storing. If you're storing (unsigned-byte 8)s or single-floats or bits, etc., you could use :element-type in make-array
2:39:22
didi
Like I said, I don't want to make any general statement. Just compare my program memory usage by using different data structures.
2:50:17
Jachy
(TBRSS was an rss reader and I think you could sign up to have it archive things for you similar to Pinboard, but there's a lot of open source lisp code the author released around it.)
2:52:39
mfiano
slyrus_: Do note that com.informatigo is released under the terms of the GNU AGPL, and may not be compatible with a great deal of other Lisp software.
2:53:38
slyrus_
ok, thanks mfiano and Jachy. looking to replace pjb's html generator with something else.
2:54:40
mfiano
It was by far the most pleasant to work with to me after trying more than a handful over the last few years
2:58:56
didi
Uh, I didn't know SBCL could profile memory allocation. This is great. Thank you, Jachy, for the article.
3:02:54
Jachy
Has anyone tried making a Clojure <-> ABCL bridge? They're just two jars.. :) But then you could use Hiccup.
4:00:03
beach
mfiano: I developed Cluffer that way, i.e. using several packages and an internal protocol.
4:00:46
montxero
Thanks <mfiano> and others. It turns out I what I needed to do was to compile the functions in my current instance of slime/sbcl.
4:01:23
montxero
mfiano: following your advise, I will not use load for individual functions. Thanks
4:04:28
mfiano
beach: Yeah it does seem the way to go, and what has worked well for very large projects of mine in the past. I guess what I was getting at is it's going to be a considerable amount of time before I have a protocol which is stable enough, even for internal use, and it's easier to develop with a single package during early development, where early at this scale is several months at least.
4:04:50
mfiano
It's just too much meta-programming (and not the fun kind!) and too early when I should be sketching out a PoC
4:05:59
beach
In my case, it was not the first time I thought about this kind of software (I have been thinking about it for some 30 years and produced various versions), so I pretty much knew the issues.
4:06:32
beach
Where "this kind of software" is an "editable sequences", specifically for use as a text buffer in a text editor.
4:08:52
mfiano
After all, I did move to CL over a decade ago for the reason that it was better at prototypical code than what I was using at the time.
4:09:35
mfiano
It is important to spend more time on ideas during early development than protocols and nomenclature in my honest opinion.
4:11:54
mfiano
Speaking of Cluffer, how is SecondClimacs coming along these days? I admit it's been a year or two since I checked on it.
4:12:31
beach
It is stalled at the moment. I am working on the specification of the garbage collector for SICL right now.
4:14:36
beach
And I have been distracted by the work of MichaelRaskin on debugging. It gave me the idea that I could give support for something like Clordane without having a native SICL version. Instead, I could use it for debugging cross-compiled SICL code inside SBCL, which would be a huge advantage over debugging core dumps.
4:15:33
beach
I am not much into masochistic programming practices, so I try to minimize my own pain when it comes to software development.
4:17:07
beach
I am worried about this GC thing though. I fear that nobody I know has both the time and the competence to read and understand my specification. If so, I would have to implement it myself to verify that it works, and that would certainly be very painful.
4:21:45
uncommon_lisp
I could try reading your spec - but I can only offer a nod of approval and a thumbs up afterwards because I probably wouldn't understand it.
4:22:37
beach
uncommon_lisp: That's very kind of you. I'll work on it a bit more and then I'll submit it for remarks here. I know flip214 is expecting more material from me before he is able to comment any further.
4:23:25
beach
He is right that it was very sketchy, and I need to work out the details. And there turn out to be many such details to work out.
4:28:37
Jachy
Is the spec for a particular GC implementation or for being able to integrate/swap different GCs?
4:29:12
beach
Jachy: That would be very hard to do. The GC is intimately tied to other implementation aspects of the system.
4:30:18
beach
Jachy: The book is absolutely horrible when it comes to the writing itself, but it does contain a fairly complete description of must existing techniques.
4:31:03
Jachy
I've got a digital copy of the garbage collection handbook if that's the one you're referring to though I have barely scratched the surface in the past.
4:31:25
Jachy
I'm just thinking of the JVM with its several GC implementations (and a few proprietary ones like Azul's) has been an advantage.
4:31:57
pillton
When is the 2016 edition coming out in dead tree form? The website has been saying soon for ages. I emailed the publisher and I got no reply.
4:32:29
beach
Jachy: Just keep in mind that, if you read a section and do not understand it, it may not be your fault. It could very well be the bad writing.
4:33:05
uncommon_lisp
I was going to buy that book but now I'm not so sure I want to waste money on bad writing
4:34:12
uncommon_lisp
I could request that you write several essays and compile them into a book for me, and then post it here.
4:35:09
beach
Heh. On GC, specifically? Sure, but I would manly just rehash what the others have already written.
4:36:11
beach
There might be some value to that, because I think of myself as a better writer than Jones. Maybe not better than Paul Wilson, though.
4:37:18
uncommon_lisp
If you do write a comprehensive paper on it (not in a scholarly, verbose fashion, but in the style of K&R or Maurice J. Bach's design of unix), I'd read it for sure
4:40:42
uncommon_lisp
Btw, I missed the conversation regarding the gc (what it's for (the software package I mean)) - are you writing the gc and everything in CL?
4:40:44
Jachy
Wilson's paper seems very familiar, I suspect I read it before sometime in the last 4-6 years but it's not in my finished folder..
4:42:28
beach
uncommon_lisp: I am planning to write as much as possible in Common Lisp. For now, I am just writing a detailed specification of the GC I am planning for SICL.
4:43:06
Jachy
It is dated in that no mention of real time GC, but the Handbook only goes over that in the final chapter. Doesn't seem like there's that much interest in real time systems in the broader environment anyway.
4:51:15
uncommon_lisp
The climacs editor in particular was something I was really interested in back when I was trying my best to avoid emacs.