<jcowan>
Bike: one of the things I ask people when I interview them is how to compute fibonacci(n) in Blub in O(1) time
damke has joined #lisp
<fiddlerwoaroof>
First you write a Scheme runtime with TCO, then you implement it the obvious way :)
<fiddlerwoaroof>
Or, the obvious tail-calling way
<jcowan>
the answer is that fib(42) or so is the largest representable Fibonacci number in typical Blubs (not Python, though)
<jcowan>
so the best implementation is to have a small array literal
<Bike>
good, i can't remember phi off the top of my head
damke_ has quit [Ping timeout: 264 seconds]
<Bike>
not really following what this has to do with compiler macros though
Chream has quit [Ping timeout: 248 seconds]
hel-io has joined #lisp
<jcowan>
supposing you needed a fibonacci function in your program, you could supply a compiler macro that would avoid calling it all for less than bignum results
quazimodo has joined #lisp
<Bike>
and how do you know how big the result is going to be?
<Bike>
that is to say, how do you know how big the input is
<fiddlerwoaroof>
Ah, just realized I had mentally substituted O(n) for O(1) ...
hel-io has quit [Client Quit]
emacsomancer has quit [Remote host closed the connection]
__Myst__ has left #lisp ["WeeChat 2.1"]
varjagg has quit [Read error: Connection reset by peer]
spm_ has joined #lisp
Louge has joined #lisp
smokeink has joined #lisp
spm_ is now known as smcnamara
smcnamara is now known as spm_
<jcowan>
Bike: I mean when the argument is a constant
fisxoj has quit [Quit: fisxoj]
<Bike>
in that case why not just always fold?
dmiles has joined #lisp
<jcowan>
the idea is not to have to fold, but have the answer already
<Bike>
if you have (fib 9) in the code you can just replace it with 34 at compile time
<Bike>
same thing with (fib 261)
Pierpa has joined #lisp
Achylles has joined #lisp
EvW has quit [Ping timeout: 246 seconds]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
Oladon has joined #lisp
_whitelogger has joined #lisp
xantoz has quit [Ping timeout: 264 seconds]
xantoz has joined #lisp
markong has quit [Ping timeout: 264 seconds]
Achylles has quit [Ping timeout: 246 seconds]
warweasle has quit [Quit: Leaving]
bjorkintosh has quit [Remote host closed the connection]
khisanth__ has joined #lisp
earl-ducaine has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
chatchatt has joined #lisp
earl-ducaine has joined #lisp
damke has quit [Ping timeout: 265 seconds]
chatchat1 has quit [Ping timeout: 240 seconds]
smokeink has quit [Remote host closed the connection]
dddddd has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 260 seconds]
fisxoj has joined #lisp
eazar001 has joined #lisp
nika has joined #lisp
fikka has joined #lisp
Oladon has quit [Quit: Leaving.]
warweasle has joined #lisp
d4ryus1 has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
Oladon has joined #lisp
d4ryus has quit [Ping timeout: 260 seconds]
Pixel_Outlaw has quit [Quit: Leaving]
Naergon has quit [Remote host closed the connection]
jason_m has joined #lisp
jason_m has quit [Client Quit]
smurfrobot has joined #lisp
burzos has joined #lisp
kjeldahl has quit [Ping timeout: 248 seconds]
kjeldahl has joined #lisp
Kundry_Wag has joined #lisp
fikka has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
eschatologist has quit [Ping timeout: 264 seconds]
smurfrobot has quit [Remote host closed the connection]
SaganMan has joined #lisp
damke has joined #lisp
fisxoj has quit [Quit: fisxoj]
Bike has quit [Quit: Lost terminal]
damke_ has quit [Ping timeout: 264 seconds]
mareskeg has joined #lisp
mareskeg has quit [Client Quit]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 246 seconds]
fikka has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
integralyogin has joined #lisp
quazimodo has joined #lisp
warweasle has quit [Quit: Leaving]
shka has joined #lisp
milanj_ has quit [Quit: This computer has gone to sleep]
burzos has quit [Quit: Page closed]
Oladon has quit [Quit: Leaving.]
fikka has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
Mutex7 has quit [Quit: Leaving]
isBEKaml has quit [Ping timeout: 240 seconds]
_whitelogger has joined #lisp
<beach>
Good morning everyone!
fayg0 has joined #lisp
fayg0 has quit [Client Quit]
eazar001 has quit [Quit: WeeChat 2.1]
trocado has quit [Ping timeout: 240 seconds]
beach has left #lisp ["ERC Version 5.3 (IRC client for Emacs)"]
beach has joined #lisp
schoppenhauer has quit [Ping timeout: 240 seconds]
schoppenhauer has joined #lisp
Fare has joined #lisp
smurfrobot has joined #lisp
Kundry_Wag has joined #lisp
pierpa has quit [Quit: Page closed]
Kundry_Wag has quit [Ping timeout: 256 seconds]
smurfrobot has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
burzos has joined #lisp
<burzos>
Is there a variable I can toggle to force `format` to always show the dot in proper lists?
<beach>
I don't think so. FORMAT probably just calls the appropriate PRINT function, so ultimately PRINT-OBJECT. But you are not allowed to modify the standard behavior of PRINT-OBJECT. You can try doing it anyway and see. Why do you need this?
<burzos>
I have assoc lists and I'm `format`ing them in a user console, but it's confusing when some of the entries are dotted and some aren't (because the value can be a list or an atom).
<loke>
burzos: That's just a display issue
<beach>
You can always print it "manually". I mean, the REPL is not meant to be used for end-user stuff.
<loke>
burzos: It's because '(1 . (2 3 4)) has the same internal represetnation as '(1 2 3 4)
<beach>
loke: I suspect burzos knows that.
<loke>
I wasn't sure, as he would then know that he'd be getting '(1 . (2 . (3 . (4 . nil))))
<burzos>
Yeah. The frontend def needs a lot of work, this is just for debugging in the interim.
<burzos>
Yeah what you're describing is exactly what I'm getting loke.
<loke>
He only wants to display the first level using ditted notation, and doing that is trivial with format (FORMAT T "(~s . (~{~s~^ ~}))")
<loke>
(although that won't handle the case where the argument has a dotted list)
<burzos>
Ah cool.
<loke>
I'd actually recommend something like (format t "~s → ~s" (car X) (cdr X))
cromachina_ has quit [Read error: Connection reset by peer]
<beach>
onion: What is that link about?
<beach>
onion: And why are you showing it?
rotty has quit [Ping timeout: 245 seconds]
fikka has joined #lisp
rotty has joined #lisp
loli has quit [Quit: WeeChat 2.0.1]
<onion>
javascript common lisp implementation, minus CLOS
<beach>
And why are you showing it?
<beach>
Showing links without explaining why is typical troll behavior.
<beach>
An in fact, freenode will kick you if you do it often enough.
<beach>
More generally, it is impolite, because you kind of encourage dozens of people to click on links that might be of no interest to them. So you are wasting people's time.
shka has quit [Ping timeout: 263 seconds]
arbv has quit [Ping timeout: 256 seconds]
vlatkoB has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
<onion>
what about notes and comments about someone's behavior, i can see this being more productive if it was a personal concern, kept privately. but i notice some people are looking at CL implementations on the web so i thought i would share that right where those people have been asking. maybe my timing is off
Karl_Dscc has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
davsebamse has joined #lisp
oleo has quit [Quit: Leaving]
<Pierpa_>
Let's not make a mountain out of a molehill
nydel has joined #lisp
fikka has joined #lisp
JuanDaugherty has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
aoh has quit [Changing host]
aoh has joined #lisp
shka has joined #lisp
flamebeard has joined #lisp
emaczen`` has quit [Read error: Connection reset by peer]
emaczen`` has joined #lisp
earl-ducaine has quit [Read error: Connection reset by peer]
d4ryus1 is now known as d4ryus
earl-ducaine has joined #lisp
Kundry_Wag has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
Kundry_Wag has quit [Ping timeout: 268 seconds]
BitPuffin has joined #lisp
tomlukeywood has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
shka has quit [Ping timeout: 260 seconds]
chens has quit [Read error: Connection reset by peer]
arbv has joined #lisp
burzos has quit [Quit: Page closed]
arbv has quit [Ping timeout: 260 seconds]
arbv has joined #lisp
mishoo has joined #lisp
tomlukeywood has quit [Quit: tomlukeywood]
quazimodo has quit [Ping timeout: 260 seconds]
SaganMan has quit [Quit: WeeChat 1.6]
fikka has joined #lisp
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Pierpa_ has quit [Ping timeout: 260 seconds]
kbtdr has joined #lisp
pierpa has joined #lisp
earl-ducaine has quit [Remote host closed the connection]
willmichael has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
ebzzry_ has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
damke has quit [Ping timeout: 265 seconds]
JuanDaugherty has quit [Remote host closed the connection]
arbv has quit [Ping timeout: 246 seconds]
arbv has joined #lisp
Cymew has joined #lisp
johnnymacs has joined #lisp
tomlukeywood has joined #lisp
Cymew has quit [Remote host closed the connection]
Cymew has joined #lisp
<johnnymacs>
I have done an apt-get install ecl and when I check the filesize of /usr/bin/ecl it appears to only be 6 kilobytes
<johnnymacs>
Somehow that does not seem posible to me. Can embedded common lisp really be that small?
<fiddlerwoaroof>
That's about how big my ecl is
<beach>
johnnymacs: Is there a shared library as well?
<johnnymacs>
not sure
<fiddlerwoaroof>
libecl.so is about 3M
<fiddlerwoaroof>
and ldd `which ecl` says that ecl depends on the shared library
markong has joined #lisp
<johnnymacs>
is ecl written in common lisp or c?
<beach>
Some of each.
<beach>
Usually, systems like that define a minimal subset of Common Lisp written in some other language, then the remaining Common Lisp functionality is written in that minimal subset.
johnnymacs has left #lisp ["Killed buffer"]
johnnymacs has joined #lisp
<johnnymacs>
sorry emacs was stuck in read only mode
<johnnymacs>
Is there a ftp where I can find some precompiled binaries for different architectures for ecl?
<beach>
johnnymacs: jackdaniel would know.
<johnnymacs>
on the busybox website they have a list of all the main archs, a few arms, windows, linux x86 linux x64
<jackdaniel>
johnnymacs: no, ECL doesn't provide precompiled binaries
<jackdaniel>
we don't have resources to maintain and troubleshot that
<johnnymacs>
well how does one say get it on an mcu
<jackdaniel>
so you either have to rely on your distribution packager (i.e Linux package managers, Windows has freebox, there is package on Google Play maintained by Polos), or you build it yourself
<jackdaniel>
what is mcu?
<johnnymacs>
microcontroller
<johnnymacs>
I guess buxybox does come with dpkg or rpm so it should be able to install the debian or fedora packages
<johnnymacs>
alright my questions are answered thank you
<jackdaniel>
one more thing: given you use busybox I assume you won't have C compiler on the machine
heisig has joined #lisp
<jackdaniel>
in that case you may want to compile ECL with bytecodes compiler only
<jackdaniel>
(one example of maintaining prebuilt binaries: say we had one you like, you download it and it doesn't work, because it was built with assumption C compiler is on the host)
Louge has quit [Quit: Louge]
JuanDaugherty has joined #lisp
chens has joined #lisp
<stacksmith>
johnnymacs: Raspberry Pi works really well with CCL and reasonably well with SBCL, and you can get a decent linux going. I used it as my main system for a few months. US$35
damke has joined #lisp
<Shinmera>
SBCL unfortunately does not have threads on 32 bit ARM, and I think there's still no distro that really offers ARM64 for the Pi 3.
milanj_ has joined #lisp
<Shinmera>
I think OpenSuse has a release, but I haven't gotten around to trying it myself.
<Shinmera>
Would like to build Portacle for ARM64 at some point though.
<stacksmith>
I had a 64-bit linux working about a year go, but it was a little flaky...
<jackdaniel>
archlinux arm has arm64 userspace for rpi (no gpu support though)
<stacksmith>
The GPU is a nice thing...
<jackdaniel>
at least that was the state from ~1y ago
<jackdaniel>
stacksmith: complaints to broadcom and their magical binary blobs
<stacksmith>
Yup.
<flip214>
I used SLES for arm64 on the rpi3, with a debian chroot for all the nifty stuff.
damke_ has quit [Ping timeout: 263 seconds]
<stacksmith>
Originally I wanted to use it as a secure computer of sorts, but it uses the GPU to boot with god knows what code...
<flip214>
debian removed all the "incompatible" warnings for rpi3 in the last few months, so I'm about to try booting the 4.15.0-1-arm64 directly.
<stacksmith>
Should work.
<flip214>
didn't phoe have a branch of SBCL for the RPI 32bit with thread support?
<stacksmith>
I wound up switching to a bigger box because my monitor is too big for the Pi, but otherwise I hardly ever noticed any issues with speed or memory...
nowhereman_ has joined #lisp
<stacksmith>
Actually I stepped on it once and destroyed it. But it took about 30 seconds to swap SD cards and cables with another RPI.
dddddd has joined #lisp
scymtym has quit [Ping timeout: 264 seconds]
nowhere_man has quit [Ping timeout: 240 seconds]
tomlukeywood has quit [Quit: tomlukeywood]
hhdave has joined #lisp
hhdave has quit [Client Quit]
Achylles has joined #lisp
hhdave has joined #lisp
Achylles has quit [Max SendQ exceeded]
schweers has joined #lisp
smurfrobot has joined #lisp
Achylles has joined #lisp
Achylles has quit [Max SendQ exceeded]
Achylles has joined #lisp
Achylles has quit [Max SendQ exceeded]
Achylles has joined #lisp
smurfrobot has quit [Ping timeout: 256 seconds]
_cosmonaut_ has joined #lisp
puchacz has joined #lisp
puchacz has quit [Client Quit]
scymtym has joined #lisp
<beach>
loke: The reason that the visible area in the buffer of Second Climacs is not adjusted when the cursor goes outside it is that there are two cases.
<beach>
One is when the cursor is moved as the result of the execution of a command, in which case, the visible area should follow the cursor.
<beach>
The other is when the user scrolls so that the cursor is outside the visible area, in which case, the cursor should be moved instead. I need to think about how to distinguish those two cases.
fikka has quit [Ping timeout: 240 seconds]
lonjil has quit [Ping timeout: 248 seconds]
<beach>
I guess maybe I can try to detect when this situation happened as a result of executing a command.
mishoo has quit [Quit: (save-lisp-and-die)]
<loke>
beach: But is it really?
mishoo has joined #lisp
<beach>
Is it really what?
<loke>
beach: I mean, should it be allowed to ever have the cursor outside the visible area?
<beach>
No.
<beach>
The question is what to move and when.
<loke>
In Emacs, for example, you can't. Most other editors does allow it.
lonjil has joined #lisp
<beach>
You are right.
<beach>
But sometimes the cursor must be moved to be inside the area, and sometimes the area must be moved so that the cursor is inside it.
<loke>
So, if you decide to not allow it, then the situation is quite simple, IMHO. When cursor moves: Adjust scroll location. And when scroll location changes, adjust cutsor.
<beach>
And I need to figure out when to do one and when to do the other.
<beach>
Ah, but it's not that simple.
<loke>
What did I miss? :-)
ebzzry_ has quit [Remote host closed the connection]
<beach>
Come to think about it, maybe you are right. I was afraid that the first case would then trigger the second case.
<beach>
But that's OK, because the cursor will then already be in the visible area.
<loke>
beach: Well, it could. I seem to recall Emacs having that problem. But... It was caused by a callback function executing after a scroll. That callback function moved the cursor, triggering a loop.
<loke>
As long as the case of callbacks are handles, the problem can be dealt with.
<beach>
Yeah, that's the kind of stuff I need to be careful about.
wheelsucker has quit [Ping timeout: 252 seconds]
<loke>
I believe they solve it by not calling the callbacks for scrolling in those cases.
<beach>
That sounds messy.
<beach>
I think I'll do the following: After the execution of any command, check whether the cursor is outside the visible area, and if so, adjust the viewport.
<loke>
Yes, and I may misremember. But it was something to that effect.
<beach>
Then, when replaying the contents of the visible area, first check whether the cursor is outside it, and if so, move the cursor first.
<loke>
But, the fact that the discussion was quite recent, and they survived for a couple of decades before anyone stumbled on it suggests that the issue is less common than one might think.s
<loke>
beach: Right.
dmiles has quit [Ping timeout: 240 seconds]
<beach>
If the cursor moved as a result of a command, it will then be in the visible area, so no action will be taken in the second case.
<beach>
If not, then the area moved as a result of scrolling, so the cursor will be moved first.
_whitelogger has quit [K-Lined]
_whitelogger has joined #lisp
milanj_ has quit [Quit: This computer has gone to sleep]
hdurer[m] has quit [Read error: Connection timed out]
Fare has quit [Ping timeout: 260 seconds]
hdurer[m] has joined #lisp
fikka has joined #lisp
smurfrobot has joined #lisp
ebzzry_ has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
siraben has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
daniel-s has joined #lisp
JuanDaugherty has quit [Quit: Ex Chat]
chens has quit [Remote host closed the connection]
salva has quit [Remote host closed the connection]
fikka has joined #lisp
Achylles has quit [Remote host closed the connection]
milanj has joined #lisp
tomlukeywood has joined #lisp
DataLinkDroid has quit [Quit: Ex-Chat]
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
oxo1o1o1o has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
smurfrobot has joined #lisp
smurfrobot has quit [Remote host closed the connection]
tomlukeywood has quit [Quit: tomlukeywood]
quazimodo has joined #lisp
nika has quit []
quazimodo has quit [Ping timeout: 252 seconds]
quazimodo has joined #lisp
equalunique[m] has quit [Ping timeout: 255 seconds]
terpri has quit [Ping timeout: 246 seconds]
equalunique[m] has joined #lisp
dddddd has quit [Ping timeout: 256 seconds]
dddddd has joined #lisp
EvW has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
parjanya has quit [Ping timeout: 246 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
capitaomorte has joined #lisp
hajovonta has joined #lisp
attila_lendvai has joined #lisp
m00natic has joined #lisp
arbv has quit [Ping timeout: 276 seconds]
damke has joined #lisp
arbv has joined #lisp
<hajovonta>
hello
Kaisyu has joined #lisp
chatchat1 has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
chatchatt has quit [Ping timeout: 256 seconds]
lagagain has quit [Quit: Connection closed for inactivity]
EvW has quit [Ping timeout: 255 seconds]
trocado has joined #lisp
EvW1 has joined #lisp
damke_ has joined #lisp
damke has quit [Ping timeout: 265 seconds]
quazimodo has quit [Ping timeout: 260 seconds]
quazimodo has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
trocado has quit [Read error: Connection reset by peer]
attila_lendvai has quit [Read error: Connection reset by peer]
damke_ has quit [Ping timeout: 264 seconds]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
damke_ has joined #lisp
Kundry_Wag has joined #lisp
damke has joined #lisp
pdv has joined #lisp
pdv` has joined #lisp
damke_ has quit [Ping timeout: 263 seconds]
Kundry_Wag has quit [Ping timeout: 264 seconds]
daniel-s has quit [Remote host closed the connection]
damke_ has joined #lisp
orivej has joined #lisp
makomo has quit [Ping timeout: 246 seconds]
damke has quit [Ping timeout: 264 seconds]
mareskeg has joined #lisp
mareskeg has quit [Quit: mareskeg]
m00natic has quit [Read error: Connection reset by peer]
m00natic has joined #lisp
JuanDaugherty has joined #lisp
Bike has joined #lisp
yeticry has quit [Ping timeout: 260 seconds]
yeticry has joined #lisp
damke has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
igemnace has quit [Quit: WeeChat 2.0.1]
capitaomorte has quit [Remote host closed the connection]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
terpri has joined #lisp
Fare has joined #lisp
Kundry_Wag has joined #lisp
doesthiswork has joined #lisp
Kevslinger has joined #lisp
Tordek_ is now known as Tordek
zbir has joined #lisp
nowhereman_ has quit [Ping timeout: 276 seconds]
pagnol has joined #lisp
Naergon has joined #lisp
shka has joined #lisp
Arcaelyx has joined #lisp
smurfrobot has joined #lisp
warweasle has joined #lisp
smurfrobot has quit [Remote host closed the connection]
puchacz has joined #lisp
<puchacz>
hi, how to make a stream from an array of octets pls?
LiamH has joined #lisp
siraben has quit [Ping timeout: 255 seconds]
smurfrobot has joined #lisp
FareTower has joined #lisp
smurfrobot has quit [Remote host closed the connection]
Louge has quit [Remote host closed the connection]
<jackdaniel>
hm, and hashes
<jackdaniel>
#:cl #:list
<Zhivago>
Probably the criterion should be to import it when you use it enough to get tired of looking at the cl:: on it.
jcowan has quit [Read error: Connection reset by peer]
jcowan has joined #lisp
nirved has joined #lisp
<jcowan>
well, I want to export certain cl symbols as well, and I was under the impression that you cannot export anything that you have not defined or imported; is that wrong?
pagnol has quit [Ping timeout: 245 seconds]
<jcowan>
dlowe: I am trying to provide an implementation of ISLisp that will work on any CL, thus saving me a lot of work
<Zhivago>
You export names, not things.
<dlowe>
jcowan: right, you can export whatever symbols you want, regardless of whether or not they are bound to something.
EvW1 has quit [Ping timeout: 256 seconds]
<jcowan>
Yeah, I'm not explaining this well.
Kundry_Wag has quit [Remote host closed the connection]
<jcowan>
The point is that if you :use the islisp package, you will get some names that ultimately come from the common-lisp package and others that are defined in the islisp package *under names that exist in the common-lisp package*.
<ecraven>
jcowan: what are the USPs of ISLISP compared to other lisps?
<jcowan>
small and static
<jcowan>
(still dynamically typed, though)
<jcowan>
*mostly* names that are the same in ISLisp and CL have the same semantics, but not always
<dlowe>
jcowan: I think your understanding is correct, except the symbol just has to exist in the package, it doesn't have to be used for anything.
<Zhivago>
Well, just export the names that name things with the semantics that you want to export.
<jackdaniel>
jcowan: I would actually split it in two package
<jackdaniel>
(defpackage islisp-impl …) and (defpackage islisp …)
<jackdaniel>
the second imports from cl and islisp-impl and exports what it wants
<jcowan>
Zhivago: if I did that, you'd have to import the common-lisp package into ISLisp code, which would pollute the namespace
<jcowan>
of your program
<jackdaniel>
then you don't have to import something to islisp-impl
<lieven>
jcowan: erann gat's paper on conduit-packages may be of use to you
<dlowe>
wow, islisp solves character encoding difficulties by pretending that there are only 95 characters.
<jcowan>
if I refer to IF as CL:IF, then exporting IF will export a symbol whose print name is "IF" but which cannot be used as IF by any package that uses me.
<Zhivago>
Which means that you can import the particular symbols you want to export.
<jcowan>
Lisp has no outside. It is a windowless monad.
* jcowan
steals the opportunity to say "windowless monad" on both #lisp and #haskell within a few minutes
Cymew has quit [Remote host closed the connection]
<bjorkintosh>
hahaha
pagnol has joined #lisp
<bjorkintosh>
Shinmera, thanks a lot. I think this is the relevant thing: This book is actually an introduction to a language called GOVOL that completely became dead - googling for it gives not even a description of the language, excluding quotes from this book itself.
<bjorkintosh>
I'll skip it.
<shka>
why this book got second edition?
<bjorkintosh>
shka, because the author probably thought 30 years is a long enough time for anyone to have forgotten about the first one?
<shka>
yes, but it is very outdated
<jcowan>
A book whose intro begins "LISP is commonly implemented with an interpreter program called the LISP interpreter" is surely not worth reading
<jcowan>
as for GOVOL, it stands for Gary's Own Version of Lisp
<shka>
nowdays people would go for lisp in small pices or something like that
<bjorkintosh>
jcowan, are you familiar with it?
<TMA>
bjorkintosh: I have, maybe. some eighteen years ago. if I recall correctly
<Bike>
Hullo, MOP question. at what point are slot specifications (like (bar :initarg :bar) and whatnot) turned into actual slot definitions? MOP seems to say ensure-class-using-class does it, but elsewhere has an example where MAKE-INSTANCE is called directly with slot specifications.
<jcowan>
bjorkintosh: No, but he says the name has the same origin as JOVIAL, which stands for "Jules's Own Version of the International Algorithmic Language" (i.e. Algol 58)
<bjorkintosh>
TMA, was it any good? anything to take from it?
<dlowe>
Bike: I believe MOP has a finalize-class function which is called before any instance is created.
<jcowan>
JOVIAL actually did catch on as a language for military applications: it has a lot of specialized real-time and low-level I/O stuff
<Bike>
dlowe: it does not. are you thinking of finalize-inheritance?
<TMA>
bjorkintosh: I think it is now obsolete.
<dlowe>
Bike: hm. no. never mind then, I clearly don't remember
<makomo>
jcowan: i was just about to mention a related thing. google for "semantic designs" and JOVIAL
<makomo>
semantic designs is a company that specializes in code refactoring. one of the things they've done is rewritten a million or so lines of JOVIAL code for a military stealth bomber i think?
<makomo>
to C
<jcowan>
C or Ada?
<makomo>
pretty sure it was C
<jcowan>
huh
oleo has joined #lisp
<makomo>
it's an interesting read and very cool technology
<Shinmera>
Bike: Maybe you can BREAK on DIRECT-SLOT-DEFINITION-CLASS to see where it's called in existing implementations.
<makomo>
the engine itself is written in a "homebrew" version of lisp that was built to support parallelism
<makomo>
"parlanse" or something like that is the name
Kundry_Wag has joined #lisp
<bjorkintosh>
well, algol should be properly considered a half sibling of Lisp since St McCarthy the first left his imprint on it!
<makomo>
it's not open source but it's interesting just to read about. also, the main guy behind the tool answers a lot of parsing technology-related questions on stack overflow
Kundry_Wag has quit [Remote host closed the connection]
<makomo>
quite fascinating stuff. they parse C++ completely from an auto-generated parser. no manual work at all.
<makomo>
and C++17 at that
Kundry_Wag has joined #lisp
<bjorkintosh>
parlanse: a parallel language for symbolic expressions. interesting!
<makomo>
it's basically a team of 10 PhDs or something, crazy :D
<bjorkintosh>
missed opportunity, or bullet dodged?
<dlowe>
that seems harder than just making lisp.
<TMA>
bjorkintosh: for example the interpreter presented there has no lexical binding and no closures; arguably it is simpler exactly because of that
<Bike>
Shinmera: well that's why i'm asking really - from looking at source, it looks like sbcl does it in ensure-class-using-class, while ecl leaves it for shared-initialize
EvW has joined #lisp
<Bike>
sbcl rejects the mop example i was referring to
<Bike>
i mean, just as well, doing it in ensure-class-using-class makes far more sense to me
<makomo>
bjorkintosh: oh, right, i forgot about that
<Bike>
with some modifications so it actually runs
<Shinmera>
Examples aren't normative anyway
<bjorkintosh>
makomo, though, doesn't that mean that it's then parseable by lisp? :-D I wonder which other languages use the syntax but aren't lisp.
<makomo>
hah good point
<Shinmera>
bjorkintosh: All Lisp code that uses libraries that haven't been loaded.
<bjorkintosh>
hah!
<ecraven>
prescheme is a C-like language with Scheme syntax
<ecraven>
I don't think you could call it a lisp per se
pdv has quit [Remote host closed the connection]
<bjorkintosh>
hmm. I think I know of two others.
<bjorkintosh>
the code from Equational Logic as a programming language looks (lisp 'like), programming languages, an interpreter approach,and bulldog, a compiler for vliw
tomlukeywood has joined #lisp
<bjorkintosh>
never mind, the 3rd one's elisp.
fikka has joined #lisp
<jcowan>
bjorkintosh: yes, Algol is part of the bridge between C and Lisp
<jcowan>
which is why the Scheme standards are still called "The Revised^n Report on the Algorithmic Language Scheme"
<bjorkintosh>
eh? i thought c and algol were unrelated.
<jcowan>
C is like Algol is like Scheme is like CL
<bjorkintosh>
that part is because scheme uses the algol concept of blocks.
<jcowan>
and lexical scope, which spread into CL from Scheme
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
<bjorkintosh>
cpl begat bcpl which begat b and thus c was born.
<bjorkintosh>
and what begat cpl? a paper!
ghard has joined #lisp
puchacz has joined #lisp
<bjorkintosh>
it seems algol simply dominates everything.
<puchacz>
hi, where can I find an example of bordeaux-threads used to wait till both threads finish?
<puchacz>
I want 2 jobs in parallel, and I am done when both are completed
<Shinmera>
(bt:join-thread a) (bt:join-thread b)
<puchacz>
Shinmera: if thread a is already dead, will join-thread just return?
<Shinmera>
I mean
<Shinmera>
just read the docs, man
<puchacz>
ok, tks :)
<puchacz>
"Wait until THREAD terminates. If THREAD has already terminated, return immediately."
roca has joined #lisp
himmAllRight17 has quit [Remote host closed the connection]
himmAllRight has joined #lisp
JuanDaugherty has quit [Quit: Ex Chat]
oxo1o1o1o has quit [Ping timeout: 240 seconds]
<pierpa>
Makes sense :)
<jcowan>
nothing else would
nika has joined #lisp
ebzzry_ has quit [Read error: Connection reset by peer]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
<Bike>
no wait, sbcl does accept it
<Bike>
hrm, oh well then
doesthiswork has quit [Quit: Leaving.]
Kundry_Wag has joined #lisp
flamebeard has quit [Quit: Leaving]
hajovonta has quit [Remote host closed the connection]
oxo1o1o1o has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
wigust has joined #lisp
Tristam has joined #lisp
smurfrobot has joined #lisp
failproofshark has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
tomlukeywood has quit [Quit: tomlukeywood]
doesthiswork has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
FareTower has joined #lisp
doesthiswork has quit [Client Quit]
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Baggers has joined #lisp
Kundry_Wag has joined #lisp
cage_ has quit [Read error: Connection reset by peer]
<beach>
Bike: SICL has it in an :AROUND method on SHARED-INITIALIZE specialized to STANDARD-CLASS .
<Bike>
yeah, i guess shared initialize is where to go.
attila_lendvai has quit [Read error: Connection reset by peer]
<Bike>
that's a little annoying. if it was in ensure-class-using-class, programmers could control how defclass is parsed pretty closely, e.g. how slot definition initargs should be interpreted
<Bike>
does that say something explicit?
<beach>
This page says that when MAKE-INSTANCE is called, the :DIRECT-SLOTS initarg is a list of canonicalized slot specifications.
<beach>
So at that point, they are not yet DIRECT-SLOT-DEFINITIONs.
<Bike>
ah.
attila_lendvai has joined #lisp
<beach>
"After error checking, this value is converted to a list of direct slot definition metaobjects before it is associated with the class metaobject."
<beach>
"It is not specified which methods provide the initialization and reinitialization behavior described above."
mflem has joined #lisp
<beach>
But it would definitely not be conforming behavior to have ENSURE-CLASS do the conversion.
<Bike>
i'll go along with it, but i don't see the advantage.
xxp has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
<beach>
Do you see the advantage of (CAR NIL) returning NIL?
<Bike>
well, yes, i get that much. but make-instance is hardly used in this way anything, i don't think it's much of a burden
FreeBirdLjj has quit [Remote host closed the connection]
<beach>
Oh?
<beach>
CHECK-AND-INITIALIZE-DIRECT-SLOTS does it, no?
schweers has quit [Ping timeout: 252 seconds]
<Bike>
sorry, i meant the superclasses.
<Bike>
ugh. hang on.
<Bike>
this page says the slots are canonicalized slot specs, but the superclasses are, at this point, classes.
<beach>
I thought we were talking about the slot specifiers.
<beach>
Maybe I was mistaken.
<Bike>
no, well, i'm doing both, but i only actually mentioned slots
<Bike>
so, the superclasses are classes, but the slots are not
<Bike>
are not instances.
<beach>
The :direct-superclasses argument is a list of class metaobjects.
<beach>
"The :direct-superclasses argument is a list of class metaobjects."
<Bike>
right. so ensure class using class is doing that part.
<beach>
From the same page as before.
fikka has joined #lisp
<beach>
That I can't say without reading further.
pagnol has quit [Ping timeout: 240 seconds]
<Bike>
it says as much in the ensure class using class page as well.
<beach>
It must be true then.
<beach>
I am curious. The page that I showed you a link to, did you not find it easily before I showed it? If so, perhaps there are some other links I should add to that site.
<beach>
I mean, I found it because I have read it a gazillion times.
<Bike>
no, i did find it.
<beach>
Oh.
<beach>
So was it a problem with terminology?
<beach>
It is not obvious what a canonicalized slot description is, compared to a direct-slot-definition instance.
m00natic has quit [Read error: Connection reset by peer]
<beach>
Perhaps I should have a "terminology" page, and stick links to it at strategic places.
<Bike>
yeah, i just wasn't reading closely enough either.
<beach>
Ah, OK.
Karl_Dscc has joined #lisp
Cymew has joined #lisp
<Bike>
does sicl not have a definition of make-instances-obsolete?
<Bike>
just wondering, because it took me some thought to figure out what it should do with fastgf
wheelsucker has joined #lisp
<beach>
It might not have.
<beach>
What would it do?
Cymew has quit [Ping timeout: 240 seconds]
tomlukeywood has joined #lisp
_cosmonaut_ has quit [Ping timeout: 268 seconds]
<Bike>
assign the class a new stamp and remove it from any call histories it's in, is what i came up with.
puchacz has quit [Quit: Konversation terminated!]
<beach>
Fair enough.
<Bike>
the new stamp makes the instances obsolete, and then removing it from the histories forces them to update next time they're used in a call.
<beach>
Yeah, that sounds reasonable.
<Bike>
the trick is reinitialize-instance has to actually call it, so that user methods on it can be called, and stuff
<beach>
I see, yes.
<beach>
I keep thinking that it's too bad that all this work is Clasp specific. I will need to do this all over again for SICL.
<beach>
But you (or drmeister) have explained why to me so many times.
epony has joined #lisp
<Bike>
well the last substantial change i made here was adding applicable method caches, and i got that from you anyhow
Murii|osx has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
attila_lendvai has quit [Read error: Connection reset by peer]
<beach>
I meant more that it is too bad that this code can not become an implementation-independent library.
<beach>
It is going to exist in slightly different forms in different implementations, with extra cost in maintenance.
<beach>
And I kind of understood the arguments as they were presented to me. But I keep thinking that it is unfortunate nevertheless.
<Bike>
as you said at some point, it makes sense to have objects with classes in the startup image; that right there kind of implies that you can't have a library with its own definition of classes (so they have stamps, or whatever)
attila_lendvai has joined #lisp
xantoz has quit [Ping timeout: 256 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
<beach>
Oh I didn't necessarily mean "something that can be loaded into a running system" when I said "library".
chatchatt has joined #lisp
<beach>
I just meant "reusable implementation-independent code".
xantoz has joined #lisp
chatchat1 has quit [Ping timeout: 260 seconds]
<beach>
But you are right. The way Clasp is bootstrapped often makes it necessary to introduce specific modifications to the code.
attila_lendvai has joined #lisp
<beach>
Plus, drmeister's way of understanding how things work is to implemented them his way, and then he is too busy to think of how to write the code in an implementation-independent way, simply because you have your hands full trying to get the system into a reasonable state in the first place.
<beach>
I should be satisfied that Cleavir is still code that is common both to Clasp and SICL.
attila_lendvai has quit [Read error: Connection reset by peer]
tomlukeywood has quit [Quit: tomlukeywood]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has quit [Read error: Connection reset by peer]
<Bike>
yeah, i'm glad we'll be able to lose our one patch soon.
<Bike>
lisp wasn't really designed with modularity in mind
attila_lendvai has joined #lisp
<beach>
True. And making it so requires a lot of extra effort.
orivej has quit [Ping timeout: 260 seconds]
quazimodo has quit [Ping timeout: 264 seconds]
<Bike>
i mean there's even stuff like, say, the printer. seems like it should be modular enough, but then there's stuff like print-unreadable-object being able to print a memory address
<beach>
Right. There are lots of little things like that.
<beach>
I usually get around those things by calling a client-specializable generic function to handle the situation.
<beach>
But that requires a very twisted way of thinking. I am just hoping it will pay off eventually.
<beach>
Certainly, existing implementations make absolutely no effort in that direction as far as I can tell.
<Bike>
not really, no
<beach>
On the other hand, once I manage to get something to work that way, I can often turn it into a paper.
<beach>
Anyway, my (admittedly small) family is saying dinner is ready. The EU is not on daylight-savings time yet.
damke_ has joined #lisp
<Bike>
see you.
attila_lendvai has quit [Read error: Connection reset by peer]
damke has quit [Ping timeout: 264 seconds]
attila_lendvai has joined #lisp
SaganMan has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
fikka has quit [Ping timeout: 246 seconds]
bjorkintosh has quit [Quit: Leaving]
dddddd has quit [Ping timeout: 256 seconds]
dddddd has joined #lisp
comborico1611 has joined #lisp
fikka has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
xxp has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 265 seconds]
pierpa has quit [Ping timeout: 260 seconds]
pierpa has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
FareTower has quit [Ping timeout: 260 seconds]
eschatologist has joined #lisp
attila_lendvai has joined #lisp
<ebrasca>
Hi
asarch has joined #lisp
scymtym has quit [Ping timeout: 252 seconds]
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
Chream_ has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
Chream_ has joined #lisp
dieggsy has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
shifty has joined #lisp
scymtym has joined #lisp
<Bike>
does shared initialize have to go through slot-value and slot-value-using-class?
pagnol has joined #lisp
SaganMan has quit [Quit: laters]
nika has quit [Quit: Leaving...]
<beach>
No, I don't think so.
didi has joined #lisp
wigust- has joined #lisp
oxo1o1o1o has quit [Ping timeout: 256 seconds]
roca has quit [Quit: roca]
<didi>
Wow, I think I hit a bug on SBCL. The Backtrace says [error printing frame], the type error states "The value #<invalid object #<invalid object #x6C00000061> is not of type LIST" and there weird values for the local variables in the frame (as in #<unknown immediate object, lowtag=#b1, widetag=#x61 {6C00000061}>).
oxo1o1o1o has joined #lisp
<Bike>
either it's a bug or you optimized safety too little.
<didi>
Bike: I have (declaim (optimize (speed 0) debug safety)) inside my .sbclrc.
<Bike>
implementations generally look like they go through (setf slot-value-using-class)... i guess i can just skip it on standard classes like usuaul
milanj has quit [Quit: This computer has gone to sleep]
wigust has quit [Ping timeout: 256 seconds]
<didi>
Hum, maybe a I have some "optimize speed" somewhere. Thanks for the tip. I will dig in.
spm_ has quit [Remote host closed the connection]
spm_ has joined #lisp
loli has joined #lisp
<pierpa>
didi: you must rather look for places where you lower safety.
<Bike>
i mean it could still be a bug. i'm just sayin.
<didi>
Pierpa: Thanks.
attila_lendvai has quit [Read error: Connection reset by peer]
<pierpa>
If safety is always 3 then you found a bug in the implementation
emacsomancer has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
<didi>
Nope. I only explicitly use `optimize' in one function, and it is not being called from the moment I initiate SBCL to the moment I hit the error.
Kundry_Wag has quit [Remote host closed the connection]
<didi>
Oh well.
Kundry_Wag has joined #lisp
<didi>
The error is reproducible, but not the weird values. The change from time to time.
<didi>
s/The/They
<Bike>
so what is it you are doing
nowhere_man has joined #lisp
nowhereman_ has quit [Ping timeout: 268 seconds]
<didi>
Hum. It is a complex computation. I will try to update SBCL.
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
warweasle has quit [Quit: back soon]
EvW has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
zch has quit [Read error: Connection reset by peer]
zch has joined #lisp
EvW has quit [Quit: EvW]
fikka has quit [Ping timeout: 240 seconds]
EvW1 has joined #lisp
noobly has joined #lisp
<noobly>
how do i move a chess piece in emacs?
<noobly>
I couldn't find instructions anywehre
<dlowe>
you might ask in #emacs
fikka has joined #lisp
vlatkoB has quit [Remote host closed the connection]
vlatkoB has joined #lisp
vlatkoB has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
<didi>
Weird. I can't clone SBCL's git repository. Git says "fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists."
<Bike>
might be sourceforge being stupid.
<didi>
:-(
fikka has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
xxp has joined #lisp
Mutex7 has joined #lisp
<jcowan>
beach: I will dare to say that while (car nil) => nil may have some merit, the classic argument from assoc is not a good one
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
Kundry_W_ has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
emaczen`` has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
SirGentle has joined #lisp
damke_ has quit [Ping timeout: 265 seconds]
damke_ has joined #lisp
vap1 has quit [Ping timeout: 256 seconds]
milanj has joined #lisp
noobly has quit [Ping timeout: 260 seconds]
Chream_ has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 248 seconds]
Murii|osx has joined #lisp
shka_ has joined #lisp
jcowan has left #lisp ["Leaving"]
SirGentle has quit [Quit: Leaving]
jcowan has joined #lisp
zbir has quit [Ping timeout: 245 seconds]
Chream_ has joined #lisp
BlueRavenGT has joined #lisp
fikka has joined #lisp
uint_ is now known as uint
Cymew has joined #lisp
warweasle has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
Murii|osx has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
smurfrobot has quit [Remote host closed the connection]
Murii|osx has joined #lisp
zch has quit [Read error: Connection reset by peer]
Chream_ has quit [Read error: Connection reset by peer]
Chream_ has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
energizer has joined #lisp
emacsomancer has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
wheelsucker has quit [Ping timeout: 252 seconds]
<didi>
With SBCL's 1.4.5, I got a memory fault. Something is fishy here.
vap1 has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
vap1 has quit [Client Quit]
didi has quit [Remote host closed the connection]
<Xach>
did: what is the code?
shka_ has quit [Ping timeout: 240 seconds]
quazimodo has joined #lisp
BitPuffin has quit [Remote host closed the connection]
terpri has quit [Ping timeout: 246 seconds]
wheelsucker has joined #lisp
nowhereman_ has joined #lisp
nowhere_man has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 256 seconds]
Bike has quit [Ping timeout: 260 seconds]
FareTower has joined #lisp
jonh has joined #lisp
ghard has quit [Ping timeout: 252 seconds]
dTal has joined #lisp
orivej has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
damke has joined #lisp
xxp has quit [Quit: ERC (IRC client for Emacs 25.3.2)]
FareTower has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
sjl has quit [Ping timeout: 256 seconds]
LiamH has quit [Quit: Leaving.]
Bike has joined #lisp
ebzzry_ has joined #lisp
asarch has quit [Quit: Leaving]
earl-ducaine has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 264 seconds]
dmiles has joined #lisp
mishoo has quit [Ping timeout: 264 seconds]
isBEKaml has joined #lisp
ebzzry_ has quit [Remote host closed the connection]