aindilis` has quit [Remote host closed the connection]
ravndal has joined #lisp
mrSpec has joined #lisp
mrSpec is now known as Guest18050
igemnace has joined #lisp
aindilis has joined #lisp
igemnace has quit [Ping timeout: 258 seconds]
ebzzry has quit [Read error: Connection reset by peer]
karlosz has joined #lisp
igemnace has joined #lisp
oxum has quit [Remote host closed the connection]
Bike has quit [Quit: Lost terminal]
_whitelogger has joined #lisp
oxum has joined #lisp
oldcrow has joined #lisp
shifty has quit [Ping timeout: 255 seconds]
KingRiverLee has quit [Ping timeout: 258 seconds]
kmeow has quit [Ping timeout: 248 seconds]
<beach>
Good morning everyone!
kmeow has joined #lisp
ebzzry has joined #lisp
<ebrasca>
Morning!
<no-defun-allowed>
Hello ebrasca.
<ebrasca>
Hi no-defun-allowed
<no-defun-allowed>
How are you?
<ebrasca>
I am fine!
oxum has quit [Ping timeout: 240 seconds]
<ebrasca>
no-defun-allowed: And how are you?
<no-defun-allowed>
Alright, thanks.
oxum has joined #lisp
gravicappa has joined #lisp
vlatkoB has joined #lisp
rwcom1 has joined #lisp
rwcom has quit [Ping timeout: 260 seconds]
rwcom1 is now known as rwcom
KingRiverLee has joined #lisp
froggey has quit [Ping timeout: 240 seconds]
froggey has joined #lisp
oxum has quit [Remote host closed the connection]
KingOfCSU has joined #lisp
KingRiverLee has quit [Ping timeout: 258 seconds]
oxum has joined #lisp
mathrick_ has quit [Ping timeout: 265 seconds]
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
narimiran has joined #lisp
quazimodo has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
flamebeard has joined #lisp
mathrick_ has joined #lisp
hiroaki_ has quit [Ping timeout: 240 seconds]
oxum_ has joined #lisp
oxum has quit [Ping timeout: 240 seconds]
oxum_ has quit [Ping timeout: 265 seconds]
dddddd has quit [Ping timeout: 240 seconds]
nowhere_man has quit [Ping timeout: 260 seconds]
markasoftware has quit [Quit: No Ping reply in 180 seconds.]
orivej has quit [Ping timeout: 272 seconds]
markasoftware has joined #lisp
oxum has joined #lisp
KingOfCSU has quit [Read error: Connection reset by peer]
KingOfCSU has joined #lisp
JohnMS_WORK has joined #lisp
lowryder has quit [Ping timeout: 260 seconds]
oxum has quit [Ping timeout: 265 seconds]
lowryder has joined #lisp
gxt has quit [Quit: WeeChat 2.7]
kayu has joined #lisp
KingRiverLee has joined #lisp
KingOfCSU has quit [Ping timeout: 265 seconds]
kayu has quit [Quit: ERC (IRC client for Emacs 26.1)]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 265 seconds]
Lord_of_Life_ is now known as Lord_of_Life
jprajzne has joined #lisp
oxum has joined #lisp
Krystof has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
ukari has joined #lisp
dale has quit [Quit: dale]
markasoftware has quit [Quit: No Ping reply in 180 seconds.]
adam4567 has left #lisp ["ERC (IRC client for Emacs 26.3)"]
KingRiverLee has quit [Ping timeout: 260 seconds]
KingRiverLee has joined #lisp
Cymew has joined #lisp
KingRiver has joined #lisp
markasoftware has joined #lisp
KingRiverLee has quit [Ping timeout: 258 seconds]
jonatack has joined #lisp
_whitelogger has joined #lisp
Necktwi has joined #lisp
KingRiver has quit [Ping timeout: 255 seconds]
KingRiver has joined #lisp
tazjin has quit [Excess Flood]
iAmDecim has joined #lisp
hhdave has joined #lisp
jonatack has quit [Ping timeout: 272 seconds]
tazjin has joined #lisp
trittweiler has quit [Remote host closed the connection]
<phoe>
morniiiing
<no-defun-allowed>
Good moooorning phoe.
iAmDecim has quit [Ping timeout: 260 seconds]
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
karlosz has quit [Remote host closed the connection]
hhdave has quit [Ping timeout: 255 seconds]
davepdotorg has joined #lisp
hhdave has joined #lisp
oxum_ has joined #lisp
oxum has quit [Ping timeout: 255 seconds]
rwcom has quit [Ping timeout: 265 seconds]
rwcom4 has joined #lisp
rwcom4 is now known as rwcom
KingRiverLee has joined #lisp
KingRiverLee has quit [Remote host closed the connection]
KingRiverLee has joined #lisp
KingRiver has quit [Ping timeout: 240 seconds]
KingOfCSU has joined #lisp
nadare has joined #lisp
KingRiverLee has quit [Ping timeout: 255 seconds]
pmden has joined #lisp
orivej has joined #lisp
jonatack has joined #lisp
ljavorsk has joined #lisp
m00natic has joined #lisp
<phoe>
`(m ,@'#1=(o . #1#) r n i n g)
iAmDecim has joined #lisp
ljavorsk has quit [Remote host closed the connection]
oxum_ has quit [Remote host closed the connection]
ljavorsk has joined #lisp
<no-defun-allowed>
😟
iAmDecim has quit [Ping timeout: 258 seconds]
ljavorsk has quit [Ping timeout: 240 seconds]
montaropdf has joined #lisp
Posterdati has quit [Ping timeout: 246 seconds]
Posterdati has joined #lisp
trittweiler has joined #lisp
ljavorsk has joined #lisp
oxum has joined #lisp
Guest18050 has quit [Changing host]
Guest18050 has joined #lisp
Guest18050 is now known as mrSpec
grabarz has joined #lisp
KingRiverLee has joined #lisp
KingOfCSU has quit [Ping timeout: 240 seconds]
KingRiverLee has quit [Ping timeout: 260 seconds]
oxum has quit [Read error: Connection reset by peer]
amerlyq has joined #lisp
<splittist>
Given the string "/foo/bar/../baz/quux.lisp" I would like to obtain "/foo/baz/quux.lisp", and the obvious generalizations of this scheme. Because the string looks like a pathname I have been looking at various path-related things, but nothing and nobody seems to want to give me what I want. Am I just thinking about this wrong?
Inline has quit [Quit: Leaving]
scymtym has joined #lisp
<z0d>
splittist: doesn't cl-fad has something for it?
<z0d>
cannonical-pathname ?
prince1 has quit [Ping timeout: 255 seconds]
<splittist>
Except that I'm on SBCL (or CCL), and "NB: Since this function does not access the filesystem it will only remove :BACK elements from the path (not :UP elements). Since some lisps, ccl/sbcl/clisp convert ".." in pathnames to :UP, and not :BACK, the actual utility of the function is limited."
<splittist>
I'll implement it myself. (It is verging on the Left_Pad level of functionality...)
amnesia1010 has joined #lisp
iAmDecim has joined #lisp
igemnace has quit [Quit: WeeChat 2.7.1]
ljavorsk has quit [Ping timeout: 248 seconds]
<Shinmera>
Colleen: tell splittist look up pathname-utils normalize-pathname
mingus has quit [Quit: ERC (IRC client for Emacs 26.3)]
<splittist>
Shinmera: thanks, but same thing.
KingRiver has joined #lisp
<Shinmera>
one of the problems is that it can't convert :up, since :up's semantics can differ in the presence of symlinks
<Shinmera>
I suppose an option in pathname-utils to not care about that would be nice.
<splittist>
Sure. But since my strings aren't actually pathnames on an OS with symlinks I can treat '..' as :back. (Option would be good (: )
<Odin->
uiop:parse-unix-namestring ?
<phoe>
^
<Shinmera>
pathname-utils should also really implement pathname parsing functions.
<Shinmera>
haven't gotten around to that, as with so many things
<Odin->
Seems like it does the right thing.
<splittist>
Odin- and phoe: Yes! I had actually looked at it a while ago but didn't think it would work on the basis of the description of dotdot. 0 for reading comprehension.
drl has joined #lisp
<Odin->
Yeah, I wasn't sure so I decided to just see what it did. :p
ebzzry has quit [Ping timeout: 240 seconds]
madage has quit [Ping timeout: 240 seconds]
gko_ has joined #lisp
madage has joined #lisp
montaropdf has quit [Remote host closed the connection]
shka_ has joined #lisp
<shka_>
good day
amnesia1010 has joined #lisp
shifty has joined #lisp
<beach>
Hello shka_.
__vlgvrs has quit [Remote host closed the connection]
amerlyq has quit [Remote host closed the connection]
__vlgvrs has joined #lisp
__vlgvrs has quit [Remote host closed the connection]
__vlgvrs has joined #lisp
prince1 has joined #lisp
KingRiver has quit [Ping timeout: 258 seconds]
kslt1 has joined #lisp
KingRiver has joined #lisp
ggole has joined #lisp
prince1 has quit [Ping timeout: 258 seconds]
montaropdf has joined #lisp
oxum has joined #lisp
jmercouris has joined #lisp
iAmDecim has joined #lisp
jmercouris has quit [Remote host closed the connection]
ljavorsk has joined #lisp
drl has quit [Quit: Ex-Chat]
patrixl` has joined #lisp
ljavorsk has quit [Ping timeout: 240 seconds]
patrixl` is now known as patrixl
patrixl has quit [Client Quit]
ebzzry has joined #lisp
patrixl` has joined #lisp
patrixl` has left #lisp [#lisp]
_paul0 has joined #lisp
__vlgvrs has quit [Ping timeout: 272 seconds]
_heisig has joined #lisp
patrixl has joined #lisp
gareppa has joined #lisp
patrixl has quit [Client Quit]
sunwukong has joined #lisp
hsaziz has quit [Ping timeout: 258 seconds]
wxie has joined #lisp
dddddd has joined #lisp
wxie1 has joined #lisp
heisig has quit [Killed (leguin.freenode.net (Nickname regained by services))]
_heisig is now known as heisig
Guest36682 has joined #lisp
patrixl has joined #lisp
wxie has quit [Ping timeout: 260 seconds]
wxie1 is now known as wxie
patrixl has quit [Client Quit]
man213 has joined #lisp
bitmapper has joined #lisp
didi has joined #lisp
<didi>
What do I use to write a SETF variable that accepts a default value like `getf'? For example, (incf (getf foo :bar 0)) works even if FOO doesn't have the indicator :BAR.
<_death>
didi: actually setf function would not work.. you'll need to use another mechanism (for example defmacro and get-setf-expansion) because FOO may be NIL and GETF will need to modify the binding in that case
bjorkintosh has quit [Remote host closed the connection]
<_death>
(ah, phoe already mentioned this)
bjorkintosh has joined #lisp
<didi>
_death: I'm using a combination of `defsetf' and `defmethod'. Something like (defsetf getf (place indicator &optional default) (new-value) `(set-getf place indicator value &optional default)), and `set-getf' is a generic function so I can use different classes of PLACE.
<didi>
With the missing , for the variables.
joast has joined #lisp
<didi>
`defsetf' seems to be smart enough for evaluating DEFAULT before NEW-VALUE.
random-nick has joined #lisp
shka_ has quit [Quit: WeeChat 1.9.1]
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
stepnem has quit [Read error: Connection reset by peer]
stepnem has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
mingus has quit [Ping timeout: 265 seconds]
ljavorsk has joined #lisp
efm has quit [Ping timeout: 240 seconds]
bjorkintosh has quit [Remote host closed the connection]
<phoe>
didi: it's not the issue of evaluation order, it's the issue of modifying places.
bjorkintosh has joined #lisp
KingRiver has quit [Ping timeout: 265 seconds]
<phoe>
GETF might want to modify a lexical variable. A function is unable to do that; a macro is needed.
<phoe>
(let ((x 2)) (mutate x) ...) ; in here, MUTATE must be a macro, since a function is unable to affect the binding of lexivar X.
<didi>
phoe: Ah, interesting. I guess it doesn't affect me in my use case, but I didn't think of that.
efm has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
jmercouris has joined #lisp
<jmercouris>
pjb: I just want to push their contents to a file as my program is running when launched via spotlight so I can have some hope of discerning *why* it crashed
<minion>
jmercouris, memo from pjb: stdout/stderr are directed to the same file descriptor as the parent process. So, what does the parent process do to them? (It may redirect them to /dev/null). Inside the child, you can reopen or dup them. What do you want to do?
<jmercouris>
pjb: because (as I'm sure you know) when you launch via spotlight there is not an easy way to gather stdout of a running program
Bourne has quit [Ping timeout: 258 seconds]
<phoe>
didi: if that's the case, then everything's good. DEFUN SETF is going to work well if you do not mutate the binding itself, but e.g. mutate some slots in an instance, or the contents of some cons cell.
<jmercouris>
vms14: usocket does not have unix domain sockets, use iolib
<didi>
phoe: Yah, that's the case.
mrcom has quit [Read error: Connection reset by peer]
<phoe>
Then DEFUN SETF all the way you want, or DEFMETHOD SETF if you want specialization.
<didi>
phoe: Cool, cool. I'll use DEFMETHOD SETF.
<didi>
Thank you.
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
<pjb>
jmercouris: the program itself can reopen its stdout and stderr to a file if that's what you want.
jprajzne has quit [Quit: Leaving.]
h11 has quit [Read error: Connection reset by peer]
<jmercouris>
pjb: yes, that is what I want
Arcsech_ has quit [Ping timeout: 265 seconds]
h11 has joined #lisp
<jmercouris>
I saw uiop:*stdout* and uiop:*stderr* not sure how to use
Bourne has joined #lisp
SumoSud0 has quit [Quit: 8y3 8y3]
<pjb>
jmercouris: so now you are changing the question!
<jmercouris>
OK, here's the ultimate goal
<jmercouris>
I launch program via spotlight
<pjb>
you asked for stdin and stdout which are POSIX file descriptors.
<jmercouris>
I want the contents of stdout and stderr redirected to a file
<jmercouris>
program == compiled lisp program
<pjb>
*standard-output* and *error-output* are different. You can also bind them to file streams, but this doesn't redirect stdout and stderr.
SumoSud0 has joined #lisp
<jmercouris>
I actually want *standard-output* and *error-output*
<jmercouris>
I thought *standard-output* also outputs to stdout?
<pjb>
So you don't fork other processes. You don't use foreign libraries.
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
kayu has quit [Ping timeout: 265 seconds]
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
man213_ has quit [Quit: Going offline, see ya! (www.adiirc.com)]
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
lucasb has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
oldtopman has quit [Read error: Connection reset by peer]
X-Scale has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
cosimone has quit [Quit: Quit.]
luni has joined #lisp
oldtopman has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
Lord_of_Life_ has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life_ is now known as Lord_of_Life
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
lemoinem is now known as Guest72470
lemoinem has joined #lisp
Guest72470 has quit [Ping timeout: 268 seconds]
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
Blukunfando has quit [Read error: Connection reset by peer]
Josh_2 has joined #lisp
jonatack has quit [Ping timeout: 252 seconds]
cosimone has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
gravicappa has quit [Ping timeout: 255 seconds]
bjorkintosh has joined #lisp
gareppa has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
bjorkintosh has joined #lisp
<Josh_2>
Hey, dumb question but what chapter in SICP describes the programming style used in cl-ppcre, I believe It's used for parsing data etc involves conditionally calling lambdas or something
<pjb>
Josh_2: there are only 4 chapters in SICP, IIRC.
<Josh_2>
yes I see that :(
<Josh_2>
well anyway, I have seen code that Xach has made where he has done it
<Josh_2>
I don't know the name so I can only describe it
<pjb>
Let's exclude chapter 1, that gives you P=0.3333…3…
bjorkintosh has quit [Remote host closed the connection]
kslt1``` has quit [Remote host closed the connection]
kslt1``` has joined #lisp
narimiran has quit [Ping timeout: 260 seconds]
slyrus__ has joined #lisp
Fare has joined #lisp
slyrus_ has quit [Ping timeout: 265 seconds]
slyrus_ has joined #lisp
slyrus__ has quit [Ping timeout: 258 seconds]
gareppa has quit [Quit: Leaving]
bjorkintosh has quit [Quit: Leaving]
z147 has joined #lisp
izh_ has joined #lisp
<aeth>
I'm writing a string pattern matching macro, read-case, which reads characters until one of the branches is taken on literal strings or characters. Eventually, I'll optimize it so e.g. having "abc" and "aeiou" become #\a followed by a recursive macro call on "bc" and "eiou" branches.
<aeth>
I'm not using a library because I have to customize it to meet my needs of parsing quite a few different languages, but I'm open for ideas. e.g. expressing "0 or more" and "1 or more", or maybe mixing in something like regex or of equivalent power. Or maybe character ranges
<Fare>
... ending with a grammar generator?
<pfdietz>
For efficiency hacks, look at string-case
<pfdietz>
(by Paul Khuong)
<aeth>
Fare: I mean, yes, actually. I think this should be powerful enough to do BNF->read-case, which then gives me scheme-read, which should give me the Scheme-in-CL.
<aeth>
pfdietz: Yes, this is essentially a string-case except instead of going string-by-string it's going read-char-by-read-char because either I'm receiving someone's string protocol or I'm reading a prog/config lang's file.
<aeth>
pfdietz: Currently, when I need to do stuff like this, I do read into temporary strings, but I don't need the inefficiency if I write this macro.
<aeth>
At least, not for the general matching. Maybe specific patterns.
amerlyq has quit [Quit: amerlyq]
<Fare>
aeth, if you're going the Scheme way, what does CL buy you compared to say, Gambit or Chez or JS or JVM as the underlying environment?
<aeth>
Fare: I'm compiling a Scheme into CL, which gives me (1) close to the performance of SBCL when gradually typed as long as the CPS transformation doesn't kill performance and (2) the ability to use any library in quicklisp that doesn't use code-walking macros as long as I can trivially define Scheme procedures/etc. for each CL API
<aeth>
Fare: So essentially, high-performance+lots-of-libraries while actually doing less work than a from-scratch Scheme
<aeth>
Yes, the JVM would given even more libraries, but it would be libraries with more of a mismatch. Scheme and CL are similar languages, so wrapped CL should be idiomatic.
<pfdietz>
Heh. Would this be faster than existing Schemes?
<aeth>
pfdietz: Ideally, yes.
<aeth>
When hosted on SBCL.
<pfdietz>
That would be something.
<aeth>
pfdietz: In my testing, ensuring tail recursion via trampoline in a DO loop has 0 performance penalty in SBCL vs. SBCL's own tail recursion (which isn't guaranteed, it depends on optimization levels, so I can't use it)
<aeth>
pfdietz: So as long as the continuation passing style also has 0 performance penalty or close to it, it will be as fast as SBCL
<Fare>
SBCL makes a lot of implementation choices that depend on not having call/cc. Implementing call/cc on top of that would probably make it slower than Gambit, Chez, etc.
<Fare>
Unless you go under the hood an implement some continuation capture deep inside SBCL, which is probably quite possible
<aeth>
Fare: Initially, it will probably not be as fast as it could be, but hopefully there will be a way to do it eventually.
<Fare>
(the problem then being—which implicit assumption of which operation will you then be violating)
<pfdietz>
Wait, so this would be Scheme but without call/cc?
<Fare>
already exists: bigloo with default compilation flags.
<Fare>
or stalin.
<pfdietz>
Ok
<aeth>
pfdietz: I'm implementing Scheme with CL lambdas. The most straightforward way to get call/cc from this is to do a continuation passing style transformation on the lambdas.
<Fare>
aeth, assuming proper tail calls, that should work.
<Fare>
But you probably shouldn't assume proper tail calls for CL dynamic bindings :-(
<Fare>
so no cheap scheme parameters
<aeth>
Fare: Proper tail calls are via a trampoline, i.e. return a thunk in a DO loop. This has no performance penalty in SBCL over SBCL's tail recursion which I can't rely on.
<aeth>
Fare: Dynamic bindings might be tricky...
izh_ has quit [Quit: Leaving]
<Fare>
also, if you have continuations, please do delimited control, not (just) global control.
<pfdietz>
It will be mildly hilarious if this ends more performant than the dedicated schemes.
<luni>
why not global control?
<Fare>
it will
<Bike>
dynamic-wind is the hard part, i think
<aeth>
pfdietz: That is the intent, actually. This isn't very different from compiling to C, except this (CL) is a language with less mismatch in semantics so the compiler should be able to optimize more
<Fare>
prompt / fcontrol or shift / reset is much nicer than call/cc
luni has left #lisp [#lisp]
<aeth>
My intent is to "launch" on February 29th so that its birthday can be on a leap day. I almost did that 4 years ago, but delays came up and I put the project aside for other things. But I don't want to miss this opportunity again.
<aeth>
I'll "launch" without a complete Scheme if necessary.
<Fare>
does your Scheme have a name? I had names for Schemes... my favorite is Agley, as gang the best laid schemes of mice and men.
<aeth>
I have an idea from an old HN thread, but it depends on if someone took the domains yet or not. That's why I won't say it, either.
<pfdietz>
trivial-scheme? cl-scheme?
<z147>
aeth lambda.church is available last time I checked
<aeth>
pfdietz: cl-scheme is the current working name, but it's not a good name
<Bike>
you have to name scheme implementations after crimes. that's the rule
<aeth>
Bike: I have to name it after a scheme.
<pfdietz>
cl-the-ultimate-scheme
<Fare>
election!
<Bike>
RICO
<pfdietz>
Biggerloo
<aeth>
Bike: I have to name it after something with com/net/org available :-p
<z147>
uncommon scheme it is
<pfdietz>
Ponzi
<no-defun-allowed>
aeth: is it going to be a particularly interactive Scheme?
<aeth>
Anyway, my first step is read-case, that should give me enough to handle the BNF that is in r7rs.pdf, which gives me the complete scheme-read. Then I'll have to find a CPS scheme, and after that, that's like 80% of a Scheme since I alrady have most of the Scheme->CL mappings written (e.g. + is just +, car is almost car but (car '()) in Scheme is an error, etc.).
<pfdietz>
Anyway, I look forward to hearing more about this. Impressed.
<aeth>
A lot of the edge cases are already solved, like #f represented as a CL symbol, where CL functions are either wrapped as a procedure (nil is '()) or a predicate (nil is turned into #f which is something like 'false)
<no-defun-allowed>
We're considering the name Kaplin Scheme, but that is going to be a long way away. (Kaplin tried to assassinate Lenin, which makes for a funny contrast to Stalin as a heavy inlining compiler.)
<aeth>
And the case-sensitivity of Scheme is solved by inverting the case in the Scheme reader, i.e. scheme:foo is SCHEME:FOO, but scheme:FoO is SCHEME:fOo, so in the common case, there's trivial CL<->Scheme interop, but Scheme remains case sensitive
<aeth>
no-defun-allowed: what is your Scheme targeting as a platform?
random-nick has quit [Ping timeout: 255 seconds]
<no-defun-allowed>
Probably not Common Lisp.
<aeth>
no-defun-allowed: As for the interactivity, I would ideally have the same interactive development semantics as SLIME, ideally even accessing it through SLIME. Continuations might make this complicated because "stale" bindings matter more
<aeth>
no-defun-allowed: Also, the global Scheme binding environment is a bit complicated because there are no lexical globals in most CLs. Portable CL has dynamic/special globals, and non-portable CL extensions (e.g. in SBCL) tend to provide globals where you can't locally override them at all
<aeth>
So the REPL and the global redefinitions would be complicated for that reason
<aeth>
On the other hand, Lisp-1 vs. Lisp-2 is no deal at all because a Lisp-1 inside of a Lisp-2 is just a Lisp where you store (unnamed) lambdas in the variable namespace.
<aeth>
s/no deal/no big deal/
prince1 has joined #lisp
<aeth>
pfdietz: Thanks! Barring complications, I'll have something on the 29th, even if it's not complete. SCHEME-READ should be done. Continuations might not be. Hygienic macros, probably won't be ready. As for a few really weird procedures like rationalize, they'll almost certainly not be ready in time.
<aeth>
A mutable "global" (within the Scheme) binding environment (which I think no-defun-allowed wants?) is going to be tricky and might not be there initially. I might also have to pay close attention to the equality testing predicates to ensure that the semantics match the r7rs spec.
prince1 has quit [Ping timeout: 265 seconds]
<aeth>
Excluding a macro system and call/cc, I've been sitting on like 80% of a Scheme for years, just with an incomplete, not general enough read, which is why I'm trying to write a pattern-matching read-case that is equally as powerful as the BNF used in r7rs.pdf, guaranteeing complete reading.
reepca has joined #lisp
<aeth>
Oh, one final thing... no CLOS wrapping on launch (but generic functions are just functions, so they can still be wrapped like any other function if DEFMETHODs are defined in CL) and no guarantee of keyword support at launch, either.
<aeth>
I'm targeting r7rs small, which isn't much. There will be a full CL wrapping at some later point, for things like GETHASH and MAKE-HASH-TABLE, as well as AREF and MAKE-ARRAY, probably the most interesting data structure features of CL
CrazyPython has joined #lisp
<reepca>
I'm in a pickle with pathnames again... I've got the pathname of a temporary file from uiop/stream:with-temporary-file, and I want to rename it to a different pathname. Unfortunately uiop has created the pathname with :type "tmp", and I'd like to rename it to a file that doesn't have a type. But rename-file fills in any nil components with the corresponding components from the source pathname...
<reepca>
so as far as I can see, there's actually no way to rename a pathname that has a non-nil type to one with a nil type
<reepca>
am I missing something there?
kslt1``` has quit [Ping timeout: 265 seconds]
CrazyPython has quit [Remote host closed the connection]
<reepca>
I guess with-temporary-file does provide an option for controlling the type, so I can work around that, but it does seem strange
jcowan has joined #lisp
sjl_ has quit [Ping timeout: 260 seconds]
<jcowan>
Bike: Neither Chicken nor Chibi is a crime
<reepca>
hm, actually it seems with-temporary-file doesn't distinguish between the keyword-argument-is-nil and keyword-argument-not-provided cases...
<Bike>
jcowan: have you ever met a chicken?
Khisanth has quit [Ping timeout: 255 seconds]
<jcowan>
Yes. But they lack mens rea
<Fare>
I'm pretty sure uiop lets you choose the file ending for your temporary file.
<Fare>
But then again, I wrote that thing years ago.
<Fare>
reepca: the problem with nil vs :unspecified is that not all implementations support :unspecified as a pathname component
<Fare>
sorry, :unspecific, not :unspecified
<Fare>
See the definition for *unspecific-pathname-type*
z147_ has joined #lisp
z147 has quit [Remote host closed the connection]
<Fare>
otherwise, you can of course escape to a shell and use mv (or ren if on windows?)
<jcowan>
guh
<jcowan>
fairly soon Windows builds can assume powershell
prince1 has joined #lisp
madage has quit [Remote host closed the connection]
gigetoo has quit [Ping timeout: 255 seconds]
<jcowan>
in fact probably right now if you drop support for Win7 SP0 and earlier
madage has joined #lisp
gigetoo has joined #lisp
hsaziz has joined #lisp
Khisanth has joined #lisp
<reepca>
Fare: I looked at the code, turns out there's a bit of a bug with with-temporary-file that isn't present with call-with-temporary-file
<reepca>
with-temporary-file checks whether :type is nil at macroexpansion time and omits the argument if it is
<jcowan>
I'm particularly interested in how Scheme looks to CL. Do you have to funcall everything, or is symbol-function set for free when possible?
prince1 has quit [Ping timeout: 265 seconds]
<reepca>
but this means that the distinction between supplied-as-nil and not-supplied is lost, and not-supplied is the only case that can be expressed using with-temporary-file
slyrus__ has joined #lisp
ljavorsk has quit [Ping timeout: 260 seconds]
prince1 has joined #lisp
slyrus_ has quit [Ping timeout: 240 seconds]
Bike has quit [Quit: Bike]
terpri_ has joined #lisp
terpri has quit [Read error: Connection reset by peer]
lucasb has quit [Quit: Connection closed for inactivity]