arthur_lemmens has quit [Ping timeout: 260 seconds]
morganw has quit [Remote host closed the connection]
occ has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
random-nick has quit [Ping timeout: 272 seconds]
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
azimut has quit [Remote host closed the connection]
arthur_lemmens has joined #commonlisp
azimut has joined #commonlisp
jeosol has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 256 seconds]
Oladon has joined #commonlisp
Bocaneri has joined #commonlisp
Bocaneri is now known as Guest9402
Sauvin has quit [Ping timeout: 252 seconds]
Guest9402 is now known as Sauvin
arthur_lemmens has joined #commonlisp
lisp123 has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 252 seconds]
lisp123 has quit [Ping timeout: 260 seconds]
igemnace has joined #commonlisp
igemnace has quit [Remote host closed the connection]
sloanr has joined #commonlisp
Oladon has quit [Quit: Leaving.]
avocadoist has quit [Read error: Connection reset by peer]
avocadoist has joined #commonlisp
arthur_lemmens has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
sloanr has quit [Ping timeout: 256 seconds]
arthur_lemmens has quit [Ping timeout: 246 seconds]
occ has quit [Ping timeout: 272 seconds]
mingus has quit [Ping timeout: 256 seconds]
occ has joined #commonlisp
azimut has joined #commonlisp
dino_tutter has quit [Read error: Connection reset by peer]
arthur_lemmens has joined #commonlisp
occ has quit [Read error: Connection reset by peer]
tyson2 has quit [Remote host closed the connection]
dino_tutter has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 246 seconds]
occ has joined #commonlisp
occ has quit [Read error: Connection reset by peer]
White_Flame has quit [Remote host closed the connection]
White_Flame has joined #commonlisp
arthur_lemmens has joined #commonlisp
anticomputer has quit [Ping timeout: 255 seconds]
anticomputer has joined #commonlisp
bilegeek has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 252 seconds]
anticomputer has quit [Ping timeout: 255 seconds]
anticomputer has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
bilegeek has quit [Read error: Connection reset by peer]
bilegeek has joined #commonlisp
bilegeek has quit [Client Quit]
<jackdaniel>
Fare: thanks for merging
<Fare>
jackdaniel, thanks for noticing the bug, and apologies for introducing ir
<Fare>
it
Lycurgus has joined #commonlisp
Fare has quit [Ping timeout: 255 seconds]
arthur_lemmens has joined #commonlisp
Brucio-61 has quit [Remote host closed the connection]
occ has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 255 seconds]
lisp123 has joined #commonlisp
Alfr has quit [Remote host closed the connection]
Alfr has joined #commonlisp
arthur_lemmens has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
hamza` has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 264 seconds]
waleee has quit [Ping timeout: 252 seconds]
ttree has quit [Ping timeout: 272 seconds]
waleee has joined #commonlisp
arthur_lemmens has joined #commonlisp
rgherdt has joined #commonlisp
seletz has quit [Ping timeout: 260 seconds]
seletz has joined #commonlisp
Krystof has quit [Ping timeout: 268 seconds]
pve has joined #commonlisp
seletz has quit [Ping timeout: 256 seconds]
arthur_lemmens has quit [Ping timeout: 260 seconds]
arthur_lemmens has joined #commonlisp
Cymew has joined #commonlisp
seletz has joined #commonlisp
mingus has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
prokhor has quit [Remote host closed the connection]
Krystof has joined #commonlisp
<pve>
Hi! Can the effect of "shadowing-import" be achieved using some combination of other functions, like "shadow" and "import"? Or is "shadowing-import" really its own thing?
semarie has quit [Ping timeout: 256 seconds]
shka has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 256 seconds]
semarie has joined #commonlisp
beach has quit [Ping timeout: 260 seconds]
ec has quit [Ping timeout: 255 seconds]
ec has joined #commonlisp
attila_lendvai has joined #commonlisp
_cymew_ has joined #commonlisp
occ has quit [Ping timeout: 256 seconds]
arthur_lemmens has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
waleee has quit [Ping timeout: 256 seconds]
mingus1 has joined #commonlisp
waleee has joined #commonlisp
mingus has quit [Ping timeout: 252 seconds]
mingus1 is now known as mingus
arthur_lemmens has quit [Ping timeout: 256 seconds]
waleee has quit [Ping timeout: 246 seconds]
waleee has joined #commonlisp
lisp123 has joined #commonlisp
beach has joined #commonlisp
lisp123 has quit [Ping timeout: 246 seconds]
<beach>
pve: I don't think you can obtain that functionality with a combination of other functions.
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #commonlisp
pranavats has joined #commonlisp
<pve>
beach: Thanks!
karlosz has joined #commonlisp
<beach>
Sure.
arthur_lemmens has joined #commonlisp
waleee has quit [Ping timeout: 260 seconds]
arthur_lemmens has quit [Ping timeout: 260 seconds]
semarie has quit [Ping timeout: 252 seconds]
semarie has joined #commonlisp
jeosol has quit [Quit: Client closed]
igemnace has joined #commonlisp
Fare has joined #commonlisp
anticomputer has quit [Ping timeout: 255 seconds]
anticomputer has joined #commonlisp
arthur_lemmens has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 265 seconds]
random-nick has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
arthur_lemmens has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 252 seconds]
scymtym has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
tyson2 has joined #commonlisp
epolanski has joined #commonlisp
aartaka has joined #commonlisp
Brucio-61 has joined #commonlisp
arthur_lemmens has joined #commonlisp
pranavats has joined #commonlisp
<pve>
I had this idea about a CLOSsy framework for defining packages, but I'm not sure if it's a stupid one. Instead of (defpackage :my-package ...) one would do something like (clossy-package:make 'pve:my-kind-of-package :name "UTILS" ... [other initargs]), possibly wrapped with a suitable macro.
<pve>
so by specializing methods on pve:my-kind-of-package one could control various aspects of the package creation (and possibly more, readtables for instances)
son0p has quit [Remote host closed the connection]
<pve>
Sorry, I don't really have a question, except "would this be dumb?" :)
les has quit [Quit: Adios]
lisp123 has joined #commonlisp
<Bike>
i don't think it's dumb, but what kind of extensions do you have in mind here?
<Bike>
readtables and packages are kind of orthogonal
occ has joined #commonlisp
Inline has quit [Remote host closed the connection]
Inline has joined #commonlisp
OlCe has joined #commonlisp
<pve>
Bike: Well I was hacking on my capitalized-export library, and thought that it's kind of a bummer to have to first make the package, then in-package and then set the readtable, when I really just want to say what "kind" of file I'm working on right now, i.e (clossy-package:make 'pve:one-package-per-file-with-capitalized-export-enabled :UTIL) and have all three happen at once.
lisp123 has quit [Remote host closed the connection]
<pve>
I know I'm just being lazy :)
<pve>
but you're right in that this may not be strictly about packages only
tyson2 has quit [Remote host closed the connection]
<Bike>
if you just want to combine defpackage+in-package+defreadtable+in-readtable that could just be a macro rather than a new kind of package
<pve>
Bike: Yes, absolutely! But for some reason I thought that a clossy approach would be more flexible and lead to better things.
<pve>
Like if I come up with another "kind" of file, it would be nice if the same framework could handle that too.
<pve>
uh, at least I think so..
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 256 seconds]
azimut has joined #commonlisp
<Josh_2>
yitzi: Thanks
notzmv has quit [Ping timeout: 260 seconds]
azimut has quit [Remote host closed the connection]
arthur_lemmens has quit [Ping timeout: 246 seconds]
gxt has joined #commonlisp
<beach>
pve: You are essentially describing the SICL package system, and I am in the process of extracting it to a separate repository under the name Parcl.
<Josh_2>
Can I specify multiple search paths for cffi?
<Josh_2>
like :search-path "/usr/local/lib64/" and "/usr/local/lib/"?
Inline has quit [Read error: Connection reset by peer]
Inline has joined #commonlisp
<beach>
pve: Most implementations can not have a CLOS-based native package system, because they tend to bootstrap CLOS last, which is probably because they are pre-ANSI Common Lisp systems, with CLOS added on top. SICL, on the other hand, bootstraps CLOS first, so other modules can be CLOS based.
azimut has quit [Ping timeout: 255 seconds]
Fare has joined #commonlisp
<beach>
... and the package system is needed kind of early on in the bootstrapping procedure.
azimut has joined #commonlisp
<Josh_2>
Can I inspect which classes in my system have another class a superclass?
<beach>
You would have to apply this one recursively though, to get all such classes.
_cymew_ has quit [Ping timeout: 272 seconds]
<Josh_2>
Okay so I have to do it manually
<Josh_2>
Thanks
<Josh_2>
Has anyone tried out Njson?
son0p has joined #commonlisp
<Josh_2>
Going back to code I wrote a year ago is never a fun experience :joy:
<Josh_2>
not because it lacks documentation its just that I facepalm
lisp123 has joined #commonlisp
arthur_lemmens has joined #commonlisp
occ has quit [Ping timeout: 256 seconds]
lisp123 has quit [Ping timeout: 256 seconds]
occ has joined #commonlisp
anticomputer has quit [Read error: Connection reset by peer]
anticomputer has joined #commonlisp
<NotThatRPG>
To debug an accessor in SBCL, I defined this :BEFORE method: `(defmethod (setf choice) :before ((obj state-score-table) value)...)` . Tracing it, I see that it is never called (although the CHOICE slot *is* set). Am I misunderstanding SETF methods?
<jackdaniel>
what do you expect this before method to do?
<NotThatRPG>
I put a call to CHECK-TYPE in it, because I am unexpectedly finding this slot set to NIL (which should never happen).
<beach>
NotThatRPG: That smells of a package problem. Different CHOICE symbols?
<beach>
NotThatRPG: What happens when you inspect your generic function? Does it have all the methods?
<NotThatRPG>
beach: I don't believe so -- I found the method with `find-method`, but perhaps I have just created a new method. Didn't occur to me to inspect the GF. inspecting...
<beach>
Oh, and how did you go about tracing only the method and not the generic function?
<NotThatRPG>
beach: I just checked and there's both my before method and the STANDARD-WRITER-METHOD
<NotThatRPG>
Here's how I traced: (trace (method (setf choice) :before (state-score-table t)))
<NotThatRPG>
I suppose I should trace the GF and see if that reveals anything.
<beach>
I am not entirely convinced that method tracing works in SBCL.
<NotThatRPG>
OK, the primary method is being called. So my :BEFORE method is either not being called or not being traced. Back to printf debugging!
<beach>
Yeah. :(
<NotThatRPG>
I think there's something wrong with the before method, though, because I definitely see a call to set this slot to NIL when I trace the primary method. Ugh.
<NotThatRPG>
I *should* figure this out, but recompiling the DEFCLASS form (with its type declaration) with SAFETY 3 gets me the error I wanted, anyway.
<jackdaniel>
NotThatRPG: isn't the order of arguments off?
epolanski has quit [Quit: Connection closed for inactivity]
<NotThatRPG>
@jackdaniel: I was wondering about that.
<jackdaniel>
usually it is (value object)
<beach>
Oh, yes, good catch.
<NotThatRPG>
I tried to remind myself how to define a method for (setf slot) but was defeated by the CLHS. Simply couldn't find where these methods were explained, even using master index. Keene's book didn't help either.
<beach>
So your method is never applicable.
<NotThatRPG>
Thanks for the help. Anyone know how to find the description of setf method lambda lists?
<NotThatRPG>
in the CLHS, I mean.
<beach>
It's the lambda list of the generic function too. And it is just that the new value goes first, so that &rest, &optional, and &key don't get messed up. But I don't remember the relevant section.
<NotThatRPG>
beach: I recall this being discussed in connection with DEFSETF, but could only find the DEFMETHOD form in some REDDIT post. :-(
<NotThatRPG>
Anyway, thanks everyone!
<NotThatRPG>
Now that my bug's localized I'm gonna take a break and walk some dogs in the horrible weather!
NotThatRPG is now known as NotThatRPG_away
rogersm has quit [Quit: Leaving...]
marsia` has joined #commonlisp
marsia has quit [Ping timeout: 260 seconds]
Inline has quit [Remote host closed the connection]
Inline has joined #commonlisp
<pve>
beach: wow, that's pretty cool, I had not idea (re: parcl)
<pve>
*no idea
royaljelly has joined #commonlisp
<royaljelly>
Will learning common lisp make me a god?
<jackdaniel>
the chance is as good as any other I'd say
notzmv has quit [Ping timeout: 255 seconds]
<beach>
royaljelly: Are you new here? I don't recognize your nick.
<Josh_2>
royaljelly: no but it will make you want to cry when you have to use c++ :joy:
<royaljelly>
beach: yeah
<louis77>
Josh_2:
<louis77>
Josh_2: which I did after doing a little C++, horrible language
<beach>
royaljelly: Great! Welcome!
<royaljelly>
hi
<royaljelly>
Josh_2: hopefully i will never have to interact with c++ then
<royaljelly>
i'll have to learn fortran eventually, i think
<beach>
royaljelly: If you are just now in the process of learning Common Lisp, you might want to know about #clschool. This channel is not really meant for newbie question, though they are tolerated to some extent.
inline__ has joined #commonlisp
<royaljelly>
beach: alright, will check it out
<royaljelly>
i'm working through ansi common lisp
<beach>
The book? Sounds good.
<royaljelly>
yup
<beach>
Graham's style is a bit off form the usual conventions, but it won't matter much in the beginning I think.
<royaljelly>
i like reading paul graham's stuff
<beach>
I meant his code.
Inline has quit [Ping timeout: 256 seconds]
<beach>
His writing is usually good.
<royaljelly>
ah
<royaljelly>
what prompted me to start learning lisp was paul graham's essays and the unix haters handbook
<royaljelly>
and i'm really liking it so far
<beach>
Excellent. Yes, the Unix haters handbook is very good. I ignored it for the longest time, thinking it was written by disgruntled users, but it is written by very knowledgeable people.
<royaljelly>
well, i mean, it _is_ written by disgruntled users
arthur_lemmens has quit [Ping timeout: 264 seconds]
<beach>
Sure, but that's all I thought they were. Now I know better.
<royaljelly>
i couldn't believe simson garfinkel was the guy's actual name when reading the book
<royaljelly>
but then i googled him up, and it is
<royaljelly>
is emacs really the best ide there is for cl?
<royaljelly>
i've got emacs + paredit + sly up but it's still a bit of a pain to use
<beach>
It is the best there is, but it is not great.
<beach>
Some of us are working on something better, but it is not imminent.
epolanski has joined #commonlisp
<royaljelly>
beach: what is it?
<beach>
For now, it's just a bunch of components, tied together by the McCLIM implementation of the CLIM II standard.
<beach>
I guess the best component so far is Clouseau (the inspector).
<royaljelly>
ah
hineios has quit [Read error: Connection reset by peer]
hineios has joined #commonlisp
<pve>
beach: is Eclector going to use Parcl internally in the future? Like, I assume it currently makes use of cl:find-symbol when interning symbols.
jeosol has joined #commonlisp
_cymew_ has joined #commonlisp
<beach>
pve: Eclector is programmable, so it doesn't use CL:FIND-SYMBOL directly. It can be customized with methods that intercept such calls and do something else.
cage has joined #commonlisp
<beach>
So Eclector doesn't have to "decide" how to intern symbols and such. Client code can decide that. There is, of course a default method in Eclector that calls cl:find-symbol.
<beach>
So the answer is "no". Eclector will not use any particular package system, and client code can decide to use whatever package system it wants. In fact, I think scymtym is already taking advantage of this possibility when he parses code in an editor buffer.
<pve>
oh, ok
<beach>
Then, you don't want to attempt to look up symbols in packages that don't exist, so he has an approximate implementation of the package system that does something specific for the editor.
dtman34 has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
aartaka has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
<Josh_2>
royaljelly: I do not use paredit, its a pita
<Josh_2>
I was thinking about taking some time to learn it though
arthur_lemmens has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
<Fade>
when you learn how to use paredit, and really get it into your hands, it saves an incredible amount of time, and a whole class of typographical bugs.
<Fade>
I was pair programming with a Vim user the other day, and I felt crippled.
<royaljelly>
Josh_2: what do you use, then?
arthur_lemmens has quit [Ping timeout: 252 seconds]
inline__ has quit [Remote host closed the connection]
Inline has joined #commonlisp
<NotThatRPG_away>
Does SBCL have anything like ADVISE/DEFADVICE? There seems to be encapsulation, but that does not seem to be appropriate for programmer use.
NotThatRPG_away is now known as NotThatRPG
anticomputer has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
<Fade>
NotThatRPG: it's not in the standard, and SBCL doesn't have an extension for it. Clozure CL seems to, and lispworks does.
<NotThatRPG>
Drat! It's exceedingly handy for debugging (the alternative seeming to be adding debug :around :before and :after methods, and that doesn't work for non-generic functions)
<Fade>
that's an incredibly useful facility in the class of debugging tools.
arthur_lemmens has joined #commonlisp
<NotThatRPG>
Right, but breaks require human interaction, whereas advice is handy for collecting statistics, etc.
<NotThatRPG>
:print is helpful, I suppose...
<_death>
there are portable advice libraries, no?
<Fade>
I've never felt I needed it. I always thought advice in elisp was making up for the metaobject protocol deficit by implementing about 30% of CLOS.
<Fade>
anyhow, there are several packages relating to the 'defadvice' query linked out by google.
<NotThatRPG>
cl-advice is neat, but its interface is pretty low-level. It would probably benefit from a layer of macrology that would do away with the requirement to manually make functions advisable, etc.
<ldb>
but why would you want to advice functions? just rewrite one to replace them when your are in charge of the top-level of the system
Inline has quit [Read error: Connection reset by peer]
inline__ has joined #commonlisp
<NotThatRPG>
ldb: For debugging purposes or collecting performance statistics, etc.
aartaka has quit [Ping timeout: 268 seconds]
<NotThatRPG>
When you have a system that's working that you want to instrument w/o having to muck with the system itself.
aartaka has joined #commonlisp
arthur_lemmens has joined #commonlisp
<ldb>
oh, I see
jmdaemon has quit [Ping timeout: 268 seconds]
arthur_lemmens has quit [Ping timeout: 256 seconds]
cosimone has joined #commonlisp
tyson2 has joined #commonlisp
cosimone has quit [Remote host closed the connection]
inline__ is now known as Inline
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
Sauvin has quit [Remote host closed the connection]
Sauvin has joined #commonlisp
ldb has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
<Fare>
you might not even have the source code for the system you're instrumenting
jmdaemon has joined #commonlisp
cmack has quit [Ping timeout: 255 seconds]
witcher has quit [Remote host closed the connection]
<kagevf>
oh, so CLOS around methods don't more or less do the same thing as elisp defadvice? not familiar with defadvice, but assumed similar could be done with an around method ...
witcher has joined #commonlisp
<kagevf>
... or maybe the elisp advice stuff doesn't require an object system to be involved? maybe that's the difference, on the surface anyway
witcher has quit [Remote host closed the connection]
witcher has joined #commonlisp
arthur_lemmens has joined #commonlisp
jmdaemon has quit [Ping timeout: 272 seconds]
jmdaemon has joined #commonlisp
<Fare>
kagevf: IIRC, defadvice is a few years older than Flavors, and served as inspiration for method combination.
lisp123 has joined #commonlisp
anticomputer has quit [Quit: quit]
Inline has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
<NotThatRPG>
kagevf: Yes, defadvice effectively gives you the ability to have :before, :after, and :around methods for conventional functions
<NotThatRPG>
Hey Fare -- thanks for your feedback on the ASDF issues.
luis has quit [Ping timeout: 272 seconds]
<kagevf>
Fare: NotThatRPG thank you for confirming, and had not idea about the historical context, so I appreciate you sharing that! :)
jmdaemon has quit [Ping timeout: 256 seconds]
royaljelly has left #commonlisp [#commonlisp]
Fare has quit [Ping timeout: 252 seconds]
Sauvin has quit [Remote host closed the connection]
Sauvin has joined #commonlisp
Inline has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 246 seconds]
arthur_lemmens has joined #commonlisp
jmdaemon has joined #commonlisp
waleee has joined #commonlisp
tyson2 has quit [Ping timeout: 272 seconds]
varjag has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 256 seconds]
cage has quit [Quit: rcirc on GNU Emacs 28.2]
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Sauvin has quit [Ping timeout: 272 seconds]
tyson2 has joined #commonlisp
aartaka has quit [Ping timeout: 268 seconds]
igemnace has quit [Quit: WeeChat 3.8]
aartaka has joined #commonlisp
jmdaemon has quit [Ping timeout: 272 seconds]
Sauvin has joined #commonlisp
Sauvin has quit [Remote host closed the connection]
Sauvin has joined #commonlisp
anticomputer_ has joined #commonlisp
morganw has joined #commonlisp
aartaka has quit [Ping timeout: 256 seconds]
anticomputer has quit [Remote host closed the connection]
son0p has quit [Remote host closed the connection]
lisp123 has quit [Ping timeout: 260 seconds]
waleee has quit [Ping timeout: 252 seconds]
arthur_lemmens has joined #commonlisp
rgherdt has joined #commonlisp
waleee has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 246 seconds]
azimut has quit [Remote host closed the connection]
prxq has joined #commonlisp
prxq_ has quit [Ping timeout: 272 seconds]
azimut has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
tibfulv has quit [Remote host closed the connection]
tibfulv has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
epolanski has quit [Quit: Connection closed for inactivity]
jeosol has quit [Quit: Client closed]
arthur_lemmens has joined #commonlisp
Fare has joined #commonlisp
arthur_lemmens has quit [Ping timeout: 265 seconds]
<Bike>
is the most appropriate way to skip a few bytes when reading a stream (and not necessarily a file stream) to get the current position with file-position and then set it with same?
Cymew has quit [Ping timeout: 260 seconds]
_cymew_ has quit [Ping timeout: 260 seconds]
epony has quit [Quit: QUIT]
<_death>
file-position may return nil
Inline has quit [Read error: Connection reset by peer]
Inline has joined #commonlisp
<Bike>
yeah, and it looks like as a setter it can fail as well...
tyson2 has joined #commonlisp
agent1011001 has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
<_death>
I guess I'd have a skip function that tries to use file-position and uses read-char if that fails
<_death>
(or read-byte)
<pjb>
Bike: obviously, if you have a stream that is not a FILE-stream, FILE-position won't work.
Volt_ has joined #commonlisp
<_death>
pjb: that's actually not obvious.. clhs entry specifies "stream" not "file stream"
<Bike>
yes.
occ has quit [Ping timeout: 260 seconds]
<Bike>
works with a string stream on sbcl
<pjb>
Well, actually, even for file-streams, file-position may be unable to work. For example, if the file-stream accesses a file on a tape. file-position may not be able to go back, or even going forward may be difficult. (depending on the tape format, blocking, etc).
agent1011001 has quit [Quit: Client closed]
<_death>
it's also possible that performance is different with the two methods.. without checking an implementation I'd probably handle special cases of 0 and 1 anyway
varjag has quit [Ping timeout: 264 seconds]
arthur_lemmens has joined #commonlisp
<_death>
if the jump is big enough, it's very possible that read-sequence with some buffer may be faster than lots of read-byte calls
<_death>
the buffer need not be the whole size, of course
<_death>
trivial-advance-file-position :)
varjag has joined #commonlisp
<_death>
or advance-stream-position, a more appropriate better name
varjag has quit [Ping timeout: 268 seconds]
<pjb>
_death: on the other hand, if the stream is already buffered, read-char may be more efficient in term of memory copying…
<pjb>
That said, 512 is only 8 usual cache lines…
<_death>
yeah.. it depends on the system
arthur_lemmens has quit [Ping timeout: 246 seconds]
morganw has quit [Remote host closed the connection]
attila_lendvai has quit [Ping timeout: 256 seconds]