wiselord has quit [Read error: Connection reset by peer]
wiselord has joined #lisp
oni-on-ion has joined #lisp
LiamH has quit [Quit: Leaving.]
PuercoPope has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 250 seconds]
xkapastel has joined #lisp
trufas has quit [Ping timeout: 268 seconds]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enrio has joined #lisp
failproofshark has quit [Ping timeout: 265 seconds]
EvW has quit [Ping timeout: 250 seconds]
misterwhatever has joined #lisp
nowhereman has quit [Ping timeout: 276 seconds]
enrio has quit [Quit: Leaving]
pfdietz22 has joined #lisp
Arcaelyx has quit [Quit: Arcaelyx]
mooch has quit [Ping timeout: 252 seconds]
notzmv has joined #lisp
dongcarl has quit []
<jasom>
Let's say I want to define a new component type for asdf. Once I have done so, I can use it with :components ((foo:bar ...) *but* now a :defsystem-depends-on is insufficient to pull in my customization becaue the whole form is read before the defsystem-depends-on is processed. What's the solution?
trufas has joined #lisp
chipolux has quit [Ping timeout: 245 seconds]
trufas has quit [Ping timeout: 276 seconds]
<fe[nl]ix>
jasom: see iolib.asd
chipolux has joined #lisp
<jasom>
One solution is to put a defpackage at the top of the .asd file; I'm looking at iolib.asd now
bitmapper has quit [Ping timeout: 240 seconds]
poet has joined #lisp
bitmapper has joined #lisp
amerigo has quit [Quit: Connection closed for inactivity]
<jasom>
aha a setf on (find-class)
<jasom>
thanks fe[nl]ix
swflint has quit [Ping timeout: 252 seconds]
<fe[nl]ix>
jasom: it's a bizzare and possibly non-composable solution
<fe[nl]ix>
I suggest namespacing the class using some clear suffix
<jasom>
prefix?
<fe[nl]ix>
or that
<fe[nl]ix>
make sure it's unlikely someone else will use that same keyword
<jasom>
It's only non-composable in the sense that it imposes a single global namespace. Package names have the exact same problem.
mooch has joined #lisp
<fe[nl]ix>
indeed
<jasom>
in terms of name collisions there's not really any difference between :foo-bar and foo::bar, but packages provided other forms of isolation that are useful.
<fe[nl]ix>
yep
swflint has joined #lisp
swflint has quit [Ping timeout: 250 seconds]
bitmapper has quit [Ping timeout: 268 seconds]
swflint has joined #lisp
misterwhatever has quit [Quit: misterwhatever]
wiselord has quit [Ping timeout: 265 seconds]
mooch has quit [Read error: Connection reset by peer]
xkapastel has quit [Quit: Connection closed for inactivity]
<LdBeth>
helo
ebzzry_ has quit [Read error: Connection reset by peer]
Kevslinger has joined #lisp
orivej has joined #lisp
EvW1 has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
quazimodo has joined #lisp
entel has quit [Quit: Connection closed for inactivity]
Arcaelyx has joined #lisp
vibs29 has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
shifty has joined #lisp
quazimodo has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
quazimodo has joined #lisp
vsync has quit [Ping timeout: 240 seconds]
Oladon has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
trufas has joined #lisp
quazimodo has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
trufas has quit [Ping timeout: 265 seconds]
<beach>
Good morning everyone!
vibs29 has left #lisp [#lisp]
jeosol has joined #lisp
Arcaelyx has quit [Quit: Arcaelyx]
orivej has quit [Ping timeout: 268 seconds]
quazimodo has joined #lisp
gxt has quit [Remote host closed the connection]
oxford has quit [Remote host closed the connection]
quazimodo has quit [Read error: Connection reset by peer]
gxt has joined #lisp
Arcaelyx has joined #lisp
gravicappa has joined #lisp
oxford has joined #lisp
<ebrasca>
Good morning!
quazimodo has joined #lisp
Remavas has quit [Ping timeout: 265 seconds]
<Josh_2>
Mornin
quazimodo has quit [Read error: Connection reset by peer]
quazimodo has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
quazimodo has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
ebzzry_ has joined #lisp
stepnem_ has quit [Ping timeout: 250 seconds]
Jesin has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
vsync has joined #lisp
stepnem has joined #lisp
Lord_of_Life has quit [Ping timeout: 245 seconds]
Lord_of_Life has joined #lisp
EvW1 has quit [Ping timeout: 245 seconds]
Remavas has joined #lisp
Oladon has quit [Quit: Leaving.]
stepnem has quit [Ping timeout: 276 seconds]
stepnem has joined #lisp
quazimodo has joined #lisp
libertyprime has joined #lisp
trufas has joined #lisp
trufas has quit [Ping timeout: 265 seconds]
gxt has quit [Ping timeout: 260 seconds]
Arcaelyx has quit [Quit: Arcaelyx]
poet has quit [Ping timeout: 245 seconds]
dale has quit [Quit: My computer has gone to sleep]
Oladon has joined #lisp
vlatkoB has joined #lisp
Dibejzer has quit [Quit: Leaving]
flamebeard has joined #lisp
shka_ has joined #lisp
freedom has quit [Remote host closed the connection]
sauvin has joined #lisp
freedom has joined #lisp
Inline has quit [Quit: Leaving]
entel has joined #lisp
JohnMS_WORK has joined #lisp
shka_ has quit [Ping timeout: 276 seconds]
ljavorsk has joined #lisp
Oladon has quit [Quit: Leaving.]
Kevslinger has quit [Quit: Connection closed for inactivity]
scymtym has quit [Ping timeout: 265 seconds]
gxt has joined #lisp
clothespin_ has joined #lisp
downfall has joined #lisp
clothespin has quit [Ping timeout: 268 seconds]
ebzzry_ has quit [Remote host closed the connection]
jfb4_ has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
dddddd has quit [Remote host closed the connection]
ebzzry_ has joined #lisp
ljavorsk has quit [Ping timeout: 250 seconds]
jonatack has quit [Read error: Connection reset by peer]
<jackdaniel>
so now you may define a closure in clojure running on clozure?
<jackdaniel>
what a time to be alive!\
<pjb>
Yep.
<no-defun-allowed>
I'm going to need some closure on when the closure punning will end.
<jackdaniel>
closure in clojure running on clozure by means of cloture°
<no-defun-allowed>
Then can one run CL on Clozure and create a loop of transpilation?
<no-defun-allowed>
*Clojure
Smokitch has joined #lisp
Duuqnd has joined #lisp
wiselord has joined #lisp
<flip214>
hmmm, so I need to provide a project "common lisp open source software using recommended evals" or something like that - and call it cloßure, I guess.
Cymew has joined #lisp
brettgilio has joined #lisp
ebzzry_ has quit [Remote host closed the connection]
brown121407 has quit [Ping timeout: 265 seconds]
clothespin__ has joined #lisp
brown121408 has joined #lisp
<pjb>
flip214: you want to be in the clojuration!
clothespin_ has quit [Ping timeout: 240 seconds]
trufas has joined #lisp
trufas has quit [Ping timeout: 265 seconds]
Bourne` has joined #lisp
Bourne has quit [Ping timeout: 268 seconds]
libertyprime has quit [Ping timeout: 268 seconds]
flamebeard has quit [Remote host closed the connection]
<phoe>
clo*ure
flamebeard has joined #lisp
jonatack has joined #lisp
davepdotorg has joined #lisp
<jackdaniel>
clo?ure is arguably more correct (if I understand your pun right)
frgo has quit [Ping timeout: 268 seconds]
<flip214>
jackdaniel: no shell patterns, please.... /^clo.ure$/
<jackdaniel>
:-)
wxie has joined #lisp
trufas has joined #lisp
hhdave has joined #lisp
flamebeard has quit [Remote host closed the connection]
<phoe>
/^[Cc]lo.ure$/
<phoe>
/^[Cc]lo.ure$/
trufas has quit [Ping timeout: 240 seconds]
heisig has joined #lisp
trufas has joined #lisp
Hofpfister has joined #lisp
trufas has quit [Ping timeout: 276 seconds]
ebzzry_ has joined #lisp
smokeink has quit [Ping timeout: 265 seconds]
fynzh[m] has quit [Remote host closed the connection]
EuAndreh[m] has quit [Read error: Connection reset by peer]
munksgaard[m] has quit [Remote host closed the connection]
eriix[m] has quit [Remote host closed the connection]
keep-learning[m] has quit [Read error: Connection reset by peer]
malaclyps[m] has quit [Read error: Connection reset by peer]
no-defun-allowed has quit [Remote host closed the connection]
akanouras has quit [Read error: Connection reset by peer]
LdBeth has quit [Read error: Connection reset by peer]
shaakyamuni[m] has quit [Remote host closed the connection]
dtw has quit [Write error: Connection reset by peer]
katco has quit [Remote host closed the connection]
djeis[m] has quit [Remote host closed the connection]
gxt has quit [Remote host closed the connection]
flamebeard has joined #lisp
frgo has joined #lisp
gxt has joined #lisp
brown121408 has quit [Read error: Connection reset by peer]
libertyprime has joined #lisp
brown121407 has joined #lisp
hhdave has quit [Ping timeout: 268 seconds]
ebzzry_ has quit [Remote host closed the connection]
hhdave has joined #lisp
wxie has quit [Ping timeout: 250 seconds]
oni-on-ion has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
LdBeth has joined #lisp
ebzzry_ has joined #lisp
misterwhatever has joined #lisp
trufas has joined #lisp
trufas has quit [Ping timeout: 250 seconds]
davepdotorg has quit [Ping timeout: 268 seconds]
davepdotorg has joined #lisp
davepdotorg has quit [Client Quit]
davepdotorg has joined #lisp
davepdotorg has quit [Client Quit]
Necktwi has quit [Quit: leaving]
Necktwi has joined #lisp
smokeink has joined #lisp
Lord_of_Life has quit [Read error: Connection reset by peer]
nowhereman has quit [Remote host closed the connection]
nowhereman has joined #lisp
<jackdaniel>
and then two commits in 2016, a few in 2015
<jackdaniel>
etc
<pfdietz>
Ok.
<jackdaniel>
it doesn't look like an abandonware (though not very active)
<p_l>
parenscript is about easy writing of JS from CL. There's also JSCL which attempts to implement a proper CL in JS
trufas has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
jonatack has quit [Read error: Connection reset by peer]
jonatack has joined #lisp
nowhereman has quit [Remote host closed the connection]
jonatack has quit [Read error: Connection reset by peer]
CrazyEddy has quit [Remote host closed the connection]
LiamH has joined #lisp
zmv has quit [Read error: Connection reset by peer]
zmv has joined #lisp
libertyprime has quit [Read error: No route to host]
<Cymew>
easye: I need that myself sometimes, and fare was kind enought to provide some debug suggestions which Robert has now put in the manual. That is good, as I will forget my note about it... ;)
poet has joined #lisp
raghavgururajan has joined #lisp
raghavgururajan has quit [Read error: Connection reset by peer]
nydel has quit [Read error: Connection reset by peer]
<phoe>
yes, it had a brief hiccup
bacterio has quit [Read error: Connection reset by peer]
trufas has joined #lisp
rgherdt has quit [Remote host closed the connection]
flamebeard has quit []
trufas has quit [Ping timeout: 276 seconds]
nika_ has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
gxt has quit [Remote host closed the connection]
jfb4 has quit [Ping timeout: 276 seconds]
trufas has joined #lisp
jfb4 has joined #lisp
jmercouris has quit [Remote host closed the connection]
phoe has quit [Remote host closed the connection]
clothespin__ has quit [Ping timeout: 250 seconds]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
FreeBirdLjj has quit [Remote host closed the connection]
jfb4 has quit [Ping timeout: 240 seconds]
grewal has quit [Ping timeout: 250 seconds]
grewal has joined #lisp
jfb4 has joined #lisp
FreeBirdLjj has joined #lisp
stux|RC has quit [Ping timeout: 245 seconds]
_phoe has joined #lisp
FreeBirdLjj has quit [Ping timeout: 240 seconds]
<ebrasca>
Hi , I like to make hunchentoot work in Mezzano
<ebrasca>
It don't gives webpage in my browser and it don't give any error.
Josh_2 has joined #lisp
iovec has joined #lisp
trufas has quit [Ping timeout: 268 seconds]
debhead has joined #lisp
debhead has left #lisp [#lisp]
brown121407 has joined #lisp
brown121408 has quit [Read error: Connection reset by peer]
stux|RC has joined #lisp
orivej has quit [Ping timeout: 268 seconds]
trufas has joined #lisp
gareppa has joined #lisp
EvW has quit [Ping timeout: 246 seconds]
bacterio has joined #lisp
Jesin has joined #lisp
dddddd has joined #lisp
amerigo has joined #lisp
Davd33 has joined #lisp
frgo has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
frgo has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
Davd33 has quit [Remote host closed the connection]
frgo has quit [Read error: Connection reset by peer]
frgo_ has joined #lisp
jfb4_ has joined #lisp
makomo has joined #lisp
frgo_ has quit [Ping timeout: 268 seconds]
jfb4 has quit [Ping timeout: 245 seconds]
Lord_of_Life_ has joined #lisp
igemnace has quit [Ping timeout: 268 seconds]
Lord_of_Life has quit [Ping timeout: 245 seconds]
ggole has quit [Quit: Leaving]
My_Hearing has joined #lisp
Lord_of_Life_ is now known as Lord_of_Life
<flip214>
is there some game programming environment like Unity in CL?
trufas has quit [Quit: WeeChat 2.6]
<oni-on-ion>
flip214, perhaps check in #lispgames
<oni-on-ion>
they seem up to date on what CL gamedev tools are happenin
sjl_ has quit [Quit: WeeChat 2.3-dev]
enrio has quit [Ping timeout: 250 seconds]
sjl_ has joined #lisp
shka_ has joined #lisp
varjag has joined #lisp
gaqwas has quit [Quit: Leaving]
anlsh has joined #lisp
bacterio has quit [Read error: Connection reset by peer]
ljavorsk has quit [Ping timeout: 240 seconds]
<anlsh>
Hi, can anyone tell me how exactly I can submit a patch to the Alexandria gitlab? I went over to the merge requests tab, saw the "email new merge request" tab, clicked it, and it gave me an email.
<anlsh>
It seems like I need to send an email to the generated address with a subject of the url to my branch
<_phoe>
anish: do you have a gitlab.common-lisp.net account?
<anlsh>
But also the "fork" button on the project is disabled, so do I just need to create a bare repo to push it up?
<anlsh>
I do
<_phoe>
anish: the fork button is disabled if you have hit the max project limit on your account
<_phoe>
poke ehuelsmann on #common-lisp.net, he'll be able to help
<anlsh>
I've got nothing on this account though, I created it yesterday :|
<_phoe>
oh
hhdave has quit [Quit: hhdave]
<_phoe>
in this case, poke ehuelsmann on #common-lisp.net, he'll be able to help
<anlsh>
gotcha
<_phoe>
he's the admin of that gitlab instance
failproofshark has joined #lisp
Smokitch has joined #lisp
Smokitch has quit [Client Quit]
refusenick has joined #lisp
<anlsh>
alexandria's readme should also be updated too, since it still says to submit patches to the mailing list
<refusenick>
Are there any resources on compilers for image-based languages like Lisp?
<_phoe>
anish: correct
<_phoe>
feel free to make an issue on the repository stating that :D
<refusenick>
The "cells" library has me thinking: would it make sense to have a graph database consisting of queries to a network of CLOS objects?
<refusenick>
I suppose it's more interesting as a thought experiment than something practical.
<Xach>
refusenick: there were once commercial dbs like that
rippa has joined #lisp
manualcrank has quit [Ping timeout: 250 seconds]
ober has quit [Ping timeout: 250 seconds]
<Xach>
refusenick: Statice was one, from Symbolics
<refusenick>
Xach: You're kidding me. That's the coolest thing I've heard all week.
sauvin has quit [Ping timeout: 250 seconds]
<Xach>
There's a chapter about it in a database book I have, let me find the name of it...
<refusenick>
I'll look for them on my own, but do you know if there are whitepapers on it?
<refusenick>
oh, awesome!
grobe0ba_ has joined #lisp
<Xach>
Hmm, I'll have to dig a little. I can't find it from a quick googling. It's on my bookshelf somewhere.
grobe0ba has quit [Ping timeout: 250 seconds]
manualcrank has joined #lisp
nowhere_man has joined #lisp
<Xach>
Joe Marshall also wrote a series of blog posts about versioned persistent CLOS objects in a project called ChangeSafe. I think the code (not finished?) is public for that, too.
<refusenick>
Lisp is a compiled language, but for the kind of long-running, distributed systems becoming more and more common, a homoiconic representation seems ideal for runtime optimization. Is there any work on CLOS and partial evaluation?
<Xach>
refusenick: like recompiling hotspots at runtime?
ober has joined #lisp
<refusenick>
Xach. Yeah. Automatically tracking versioned objects and picking up on optimizations missed by the programmer could be a good way to compete with static languages.
<Xach>
Nobody is doing that for Common Lisp implementations.
<Xach>
Everything is AOT-oriented.
<refusenick>
I know I'll get flak for this, but I can't see CL being the language of the future because it doesn't have security.
<_phoe>
security as in?
<Xach>
What kind of security should it add?
<refusenick>
I know there's ongoing work to support it via first class environments, but it might be easier from the ground up, with support for CL built atop.
<_phoe>
this is a big sore point, correct, and first-class global environments are meant to solve exactly this.
<_phoe>
Nowadays, if you have access to a Lisp REPL, you basically own the Lisp image.
<_phoe>
This effectively prevents multiuser usage of a single image.
<refusenick>
Might it be easier to build a language wholely out of first class environments a la Kernel or Io and provide a compiler to this from a minimal core of CL (tagbodies and other primitives) to compile each module into its own proper sandbox and fix interop issues as they arise?
<_phoe>
refusenick: SICL is a project that has it in scope.
<refusenick>
Right, SICL. I remember seeing that name the last time I read about this.
<_phoe>
Or rather, you don't need to build a language wholely out of FCE - you simply need a way to chroot like in all unices.
<_phoe>
This is your global environment, and you have no way to break yourself out of it.
<_phoe>
You only have access to CONS, CAR, CDR and NIL here.
<_phoe>
Good luck!
<_phoe>
Something like that should mostly be enough.
<_phoe>
But then
<_phoe>
With all the interactve languages like Python, Ruby, Perl and so on
<_phoe>
Do *these* have security?
<_phoe>
They all have REPLs, they can even have their own REPL servers listening
<refusenick>
They don't, but anything new should.
<Xach>
I am not overfond of "everyone else is bad" arguments
<refusenick>
Lisp is already better than them, but it's still not good enough.
<_phoe>
Why would Lisp be any different?
<_phoe>
I can agree with that
<Xach>
I am also not especially persuaded by "if you don't do X lisp will die", because Lisp has been dead for a while.
<Shinmera>
This is probably gonna get drowned out in the current debate, but I made some good progress with Alloy and am really starting to like the widget system I came up with. https://www.youtube.com/watch?v=8-NJrJqDkrQ
manualcrank has quit [Quit: WeeChat 1.9.1]
amerlyq has quit [Quit: amerlyq]
<Xach>
Shinmera: cool. what does it use as the backend?
sauvin has joined #lisp
brown121407 has quit [Ping timeout: 246 seconds]
<Xach>
by that i mean what is drawing on the screen and making windows and such
amerlyq has joined #lisp
<Shinmera>
It's a chain of Alloy -> Simple -> SimpleGL -> Trial (my game engine). You can also use an independent GLFW backend for the last part, or implement the Simple interface for different renderers.
<Xach>
cool
brown121408 has joined #lisp
enrio has joined #lisp
<Shinmera>
The GLFW backend allows making multiple top-level windows, but Trial does not (because I don't need it there)
<refusenick>
Shinmera: I was about to dive into learning everything about CEPL to make an animation backend for Maxima, but now I'm conflicted!
<Shinmera>
Hah
<refusenick>
This also seems like exactly what I'm looking for!
<refusenick>
The Lisp Curse strikes again!
<refusenick>
All the options are good! aaaah
<Shinmera>
I wouldn't mind a CEPL backend for Alloy :)
<refusenick>
So CEPL is lower-level?
<Shinmera>
Sort of
<refusenick>
Alloy is more like a quick GUI/graphics development framework?
<Shinmera>
Alloy is a UI toolkit, yes.
<Shinmera>
The SimpleGL extension it provides and I use directly uses GL though, whereas CEPL wraps all GL access in a lispy framework
<refusenick>
CEPL is probably what I'm looking for, then. Maxima is perfect for me until I want to animate something.
<refusenick>
(kind of a problem since I want to study dynamical systems, plus I'm taking a class on differential equations next semester)
zcid has quit [Ping timeout: 250 seconds]
zcid has joined #lisp
<refusenick>
A lot of Lisp projects seem to work out of the box with SLIME. I use Sly, though, because I like the defaults. I remember having some issues connecting to Stumpwm when I used that. Anyone here live-program Maxima with SLIME or Sly?
nika_ has quit []
<refusenick>
I might use Alloy if the Haskell animation I'm working on doesn't pan out. I briefly tried to animate things in a Jupyter notebook with Python as a backup, but it didn't work. Maybe I've just gotten used to Emacs, but Lisp works correctly on first tries than most other languages. I didn't go for it this time because I wasn't aware of a ready-made high level visualization library!
brown121407 has joined #lisp
brown121408 has quit [Ping timeout: 250 seconds]
kini has quit [Ping timeout: 250 seconds]
<refusenick>
on first tries more than*
<Shinmera>
Cool
dru1d has quit [Ping timeout: 250 seconds]
dru1d has joined #lisp
makomo has quit [Quit: WeeChat 2.4]
brown121408 has joined #lisp
kini has joined #lisp
brown121407 has quit [Ping timeout: 276 seconds]
Nistur has quit [Ping timeout: 245 seconds]
<refusenick>
If a Lisp program restricted itself to CLOS objects (no non-object primitives like car and cdr - not everything is CLOS, right?), could it be 1-to-1 mapped to a pure OO language like Dylan?
gareppa has quit [Quit: Leaving]
<refusenick>
A more relevant question, I suppose, is whether CLOS and related systems have a equational theory.
<Shinmera>
every value is an object
<Shinmera>
and every object has a class
<refusenick>
Are cons cells objects?
<Shinmera>
I said every value, yes.
<Xach>
Not everything is an instance of standard-class
<Shinmera>
Not every object is an instance of a standard-class, however.
* Xach
hi5
* Shinmera
smacks
jfb4_ has quit [Remote host closed the connection]
<refusenick>
lol
Nistur has joined #lisp
<Shinmera>
Anyway, CLOS does not map well to message passing because of multimethods
karlosz has joined #lisp
<Shinmera>
But you can implement more traditional OO systems in CLOS.
Tordek has quit [Ping timeout: 265 seconds]
bacterio has joined #lisp
<refusenick>
Shinmera: For what it's worth, unrestricted message passing also appears to be in a rut equationally - Io's semantics are equivalent to Kernel's, IIRC, and we still don't know how to AOT compile that (mostly because there's no incentive to study it)
Tordek has joined #lisp
<refusenick>
More restricted message passing systems like the pi calculus have equational theories and can be compiled though, IIRC
<refusenick>
Are the capabilities of reflective multiple dispatch OO systems a strict superset of message passing objects?
<Shinmera>
I don't know about any rigorous mathematical formulations of CLOS.
lucasb has joined #lisp
Nistur has quit [Ping timeout: 240 seconds]
Nistur has joined #lisp
Tordek has quit [Remote host closed the connection]
<refusenick>
I remember reading that Shutt proved that unrestricted reflection a la 3 Lisp (the real target of Wand's paper against fexprs) truly does have a trivial equational theory because the ability to jump between levels exceeds what continuations can represent, or something like that.
<refusenick>
Clearly, CLOS is compiled, though, and I even remember seeing papers on optimizing it.
Nistur has quit [Ping timeout: 252 seconds]
Nistur has joined #lisp
vibs29 has joined #lisp
Tordek has joined #lisp
vibs29 has left #lisp [#lisp]
rpg has joined #lisp
shka_ has quit [Ping timeout: 265 seconds]
<beach>
refusenick: There is no reason to construct the full language from a subset of it. You can still have first-class global environments with appropriate sandboxing.
<beach>
refusenick: Also, CLOS is neither compiled nor interpreted. It is a specification of a bunch of protocols.
trufas has joined #lisp
aeth has quit [Read error: Connection reset by peer]
<beach>
refusenick: I use SICL first-class global environments for bootstrapping right now. That way I can isolate the host Common Lisp system from the SICL code that I am building. But in the final system, I plan to use first-class global environments to restrict access to internal code that could make the entire system unsafe.
<beach>
For example, the default environment will not let the user have access to the code generator of the compiler.
ljavorsk has joined #lisp
aeth has joined #lisp
<refusenick>
beach: Doesn't it make optimization and reasoning about your code easier if it's built from a few composable core components?
<refusenick>
I'm not a functional programming zealot, but I appreciated Backus's line of argument.
EvW has joined #lisp
<beach>
refusenick: That might be true, but it turns out to be extremely painful to restrict oneself to a language subset. I can't do it myself. And it makes maintenance very delicate because every module must have documentation about what subset it is allowed to be written in.
<beach>
refusenick: I am betting that the metacircular aspect of Common Lisp can be exploited in order to increase confidence in its correction.
<refusenick>
beach: You have much more experience with this than me (I have almost none - I've just read about it for now). Do tell.
<beach>
I am not sure what else to tell you. But there are two examples in our ELS paper on bootstrapping that shows the twisted code that is required if you must start with a subset.
<refusenick>
To me, Lisp's killer feature is how its semantic uniformity allows boilerplate composition to be conveniently hidden while still mapping surface syntax to operational semantics in a 1-to-1 fashion.
<beach>
It has to do with defining classes if you don't already have their metaclasses available.
<ebrasca>
beach: What if you need to change this core components?
<beach>
ebrasca: I change the definition and re-run the boot procedure.
<refusenick>
What about a prototype-based system? I've read about multiple dispatch systems built on prototypical objects.
<beach>
I have already done it.
<refusenick>
It might even have been your stuff! Strandh, right?
<beach>
ebrasca: Doing it the other way is worse. Then you will very likely have the same information duplicated, so you have to make sure every occurrence is in sync.
<beach>
refusenick: Yes, that's me. But I don't recall having written anything about prototype systems.
<refusenick>
It must have been somewhere else, then.
<beach>
refusenick: Maybe you mean something else by "prototypical objects".
<refusenick>
like Self, JS, Io, etc
<beach>
Ah, yes. Not my stuff.
<refusenick>
I know I've seen a hobbyist blogpost about it
ax-hack has joined #lisp
brown121408 has quit [Read error: Connection reset by peer]
<refusenick>
I think there was an academic paper, but it's been over 2 years since I seriously read into this.
<beach>
refusenick: I can write (defclass t () (:metaclass built-in-class)) in SICL. That is very metacircular, but on the other hand, the meaning is clear, and it is my job to make it operational, which is what the boot procedure is for.
brown121408 has joined #lisp
<refusenick>
Would it make sense to define the image itself as a directed graph database of definitional dependencies on other objects, with restrictions on circularity?
Dibejzer has joined #lisp
Dibejzer has quit [Remote host closed the connection]
<beach>
refusenick: Not if you want CLOS. The graph is inherently circular.
<beach>
refusenick: But during bootstrapping, I build an acyclic graph, and then "tie the knot" (which is a paper I am working on).
wiselord has quit [Ping timeout: 240 seconds]
<refusenick>
So graph theory does figure into it?
<beach>
Not really. The thing is that the graph is best described as the result of the execution of Common Lisp code. Hence the bootstrapping procedure. Otherwise, one might have imagined just describing the graph as such. But that's not practical.
<beach>
It is not practical, because of changes as a result of maintenance.
<refusenick>
If one has a graph of CLOS objects at runtime, can the set of them be separated into equivalence classes based on their relations to one another?
<refusenick>
There are optimization techniques such as supercompilation which symbolically execute code to optimize it. That might be a good fit.
<beach>
If you want to add a slot to a class, if you have a direct description of the graph, it would be impractical to edit it with confidence. But you can add a slot to a DEFCLASS form and rerun the boot procedure.
<refusenick>
It sounds like it's inching closer and closer to a database's functionality for maintaining consistency and such
<beach>
You can always define equivalence classes. But I doubt they would be semantically meaningful, other than the trivial relations.
<refusenick>
I don't know a terrible lot about CS and programming, certainly not databases, so feel free to correct me.
<beach>
I don't know much about databases either, other than the ones that are commonly used and that in my opinion do something that I absolutely do not want.
<refusenick>
I'm not thinking of SQL databases, but rather graph databases
<beach>
Yes, I understand.
<beach>
Anyway, I'm off to spend time with my (admittedly small) family. I'll be back tomorrow morning (UTC+1). Feel free to join #sicl for more technical discussions about my design choices.
<refusenick>
Will consider! I have lots of work to do myself, but maybe I'll find some time.
<beach>
OK, see you around.
ljavorsk has quit [Remote host closed the connection]
ljavorsk has joined #lisp
sauvin has quit [Remote host closed the connection]
iovec has quit [Quit: Connection closed for inactivity]
jonatack has quit [Read error: Connection reset by peer]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
failproofshark has quit [Ping timeout: 265 seconds]
Davd33 has quit [Remote host closed the connection]
andrei-n has joined #lisp
mrcom has joined #lisp
andrei-n has quit [Client Quit]
rpg has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
lottaquestions has joined #lisp
anlsh has quit [Remote host closed the connection]
<lottaquestions>
Hi all, I am new to lisp, and was going through someone else's code, and he appears to be instantiating an object of a class in a list without using the make-instance function. How does that work? I thought make-instance was mandatory when instantiating objects in CLOS
<copec>
Can you show us what you're looking at lottaquestions
<jackdaniel>
if you decide to publish it please ping me when you do
<_death>
sure.. maybe before the next ELS :)
<copec>
So is that emacs using imgui? Or something you rolled?
<copec>
Or a split between an emacs and the imgui pipeline
<jackdaniel>
copec: it seems that imgui runs in the same process as ecl while emacs provides only swank connection
<_death>
copec: it's a C++ program that embeds ECL and has imgui and bindings for it.. it loads a lisp file, and the first thing that's done is to start a swank server, so I can connect using slime
<_death>
copec: it wouldn't be difficult to add a text editor and be "self contained" but for development emacs/slime is just too convenient :)
<copec>
Very cool work _death
<lottaquestions>
I concur copec, very cool work _death
<_death>
thanks
<_death>
ecl great, so thanks to jackdaniel :)
<copec>
I haven't attempted anything but simple FFI, how difficult was it to get ecl+imgui going?
<_death>
copec: it's not difficult, but writing bindings by hand can be a bit boring so progress is slow.. a few functions every now and then, and it's about 80% complete now, I'd say
EvW has quit [Ping timeout: 250 seconds]
manualcrank has joined #lisp
brettgilio has quit [Ping timeout: 246 seconds]
srji has quit [Read error: Connection reset by peer]
Oddity has quit [Ping timeout: 240 seconds]
oni_on_ion has quit [Ping timeout: 250 seconds]
Oddity has joined #lisp
iovec has joined #lisp
drl has quit [Ping timeout: 250 seconds]
pfdietz has left #lisp [#lisp]
nowhere_man has joined #lisp
jonatack has joined #lisp
enrio has quit [Ping timeout: 268 seconds]
hiroaki has joined #lisp
LiamH has quit [Quit: Leaving.]
drl has joined #lisp
ebrasca has quit [Remote host closed the connection]
quazimodo has quit [Ping timeout: 240 seconds]
bitmapper has quit [Remote host closed the connection]