freenode/#sbcl - IRC Chatlog
Search
18:54:29
dougk_
cold-init is able to succeed on x86-64 with both immobile and dynamic spaces mapped at "wrong" addresses now.
19:28:42
scymtym
dougk_: the macos build fails for all configurations: e.g. https://ci.cor-lab.org/job/sbcl-master/2444/ . maybe this is just our slave running old software again
19:33:16
dougk_
there's no (extern-alien ) in make-target-2-load. Any chance you can see what happens if you #+nil out the call to shake-packages?
19:34:33
scymtym
i can't easily get to the machine from here but i can try that tomorrow. alternatively, if that helps at all, you should be able to download the partially build workspace at https://ci.cor-lab.org/job/sbcl-master/featureset=1,label=MAC_OS_mavericks_64bit/ws/*zip*/MAC_OS_mavericks_64bit.zip
20:47:52
|3b|`
(let ((a (delete-duplicates b))) (declare (ignore a))) -> ; caught STYLE-WARNING: The return value of DELETE-DUPLICATES should not be discarded.
20:50:30
dougk_
it's saying that you need to *actually* put its return value somewhere, not just pretend to
20:50:57
|3b|`
ACTION just added that to get rid of the extra warning, real code just had a dead variable
20:52:08
|3b|`
ACTION reads it as saying "don't call delete-duplicates for side effects" rather than "store the result and use it"
20:53:32
|3b|`
discarding the result is fine per spec, as long as you also don't have any expectations of the contents of input list
20:56:51
|3b|`
right, not non-conformant, just seems less than obvious what it means in that case, since it might not be obviously discarded in more complex code (aside from the possible unused variable warning without IGNORABLE)
1:58:27
stassats
dougk_: i think i would want fun headers for assembly routines anyway, for tail calling assembly routines
3:36:23
stassats
so, in sweep, NOTE_GARBAGE(page_table[find_page_index(where)].gen, where, nwords, zeroed);
3:39:36
stylewarning
If I have foreign pointers wrapped in a structure, is there a way I can recreate these objects if I save an image with SLAD? Is there an extensible way to do this without adding additional logic?
3:40:54
stylewarning
Basically I want to ship a library that uses foreign libs for linear algebra, and I want to make the use of pointers underneath opaque. Users have said this has caused issues when they would DEFPARAMETER these and SLAD. It makes sense why, and I'm trying to think of ways to ameliorate the situation.
3:52:12
stylewarning
Basically you seem to be saying "don't make Lisp structures hide foreign data opaquely"
3:53:36
stylewarning
It means the library has a structure which, as far as the user is concerned, is a plain old Lisp object
3:54:01
stylewarning
The pointer is never accessed outside of the confines of the library. It's existence isn't even published.
3:54:41
stylewarning
Transparent and opaque are pretty well understood technical terms when describing abstractions.
3:57:32
stylewarning
Like, one unsatisfactory solution is to save all objects in a weak table, do the equivalent of a load form, and reconstruct them upon next access.
3:59:42
stylewarning
The only other alternative is to get these pointers out entirely and attempt to use Lisp objects and pass pointers into those to the foreign libs.
4:00:33
stassats
it's well know that saving images doesn't work with foreign code, your users should understand that
4:02:50
stylewarning
Maybe I'm just in some sort of la-la land to imagine the possibility of providing a way to save and load that object. Maybe that goes against the principle of SLAD too much.
4:06:31
stylewarning
I'll get creative I guess. That's a very unacceptable answer. Perhaps I'll eventually find your answer is wise, and that SBCL's facilities are just unfortunately occasionally hostile.
4:09:15
stylewarning
I am asking for a way to save these objects. I can take any of these objects and make a load form for it. Why can't that type of logic exist with image saving?
4:10:29
stylewarning
I am not asking for Lisp to understand what's located at the pointer automatically, and attempt to recover it automatically.
4:12:29
stylewarning
I am asking for a way for me to tell Lisp how to do that, and to execute those actions—as specified by me—upon saving and/or loading the image.
4:15:10
stylewarning
To shift the responsibility of saving objects from the library used to the library vendor.
4:20:15
stylewarning
I'd rather not have some folks who are trying to do a little linear algebra have to figure out how to fix their program breaking when they try to make a "simple executable". Unfortunately the world isn't filled with advanced users of Lisp.
4:21:16
stylewarning
Programming the human is usually more expensive and error prone than programming the computer. :)
4:21:43
stylewarning
I'd rather document to the advanced user "you may disable these hooks at your peril"
4:23:33
stylewarning
Why can't I just look for them in the image later? Can't I just map across all objects and look for the ones I care about?
4:24:22
stylewarning
They're saving an image. Who cares if that process is not the pinnacle of efficiency?