karswell_ has quit [Remote host closed the connection]
sjl__ has joined #lisp
ldb has quit [Quit: leaving]
fikka has joined #lisp
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
Cymew has joined #lisp
sjl__ has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 240 seconds]
anunnaki has joined #lisp
ldb has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
Kaisyu7 has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
damke has joined #lisp
fikka has joined #lisp
damke_ has quit [Ping timeout: 245 seconds]
damke_ has joined #lisp
pjb has quit [Ping timeout: 246 seconds]
damke has quit [Ping timeout: 264 seconds]
cmecca1 has joined #lisp
bjorkint0sh has joined #lisp
liead has joined #lisp
bkst_ has joined #lisp
jstypo has joined #lisp
isoraqathedh_ has joined #lisp
himmAllRight has joined #lisp
tokik has joined #lisp
guaqua_ has joined #lisp
getha has joined #lisp
eagleflo has joined #lisp
hjudt_ has joined #lisp
pok_ has joined #lisp
cross_ has joined #lisp
jsnell_ has joined #lisp
HDurer_ has joined #lisp
kbtr_ has joined #lisp
arrdem has joined #lisp
[df]_ has joined #lisp
cibs_ has joined #lisp
nuxdie_ has joined #lisp
sucks has joined #lisp
th1nkpad has joined #lisp
_krator44 has joined #lisp
malm has quit [Killed (verne.freenode.net (Nickname regained by services))]
malm has joined #lisp
swflint_away has joined #lisp
Firedancer_ has joined #lisp
tomaw_ has joined #lisp
tomaw has quit [*.net *.split]
arrdem_ has quit [*.net *.split]
tokik_ has quit [*.net *.split]
isoraqathedh has quit [*.net *.split]
himmAllRight17_ has quit [*.net *.split]
adlai has quit [*.net *.split]
bkst has quit [*.net *.split]
cmecca has quit [*.net *.split]
frgo has quit [*.net *.split]
msb has quit [*.net *.split]
thinkpad has quit [*.net *.split]
shenghi has quit [*.net *.split]
krator44 has quit [*.net *.split]
giraffe has quit [*.net *.split]
bjorkintosh has quit [*.net *.split]
eagleflo_ has quit [*.net *.split]
thijso has quit [*.net *.split]
cross has quit [*.net *.split]
HDurer has quit [*.net *.split]
trn has quit [*.net *.split]
jsnell has quit [*.net *.split]
Firedancer has quit [*.net *.split]
nuxdie has quit [*.net *.split]
swflint has quit [*.net *.split]
guaqua has quit [*.net *.split]
[df] has quit [*.net *.split]
hjudt has quit [*.net *.split]
pok has quit [*.net *.split]
kbtr has quit [*.net *.split]
cibs has quit [*.net *.split]
swflint_away is now known as swflint
th1nkpad is now known as thinkpad
damke has joined #lisp
pok_ is now known as pok
giraffe has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
vibs29 has quit [Ping timeout: 260 seconds]
vibs29 has joined #lisp
arbv has quit [Ping timeout: 260 seconds]
quazimodo has quit [Ping timeout: 276 seconds]
quazimodo has joined #lisp
jack_rabbit has quit [Ping timeout: 276 seconds]
arbv has joined #lisp
jack_rabbit has joined #lisp
DVSSA has joined #lisp
shenghi has joined #lisp
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
DVSSA has quit [Ping timeout: 256 seconds]
quazimodo has quit [Ping timeout: 240 seconds]
trn has joined #lisp
rumbler31 has quit [Remote host closed the connection]
quazimodo has joined #lisp
jcowan has joined #lisp
Oladon has quit [Quit: Leaving.]
liead is now known as adlai
verisimilitude has joined #lisp
<verisimilitude>
That's interesting, ldb.
<minion>
verisimilitude, memo from ldb: seem you used something like `&aux (&optional ...)' in `cl-ecma-48', but Clozure CL I use complains about that because lambda list keywords are specially treated in ccl
<verisimilitude>
Now, I'll double check, but I don't believe lambda list keywords are barred from being BOUND, since they're not FBOUND.
quazimodo has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
quazimodo has joined #lisp
<verisimilitude>
>If an external symbol of the COMMON-LISP package is not defined as a standardized function, macro, or special operator, it is allowed to lexically bind it as a function (e.g., with flet), to declare the ftype of that binding, and (in implementations which provide the ability to do so) to trace that binding.
<verisimilitude>
Well, that's the wrong paragraph, actually.
saki has joined #lisp
<verisimilitude>
>If an external symbol of the COMMON-LISP package is not globally defined as a standardized dynamic variable or constant variable, it is allowed to lexically bind it and to declare the type of that binding, and it is allowed to locally establish it as a symbol macro (e.g., with symbol-macrolet).
<verisimilitude>
So, there's nothing in the standard that explicitly disallows this, either.
<verisimilitude>
So, the issue is with CCL, it seems.
fikka has quit [Ping timeout: 265 seconds]
<verisimilitude>
So, the issue is with CCL and I'm reluctant to change a program purely because an implementation is defective.
<verisimilitude>
What do you think?
jstypo has quit [Ping timeout: 260 seconds]
<Bike>
i think a lambda list like that is confusing because it does different things if the lambda list is destructuring
<Bike>
it's probably technically okay though
fikka has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
Kundry_Wag has joined #lisp
JenElizabeth has joined #lisp
warweasle has joined #lisp
Kundry_Wag has quit [Ping timeout: 246 seconds]
kajo has quit [Quit: WeeChat 2.1]
kajo has joined #lisp
d4ryus1 has joined #lisp
d4ryus has quit [Ping timeout: 276 seconds]
semz has quit [Ping timeout: 265 seconds]
mange has quit [Ping timeout: 265 seconds]
DVSSA has joined #lisp
Mutex7 has quit [Quit: Leaving]
wxie has joined #lisp
igemnace has joined #lisp
DVSSA has quit [Ping timeout: 260 seconds]
verisimilitude has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 276 seconds]
kolb has quit [Read error: Connection reset by peer]
mrottenkolber has joined #lisp
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
mrottenkolber is now known as Guest36573
Kundry_Wag has joined #lisp
zaquest has quit [Read error: Connection timed out]
zaquest has joined #lisp
Fade has quit [Ping timeout: 256 seconds]
verisimilitude has joined #lisp
Fade has joined #lisp
Kundry_Wag has quit [Ping timeout: 265 seconds]
trocado has quit [Ping timeout: 240 seconds]
sjl__ has joined #lisp
sjl__ has quit [Client Quit]
fikka has joined #lisp
zaquest has quit [Ping timeout: 276 seconds]
Kundry_Wag has joined #lisp
lagagain has quit [Quit: Connection closed for inactivity]
Kundry_Wag has quit [Ping timeout: 260 seconds]
<ldb>
verisimilitude: but i think &OPTIONAL is standard keyword
<ldb>
verisimilitude: other & prefixed symbols are ok thou
zaquest has joined #lisp
jack_rabbit has quit [Ping timeout: 265 seconds]
<ldb>
verisimilitude: anyway for me it it not a pain to patch it by my self
quotation has quit [Quit: Connection closed for inactivity]
jack_rabbit has joined #lisp
<rme>
"All symbols whose names begin with & are conventionally reserved for use as lambda-list keywords and should not be used as variable names. Implementations of Common Lisp are free to provide additional lambda-list keywords."
<sjl>
Shinmera: does 3d-vectors have a way to get the distance between two vectors that doesn't require allocation/mutation? (vlength (v- v1 v2)) works but conses
<sjl>
I could write it myself but figured I might have missed it since the docs claim "It contains most of the vector operations one would usually expect out of such a library" ;)
<rme>
Although that is a quotation from CLTL2, so feel free to argue against it, I suppose.
ldb has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
<verisimilitude>
It doesn't seem like there's an equivalent restriction in the HyperSpec, rme.
<verisimilitude>
What precisely does CCL do with them, I wonder.
Cymew has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 246 seconds]
ldb has joined #lisp
DVSSA has joined #lisp
zmt00 has joined #lisp
DVSSA has quit [Ping timeout: 260 seconds]
shka has joined #lisp
nowhereman_ has quit [Ping timeout: 240 seconds]
damke_ has joined #lisp
nowhereman_ has joined #lisp
wxie has quit [Quit: Bye.]
damke has quit [Ping timeout: 264 seconds]
rumbler31 has joined #lisp
fnkey has joined #lisp
pierpa_ has quit [Quit: Page closed]
fikka has joined #lisp
wooden_ has joined #lisp
rumbler31 has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 265 seconds]
nika has joined #lisp
kerrhau has joined #lisp
kerrhau has quit [Changing host]
kerrhau has joined #lisp
fikka has joined #lisp
Arcaelyx_ has joined #lisp
kajo has quit [Quit: WeeChat 2.1]
kajo has joined #lisp
schoppenhauer has quit [Ping timeout: 264 seconds]
_krator44 is now known as krator44
krator44 has quit [Changing host]
krator44 has joined #lisp
krator44 has joined #lisp
kajo has quit [Client Quit]
kajo has joined #lisp
Arcaelyx has quit [Ping timeout: 240 seconds]
schoppenhauer has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
dddddd has quit [Remote host closed the connection]
sucks has quit [Ping timeout: 265 seconds]
krwq has joined #lisp
saki has quit [Read error: Connection reset by peer]
<krwq>
what's currently recommended way to setup tests? I used to add perform method which loads the system and does symbol-call in my asd file but after upgrading sbcl I'm getting warnings about deprecated recursive use of (ASDF/OPERATE:OPERATE 'ASDF/LISP-ACTION:LOAD-OP...
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
Oladon has joined #lisp
warweasle has quit [Quit: Leaving]
<verisimilitude>
What's your opinion on this issue, ldb; do you think CCL violates the standard by disallowing this?
fikka has joined #lisp
vaporatorius has quit [Ping timeout: 276 seconds]
Pixel_Outlaw has quit [Quit: Leaving]
fikka has quit [Ping timeout: 255 seconds]
kajo has quit [Quit: WeeChat 2.1]
kajo has joined #lisp
<ldb>
verisimilitude: CCL's code base is quite old, and since CLTL2 mentioned that and CLHS seems has no spec about it, I won't consider it as violation. One more reason I discourage to use `&' prefixed words as variables is it confuses syntax highliting.
* ldb
and worong syntax highliting confuses users
<verisimilitude>
I found that more interesting than anything; so much of the Emacs Common Lisp syntax highlighting is unintelligent to the point of amusing more than frustrating.
<verisimilitude>
However, since CLTL2 does mention it, I suppose it's worth changing.
kajo has quit [Client Quit]
<verisimilitude>
Since it's a small change and all of that.
<verisimilitude>
Regardless, it's still disappointing.
kajo has joined #lisp
fikka has joined #lisp
<verisimilitude>
Anyway, I'll have it changed and updated later.
ym has quit [Ping timeout: 268 seconds]
FreeBirdLjj has quit [Read error: Connection timed out]
<ldb>
i agree with your comments on emacs, lem is way better on syntax things
<beach>
Good morning everyone!
<ldb>
gudo morjing and which time zone are you in, beach
<verisimilitude>
I always simply avoid using a specific greeting.
<verisimilitude>
Then again, I'm also careful to change idioms and whatnot to ``writing'' rather than ``speaking'' or ``talking'' when using a medium like this.
FreeBirdLjj has joined #lisp
<verisimilitude>
How would one pronounce ``ugt'', anyway; I'd figure ``ugh'' with a hard ``t'' sound at the end.
fikka has joined #lisp
DVSSA has joined #lisp
kajo has quit [Quit: WeeChat 2.1]
kajo has joined #lisp
<ldb>
verisimilitude: many words are not intented to be pronunced. e.g. ldbeth
nowhere_man has joined #lisp
<verisimilitude>
Sure, but that won't stop me from trying.
jack_rabbit has quit [Ping timeout: 276 seconds]
DVSSA has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 276 seconds]
jack_rabbit has joined #lisp
nowhereman_ has quit [Ping timeout: 265 seconds]
wheelsucker has quit [Quit: Client Quit]
rumbler31 has joined #lisp
failproofshark has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #lisp
fikka has joined #lisp
pjb has joined #lisp
Lord_Nightmare has quit [Ping timeout: 240 seconds]
<epony>
verisimilitude maybe it is pronounced UGT as spelled out letters :-)
fikka has quit [Ping timeout: 255 seconds]
<verisimilitude>
That's awful.
DVSSA has joined #lisp
FreeBirdLjj has joined #lisp
Oladon has quit [Quit: Leaving.]
jcowan has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
Bike has quit [Quit: Lost terminal]
DVSSA has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 255 seconds]
zmt00 has quit [Read error: Connection reset by peer]
zmt00 has joined #lisp
<verisimilitude>
The cl-ecma-48.lisp file is updated, but I've not updated the cl-ecma-48.tgz file, yet.
<ldb>
thanks
<ldb>
load success
<verisimilitude>
Alright then.
<verisimilitude>
I was careful to double check my searching and replacing, but do tell me if it doesn't work, which means I made a mistake somewhere with that.
<verisimilitude>
Then again, you were probably loading that to load ACUTE-TERMINAL-CONTROL, I suppose.
fikka has joined #lisp
FreeBirdLjj has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #lisp
fikka has joined #lisp
ismdeep has joined #lisp
kushal has quit [Read error: Connection reset by peer]
drunkencoder has quit [Read error: Connection reset by peer]
kushal has joined #lisp
drunkencoder has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
kajo has quit [Quit: WeeChat 2.1]
kajo has joined #lisp
BlueRavenGT has quit [Ping timeout: 240 seconds]
oleo has quit [Quit: Leaving]
kajo has quit [Client Quit]
kajo has joined #lisp
fikka has joined #lisp
BlueRavenGT has joined #lisp
fourier has joined #lisp
ldb has quit [Quit: ERC (IRC client for Emacs 25.3.2)]
fikka has quit [Ping timeout: 256 seconds]
ismdeep has quit [Remote host closed the connection]
BlueRavenGT has quit [Ping timeout: 276 seconds]
ismdeep has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
quazimodo has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 255 seconds]
FreeBirdLjj has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
ozzloy_ is now known as ozzloy
ozzloy has quit [Changing host]
ozzloy has joined #lisp
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
ismdeep has quit []
chiyosaki has quit [Ping timeout: 276 seconds]
saki has joined #lisp
saki has quit [Client Quit]
Karl_Dscc has joined #lisp
fikka has joined #lisp
failproofshark has quit [Remote host closed the connection]
saki has joined #lisp
fikka has quit [Ping timeout: 276 seconds]
d4ryus1 is now known as d4ryus
kajo has quit [Quit: WeeChat 2.1]
kajo has joined #lisp
pjb has quit [Remote host closed the connection]
FreeBirdLjj has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
pjb has joined #lisp
FreeBirdLjj has joined #lisp
DataLinkDroid has quit [Quit: Ex-Chat]
fikka has quit [Ping timeout: 240 seconds]
pjb has quit [Remote host closed the connection]
blurgh has quit [Quit: Leaving]
asarch has joined #lisp
<asarch>
One stupid question: how would you create a function at runtime? Can you give me please an example
<verisimilitude>
Use LAMBDA.
<k-hos>
eval would be one way I believe
<verisimilitude>
(defun example (n) (lambda (m) (+ n m)))
fikka has joined #lisp
<k-hos>
I assumed making the function body at runtime
Karl_Dscc has quit [Remote host closed the connection]
<LdBeth>
use high older function
<LdBeth>
AKA lambda or closure
fourier has quit [Ping timeout: 240 seconds]
<asarch>
Thank you
<asarch>
Thank you very much guys :-)
<verisimilitude>
You don't need EVAL, k-hos.
<verisimilitude>
You can use FUNCTION.
<LdBeth>
•high order•
asarch has quit [Quit: Leaving]
fikka has quit [Ping timeout: 260 seconds]
jibanes has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
<verisimilitude>
The cl-ecma-48.tgz is now also updated.
milanj has joined #lisp
<verisimilitude>
Actually, that's an old version of the code; I suppose I forgot to upload the latest version.
<verisimilitude>
Oh well; I'll do it later.
orivej has joined #lisp
wigust has joined #lisp
SuperJen has joined #lisp
JenElizabeth has quit [Read error: Connection reset by peer]
jibanes has joined #lisp
nika has quit [Read error: Connection reset by peer]
nika has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
makomo has quit [Ping timeout: 260 seconds]
<verisimilitude>
So, what are you all working on lately?
<beach>
minion: Please tell verisimilitude about SICL.
<minion>
verisimilitude: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL
<beach>
minion: Please tell verisimilitude about Cleavir.
<minion>
verisimilitude: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future
shrdlu68 has joined #lisp
<LdBeth>
beach: so, start from an assembler?
<beach>
No.
<beach>
I am using the full Common Lisp language to implement Common Lisp.
<LdBeth>
I guess I’ve read your paper
<beach>
The code generator of the compiler will obviously contain a few lines of assembler, of course.
<beach>
LdBeth: I don't think I have a published paper on the basic organization of SICL or Cleavir. I am waiting until I have a more complete system.
vlatkoB has joined #lisp
Jen has joined #lisp
SuperJen has quit [Read error: Connection reset by peer]
hiroaki has joined #lisp
<verisimilitude>
That's interesting, beach.
<beach>
Thanks.
<verisimilitude>
I also have ambitions to eventually create a Common Lisp system, but I'm currently working on a machine code development environment, so that's a ways away.
ym has joined #lisp
makomo has joined #lisp
<beach>
Are you saying that the current work is a step on the way?
<LdBeth>
I’m looking for reading materials on tech details of making such a CL compiler
<verisimilitude>
The machine code development environment is in-progress, which prevents me from using it to work on a Common Lisp implementation is what is meant.
<beach>
LdBeth: You won't find much detail in the literature.
<beach>
LdBeth: There is Lisp in Small Pieces of course.
<verisimilitude>
Now, beach, I take it this implementation uses :SICL in *FEATURES*, right?
<LdBeth>
But all I find useful is general designs such as Compliers Principles
<beach>
verisimilitude: I am trying to figure out how developing a Common Lisp system would depend on a machine code environment.
<beach>
verisimilitude: It is far from done, but it would probably use something like that, yes.
<beach>
LdBeth: Lisp in Small Pieces is a good book to start with.
<verisimilitude>
So, I intend to write most of the COMMON-LISP package in Common Lisp, implementing primitives and whatnot in machine code.
<verisimilitude>
Will this implementation provide its own mechanism to exit; if so, I'll add it to SHUT-IT-DOWN already.
<loke>
Is there a way to print a symbol using the conventions of readtable-case :INVERT, without actually changing the readtable?
<beach>
verisimilitude: Let's discuss that in a few years when I have made some more progress.
<verisimilitude>
Alright, but I may not be here in a few years.
<beach>
Oh well.
<verisimilitude>
Writing a language entirely in itself can be interesting, but I find it much easier to simply write the base in something else.
<verisimilitude>
You could implement the printing function yourself, loke.
<beach>
verisimilitude: I tried that technique and it is very painful.
<verisimilitude>
The readtable controls reading, not printing, of course.
<beach>
verisimilitude: I think you will agree with me once you try it.
<verisimilitude>
I find it much easier to think about having precise control over the compiled result if it's not written in itself.
<beach>
Good luck with that.
<verisimilitude>
Thank you.
<verisimilitude>
It's still many years away, though.
<LdBeth>
That’s why I think the assembler should come out first
<verisimilitude>
So, what is the draw of this SICL; how does it distinguish itself?
<beach>
verisimilitude: I'll follow your progress with great interest.
emaczen has quit [Read error: Connection reset by peer]
fnkey has quit [Quit: Leaving]
emaczen has joined #lisp
minion has quit [Disconnected by services]
minion has joined #lisp
anunnaki has quit [Ping timeout: 255 seconds]
hajovonta1 has joined #lisp
amerlyq has quit [Ping timeout: 276 seconds]
swflint has quit [Ping timeout: 276 seconds]
equalunique[m] has quit [Ping timeout: 248 seconds]
katco[m] has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
Shinmera- has joined #lisp
zooey has quit [Ping timeout: 268 seconds]
dirb has quit [Ping timeout: 248 seconds]
khrbt_ has quit [Ping timeout: 264 seconds]
em has quit [Ping timeout: 264 seconds]
epsyloN has quit [Ping timeout: 264 seconds]
anunnaki has joined #lisp
Arcaelyx_ has quit [Ping timeout: 255 seconds]
Jach[m]1 has quit [Ping timeout: 248 seconds]
cross_ has quit [Ping timeout: 240 seconds]
koisoke has quit [Ping timeout: 256 seconds]
hajovonta has quit [Ping timeout: 264 seconds]
flazh1 has quit [Ping timeout: 264 seconds]
dlowe has quit [Ping timeout: 264 seconds]
cgay_ has quit [Ping timeout: 264 seconds]
Cthulhux` has quit [Ping timeout: 264 seconds]
Shinmera has quit [Ping timeout: 264 seconds]
gigetoo has quit [Ping timeout: 264 seconds]
cmatei has quit [Ping timeout: 264 seconds]
sthalik has quit [Ping timeout: 264 seconds]
hajovonta1 is now known as hajovonta
jack_rabbit has quit [Ping timeout: 276 seconds]
felideon has quit [Ping timeout: 276 seconds]
segmond has quit [Ping timeout: 276 seconds]
swflint has joined #lisp
khrbt has joined #lisp
em has joined #lisp
em has quit [Changing host]
em has joined #lisp
koisoke has joined #lisp
gigetoo has joined #lisp
cgay has joined #lisp
felideon has joined #lisp
cmatei has joined #lisp
Arcaelyx has joined #lisp
segmond has joined #lisp
jack_rabbit has joined #lisp
Cthulhux has joined #lisp
flazh1 has joined #lisp
epsyloN has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
makomo has joined #lisp
jack_rabbit has quit [Max SendQ exceeded]
dlowe has joined #lisp
jack_rabbit has joined #lisp
zooey has joined #lisp
sthalik has joined #lisp
FAUST|siccegge has quit [Ping timeout: 256 seconds]
shrdlu68 has quit [Ping timeout: 240 seconds]
dyelar has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
Quetzal2 has joined #lisp
varjag has joined #lisp
Lord_Nightmare has quit [Ping timeout: 240 seconds]
shrdlu68 has joined #lisp
katco[m] has joined #lisp
dyelar has joined #lisp
equalunique[m] has joined #lisp
FAUST|siccegge has joined #lisp
emaczen has quit [Read error: Connection reset by peer]
emaczen has joined #lisp
dirb has joined #lisp
Jach[m]1 has joined #lisp
sthalik has quit [Ping timeout: 264 seconds]
quazimodo has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 240 seconds]
swflint has quit [Ping timeout: 276 seconds]
cross has joined #lisp
Lord_Nightmare has joined #lisp
verisimi` has joined #lisp
plll[m] has quit [Ping timeout: 245 seconds]
drunkencoder has quit [Ping timeout: 268 seconds]
quazimodo has joined #lisp
swflint has joined #lisp
RichardPaulBck[m has quit [Ping timeout: 260 seconds]
LdBeth has quit [Ping timeout: 260 seconds]
kammd[m] has quit [Ping timeout: 260 seconds]
cryptomarauder has quit [Ping timeout: 260 seconds]
CharlieBrown has quit [Ping timeout: 260 seconds]
kajo has quit [Ping timeout: 276 seconds]
shrdlu68 has quit [Ping timeout: 260 seconds]
jonh has quit [Ping timeout: 256 seconds]
shrdlu68 has joined #lisp
kajo has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
verisimilitude has quit [Remote host closed the connection]
sthalik has joined #lisp
Kundry_Wag has joined #lisp
fikka has joined #lisp
cryptomarauder has joined #lisp
drunkencoder has joined #lisp
FreeBirdLjj has joined #lisp
RichardPaulBck[m has joined #lisp
larsen has quit [Ping timeout: 264 seconds]
LdBeth has joined #lisp
CharlieBrown has joined #lisp
kammd[m] has joined #lisp
plll[m] has joined #lisp
Kundry_Wag has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 276 seconds]
larsen has joined #lisp
vaporatorius has joined #lisp
7GHAAIVKN has joined #lisp
aeth has quit [Read error: Connection reset by peer]
aeth has joined #lisp
_cosmonaut_ has joined #lisp
FreeBirdLjj has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
random-nick has joined #lisp
energizer has quit [Ping timeout: 240 seconds]
msb has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
jonh has joined #lisp
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
makomo has quit [Ping timeout: 276 seconds]
vaporatorius has quit [Quit: Leaving]
hajovonta has quit [Quit: hajovonta]
guaqua_ has quit [Ping timeout: 240 seconds]
hajovonta has joined #lisp
guaqua has joined #lisp
pierpa has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
pierpa_ has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
xaotuk has joined #lisp
fikka has joined #lisp
Kundry_Wag has joined #lisp
makomo has joined #lisp
FreeBirdLjj has quit [Ping timeout: 245 seconds]
wigust- has joined #lisp
Kundry_Wag has quit [Ping timeout: 245 seconds]
fikka has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #lisp
fikka has joined #lisp
wigust has quit [Ping timeout: 276 seconds]
Shinmera- is now known as Shinmera
DVSSA has quit [Ping timeout: 255 seconds]
FreeBirdLjj has quit [Ping timeout: 260 seconds]
guaqua has quit [Ping timeout: 240 seconds]
guaqua has joined #lisp
Harag has quit [Quit: Harag]
pierpa_ is now known as pierpa
xaotuk has quit [Ping timeout: 260 seconds]
guaqua has quit [Ping timeout: 240 seconds]
guaqua has joined #lisp
jstypo has joined #lisp
wxie has joined #lisp
FreeBirdLjj has joined #lisp
makomo has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 276 seconds]
dddddd has joined #lisp
xaotuk has joined #lisp
kushal has quit [Remote host closed the connection]
kushal has joined #lisp
quazimodo has quit [Ping timeout: 276 seconds]
<phoe>
#+() is dangerous when someone pushes NIL into *features*.
shrdlu68 has quit [Ping timeout: 264 seconds]
<phoe>
What is better than that? #+(or)?
shrdlu68 has joined #lisp
<jackdaniel>
that's why Newly Implemented Lisp implementation will never work reliably :)
<jackdaniel>
#+(or) is a portable solution for that, yes
<phoe>
thanks
<Shinmera>
I have yet to see an explanation as to why anyone would ever push NIL onto features to begin with.
<jackdaniel>
still that's not a good argument for doing things which are semantically wrong
makomo has joined #lisp
<Shinmera>
#+NIL is significantly easier to read than #+(or) in my opinion.
<phoe>
Shinmera: (pushnew nil *features*) is a magical way to break a lot of Lisp code in unexplainable ways
<jackdaniel>
just as C is easier to read because you don't have to count the parenthesis ;) I'd say it is a matter of getting used to it, but #+NIL being semantically wrong is a fact from the specification standpoint and the programmer's desired effect
<Shinmera>
phoe: Indeed, so why would anyone want to do that?
<jackdaniel>
that said – everyone is free to pick his own mistakes
<jackdaniel>
(and to defend them)
<shrdlu68>
What is the name of that lightweight https proxy people are fond of using?
<phoe>
Shinmera: mistakes happen
<Shinmera>
nginx?
<shrdlu68>
Shinmera: Nope, lighter.
<shrdlu68>
and not polipo.
<phoe>
and if I wanted to use code that's only incorrect in some circumstances rather than code that's correct period, I'd be using Javascript
<jackdaniel>
regarding block comments I find #; reader macro very readable
margeas has joined #lisp
<jackdaniel>
I'm not using it though
<jackdaniel>
(custom reader macro, not something present in the image by default)
<Shinmera>
phoe: Whether people write correct code or not has nothing to do with the language.
<phoe>
Shinmera: you're right.
<phoe>
jackdaniel: how does it differ from #| ?
python476 has joined #lisp
<Shinmera>
I assume it behaves like #+(or)
<phoe>
oh, I see
ebzzry_ has quit [Ping timeout: 256 seconds]
jstypo has quit [Quit: I think, therefore I drink]
ebzzry_ has joined #lisp
<jackdaniel>
hm, word "block" was misleading, my bad
<jackdaniel>
form comment, ignores next form which is read, so essentially #+(or)
Quetzal2 has quit [Ping timeout: 240 seconds]
<Shinmera>
Personally I just comment things out. With expand-region bound to C-q, that's just as quick as C-q M-;
wxie has quit [Remote host closed the connection]
cmecca1 has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
kerrhau has quit [Ping timeout: 265 seconds]
makomo has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 245 seconds]
cmecca1 has quit [Ping timeout: 260 seconds]
HDurer_ has quit [Remote host closed the connection]
fikka has joined #lisp
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
Quetzal2 has joined #lisp
damke has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
damke_ has quit [Ping timeout: 264 seconds]
isoraqathedh_ is now known as isoraqathedh
cmecca1 has joined #lisp
EvW has joined #lisp
igemnace has quit [Quit: WeeChat 2.1]
m00natic has joined #lisp
pagnol has joined #lisp
Quetzal2 has quit [Read error: Connection reset by peer]
ebzzry_ has quit [Ping timeout: 245 seconds]
Kundry_Wag has joined #lisp
Quetzal2 has joined #lisp
omilu has joined #lisp
guicho has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
guicho has quit [Client Quit]
shrdlu68 has quit [Ping timeout: 240 seconds]
shrdlu68 has joined #lisp
nika has quit [Remote host closed the connection]
nika has joined #lisp
Quetzal2 has quit [Quit: ?? Bye!]
nika has quit [Ping timeout: 264 seconds]
python476 has quit [Remote host closed the connection]
SlowJimmy has quit [Ping timeout: 240 seconds]
pierpa has joined #lisp
arkaros has joined #lisp
raynold has quit [Quit: Connection closed for inactivity]
Jen has quit [Read error: Connection reset by peer]
glv has joined #lisp
margeas has quit [Read error: Connection reset by peer]
margeas has joined #lisp
python476 has joined #lisp
al-damiri has joined #lisp
varjag has quit [Ping timeout: 255 seconds]
knicklux has joined #lisp
xaotuk has quit [Ping timeout: 240 seconds]
DVSSA has joined #lisp
_cosmonaut_ has quit [Ping timeout: 260 seconds]
<Xach>
Hmm, I wonder if there's an existing easy way to "refactor" the frequent use of a complex accessor into a local variable in emacs.
<Xach>
e.g. when (muxform (first (flob-interval rocket))) appears 7 times in a function
<beach>
You have to wait for Second Climacs.
xaotuk has joined #lisp
scymtym has joined #lisp
<_death>
didn't redshank have something for it
<loke>
Xach: symbol-macrolet?
<Xach>
M-x symbol-macrolet?
<phoe>
you'd need a global macro for that it seems
<Xach>
_death: i thought redshank was more simplistic. i'll revisit.
<Xach>
I don't think I need a macro at all. I want to bind a value instead of computing it over and over.
<schweers>
does quicklisp do any kind of security on the code it loads over the net?
<Xach>
Introduce a let binding and replace the text in a form.
<Xach>
schweers: no.
<schweers>
any plans to change that anytime?
<Xach>
schweers: in the near future archive integrity will be checked by signature and digest. but the composition of the archive is still a weak point.
<Xach>
there will be confidence that code comes from the expected place, but it might be bad code.
<Xach>
Anyway, I can do what I want fairly easily enough manually, with a combination of paredit, some typing, and query-replace.
<Xach>
I will check out redshank and do some googling.
Achylles has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
<_death>
Xach: I don't use redshank, but I'd likely do something like that with multiple-cursors
<Xach>
_death: thanks
Folkol has joined #lisp
fikka has joined #lisp
Bike has joined #lisp
GuilOooo has quit [Ping timeout: 240 seconds]
loke has quit [Remote host closed the connection]
nowhere_man has quit [Ping timeout: 265 seconds]
DVSSA has quit [Ping timeout: 264 seconds]
GuilOooo has joined #lisp
DVSSA has joined #lisp
<Xach>
/win 3
loke has joined #lisp
warweasle has joined #lisp
loke` has joined #lisp
loke has quit [Remote host closed the connection]
Trystam has joined #lisp
Tristam has quit [Ping timeout: 260 seconds]
Trystam is now known as Tristam
fikka has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
glv has quit [Quit: Leaving]
SaganMan has joined #lisp
_cosmonaut_ has joined #lisp
oleo has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
Kundry_Wag has joined #lisp
<MetaYan>
[1;3D[1;3C[1;3D[1;3C
jcowan has joined #lisp
igemnace has joined #lisp
heisig has quit [Quit: Leaving]
fikka has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
loke` has quit [Remote host closed the connection]
milanj has joined #lisp
python476 has quit [Remote host closed the connection]
<epony>
English is not my native language, now it tries to be. I always forget one word and have trouble remembering it, there is something wrong with it. Endorse is heard from marketing leaflets waving salesmen with a previous career. Thank you for reminding it to me, verisimilitude.
Kundry_Wag has quit [Ping timeout: 240 seconds]
loke has joined #lisp
python476 has joined #lisp
Cymew has quit [Remote host closed the connection]
Cymew has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
Cymew has quit [Ping timeout: 256 seconds]
Cymew has joined #lisp
shrdlu68 has joined #lisp
jealousmonk has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
sjl has quit [Quit: WeeChat 1.9.1]
Cymew has joined #lisp
Cymew has quit [Read error: Connection reset by peer]
Cymew has joined #lisp
<shrdlu68>
beach: Your LispOS paper is thought-provoking. Something has to play the role of a kernel, right?
<shrdlu68>
I mean, who'll do the scheduling? Call init? Handle devices?
<dlowe>
eventually you're going to have to do some inline asm in any kernel
<phoe>
shrdlu68: obviously a kernel will have to do that
<phoe>
but the fun part is that the kernel is an implementation detail in that paper
Cymew has quit [Ping timeout: 260 seconds]
<phoe>
as in, the paper AFAIR does not concern itself with scheduling/init/devices, so it can be done in any suitable manner
fikka has joined #lisp
<beach>
shrdlu68: Yes, there will be a collection of functions and such for dealing with that.
<beach>
shrdlu68: However, there does not have to a be a monolithic "kernel".
<beach>
Even Multics did not have such a thing.
Cymew has joined #lisp
hajovonta has quit [Quit: hajovonta]
<beach>
dlowe: There is very likely going to have to be a few lines of assembly-like code here and there. Sure.
<shrdlu68>
beach: A so-called micro-kernel?
<beach>
No, nor kernel at all.
<beach>
Depending on your terminology of course.
fikka has quit [Ping timeout: 240 seconds]
<Shinmera>
There is an environment, of course, but not a separate entity that acts as the kernel.
<beach>
Right.
Cymew has quit [Ping timeout: 240 seconds]
<beach>
I am thinking of taking inspiration from I/O Kit from Apple for device drivers, except using CLOS instead of C++ (of course).
<phoe>
shrdlu68: as far as I understand beach's reasoning here, there's *something* that does that. What exactly it is and what terminology is used to describe it is an implementation detail.
<shrdlu68>
So what do you call this not-kernel?
<beach>
shrdlu68: A collection of OS functions and objects.
<beach>
shrdlu68: Think a Common Lisp system where some of the code is dedicated to managing devices, scheduling threads, etc.
Cymew has joined #lisp
<beach>
You can name that collection if you like. I don't see the need myself.
rumbler31 has joined #lisp
Achylles has quit [Remote host closed the connection]
<beach>
In Multics, since every program was contained in a segment, the "kernel" was just a collection of segments. You could replace any such segment without rebooting, and every program would instantly see the difference. A device driver could be replaced for instance, or the code for some system call.
<shrdlu68>
So the Linux kernel is a collection of OS functions and objects, plus some other thing{,s}.
<beach>
Yes, but it also has the nasty property of being monolithic.
<beach>
You can't just go in and replace the code for a system call without rebooting.
<verisimi`>
Alright; you're welcome, epony.
<beach>
shrdlu68: You have to replace the entire thing, and then restart.
<Shinmera>
And the kernel lives in a separate world than user-space.
fikka has joined #lisp
<beach>
Though in the Lisp OS I am thinking of, since most applications would not be able to manipulate raw addresses, there is no particular need to make them execute in a non-privileged state.
Cymew has quit [Ping timeout: 264 seconds]
<beach>
Applications written in C using the traditional technique would still have to execute unprivileged.
<beach>
And they would not be able to manipulate Common Lisp objects directly.
<shrdlu68>
I see.
<beach>
verisimi`: SICL is different in that it uses more modern programming techniques than most existing implementations, simply because most implementations were written before CLOS existed. And the idea is to make the code simpler, so therefore easier to maintain, than existing systems. This property, I hope, will encourage improvements and optimizations that would be difficult in existing implementations.
fikka has quit [Ping timeout: 260 seconds]
<TMA>
beach: it is not entirely accurate. you can change any system call code at runtime, it is a matter of swapping in a different function pointer to the syscall dispatch table. It is just not pleasant and there are problems with C not having a usable notion of CHANGE-CLASS, so you are basically stuck with the data structures you already have
<beach>
TMA: Yes, you are right. Forgive me for my pedagogical simplifications.
<shrdlu68>
beach: But how do you tell a program is capable of manipulating raw addresses or not?
<Shinmera>
shrdlu68: It has to request permission to do so
<beach>
shrdlu68: Such a program would have to become a particular subclass of FUNCALLABLE-STANDARD-OBJECT.
<beach>
shrdlu68: And when such an object is called, it would remap the address space. Something that most functions would not need to do.
Cymew has joined #lisp
<shrdlu68>
The clearest difference between the kernel and the not-kernel to me at this point is that a not-kernel does not a need a reboot.
<beach>
shrdlu68: In Common Lisp you can't take some arbitrary instructions and create a callable function out of them. You have to go through COMPILE, or equivalent. In Lisp OS, to turn some C code into such a program, you would need some other similar compiler function and it would create the kind of object that remaps the address space.
<beach>
shrdlu68: Yes, that's pretty much it.
<beach>
shrdlu68: Again, depending on terminology, of course.
<beach>
When I hear or use "kernel", I think "monolithic piece of code created by a 1960s linker and that must be replaced entirely in order to update even a single instruction".
jealousmonk has quit [Quit: Leaving]
<beach>
TMA: And forgive me again for my pedagogical simplifications.
<shrdlu68>
beach: Say I have an arbitrary binary that I want to run on your OS, what's the sequence of events from executing it to seeing a "Hello, world!" printed on the screen?
<beach>
You won't be able to execute an "arbitrary binary".
damke_ has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
<beach>
shrdlu68: It is better if you think Common Lisp than if you think Linux.
<shrdlu68>
Ah, so I can only execute certain kinds of objects.
<beach>
shrdlu68: Yes, (defun hello-world () (format t "hello world")) for instance.
<beach>
It would create a Common Lisp function that would then be callable.
<TMA>
I use "kernel" for elevated privileges code (namely when the privilege elevation is hardware assisted)
<beach>
TMA: That is certainly a valid way to use the word.
Cymew has joined #lisp
<beach>
TMA: Then, in my Lisp OS, pretty much everything would be the "kernel".
damke has quit [Ping timeout: 264 seconds]
<TMA>
just mentioning it so that there is no confusion, not trying to impose that meaning
<beach>
I fully understand.
<beach>
And it's a perfectly valid use of the word. Just not very useful for the Lisp OS I am thinking of.
<TMA>
how would be "untrusted" code handled then?
<shrdlu68>
What if I have C source and want to run it on your OS?
<beach>
TMA: I just wrote that a few lines back.
<beach>
shrdlu68: I just wrote that a few lines back.
<TMA>
sure, it has to go through something like COMPILE to grant the privileges of executing the unsafe parts
<beach>
It would have to be compiled with a special compiler to create a special subclass of funcallable-standard-object.
<shrdlu68>
That's a lot of work, for all the C-source-like objects out there.
<beach>
But I am thinking that such code would be (and should be) unusual.
<beach>
shrdlu68: I am not planning to use those.
Cymew has quit [Ping timeout: 245 seconds]
<verisimi`>
Alright; that's interesting, beach.
DVSSA has quit [Read error: Connection reset by peer]
<beach>
verisimi`: Thanks.
verisimi` is now known as verisimilitude
DVSSA has joined #lisp
fikka has joined #lisp
nullniverse has joined #lisp
Cymew has joined #lisp
pyericz has joined #lisp
pyericz has quit [Client Quit]
yeticry has quit [Ping timeout: 265 seconds]
nullniverse has quit [Client Quit]
<TMA>
it becomes problematic when untrusted code can request compilation via the special compiler -- or at least that is my gut feeling
<beach>
No more than when a Unix program calls `cc'.
<TMA>
the whole purpose of the special compiler is that it allows marking some potentially unsafe code (code that uses raw addresses) as executable
yeticry has joined #lisp
<TMA>
beach: I have understood that it is more like cc followed by modprobe
<beach>
No, the purpose is to create a Common Lisp function that, when executed, changes the address mapping so that it can't do anything other than what a standard Unix program can do.
<shrdlu68>
The way I understand it, the system simply does not understand unsafe code. It does not know how to run unsafe code.
<beach>
It will run such code in its separate address space, just like Unix would do.
Cymew has quit [Ping timeout: 240 seconds]
nullniverse has joined #lisp
<beach>
And it would have to manipulate Common Lisp objects though "file descriptors", i.e. small integers.
<TMA>
oh, I have messed up the one that allows to patch the lisp-os's parts involving inline assembly/raw address with the C-programs enabling one
<beach>
I don't quite understand why the focus here is on something that I consider totally exceptional, that I would rather not see at all, but that MIGHT be required in SOME VERY unique cases.
Cymew has joined #lisp
<beach>
Patching the Lisp OS would be the same as patching a Common Lisp program, i.e. a function would be replaced, or a class would be redefined, etc.
<shrdlu68>
beach: It's a matter of perspective.
<beach>
shrdlu68: I think I am entitled to my perspective since I am the author of the specification.
<shrdlu68>
beach: Of course, I don't dispute that.
<shrdlu68>
beach: Do you have some examples of these unique cases?
<beach>
No. That's how unique they are.
beaky has quit [Read error: Connection reset by peer]
<beach>
It wouldn't be a matter of something that somehow is impossible to do the "standard" way.
<beach>
Just that someone would be lazy enough to want to incorporate C code rather than writing the equivalent Common Lisp code.
<shrdlu68>
It's a Lisp OS, after all.
<beach>
Exactly.
Cymew has quit [Ping timeout: 240 seconds]
<shrdlu68>
I think I get it now. It really is a Lisp OS. Not just an OS written in Lisp, but for running Lisp.
<beach>
Correct.
<beach>
I think that's in the introduction.
<beach>
<shrdlu68>
Kinda need to stress it.
beaky has joined #lisp
<beach>
First sentence of the intro in fact: A Lisp Operating System (LispOS for short) is not just another operating system that happens to be written in Lisp...
orivej has joined #lisp
Cymew has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
<shrdlu68>
It's like writing a javascript OS, and some fella comes along with his Lisp code...
<shrdlu68>
"How do I run this?"
EvW has quit [Ping timeout: 260 seconds]
<beach>
shrdlu68: That situation is no different from running Lisp on the "C operating system" called Unix.
Cymew has quit [Ping timeout: 260 seconds]
<shrdlu68>
I suppose.
<beach>
shrdlu68: It is a research project. I am fortunate not to have to care about things like that. It is a project where I attempt to show how much better things could be than what they are. If people don't want better things, there is not much I can do, and it won't say anything about the validity of the project.
<shrdlu68>
But not really. But Unix only needs machine instructions to run.
Cymew has joined #lisp
<beach>
Oh, no compiler?
<shrdlu68>
I can run an arbitrary binary.
<beach>
Sure, yes.
<beach>
And that's the reason for most of the security problems we are faced with today.
<shrdlu68>
It'll likely segfault, but the point is the system will be happy to exec it.
<beach>
Exactly, and that's the reason for most of the security problems we are faced with today.
jmercouris has joined #lisp
<beach>
... which in turn provoked absurdities such as ASLR.
<beach>
... which apparently don't work anyway, and only create problems for application writers.
<shrdlu68>
The implication being an OS open to running anything is inherently insecure.
Achylles has joined #lisp
<beach>
Yes, which is why this Lisp OS will not allow that.
Cymew has quit [Ping timeout: 260 seconds]
<jmercouris>
I disagree, ASLR is not an absurdity
<jmercouris>
just because people can make gadgets anyway doesn't invalidate ASLR
<TMA>
the security problems are that there is so much code in existence you cannot be expected to audit it before running it compounded with that the people do not behave nicely to each others
<jmercouris>
it is a good idea, though admittedely the implementation is lacking
<loke>
jmercouris: If your code can never arbitrarily access data by pointer, then it's not needed.
Cymew has joined #lisp
<jmercouris>
loke: Sure, but if someone elses code can, its still needed
<epony>
"If you find that you're spending almost all your time on theory, start turning some attention to practical things; it will improve your theories. If you find that you're spending almost all your time on practice, start turning some attention to theoretical things; it will improve your practice."
<beach>
jmercouris: You apparently have missed a few hours of discussion.
<jmercouris>
Yeah, I just skimmed a little bit above, if this conversation goes deeper and I missed a lot, sorry
<loke>
jmercouris: Whose code would that be? In Beach's OS, only the low level kernel code will have that capability (and even then, a very tiny bit of code since the OS itself is written in Lisp).
<beach>
jmercouris: The entire argument is that it is absurd because it fixes a problem that should have been fixed differently.
<jmercouris>
That I can agree with- kind of
<jmercouris>
if fixing it correctly means making a new OS, I think that is a cost very few are willing to bear
<shrdlu68>
jmercouris: The channel is logged, though.
<jmercouris>
I read the log
<epony>
I agree with beach, the problem should have been prevented instead of sorted that way.
<jmercouris>
loke: Not only low level code would have that ability, there are ways, especially if you have physical access to the hardware
<beach>
jmercouris: You apparently also missed my saying that this is a research project, so there is no real "cost" involved.
<jmercouris>
No, I understood, I'm not trying to start a flamewar or anything
<jmercouris>
I understand the time/place of your project, and I'm fully in agreement with you
<beach>
jmercouris: And you missed that most code in the OS I am thinking of would not have physical access to the hardware.
<jmercouris>
I just don't think ASLR is ridiculous
<loke>
jmercouris: sure. you could shut the machine down and reboot Linux or something. I'm putting words in beach's mounth here, but I'm pretty sure the project does not intend to prevent that.
<shrdlu68>
beach: Careful, McCarthy initially considered LISP only research...
<beach>
shrdlu68: I promise to be careful. Thanks. :)
<epony>
Some alan kay advocated quick cheap prototyping for engineering problems..
jcowan has quit [Remote host closed the connection]
jcowan has joined #lisp
<jmercouris>
loke: I didn't mean like that, I meant while the machine is running
Cymew has quit [Ping timeout: 265 seconds]
<beach>
jmercouris: And you missed that most code in the OS I am thinking of would not have physical access to the hardware.
<jmercouris>
so what's the abstraction layer?
<beach>
jmercouris: Common Lisp.
<jmercouris>
how can you write an OS that does not interface with the hardware?
<beach>
Did I say that?
<beach>
I think I wrote "most".
<jmercouris>
I guess not
Cymew has joined #lisp
<epony>
jmercouris the machine is a machine code interpreter, how you give the machine the operands is irrelevant given the machine runs and not halts
<loke>
beach: Are you going to use some microkernel or something as foundational base, or will you be writing the lowest level code yourself?
<jmercouris>
epony: Not sure what you're trying to say here, can you please restate?
<epony>
no.
<jmercouris>
I imagine it will have to be a microkernel, it makes a lot of sense anyway with the message passing
rumbler31 has joined #lisp
<jmercouris>
the whole idea of dispatching invokations, feels a lot like lisp
<epony>
I can only remove words from the above sentence
<beach>
jmercouris: No, we already discussed that. No microkernel.
<jmercouris>
epony: I understand your sentence, I don't understand your meaning within the context of this discussion
<jmercouris>
interesting, no microkernel... so, a hybrid?
<shrdlu68>
beach: Isn't there a LispOS similar to what you're proposing already in existence?
<shrdlu68>
Similar to some extent, I suppose.
<beach>
shrdlu68: Not that I know. If you find one, I would like to know.
<shrdlu68>
I mean, all those historical Lisp OSes...
<beach>
shrdlu68: Mezzano is a Lisp OS, but I think it is very different.
<beach>
shrdlu68: Well, Genera had no security whatsoever.
<jmercouris>
I think Lisp OS were not as beach describes, just OS' with function calls and paired with hardware optimized for common lisp operations
<jmercouris>
s/function calls/system calls
<beach>
Genera wouldn't fly in today's hostile Internet environment.
<shrdlu68>
But it only ran Lisp code, right?
<jmercouris>
Ultimately no, it must run assembly
<beach>
In fact, it had a C compiler
Cymew has quit [Ping timeout: 265 seconds]
<epony>
jmercouris I feel this is a beginner class in assembler.
<Shinmera>
beach: Have you read about capabilities in the context of security / permissions?
<jcowan>
One thing conspicuously missing from the protection scheme is any way to protect the user from themself.
<loke>
I wondering if Redox is trying to approach security in some similar way... (there are huge differences of cours,e but the fundamental idea that software should not be allowed to do the wrong thing seems similar)
<beach>
Shinmera: Yes, the Lisp OS pointers will be capabilities.
<Shinmera>
Great
<jcowan>
When everything is mutable and persistent, how are you to stop a brain fart from permanently ruining your system?
<jmercouris>
jcowan: restarts ;)
<jcowan>
You mean Lisp restarts, or machine restarts? The latter won't work.
<jmercouris>
I was joking firstly, but sure, you could write conditions for everything you are afraid of
<beach>
jcowan: That's a very good question. In the worst case, the global environment would have to be ditched.
Cymew has joined #lisp
<jmercouris>
you could still mess things up though, even with
<beach>
jcowan: I have not given enough thought to a system-wide undo.
<shrdlu68>
jcowan: Distribute with highly-available load-balancers ;)
<beach>
So here we go again. I suggest something that is way better than anything we have, but it is not accepted because I can't solve problems that no other operating system can solve today.
lnostdal has quit [Ping timeout: 255 seconds]
<jcowan>
Well, one of the things it loses is the ability to throw away a local world and start again, because there is only a global world.
<beach>
jcowan: Says who?
<loke>
beach: Hey, the more I think about your idea the more I like it.
<jcowan>
I think this can be solved by making the notion of worlds explicit.
<shrdlu68>
Hmm, what about a Linux kernel where the init is a Lisp interpreter?
<shrdlu68>
s/kernel/system
<jcowan>
You make global Lisp environments explicit, but that's not the same as a whole world, which is more like a VM today.
<beach>
loke: Thanks. :)
<jcowan>
I like the idea too, which is why I am being hard on it.
<epony>
I would not consider arguments from other environments is a decision to not accept something better, but difficulty understanding the foundation.
<epony>
*as*
<jcowan>
Welll put, epony.
fikka has quit [Ping timeout: 245 seconds]
<loke>
beach: In fact, I can't waint until you have something that boots :-)
<beach>
Sure. I am just amused by this psychological phenomenon that I recently discovered.
<beach>
loke: I'll work harder. Promise.
<jmercouris>
shrdlu68: why would you want to do that?
Cymew has quit [Ping timeout: 260 seconds]
<loke>
beach: :-)
<shrdlu68>
jmercouris: It seems to me that would essentially the same as beach's OS, only easier to implement.
<jcowan>
To modify a heavily entrenched system, you have to have something that is not only better at certain tasks, but better as a whole. Otherwise, it will always be cheaper to reform the existing system. The way of the revolutionary is very hard.
fikka has joined #lisp
<beach>
One idea that I have, and that I plan to implement in Second Climacs is to have an implementation of the first-class global environment protocol that allows for incrementally updated environments. Then most things can be undone by discarding selective increments.
Cymew has joined #lisp
<shrdlu68>
jmercouris: But the system would have to be rebooted to patch the kernel.
<jmercouris>
shrdlu68: The outcome would be effectively the same, but the security considersations would be very different, you'd still have the Linux kernel running
<beach>
jcowan: I have absolutely no illusion that people would be willing to change their habits and ditch their existing systems.
<shrdlu68>
Yes. But the init (which we've replaced with a Lisp interpreter) would be the only thing interfacing with the kernel.
<jcowan>
I meant a revolution in thinking, not necessarily in doing (though that may follow)
<beach>
I see.
<beach>
Big "may" though.
<jcowan>
Of course.
<beach>
Though this kind of discussion is good. It allows me to explain my ideas.
<jcowan>
Consider 1830 or 1848.
<loke>
shrdlu68: Using Linux would be overkill though, since the lispos wouldn't need processes for example. You'll just need threads.
<jmercouris>
shrdlu68: the kernel itself is a massive security vulnerability, anyone who cares about security is NOT running linux
<jmercouris>
loke: yes, but using the Linux kernel would give you access to a wealth of drivers
<loke>
shrdlu68: So if you want to take an existing kernel, you'll be better off with L4 or something like that.
<jcowan>
Anyone who really cares about security has abandoned the use of computers altogether.
<loke>
jmercouris: Yes That is the one main benefit.
<jmercouris>
jcowan: anyone who cares about security is using openbsd
<jcowan>
Throw them all down a big hole in the ground and fill the hole with cement. Then they will truly be secure.
<loke>
jmercouris: I care about security and I'm not using Openbsd. I'm writing this from my Qubes OS laptop.
<jmercouris>
Qubes OS, that's a name I havn't heard in a while
<loke>
Qubes relies on Xen on the lowest level.
<jmercouris>
Yeah, I am familiar with it
<loke>
jmercouris: QUbes OS 4 was just released.
<shrdlu68>
jmercouris: But, in the system I propose, no one else is making syscalls except the Lisp interpreter.
Cymew has quit [Ping timeout: 268 seconds]
<jmercouris>
shrdlu68: that's not the point, there are vulnerabilities within the kernel that do not require operations in userland, things that the kernel itself handles
<jcowan>
Scheme has global environments that are *almost* first class, though most Scheme programmers never give them a thought.
nowhere_man has joined #lisp
Cymew has joined #lisp
vibs29 has quit [Ping timeout: 265 seconds]
<jcowan>
The current big limitation is that there is no standardized way to create a novel mutable environment.
<shrdlu68>
jmercouris: Any OS has to contend with those kinds of risks, though, even a Lisp OS. At least some of it will be implemented in assembly.
vibs29 has joined #lisp
<jmercouris>
No doubt, there is no risk-free OS, I'm just pointing out that bringing in the Linux kernel brings a huge red target into a proejct
<jmercouris>
"security through obscurity" is not an accepted practice, but it works pretty well, until it doesn't :P
little_lisper has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
k-stz has joined #lisp
<epony>
jmercouris What is your current operating system? Do all operating systems have to be one and the same method, only slightly off in their implementation?
Jesin has joined #lisp
<little_lisper>
i want (read) to return nil if it does not gets any input. how do i do it?
<jmercouris>
epony: Why does it matter what my OS is?
Aritheanie has quit [Remote host closed the connection]
Aritheanie has joined #lisp
<jcowan>
beach: I also read the Cleavir manual. I was surprised to find no primops that do allocation. How does that work?
saki has quit [Quit: saki]
<epony>
Not having the same title does not necessarily mean multiple operating systems.
Cymew has quit [Ping timeout: 265 seconds]
<beach>
jcowan: Because they would not be inlined. It would be a function.
<jackdaniel>
shrdlu68: there is nothing heretic with implementing device drivers with C - why CL would be any different?
<epony>
Let's try the word environment.
<jackdaniel>
Linux does it all over the place :)
fourier has joined #lisp
Cymew has joined #lisp
saki has joined #lisp
<beach>
shrdlu68: I am seriously interested how you came to this conclusion, because you are not alone. And this "urban myth" is problematic to the entire Common Lisp community.
nsrahmad has joined #lisp
nsrahmad has quit [Client Quit]
Kundry_Wag has joined #lisp
<little_lisper>
thanks jackdaniel
varjag has joined #lisp
<beach>
jackdaniel: Did mean "inherent" rather than "heretic"?
<jackdaniel>
no, I meant heretic - it is not heresy to implement device drivers in languages not being assembler
<jackdaniel>
C is not assembler
<beach>
Ah, got it.
<beach>
little_lisper: I am not sure they understood what you meant by "not gets any input". You might need to explain that.
<jackdaniel>
I'm not sure how well such device drivers would play with GC (some have very tight time constraints) etc
<jmercouris>
jackdaniel: I imagine the performance would be like a sack of potatoes
<beach>
It would be just fine.
<Bike>
sacks of potatoes are performant in their own way
<jmercouris>
I guess it really depends on the device
<beach>
And the GC.
Cymew has quit [Ping timeout: 240 seconds]
<jmercouris>
I imagine something like a network driver would be fine, I can't imagine a graphical driver being that fast
<jackdaniel>
usually gfx drivers "just" program graphical cards
<froggey>
beach: you're developing a Lisp OS?
<beach>
froggey: Sort of.
<beach>
froggey: But I am doing it the other way around from your point of view.
<jackdaniel>
jmercouris: so all intense operations are not operating system responsibility
<beach>
froggey: Starting with the Common Lisp implementation.
Cymew has joined #lisp
<jmercouris>
jackdaniel: I see, thank you for sharing that, I am not so familiar with driver implementation
<jmercouris>
s/I am not so familiar/I know effectively nothing
<jackdaniel>
that may be a good hint, that stating bold opinions about performance may be risky
LiamH has joined #lisp
<jmercouris>
Well, I know some, and I venture I know enough to know why drivers are usually not written in Scala or Python
<jmercouris>
I don't think it is some big coincidence
<pierpa>
And even if it wasn't all done in hardware nowadays, it was already done in software 30 years ago in the lisp machines
<jackdaniel>
usually they are written in the same language kernel is written
<jcowan>
Mostly because we have no AOT compilers for those languages.
<jcowan>
(to machine code, I mean)
<jcowan>
There would be no problem in writing a kernel in Ada, and in fact that is the kind of thing Ada was designed for (real-time, bare metal)
<froggey>
beach: as opposed to developing the low-level/runtime parts first?
<beach>
Yes.
<beach>
froggey: And I think we have very different objectives too.
fourier has quit [Read error: No route to host]
<jmercouris>
jackdaniel: but do they *have* to?
<beach>
froggey: Also, as opposed to making it run on bare metal early on.
<froggey>
probably. I don't really have any set objectives, I'm just doing things that seem interesting to me
<beach>
froggey: Very good plan.
Cymew has quit [Ping timeout: 265 seconds]
<LdBeth>
jmercouris: as long as the final product is machine code, it’s okay to use any languages that could improve development efficiency
<jackdaniel>
jmercouris: in case of Linux - ostensibly yes, in case of Windows - definetely yes, in case of minix - if you mimic C abi you may write it in sbcl why not, other unixes - yes
<beach>
froggey: If you feel like it, you can read my specification. If not, that's fine too.
Jesin has quit [Quit: Leaving]
<little_lisper>
thanks to bring it up beach. i have a function which takes arbitary no of args. so i made a fn 'readlist' using read and cons. i want read to return nil if it does get any input i.e. no enter key press. i am a beginner
<froggey>
sure, link?
<jmercouris>
jackdaniel: and yet, why are there none in any other languages?
<jackdaniel>
I don't understand the question
<jmercouris>
I am likely to believe it is performance, that is often the reason people use C
<beach>
little_lisper: Yeah, that's not the question that was answered.
<jmercouris>
little_lisper: please use a pastebin service
<Shinmera>
Oh boy.
<LdBeth>
jmercouris: it’s actually nothing to do with run time efficiency, it’s just because Unix is popular and so does C
<little_lisper>
sorry jmercouris. i ll from now onwards
<jackdaniel>
true, C was defined for the very purpose of writing Unix
<LdBeth>
Bye
Cymew has quit [Ping timeout: 264 seconds]
Cymew has joined #lisp
Jesin has joined #lisp
<_death>
and unix was defined for the purpose of playing spacewar
stacksmith has quit [Read error: Connection reset by peer]
stacksmith1 has joined #lisp
m00natic has quit [Remote host closed the connection]
Cymew has quit [Ping timeout: 240 seconds]
<LdBeth>
www
Karl_Dscc has quit [Remote host closed the connection]
stacksmith1 is now known as stacksmith
Cymew has joined #lisp
<froggey>
jmercouris: in my experience, drivers in CL perform well enough. the biggest sticking point I've found is interaction between the GC & audio playback. if the audio driver doesn't refill the output buffer in time it causes stuttering
<LdBeth>
So, my plan is an assembler first, and a non-tradition GC subset of Lisp aims only for high performance, and then layers of Common Lisp for user space applications.
hhdave has quit [Ping timeout: 265 seconds]
d3j has joined #lisp
<semz>
froggey: purely out of interest, what experience is that with CL drivers?
<verisimilitude>
The C language is used for operating systems because people don't know better and believe others who don't know better.
<Xach>
seemz: froggey wrote mezzano, which is a lisp os. perhaps that's what informs his perspective.
cmecca1 is now known as cmecca
cmecca has quit [Changing host]
cmecca has joined #lisp
<semz>
oh lol, i didn't know he's the author
little_lisper has left #lisp ["leaving"]
Cymew has quit [Ping timeout: 276 seconds]
<froggey>
yes, that's it
Cymew has joined #lisp
<LdBeth>
Unix is a tragedy, people doesn’t know what they are doing and why
<jackdaniel>
maybe that's because I don't know better, but I find Unix philosophy (and implementaitons) decent and very usable
<verisimilitude>
The UNIX philosophy doesn't exist.
<jackdaniel>
but that's offtopic on our side :)
<verisimilitude>
It's ostensibly a brand name for simplicity.
<verisimilitude>
It's not simple, though, so it fails at that.
<Xach>
jackdaniel: the unix-haters handbook is pretty funny and written partly from lisp-machine users' point of view.
<verisimilitude>
You may as well claim that urinating follows the, say, jackdaniel philosophy; look at how popular and successful your philosophy is, jackdaniel.
<jackdaniel>
Xach: thanks, I've read parts of it
<jackdaniel>
verisimilitude: that's not very nice
<jeosol>
morning
<LdBeth>
And another part from a PDP-10 users’ perspective :F
<LdBeth>
Morning, jeosol
Cymew has quit [Ping timeout: 260 seconds]
<LdBeth>
Feel free to grab a cup of coffee
<jeosol>
morning LdBeth,
Achylles has quit [Remote host closed the connection]
Cymew has joined #lisp
<jeosol>
Anyone here running a CL application on AWS, if so how do you package things up there? docker? After power outage, I am thinking of starting move bits of my workflow to AWS or other options
<jeosol>
I tried installing SBCL, wine, etc, on an AMI instance, it was a pain doing this one by one
<jackdaniel>
jeosol: fpm for packaging, clon for binaries delivery and hand-written systemd scripts for daemoning
<jeosol>
thanks anyinfo appreciated
<jeosol>
ok, thanks jackdaniel
<jeosol>
after managing to install sbcl, i figured there as to be a better way of doing this.
<verisimilitude>
You dislike that I used your name for the example, jackdaniel?
<jeosol>
I would just want to package everything so that on new instance, setup will be easy
<jackdaniel>
verisimilitude: I disliked you have used eristic 'argument', and yes, I disliked you have used my name in your 'example'
<jeosol>
jackdaniel: is fpm the same as Effing Package Management ?
Cymew has quit [Ping timeout: 240 seconds]
<jackdaniel>
jeosol: possibly, I can't say
<jackdaniel>
never used epm
<jeosol>
ok, I searched google, and a fpm github showed up, no worries, i think he just titled his .README that
<verisimilitude>
I can be quite eristic when I want, jackdaniel; anyway, I'll avoid using your name, then.
<jeosol>
I will take a look
nowhere_man has quit [Ping timeout: 260 seconds]
<jmercouris>
LdBeth: Unix is a tragedy? I'm not going to take the bait
Cymew has joined #lisp
<jmercouris>
froggey: interesting, so is GC the only issue?
Cymew has quit [Ping timeout: 264 seconds]
<LdBeth>
jmercouris: you don’t have to take it seriously, because life itself is a tragedy
<LdBeth>
But, you do have to take it
<ecraven>
what's a good way to pretty-print lisp code into an epub or a black-and-white pdf for reading on an e-reader?
Cymew has joined #lisp
<LdBeth>
ecraven: I think pygments can do that
<jackdaniel>
ecraven: cl-pdf is raw but very useful for creating pdf
<LdBeth>
For ePub
<ecraven>
the main thing is somehow fontifying strings and stuff, otherwise a plain text file would suffice
fikka has quit [Ping timeout: 264 seconds]
<froggey>
jmercouris: for performance, and then only really for things with tight time-constraints like audio
sellout has joined #lisp
_cosmonaut_ has quit [Ping timeout: 276 seconds]
schweers has quit [Ping timeout: 255 seconds]
Cymew has quit [Ping timeout: 260 seconds]
jcowan has quit [Ping timeout: 260 seconds]
<froggey>
interrupts are another issue because the handlers run in a constrained environment (no allocation, no touching memory that might be paged out)
Kundry_Wag has quit [Remote host closed the connection]
<froggey>
but this isn't a big deal because interrupt handler generally don't do much. usually they just acknowledge the interrupt on the hardware and wake up a worker thread to do the real work
Kundry_Wag has joined #lisp
drunkencoder has quit [Ping timeout: 268 seconds]
<cgay>
You've prompted me to look over my collection of old unix haters quotes. Good stuff.
typose_ has joined #lisp
<cgay>
I'll just quote the shortest one here: "Unix, the 'Nam of operating systems."
Patternmaster has quit [Ping timeout: 268 seconds]
Cymew has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
<epony>
Different goals, tools, targets. It is not all the same.
<epony>
(regarding device drivers, I think earlier it was mentioned that the target is Common Lisp)
Kundry_Wag has joined #lisp
lnostdal has joined #lisp
shka has joined #lisp
<frgo>
beach: I pulled the LispOS github repo. How do I create the Documentation?
fikka has joined #lisp
d4ryus has quit [Quit: WeeChat 2.0.1]
Cymew has quit [Ping timeout: 256 seconds]
d4ryus has joined #lisp
Cymew has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Kundry_Wag has quit [Remote host closed the connection]
fikka has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
Patternmaster has joined #lisp
Kundry_W_ has joined #lisp
Cthulhux has quit [Changing host]
Cthulhux has joined #lisp
<LdBeth>
frgo (IRC): I think you just need to get LaTeX setup and run make
<makomo>
the relevant part is: `GNU emacs used to greet Symbolics users with the message "In doing business with Symbolics, you are rewarding a wrong."` :-)
<makomo>
searching for the quote literally, google only gives 3 results in total, weird
dented42 has joined #lisp
Jesin has quit [Quit: Leaving]
<cgay>
heh
Cymew has quit [Ping timeout: 276 seconds]
Cymew has joined #lisp
fikka has joined #lisp
kolko has quit [Ping timeout: 260 seconds]
Cymew has quit [Ping timeout: 260 seconds]
nmajo has quit [Remote host closed the connection]
kolko has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
Cymew has joined #lisp
Bike_ has joined #lisp
Bike has quit [Disconnected by services]
Bike_ is now known as Bike
fikka has quit [Ping timeout: 276 seconds]
nmajo has joined #lisp
Cymew has quit [Ping timeout: 245 seconds]
Cymew has joined #lisp
pjb has joined #lisp
Cymew has quit [Ping timeout: 245 seconds]
Cymew has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
damke_ has joined #lisp
lnostdal has quit [Ping timeout: 264 seconds]
Kundry_Wag has quit [Remote host closed the connection]
<phoe>
Shinmera: there's no bcrypt in ironclad though.
wigust- has quit [Ping timeout: 240 seconds]
<Shinmera>
but there is pbkdf2
<phoe>
yep
hjudt_ has quit [Read error: Connection reset by peer]
hjudt has joined #lisp
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
epony has joined #lisp
<_death>
it also has scrypt
vlatkoB_ has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 268 seconds]
pierpa has quit [Ping timeout: 260 seconds]
terpri has quit [Ping timeout: 255 seconds]
cylb has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
Kundry_W_ has joined #lisp
kajo has quit [Quit: WeeChat 2.1]
kajo has joined #lisp
lnostdal has quit [Ping timeout: 268 seconds]
python476 has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 276 seconds]
lnostdal has joined #lisp
al-damiri has quit [Quit: Connection closed for inactivity]
figurehe4d has joined #lisp
fourier has joined #lisp
python476 has joined #lisp
EvW1 has joined #lisp
karswell has joined #lisp
quazimodo has joined #lisp
rumbler31 has quit [Ping timeout: 260 seconds]
Karl_Dscc has quit [Remote host closed the connection]
<jcowan>
beach: I have just read the chapter on data representation in the SICL manual, and I would urge you to seriously consider the possibilities of nanboxing on 64-bit systems.
Bike has quit [Ping timeout: 260 seconds]
makomo has quit [Quit: WeeChat 2.0.1]
makomo has joined #lisp
Cymew has joined #lisp
python476 has quit [Remote host closed the connection]
Cymew has quit [Ping timeout: 240 seconds]
lnostdal has quit [Ping timeout: 256 seconds]
nosaj88 has joined #lisp
nosaj88 has quit [Remote host closed the connection]
makomo has quit [Quit: WeeChat 2.0.1]
sjl has quit [Ping timeout: 260 seconds]
random-nick has quit [Remote host closed the connection]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
DataLinkDroid has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
lnostdal has joined #lisp
lnostdal has quit [Ping timeout: 264 seconds]
k-stz has quit [Remote host closed the connection]
fikka has joined #lisp
terpri has joined #lisp
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Bike has joined #lisp
lnostdal has joined #lisp
<LdBeth>
jcowan: I guess such a feature is supposed to be implemented as a contrib module
<jcowan>
It's a pretty fundamental decision, and controls whether 64-bit floats can be implemented as immediates.
<jcowan>
Currently they cannot.
d3j has quit [Quit: Page closed]
<jcowan>
("Currently" = "As documented in the manual")
<Bike>
is there any chance we could have the log links split up more? both clients i use mess it up
foom has joined #lisp
<Bike>
how would you even implement nanboxing as a contrib
<jcowan>
it might make it feasible for IEEE 64-bit floats to be Lisp single floats
lnostdal has quit [Ping timeout: 264 seconds]
foom2 has quit [Ping timeout: 276 seconds]
<Bike>
to be nan it has to have all 1s in the exponent, or no? seems like that's cutting down the number of bits a fair amount
<jcowan>
It's because 64-bit addresses are really only 48 bits wide, or only 47 bits if you exclude kernel space and are not on Solaris.
fikka has quit [Ping timeout: 260 seconds]
<Bike>
well i'm thinking of fixnums. shorter fixnums is fine, but not being able to do arithmetic immediately might be sorta painful.
<Shinmera>
I'd wager that doubles are far less common in Lisp than integers.
<jcowan>
Yes, you'd be limited to 47-bit fixnums too, but how serious is that?
<Bike>
it's not, the other part is more concerning.
* jcowan
is confused (what other part?)
makomo has joined #lisp
<Shinmera>
if the exponent is all ones you can't just directly operate on integers like you can when they're lsb-0 tagged.
<Younder>
I saw jackdaniels McClim demo yesterday. Pretty cool. Is there a emacs style editor for McClim as the is in CLIM?
fikka has joined #lisp
<jcowan>
I agree that doubles are less frequent, but I submit that is because Lisp defaults to single-float and single-float is typically IEEE 32.
<Shinmera>
Even if the read float type was double float I would still say that integers are far more common.
lnostdal has joined #lisp
<jcowan>
Yes, certainly. I'm just wondering if there isn't suitable trickery for doing integer arithmetic without masking off the high tag.
<jcowan>
(I am not Ben Bitdiddler.)
fikka has quit [Ping timeout: 260 seconds]
<Shinmera>
I'm also not sure I like the idea that performing a bad float op that results in a NAN could suddenly produce something that is interpreted as something other than a double by the implementation.
Kundry_W_ has quit [Remote host closed the connection]
<jcowan>
Only if it generates a signaling NaN, which AFAIK no CPUs do.
<Shinmera>
I would think the quiet NAN is exactly the problem, no? Since then you get a value back that is NAN and might have whatever in the remaining bits.
<aeth>
I think double-floats are less common than they could be in part because CL is not the best language for double-floats.
<aeth>
And most people are very multilingual.
<aeth>
Even so, double-floats will probably be increasingly common over time.
<jcowan>
Shinmera: In this scheme, quiet NaNs are doubles (whose value is the abstract NaN); signaling NaNs are pointers, fixnums, characters, or whatever.
<jcowan>
Chicken uses a low-bit 1 tag for fixnums (no nanboxing) and does not appear to suffer much performance loss for it.
<Shinmera>
So how do you catch if a double op produces a nan? Check manually after every double op?
<jcowan>
The assumption is that no double op will produce a signaling NaN
<jcowan>
this is certainly true of hardware operations, and you can make it true in software by construction.
<Shinmera>
Yeah but you, as a software man, would probably want to know when your ops suddenly produce nans
<Shinmera>
I really like that SBCL converts floating point signals into conditions.
damke has quit [Ping timeout: 264 seconds]
damke has joined #lisp
pjb has quit [Remote host closed the connection]
<jcowan>
FP signals are unrelated to signaling NaNs. As far as I can tell, nobody uses the latter for anything.
pjb has joined #lisp
makomo has quit [Quit: WeeChat 2.0.1]
<Shinmera>
I see
<jcowan>
The whole point of quiet NaNs is that it makes floating-point numbers into a monad
<jcowan>
a variant of Maybe in which Just x is a number and None is a quiet NaN
lnostdal has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
<jcowan>
(perhaps Either would be a better analogy, although it is not guaranteed that when you put a QNan through an arithmetic operation, you get the same QNan (in the sense of bits) back.
rumbler31 has quit [Remote host closed the connection]
fourier has quit [Ping timeout: 264 seconds]
LiamH has quit [Quit: Leaving.]
pjb has quit [Remote host closed the connection]
<jcowan>
"Unrelated" was too strong. Attempting to operate on an SNaN does indeed raise an FPE *provided* the processor supports that and the FPP is configured to raise SIGFPE (or equivalent) in that case.
<jcowan>
But typically it is not.
<LdBeth>
Younder: Climacs.
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
safe has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
safe has quit [Read error: Connection reset by peer]
BlueRavenGT has quit [Quit: Leaving]
BlueRavenGT has joined #lisp
ldb has joined #lisp
fikka has joined #lisp
makomo has joined #lisp
Arcaelyx has quit [Read error: Connection reset by peer]
Arcaelyx_ has joined #lisp
kerrhau has joined #lisp
kerrhau has quit [Changing host]
kerrhau has joined #lisp
lnostdal has joined #lisp
warweasle has joined #lisp
Kaisyu has joined #lisp
SaganMan has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 264 seconds]
cylb has quit [Ping timeout: 256 seconds]
makomo has quit [Quit: WeeChat 2.0.1]
makomo has joined #lisp
sjl has joined #lisp
Pixel_Outlaw has joined #lisp
sjl has quit [Ping timeout: 260 seconds]
<jcowan>
Shinmera: So no, I don't always want eager detection of problems. Sometimes retrospective detection is the Right Thing, as an invalidity in one part of a complicated operation may not affect the rest of it. But I hasten to add that I am not really a floating-point programmer myself, and am simply repeating what I have been told.
Folkol has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Kundry_Wag has joined #lisp
fikka has joined #lisp
dented42 has joined #lisp
xbleez has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 264 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
xbleez has left #lisp [#lisp]
rumbler31 has quit [Remote host closed the connection]