binghe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language <http://cliki.net/> logs:<https://irclog.whitequark.org/lisp, http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.0, CMUCL 21b, ECL 16.1.3, CCL 1.11.5
porky11 has quit [Remote host closed the connection]
jstypo has quit [Ping timeout: 268 seconds]
jstypo has joined #lisp
Fare has quit [Ping timeout: 248 seconds]
pfdietz has joined #lisp
thallia has quit [Ping timeout: 240 seconds]
thallia has joined #lisp
<pfdietz> sbcl.org is back
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
Fare has joined #lisp
Patternmaster has joined #lisp
windblow has left #lisp [#lisp]
wigust has quit [Ping timeout: 260 seconds]
Baggers has quit [Remote host closed the connection]
Cymew has joined #lisp
<smokeink> "How to get fontified, hyperlinked ANSI CL standard inside your GNU Emacs: http://users-phys.au.dk/harder/dpans.html" <- this link is dead, does anyone know a mirror ?
fikka has quit [Ping timeout: 256 seconds]
Cymew has quit [Ping timeout: 256 seconds]
Bike has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
<drmeister> Nested macros expand to the same result if you expand them outside in vs inside out - correct?
markong has quit [Ping timeout: 240 seconds]
<drmeister> I guess it's not necessarily true - because a macrofunction can do whatever it wants to the forms that it is passed
fikka has joined #lisp
rumbler31 has joined #lisp
solyd has quit [Quit: solyd]
thallia has quit [Ping timeout: 264 seconds]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pierpa has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
rumbler31 has quit [Ping timeout: 248 seconds]
sjl has joined #lisp
Khisanth has quit [Ping timeout: 260 seconds]
mlf|2 has joined #lisp
mlf has quit [Ping timeout: 240 seconds]
thallia has joined #lisp
bmgxc9 has joined #lisp
Fare has quit [Ping timeout: 268 seconds]
Fare has joined #lisp
fikka has joined #lisp
<pfdietz> Right. Macro expansion is top-down, unless a macro dives in an manually macroexpands deep subforms first.
<pfdietz> But to do that right involves knowing what subforms are actually forms
fikka has quit [Ping timeout: 256 seconds]
Khisanth has joined #lisp
eschatologist has quit [Ping timeout: 276 seconds]
eschatologist has joined #lisp
fikka has joined #lisp
thallia has quit [Ping timeout: 265 seconds]
thallia has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
clog has quit [Ping timeout: 248 seconds]
thallia has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
smurfrobot has joined #lisp
thallia has joined #lisp
dto has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
smurfrobot has quit [Ping timeout: 276 seconds]
thallia has quit [Ping timeout: 248 seconds]
thallia has joined #lisp
Achylles has quit [Quit: Leaving]
arescorpio has joined #lisp
hel-io has quit []
fikka has joined #lisp
rumbler31 has joined #lisp
igemnace has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
clog has joined #lisp
thallia has quit [Ping timeout: 268 seconds]
d4ryus1 has joined #lisp
thallia has joined #lisp
d4ryus has quit [Ping timeout: 248 seconds]
<fouric> Does anyone know anything about CI using Roswell and cl-prove?
fikka has joined #lisp
<fouric> I'm trying to set up CI on GitLab. My project uses cl-sdl2. Running `~/.roswell/bin/run-prove monolith.asd monolith-test.asd` yields
<fouric> Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING {10005585B3}>: Component "sdl2" not found
<fouric> ...I would provide more information, but there's so *much* of it that I don't know where to start.
fikka has quit [Ping timeout: 260 seconds]
<fouric> ...well, running run-prove multiple times eventually installs all of the systems and it succeeds...
fikka has joined #lisp
dto has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 268 seconds]
thallia has quit [Ping timeout: 256 seconds]
thallia has joined #lisp
safe has joined #lisp
fikka has joined #lisp
smurfrobot has joined #lisp
damke has joined #lisp
dieggsy has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 256 seconds]
damke_ has quit [Ping timeout: 264 seconds]
iridioid has joined #lisp
smurfrobot has quit [Remote host closed the connection]
iridioid has quit [Ping timeout: 264 seconds]
thallia has quit [Ping timeout: 248 seconds]
thallia has joined #lisp
fikka has joined #lisp
Karl_Dscc has joined #lisp
thallia has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 240 seconds]
thallia has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
lemoinem has quit [Read error: Connection reset by peer]
lemoinem has joined #lisp
fikka has joined #lisp
iridioid has joined #lisp
arescorpio has quit [Quit: Leaving.]
eschatologist has quit [Ping timeout: 264 seconds]
Karl_Dscc has quit [Remote host closed the connection]
eschatologist has joined #lisp
sjl__ has joined #lisp
al-damiri has quit [Quit: Connection closed for inactivity]
sjl__ has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 268 seconds]
mason has joined #lisp
AxelAlex has joined #lisp
Oladon has joined #lisp
Arcaelyx_ has joined #lisp
Arcaelyx has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
madrik has joined #lisp
schoppenhauer has quit [Ping timeout: 265 seconds]
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
schoppenhauer has joined #lisp
fikka has joined #lisp
madrik` has joined #lisp
madrik has quit [Ping timeout: 240 seconds]
smurfrobot has quit [Remote host closed the connection]
nowhereman_ has joined #lisp
marusich has joined #lisp
nowhere_man has quit [Ping timeout: 240 seconds]
iridioid has quit [Quit: WeeChat 2.0.1]
thallia has quit [Ping timeout: 248 seconds]
whoman has quit [Read error: Connection reset by peer]
dddddd has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 248 seconds]
pierpa has quit [Quit: Page closed]
whoman has joined #lisp
python476 has joined #lisp
thallia has joined #lisp
krwq has joined #lisp
nika has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
vtomole has joined #lisp
fikka has joined #lisp
SaganMan has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
Arcaelyx has joined #lisp
Arcaelyx_ has quit [Ping timeout: 248 seconds]
test1600 has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
Fare has quit [Ping timeout: 240 seconds]
damke has quit [Ping timeout: 264 seconds]
damke has joined #lisp
Bike has quit [Quit: Lost terminal]
saki has quit [Read error: Connection reset by peer]
saki has joined #lisp
damke has quit [Ping timeout: 264 seconds]
damke has joined #lisp
vtomole has quit [Ping timeout: 260 seconds]
smurfrobot has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
smurfrobot has quit [Ping timeout: 256 seconds]
smurfrobot has joined #lisp
xoreaxeax has joined #lisp
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
LocaMocha has joined #lisp
smurfrobot has quit [Ping timeout: 268 seconds]
White_Flame has quit [Quit: No Ping reply in 180 seconds.]
White_Flame has joined #lisp
aindilis` has quit [Remote host closed the connection]
aindilis has joined #lisp
Oladon has quit [Quit: Leaving.]
vlatkoB has joined #lisp
nika has quit [Quit: Leaving...]
fikka has joined #lisp
smurfrobot has joined #lisp
python476 has quit [Ping timeout: 268 seconds]
nullman has quit [Ping timeout: 240 seconds]
nullman has joined #lisp
kotrcka has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 256 seconds]
makomo has joined #lisp
smurfrobot has quit [Ping timeout: 260 seconds]
madrik` has quit [Remote host closed the connection]
smurfrobot has joined #lisp
marusich has quit [Ping timeout: 276 seconds]
smurfrobot has quit [Ping timeout: 240 seconds]
Pixel_Outlaw has quit [Quit: Leaving]
smurfrobot has joined #lisp
fikka has joined #lisp
smasta has joined #lisp
mjl_ has joined #lisp
<beach> Good morning everyone!
fikka has quit [Ping timeout: 276 seconds]
saki has quit [Ping timeout: 248 seconds]
saki has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
d4ryus1 is now known as d4ryus
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
sjl__ has joined #lisp
AX31_A13X has joined #lisp
smurfrobot has quit [Remote host closed the connection]
AxelAlex has quit [Ping timeout: 256 seconds]
sjl__ has quit [Ping timeout: 240 seconds]
smurfrobot has joined #lisp
safe has quit [Read error: Connection reset by peer]
fisxoj has joined #lisp
quazimodo has quit [Ping timeout: 276 seconds]
smokeink has quit [Remote host closed the connection]
smurfrobot has quit [Remote host closed the connection]
DeadTrickster has left #lisp ["Leaving"]
test1600_ has joined #lisp
smasta has quit [Ping timeout: 248 seconds]
krwq has quit [Remote host closed the connection]
test1600 has quit [Ping timeout: 264 seconds]
wigust has joined #lisp
_whitelogger has joined #lisp
_whitelogger has joined #lisp
<phoe> I am waking up. It is time for me to tend to the so-called real life today.
<beach> Sorry to hear that. :)
<phoe> I know that you can imagine how it feels. (:
<beach> I can, yes.
fourier has joined #lisp
<phoe> I will try to do it quickly and properly, so I can get back to parentheses.
<beach> Good plan.
mlf|2 has quit [Read error: Connection reset by peer]
nowhere_man has joined #lisp
bmgxc9 has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 248 seconds]
milanj_ has quit [Quit: This computer has gone to sleep]
nowhereman_ has quit [Ping timeout: 256 seconds]
<pjb> Hire some secretary or buttler to tend to your so-called real life!
<phoe> I shall, as soon as I'm rich enough.
makomo has quit [Ping timeout: 256 seconds]
makomo has joined #lisp
fisxoj has quit [Quit: fisxoj]
epony has quit [Read error: Connection reset by peer]
damke has quit [Ping timeout: 264 seconds]
Murii has joined #lisp
raynold has quit [Quit: Connection closed for inactivity]
<fourier> for that you need to abandon cl and start to learn java :)
<pjb> Not necessarily. But it may be less progressive.
<phoe> I already know Java.
<phoe> That's how I want to get rich.
<fourier> yep C# is also a way :)
damke has joined #lisp
<jackdaniel> it is the other way around
<jackdaniel> to get rich you need to hire butler
<jackdaniel> so you have time to get rich ;-)
<loke> Hello JD
zaquest has quit [Ping timeout: 248 seconds]
<jackdaniel> hey
smokeink has joined #lisp
random-nick has joined #lisp
saki has quit [Ping timeout: 256 seconds]
<aeth> To get rich all you need to do is print your own currency.
<aeth> (That would have been a joke 10 years ago.)
fittestbits1 has quit [Ping timeout: 240 seconds]
fittestbits has joined #lisp
fourier has quit [Ping timeout: 248 seconds]
<aeth> Nothing stops you from making money with CL, you just have to do something where people don't care about the implementation language.
<aeth> So that probably means no enterprise middleware.
<White_Flame> or serve the few big-monied parties that do want lisp
<aeth> Or use ABCL.
* beach would like to see the job description of a "buttler".
wxie has joined #lisp
wxie has quit [Ping timeout: 268 seconds]
<White_Flame> "What exactly do you do?" "I buttle, sir."
<Shinmera> beach: Maybe a physician?
<beach> Possibly.
<phoe> I'm slowly warming other people around me to the idea of including an ABCL in our product.
<phoe> I am still curious how far I can push the environment of a JBoss with Java Enterprise from inside an ABCL image.
<beach> What is their reaction?
<phoe> None yet. I'm very slow at the warming-up. (:
<phoe> Right now they tolerate me writing and hacking Lisp in between work tasks, which is a step in a good direction.
<phoe> I'm curious, because if I figure out a way to interactively call Java in a JEE environment, then I essentially get a REPL for free in our product.
<phoe> It's a bit more complicated, because it's a cluster of several JBoss servers on different machines and not just a single JVM, but if I ever figure that out, then I'll essentially have material for a nice paper.
<beach> Sounds good.
test1600_ has quit [Ping timeout: 276 seconds]
<Shinmera> pjb: Note he wrote "buttler", not "butler"
<pjb> Yes, I noticed, but too late.
saki has joined #lisp
<beach> pjb: "buttler" is not the same as "butler".
<phoe> gosh, this starts being #lispcafe material with all the butts
<beach> pjb: I was trying to be funny. Failed miserably. Sorry.
<pjb> Only because I was oblivious of my mistake.
<beach> Flyspell caught it.
<Shinmera> pjb: I got the joke.
<Shinmera> *beach
<pjb> I avoid orthographic correctors, because they usually get it wrong. Also, there are often multiple valid orthographs (eg. American English vs. British English or variants in French).
<pjb> Oh, and also because their substitutions are often way worse than simple orthographic errors.
thallia has quit [Ping timeout: 240 seconds]
porky11 has joined #lisp
<jackdaniel> pjb: "Yes, I noticed, butt too late." – fixed it for you ;-)
<TMA> phoe: JEE is tricky because of all the nested classloaders isolating everything from everything else; the clojure folks made an awesome remote repl called nREPL for clojure. I am not sure, but it could probably be ported to ABCL so that the client need not be rewritten
<TMA> phoe: but even then making the repl useful in a JEE environment is a challenge
fourier has joined #lisp
makomo has quit [Ping timeout: 255 seconds]
makomo has joined #lisp
Murii has quit [Quit: WeeChat 1.4]
Murii has joined #lisp
fourier has quit [Ping timeout: 276 seconds]
ak5 has quit [Ping timeout: 255 seconds]
igemnace has quit [Quit: WeeChat 2.0.1]
wigust has quit [Ping timeout: 276 seconds]
orivej has joined #lisp
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
thinkpad has quit [Quit: lawl]
damke has joined #lisp
kotrcka has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
thinkpad has joined #lisp
neirac has quit [Remote host closed the connection]
thinkpad has quit [Client Quit]
flak has joined #lisp
rippa has quit [Read error: Connection reset by peer]
varjag has joined #lisp
kdridi has joined #lisp
thinkpad has joined #lisp
test1600_ has joined #lisp
Chream_ has joined #lisp
Karl_Dscc has joined #lisp
varjagg has joined #lisp
papachan has joined #lisp
side_track has joined #lisp
minion has joined #lisp
gabiruh_ has joined #lisp
gabiruh has quit [Read error: Connection reset by peer]
s1detracking has quit [Remote host closed the connection]
ccl-logbot has quit [Quit: Client terminated by server]
sellout has quit [Ping timeout: 256 seconds]
bitch has quit [Ping timeout: 256 seconds]
Princess17b29a has quit [Ping timeout: 256 seconds]
le4fy has quit [Ping timeout: 256 seconds]
Colleen has quit [Read error: Connection reset by peer]
varjag has quit [Read error: Connection reset by peer]
Colleen has joined #lisp
specbot has quit [Read error: Connection reset by peer]
fikka has joined #lisp
vibs29 has quit [Ping timeout: 240 seconds]
Princess17b29a has joined #lisp
vibs29 has joined #lisp
Fare has joined #lisp
bitch has joined #lisp
ccl-logbot has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
specbot has joined #lisp
scymtym has quit [Ping timeout: 256 seconds]
kotrcka_ has joined #lisp
jsnell_ has joined #lisp
djh_ has joined #lisp
eschulte_ has joined #lisp
tessier_ has joined #lisp
sbryant_ has joined #lisp
Lord_Nightmare2 has joined #lisp
Princess17b29a_ has joined #lisp
ccl-logbot has quit [*.net *.split]
Colleen has quit [*.net *.split]
Princess17b29a has quit [*.net *.split]
Karl_Dscc has quit [*.net *.split]
kotrcka has quit [*.net *.split]
Lord_Nightmare has quit [*.net *.split]
tessier has quit [*.net *.split]
sbryant has quit [*.net *.split]
fouric has quit [*.net *.split]
djh has quit [*.net *.split]
jsnell has quit [*.net *.split]
eschulte has quit [*.net *.split]
sbryant_ is now known as sbryant
Lord_Nightmare2 is now known as Lord_Nightmare
Colleen has joined #lisp
pyface has quit [Ping timeout: 248 seconds]
cpape` has joined #lisp
funnel has quit [Ping timeout: 240 seconds]
dmiles has quit [Ping timeout: 268 seconds]
cpape has quit [Read error: Connection reset by peer]
ccl-logbot has joined #lisp
funnel has joined #lisp
Karl_Dscc has joined #lisp
markong has joined #lisp
heurist_ has joined #lisp
fouric has joined #lisp
heurist`_ has quit [Ping timeout: 240 seconds]
scymtym has joined #lisp
dmiles has joined #lisp
cpape`` has joined #lisp
EvW has joined #lisp
cpape``` has joined #lisp
cpape` has quit [Ping timeout: 256 seconds]
dddddd has joined #lisp
vlatkoB has quit [Remote host closed the connection]
cpape`` has quit [Ping timeout: 256 seconds]
vlatkoB has joined #lisp
thallia has joined #lisp
fikka has joined #lisp
saki has quit [Quit: saki]
saki has joined #lisp
solyd has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Rawriful has joined #lisp
cpape```` has joined #lisp
cpape``` has quit [Ping timeout: 256 seconds]
cpape```` has quit [Client Quit]
cpape has joined #lisp
milanj has joined #lisp
jmercouris has joined #lisp
Bike has joined #lisp
makomo_ has joined #lisp
makomo has quit [Ping timeout: 248 seconds]
<scymtym> fe[nl]ix: thank you
Baggers has joined #lisp
smokeink has quit [Read error: Connection reset by peer]
smokeink has joined #lisp
<jmercouris> how to reinstall quicklisp? can I simply delete ~/.quicklisp?
<jmercouris> or is there a simpler way?
<Shinmera> Yes, No
<jmercouris> Shinmera: ok, thanks
<Shinmera> Hard to get simpler than removing a directory, in my opinion
<jmercouris> there are some things in my directory that I'd rather not have to recreate is all
<Shinmera> Well what about it do you want to "reinstall"?
<Shinmera> /Why/ do you want to reinstall?
<jmercouris> I was playing around with sbcl yesterday, and I "installed" quicklisp in sbcl, and that has made some issues for CCL I believe
<Shinmera> That doesn't sound right. Multiple implementations can use the same quicklisp directory.
<jmercouris> well, I'm getting strange UIOP/asdf messages I wasn't getting before
python476 has joined #lisp
<jmercouris> I'm not sure exactly why that is, possibly because I did a dist update while in sbcl, then went back to ccl
<Shinmera> That shouldn't be a problem.
<Shinmera> wew
<Bike> maybe ccl has an old asdf or something.
<jackdaniel> it is asdf doing asdf thing
<jmercouris> the thing is looking at the string "2018.02.02", there are no leading zeros
<jackdaniel> version is separated by "."
<jackdaniel> so it has 3 components
<jackdaniel> 2018, 02 and 02
<jmercouris> ah okay, so it is like "2018" "02" "02"
<jackdaniel> two of these 3 components have leading zeros
<Shinmera> #justASDFthings
<jmercouris> so cl-string match apparently uses the date as a version specifier
Tobbi has joined #lisp
<jackdaniel> you may safely ignore these warnings
<jackdaniel> no need to remove quicklisp or reinstall your system
<jackdaniel> (they will probably appear again when you have newest dist)
<Bike> oh yeah they're just warnings. who cares then.
<Shinmera> They're kinda stupid warnings, but yeah
<jmercouris> okay, cool, thanks everyone
<jmercouris> I don't really like warnings when I load my system
<Shinmera> Should be a style warning at most.
<jmercouris> but such is life
Patternmaster has quit [Quit: Lost terminal]
<jackdaniel> right now they are warnings, but nobody knows what they will be in next asdf version
<jackdaniel> so brace yourself ,)
thallia has quit [Ping timeout: 260 seconds]
<jackdaniel> [aka: make-operation enforcement reminescence]
<jmercouris> I've got my seatbelt on tight
thallia has joined #lisp
<pjb> jmercouris: there are actually at least two circumstances when you load your system: 1- you load your system to compile and check it while developping and testing it. 2- you load your system to use it.
<pjb> jmercouris: even in the second case, it may be useful to have warnings, because the developers may have loaded on some version of some implementation and found no errors and no warning, but then you're using it in a new version or another implementation, and those warning could matter a lot.
* Baggers loves the warnings
<pjb> jmercouris: if ArianeEspace engineers had had a warning about the Ariane3 module loaded into the Ariane5 system that used a different type of lateral acceleration, they would have saved a rocket and 2 satellites!
raynold has joined #lisp
<jackdaniel> living on the edge, huh?
<jmercouris> pjb: Right yeah, I don't have issues with warnings, it's just that on my own system at least, I'd hope that the warnings don't exist
<jmercouris> aka I've developed it to "spec"
rumbler31 has quit [Remote host closed the connection]
wigust has joined #lisp
saki has quit [Ping timeout: 240 seconds]
<beach> This is how Second Climacs computes the indentation for LOCALLY http://metamodular.com/locally.png
<beach> Compare to Emacs+SLIME.
<phoe> beach: ooooh
<phoe> that is nice
<beach> Thanks.
<phoe> I think LOCALLY in slime indents everything the same
<phoe> two spaces for all
<beach> No, the first argument expression is treated differently.
<beach> No matter what it is, declaration or form.
dieggsy has joined #lisp
saki has joined #lisp
shrdlu68 has joined #lisp
<phoe> Oh.
<phoe> Okay.
<phoe> Even better.
<beach> This is how it does SETQ (idea by flip214): http://metamodular.com/setq.png
<beach> That should have been SETF I guess.
<beach> They are indented the same.
fikka has joined #lisp
<jmercouris> beach: it'd be really cool to have a highlight-indentation mode
<beach> What would it do?
<jmercouris> beach: basically depending on how deep you are in the indentation/nest it'll color boxes to the gutter
<jmercouris> so a 1st level indentation might be red, second might be green, and so on and so forth
<jmercouris> or it could be shades of gray
<jmercouris> similar things exist for emacs
<beach> I see.
<beach> Sounds like a great project for someone who would like to make a contribution. But it must wait until I have more infrastructure available.
makomo_ has quit [Ping timeout: 265 seconds]
<phoe> jmercouris: I use rainbow parens for that
Baggers has quit [Remote host closed the connection]
<jmercouris> phoe: yeah, that's another good one
<jmercouris> and definitely, you don't want to have to build out every possible theoretical extension
<phoe> that would be more easily implemented methinks
<jmercouris> it's hard to build a platform without at least some initial draws though
<jmercouris> in some ways are projects are very similar and very different, obviously our approaches and technologies are radically different, but we are both trying to build platforms
<jmercouris> s/are/our
<jmercouris> what is happening to my english...
<phoe> beach: when you style your code, does the styler know how deep you are in the parens?
varjagg has quit [Ping timeout: 256 seconds]
<phoe> If yes, then you can take (mod depth 6) and style each paren according to one of six colors. Boom, rainbow parens.
<beach> phoe: That information is present, yes.
kdridi has quit [Remote host closed the connection]
<phoe> Then it's not only possible, it's also easy.
<phoe> I might try to tinker with it one day.
kdridi has joined #lisp
<beach> Probably. I don't much like to emphasize parentheses myself, but it could be another contributed project.
<phoe> I know people who dislike emphasizing parens and I understand them and respect them.
<phoe> But my brain functions better when it sees colors. (:
sellout has joined #lisp
<jmercouris> we are all very different, which is why we use emacs
<beach> phoe: I see you are a good candidate for that contribution then. :)
<phoe> "we are all very different, which is why we use emacs"
<phoe> hahahah
<jmercouris> *climacs :D
<phoe> climacs will come next.
<jmercouris> phoe: if all people were really similar, and all needs could be met with a single editor, then likely a dominant paradigm would emerge
<phoe> it emerged, it's called an Integrated Development Environment and it's used for languages like C or Java or C#.
<phoe> but this is already #lispcafe material.
<beach> jmercouris: Nah. You ignore some very strong psychological phenomena.
<jmercouris> beach: care to elaborate?
kdridi has quit [Ping timeout: 260 seconds]
comborico1611 has joined #lisp
<beach> jmercouris: You seem to think that people make decisions because they are rational. They aren't.
kdridi has joined #lisp
<jmercouris> yes, that's definitely true, otherwise I wouldn't have picked up lisp, or a browser project
<jmercouris> at least I enjoy my flavor of irrationality :D
<phoe> even CL agrees
<phoe> (rationalp 'human) ;=> NIL
<shrdlu68> They can't even be coerced to be rational...
<phoe> yep
varjagg has joined #lisp
varjagg has quit [Ping timeout: 240 seconds]
nowhere_man has quit [Quit: Konversation terminated!]
nowhere_man has joined #lisp
SaganMan has joined #lisp
papachan has quit [Quit: WeeChat 2.0.1]
nowhereman_ has joined #lisp
jstypo has quit [Read error: Connection reset by peer]
nowhere_man has quit [Ping timeout: 256 seconds]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 248 seconds]
<pjb> It would be more useful to colorize the parentheses according to their interpretation by the evaluator: operator application (3 kinds), code syntax, data.
wxie has joined #lisp
<pjb> (let (foo) (bar '(baz)))
<pjb> Sorry, I mean: (let (foo) (bar '(baz)))
saki has quit [Ping timeout: 276 seconds]
<pjb> (check-type (car foo) (integer 0))
saki has joined #lisp
saki has quit [Client Quit]
<pjb> and then, with enough colour, we could also distinguish accessors from normal functions.
jstypo has joined #lisp
wxie has quit [Ping timeout: 268 seconds]
wxie has joined #lisp
shrdlu68 has quit [Ping timeout: 256 seconds]
saki has joined #lisp
shrdlu68 has joined #lisp
<comborico1611> Hello. I'm interested in learning Lisp, but I'd like to see how a certain simple program would work in Lisp. The program converts an input of seconds into Years Days Hours Minutes Seconds.
<beach> That's too simple.
<comborico1611> Is there anyone willing to write that up?
<comborico1611> Haha
<comborico1611> Could you post it here or on GitHub?
<beach> (decode-universal-time seconds)
<loke> comborico1611: Show what your current code looks like.
<beach> ↑
<loke> comborico1611: We really want to try to avoid to people's homework for them
nsrahmad has joined #lisp
<loke> But we're happy to assist if you're having specific problems.
<comborico1611> I don't have enough knowledge to do it in lisp
<beach> comborico1611: I just showed you the solution.
<comborico1611> Loke, haha.
<jmercouris> I wonder what happened with that other guy pjb was helping, did he pass his assignment?
<comborico1611> A built-in function is not what I'm looking for.
<jmercouris> the vm emulation thing
fdfdf has quit [Quit: leaving]
<smokeink> comborico1611: read the first few chapters here http://www.gigamonkeys.com/book/
<loke> comborico1611: Show your current coe and explain where you have problems.
<beach> comborico1611: I think I am with loke here. If your purpose is really to learn Common Lisp, then ask some specific questions, and we will answer.
<comborico1611> Yes, i found that one. Thank you, though.
<jmercouris> alternatively, describe what you think the steps should be to convert your input to your desired result
<jmercouris> and maybe we can guide you through each step logically
nsrahmad has quit [Remote host closed the connection]
<comborico1611> Beach, I'm wanting to see this little program *before* i decide to learn the language. But if i have no takers, i will attempt to write it, then come back to see if i did it in a concise manner
<Bike> https://pastebin.com/DgpGhrbp i don't think this is very informative about how lisp works
<Bike> but you do you
<beach> comborico1611: Then I suggest you don't learn it.
<Bike> assuming i understand the problem correctly that you just want a bunch of divisions
<jmercouris> Bike: would you be willing to explain multiple-value-bind?
<jmercouris> is that to take two return values and bind them?
<jmercouris> or rather two or more?
<Bike> yeah
<Bike> floor returns the quotient and remainder
<jmercouris> so how do functions return multiple values?
<beach> clhs values
<Bike> "how"? they just do. floor is defined to return two values
<jmercouris> right, but within floor, what does the last form in the defun look like?
<jmercouris> (values value1 value2)?
<Bike> floor is built in
<Bike> but it could be something like that, yes
<Bike> this function i wrote returns five values, as you can see
<Bike> using the values function beach linked
<jmercouris> aha, yes, I see
<jmercouris> very clever solution
orivej has quit [Ping timeout: 248 seconds]
<comborico1611> Beach, you suggest i don't learn it because i want to see an example of code first? (I think i found the grumpy one of the group.). Your name is quite fitting.
<Bike> it's not actually correct, since years aren't exactly 365 days
<smokeink> haha
<jmercouris> comborico1611: I don't think it's that, it just seems very much like fishing for a homework problem
<Bike> this is too easy to be a homework problem
<Bike> it's barely even a "program"
<jmercouris> comborico1611: If you really wanted to learn the language you'd be willing to look at just about any example of any type as long as it teaches something about the language
<comborico1611> Not true.
<jmercouris> comborico1611: unless you presume that you can predict which kinds of functions will be the most illustrative of the langauges techniques and strengths without knowing the language
<comborico1611> If i suspect this particular problem is well-suited to demonstrate the aspects of a language, I would prefer to use that one program as an example. Not just any program.
<Bike> it's not well suited
<jmercouris> how can you suspect without knowing? that is my point
<White_Flame> you asked for a 1-liner, and got a 1-liner...
<White_Flame> it doesn't sound like you realized the code was posted right after you asked
<Bike> as you can see, it's just a bunch of divisions
<comborico1611> If the person has a limited amount of knowledge in programming, but his work with one program, namely the seconds program, then that program example is best for them to understand other languages, without investing time in learning the language first.
<Bike> i'm not sure what would be informative as to the nature of the language, but i don't think this is it
<pjb> jmercouris: unfortunately, we never know. But we can guess he flunked heavily.
<jmercouris> comborico1611: let's start with a different approach, what is your motivation for learning programming languages, and what would you hope to get out of learning lisp?
<beach> comborico1611: You can take our collective word for it. Common Lisp is worth learning.
<beach> comborico1611: Now let's move on.
<_death> comborico1611: this channel is not to convince people to learn lisp, it's for people already interested in lisp
<Bike> but jmercouris learned something, so i'll call it a win
<comborico1611> Bike, with your understanding of programming, you are correct this wouldn't be a good demonstration of the nature of the language. But with someone with limited knowledge working on the same sample code that they've done in other languages, is the appropriate choice.
<pjb> comborico1611: it's not a question of knowing lisp or even programming. It's a question of having brains, and booting it.
<pjb> comborico1611: you could start by doing it yourself, by hand, with paperl and pencil.
<comborico1611> Pjb, I've written the code in another language. I just don't want to take the time to read a few chapters in a book to just see the sample code.
<pjb> comborico1611: once you've done a few times, you should try to note what you're doing.
<beach> comborico1611: Show us the code you have written.
<pjb> If you already have the code, then it is trivial to convert to lisp.
<White_Flame> comborico1611: this is like a C programmer asking how you get the length of a string in Python, but not wanting to use the builtin
<pjb> comborico1611: just read a tutorial, half an hour should be enough.
<jmercouris> pjb: it's written in x86 assembler
<comborico1611> Beach, I'm very aware that lisp is a great programming language. I am a die-hard Emacs user. I'll be at not good enough to use the customization that elisp provides..
<pjb> jmercouris: lisp is a lower-level programming language than C!
<jmercouris> White_Flame: length("lol")
test1600_ has quit [Ping timeout: 260 seconds]
solyd has quit [Quit: solyd]
<beach> comborico1611: Oh, you want to learn Emacs Lisp. Wrong channel. This one is dedicated to Common Lisp.
<jmercouris> comborico1611: I think the word you are looking for is albeit
<loke> pjb: It's lower-level, but it's lower along a different dimension! :-)
<jmercouris> pjb: it's literally written in binary
<jmercouris> and it's tailor made for an obsolete instruction set on an experimental chip from the 60s
<comborico1611> Beach, no no. I'm looking for common lisp. I know lisp is the most powerful language. And cl the most powerful dialect.
<random-nick> comborico1611: which lisp are you talking about? emacs lisp or common lisp?
<beach> comborico1611: Good.
<beach> It is getting more and more clear to me that loke was right.
<comborico1611> Jmercouris, thanks. I'm using voice recognition. But i appreciate the thoughtfulness.
<pjb> comborico1611: if you want an example of a lisp program, have a look at https://gitlab.common-lisp.net/gsharp/gsharp
<comborico1611> It would be more useful if I saw an example of a program I've worked with. And I've only work with one program in my life. A program that converts seconds in 2 years months days hours minutes seconds.
<beach> Show us your code.
<comborico1611> Let me see if it is still on GitHub. I'm on my phone.
<jmercouris> comborico1611: you make it sound like you've been toiling your whole life on this one program, I imagine it is the best seconds converter in the world
<White_Flame> so, just basically div/mod a few times?
<pjb> comborico1611: also, I'd be curious about my adjective. Feel free to identify the seven dwarfs ;-)
<_death> comborico1611: (decode-universal-time seconds)
<White_Flame> or is it doing real date computations against an epoch?
<beach> _death: I already suggested that.
<_death> beach: ah
<beach> _death: Built-in functions are unacceptable apparently.
<pjb> 6 to go.
<jmercouris> "I've only worked on one program my whole life, but this one, let me tell you, this is the fastest, most lightweight seconds to date converter ver"
<_death> beach: he could always look at an implementation's source code for it ;)
<beach> Heh! Good idea.
<comborico1611> Haha. No. I just learned to code last spring.
<jmercouris> In one year you've only written one program?
<White_Flame> comborico1611: I would suggest simply learning Common Lisp. Forget your date example. You don't really have the grounding yet to make comparison evaluations; learn Lisp to at least get that foundation established
<jmercouris> You must not really like it that much
<comborico1611> It's complicated . . .
<comborico1611> Going on to computer, you chatty people
<jmercouris> There is one good thing about learning lisp as your first language, none of the terms will confuse you
<jmercouris> and you won't carry in expectations from other runtimes and languages
<pjb> comborico1611: by the way, here is how it's done in lisp: https://codeshare.io/G7YeBE
<comborico1611> True. I've read OO what's in a name. I didn't understand most of it, but i liked it.
<Bike> comborico1611: well, enjoy my code i guess
<jmercouris> why did you keep reading a book if you didn't understand it? and how did you like it if you didn't understand it?
<comborico1611> Pjb, thank you! You want my uninitiated unbiased opinion of it?
<pjb> comborico1611: also, Common Lisp is very close to emacs lisp: the share the same root.
<_death> what's up with these sites, requiring javascript to view static text
<jmercouris> _death: js is the new flash
<pjb> comborico1611: I'd prefer the 6 other dwarfs of #lisp, if you identified them already.
<White_Flame> js is the new ActiveX
<comborico1611> Death, haha. True. Bad web developers.
<jmercouris> that's a more suitable comparison actually
<pjb> comborico1611: but unbiased opinion is ok too.
<jmercouris> though, js doesn't have some big evil corporation pushing it
<jmercouris> pjb: who are the 6 dwarfs of #lisp? what are you talking about?
wxie has quit [Ping timeout: 268 seconds]
<pjb> jmercouris: comborico1611 identified beach as Grumpy. I'm wondering about the others.
<jmercouris> ah, lol, nice
<beach> Heh!
<comborico1611> Pjb, it's very busy.
<comborico1611> Jmer, as in "i was correct"?
<jmercouris> pjb: the problem is, we don't have enough Grumpy spots for all the people on #lisp
<White_Flame> comborico1611: it's a very clever solution that has a generic numeric breakdown that can take any list of modulos
<White_Flame> instead of directly making hardcoded div/mod operations
<jmercouris> comborico1611: no, that White_Flame was correct
<pjb> comborico1611: it was written more than 10 years ago, and it is used to generate the code of Babylonian or Aztec number systems too.
comborico1611_ has joined #lisp
<comborico1611_> Okay. Keyboard.
<pjb> More recently, of Indian's since they use strange grouping of tens for their big numbers (1000 100 100 100 …)
<White_Flame> so you could plug in 100 at the end of the list and add centuries to your breakdown, for example
<White_Flame> without changing the actual computing code
<comborico1611_> jmercouris, that is insane. I'm glad you mentioned that. I doubt my request needs every aspect of that code then.
<comborico1611_> Okay. First, let me try to rememeber git password.
<White_Flame> the meat of the calculation is (truncate value (car bases))
<White_Flame> in line 10
<comborico1611_> Then I'll show you code. Oh wwait. I'm not acomputer. So I can just show you the code.
<White_Flame> that's what's recursed over, based on the list of bases
Patternmaster has joined #lisp
<White_Flame> I'd still repeat that you'd be way better off simply going through Lisp tutorials and not focus in on something like this.
comborico1611_ has quit [Remote host closed the connection]
thodg has joined #lisp
<comborico1611> Something wrong with computer. Rebooting. Can't remember password. All i have at the moment is a functional version.
AX31_A13X has quit [Remote host closed the connection]
AX31_A13X has joined #lisp
<comborico1611> It is a shame how many programming languages have borrowed from Lisp, and don't give it credit.
comborico1611_ has joined #lisp
<comborico1611_> my $min-t = $raw div 60;
<comborico1611_> my $day-t = $hr-t div 24;
<comborico1611_> my $min = $min-t - ( $hr-t * 60 );
<comborico1611_> my $hr-t = $min-t div 60;
<comborico1611_> my $sec = $raw - ( $min-t * 60 );
<comborico1611_> my $hr = $hr-t - ( $day-t * 24 );
<comborico1611_> my $yr = $day-t div 365;
<comborico1611_> my $day = $day-t - ( $yr * 365 );
<comborico1611_>
<comborico1611_> say "Year: $yr ", "Day: $day ", "Hour: $hr ", "Min: $min ", "Sec: $sec ";
<comborico1611_> }
<comborico1611_> This is the functional version -- not my preferred one. I'm nt even sure this one works.
<pjb> it's not functional, since it has side effects (the say operation).
drewc has quit [Ping timeout: 264 seconds]
<comborico1611_> Still trying to rmember stupid ghitjp password -- just let me have a simple password
<comborico1611_> Yeah, it' snot strictly functional
<comborico1611_> just trying to keep state static
<comborico1611_> It was an experiment on my understanding of ucntion.
<comborico1611_> functional*(
Jesin has joined #lisp
<comborico1611_> And this piec eof garbage mac book pro from 2007 is going bad.
<comborico1611_> that or kubuntu is.
<comborico1611_> So I'm looking for something like that in CL.
<comborico1611_> Minus the functional.
smurfrobot has joined #lisp
<comborico1611_> Here is proper seconds program, I believe. https://gist.github.com/COMBORICO
<comborico1611_> beach, here is what you were asking for.
<beach> That looks very wrong. Mismatched curly braces and double quotes.
<comborico1611_> Oops oops
<comborico1611_> yeah, that is not the full program.
<comborico1611_> I would need to go to a different computer to get it.
saki has quit [Ping timeout: 248 seconds]
<comborico1611_> but the one I posted here is the gist of it.
<comborico1611_> It should be very easy to write up in Lisp. I'd just like to see it in Lisp for myself, without having to read a few chapters more than I have already.
<beach> It certainly is easy to write up.
<comborico1611_> But? You're too lazy to? Or I should do my own homework?
smurfrobot has quit [Ping timeout: 248 seconds]
<beach> Both.
<comborico1611_> Thought so.
saki has joined #lisp
<comborico1611_> pjb: Think you would mind writing my request up real quick?
<beach> I usually help people when I think it might be a good investment, i.e. that the person I help will later contribute to the common code base. I don't have that impression in this case.
<comborico1611_> bike: what code?
<White_Flame> again, just go do some basic lisp tutorials, and you'll have enough to figure this out on your own. Or, start using the builtin decode time function
<comborico1611_> beach, that's fine. I don't claim that I would do that. Just a guy looking to see a sample of this code in this language.
<jmercouris> comborico1611_: What are you asking for exactly? if you want to learn lisp, just learn it, if you encounter issues in the path of learning we can help
<Bike> comborico1611_: the answer i linked half an hour ago https://pastebin.com/DgpGhrbp
<White_Flame> play around with the truncate function, as was in th eposted example
<jmercouris> comborico1611_: don't just ask people to randomly write up functions for your amusement, have some respect for people's time
<comborico1611_> jmercouris, again for the fifth or more time. I'm just looking to see a sample code of how this task would be done in CL.
<jmercouris> comborico1611_: Again, for the 10th time, that's not a good way to learn CL
<White_Flame> why? you can't read it. you don't have the basis to evaluate code yet
<White_Flame> just go through tutorials and learn the language
<comborico1611_> jmercouris, asking for a simple program to be written by someone affluent in a language doesn't seem disrespectful of someone's time.
<White_Flame> Lisp doesn't look like other languages, so whatever introduction you've had before isn't going to help you read Lisp
<jmercouris> yes it totally does, because you are ignoring what everyone is telling you, that it is a waste of time
<White_Flame> comborico1611: there are already tons of resources to help you learn. You're trying to bypass them for no defensible reason
<jackdaniel> this looks very much like you have an assignment from uni (or wherever) and you think that you will "outsmart" people on lisp by asking them to write it for you (with some improbable excuse)
<jackdaniel> s/on lisp/on #lisp/
<comborico1611_> jackdaniel, lol.
<jackdaniel> very silly indeed, but not laughable
<random-nick> comborico1611_: what's wrong with Bike's code?
<White_Flame> and you've had a few working examples pasted at you already
smurfrobot has joined #lisp
<comborico1611_> This is terribly simple code. I just want to see a sample of it, inspect how I feel the language is reflected by the code *before* I commit time to learning a language.
<comborico1611_> jmercouris, thanks for speaking for everyone here.
<jmercouris> there's a billion and one samples online
<White_Flame> you can't make that decision
fourier has joined #lisp
<comborico1611_> random-nick, I did't see the link. I looked three times for it.
smokeink has quit [Ping timeout: 265 seconds]
<jmercouris> I don't speak for everyone here, but I think I have a good pulse of what many are thinking
<White_Flame> "show me written Chinese before I learn the language, and I'll use that to decide whether or not I want to learn it, because there's a lot I can intuit from it"
<jmercouris> White_Flame: very well said
<comborico1611_> jmercouris, you have a reading comprehension problem. I detailed before the reason I preferred this specific example.
<jmercouris> I don't have a reading problem, you simply don't know how to program in any langauge, so I don't see how that would help you even if it were true
<White_Flame> you've see multiple examples, you've seen multiple tutorials. your question repetition is pointing that somethign else is wrong
<comborico1611_> jmercouris says "you are ignoring what everyone is telling you". sounds like you rpresent everyone
* |3b| suspects anyone who disagreed would say so
<comborico1611_> jmercouris, you hurt my feelings. I'm not able to program blah blah blah lanague blah blah. I'm done with you, loser.
thallia has quit [Ping timeout: 240 seconds]
<beach> Wow.
<White_Flame> yeah
<jackdaniel> actually he assessed your attitude based on your reactions to what others do (he didn't mention "others" internal motives / feelings)
<jmercouris> comborico1611_: I don't think hurting your feelings makes me a loser, but that's not what I'm after, I'm just trying to help, maybe I did the wrong approach, sorry for that
<jackdaniel> comborico1611_: please refrain from calling people names
<pjb> comborico1611_: check: https://codeshare.io/G7YeBE ; I added a better solution.
<jackdaniel> you may /ignore him if you feel like it
whoman has quit [Read error: Connection reset by peer]
<pjb> comborico1611_: the first macro generated a function that looped over the bases list; instead, the new solution expand to the truncate calls like Bike's solution.
<White_Flame> and just to be clear, pjb's solutions are advanced. So if you want to see examples of "real" lisp beyond just hardcoded toy examples, there you go
thallia has joined #lisp
<comborico1611_> Bike, thanks for your help! I found your code. Whew. I think he did in less than 3 minutes. Cry babies not wanting to demonstrate some code. Gee wiz.
<jackdaniel> (last warning)
dieggsy has quit [Read error: Connection reset by peer]
<White_Flame> well, that's one way to admit that you can't read code yet, given the number of links that have been posted. Again, go through tutorials to learn how to read the code if you want specifics
<comborico1611_> jackdaniel, you got it, jack.
<comborico1611_> No more names.
kdridi has quit [Remote host closed the connection]
drewc has joined #lisp
kdridi has joined #lisp
smurfrobot has quit [Ping timeout: 240 seconds]
<comborico1611_> pjb, I like the incorporation of a list. Interesting idea.
<comborico1611_> pjg, I'm inspecting the code now.
<pjb> Notice however, that both the standard decode-universal-time and my macro and functions take and generate the list in the least-significant first order. Since lists can grow unbounded, that let the code know the meaning of the first elements of the list without having to compute its length.
<jmercouris> pjb: I take it this exercise amuses you :D?
<pjb> jmercouris: It allows me to improve code written ten+ years ago :-)
thallia has quit [Ping timeout: 256 seconds]
Princess17b29a_ is now known as Princess17b29a
Lycurgus has joined #lisp
<comborico1611_> pjb, it's difficult for me to follow. But I do have a question. I have read that using macros un-needlessly (meaning unless you are forced) is considered a violation of best practices. Do you agree with this?
<_death> comborico1611: here's your program in lisp: https://plaster.tymoon.eu/view/713#713
<pjb> comborico1611_: of course.
<comborico1611_> _death, thank you.
<pjb> (incf _death)
<jmercouris> _death: I literally spit on my screen from laughing, thank you for that
kdridi has quit [Ping timeout: 276 seconds]
thallia has joined #lisp
<comborico1611_> I do like Lisp's comment system. Very nice!
<pjb> comborico1611_: you may find it funny, but both my code and _death are really demonstrating the strong points of lisp.
<pjb> comborico1611_: If you wondered why you should learn lisp, you got the perfect answers.
<comborico1611_> (the link is for my own use here. I had to move phone data to pc.
<pjb> comborico1611_: (Bike was just trolling you).
<Bike> what? i was not.
<jmercouris> you are confused pjb, you are thinking of _death
<pjb> Bike: yes, you were. :-)
<comborico1611_> Yeah, I don't htink he was. Or i mssed it.
<pjb> jmercouris: not at all. _death answer is a perfect example of what lisp is.
<comborico1611_> I'm super confused because throughout all ths, my pc has been bugging slow.
<jmercouris> ah, I see where this is going now :D
<Bike> i was not. don't impugn my motives. i did what i was asked, while saying i didn't think it was a good question.
<jmercouris> Bike: he's making a joke
<jackdaniel> Bike: pjb and _death have fun with him (well deserved I suppose despite the fact I don't find such toying funny at all)
kdridi has joined #lisp
<pjb> Bike: yes, but then your answer doesn't demonstrate why you're programming in lisp.
<comborico1611_> It's okay guys. Let's keep our dislike focused on me.
<Bike> that's why i said the actually this has been the channel for an hour so i'll just come back later
<jmercouris> I'm certainly pro-humor, as long as it isn't at the detriment of someone else, and I don't think _death's is evil natured or anything
Bike has left #lisp [#lisp]
<comborico1611_> Now everyone go get some coffee. I need to study these codes. Thank you all who particpated.
<White_Flame> don't study the code. Just look at it
<pjb> jackdaniel: _death and my answer demonstrate meta programming, which is the strong point of lisp. My answer demonstrate a macro that generalize the problem statement so you can use it with Aztec or Babylonian number systems; _death demonstrate a general technique (the "inteprreter" pattern as the GoF puts it).
<White_Flame> learn lisp, then study it
<jmercouris> what is the original language he posted here anyway? applescript?
<pjb> perl.
<pjb> has it been python, we'd have used cl-python :-)
<jmercouris> ah, I've never done any perl, interesting that it has "say"
<jackdaniel> however if you read into it, it is not obvious who is trolling who. maybe it is a self-driven vicious cycle.
<jackdaniel> laters \o
<jmercouris> the dollar signs should have given it away, but I just associate those with PHP
<comborico1611_> bike, yours is very clean. Very good!
<jmercouris> at the end of the day, it doesn't matter who was trolling who, it was an interesting journey, and in some ways pretty informative, I'm actually trying to understand _death's code
<comborico1611_> It is Perl6, actually.
<comborico1611_> We're no longer done, by the way. :-)
Baggers has joined #lisp
rumbler31 has joined #lisp
<jmercouris> _death: so each cond line basically covers a case, first one empty program, second one a number, and then whatever operands are supported, right?
<_death> jmercouris: yes.. a better name for the function is EVAL... you may find similar functions in various Lisp books :)
<jmercouris> _death: I get the gist of your snippet, I couldn't write something so elegant, but I could make a very clunky version I think
<jmercouris> in Lisp at least, in python it'd look "ok"
<jmercouris> also "elegant" because of course it assumes a lot and isn't really extendable, but it is nice and compact
pagnol has joined #lisp
<jmercouris> very cool though, thanks for sharing
rumbler31 has quit [Ping timeout: 240 seconds]
vibs29 has quit [Ping timeout: 276 seconds]
<pjb> jmercouris: the hint is the use of progv, which is specifically designed to implement interpreters :-)
<White_Flame> can anybody freely edit in those codeshare links?
vibs29 has joined #lisp
<jmercouris> White_Flame: yeah
<pjb> White_Flame: depends; they may be marked read-only.
<pjb> I don't do that.
hhdave has joined #lisp
<pjb> White_Flame: but codeshare is designed for collaborative editing and development; there's a videochat module.
<jmercouris> If two people ssh on to the same machine, and that machine is running emacs daemon, and they both launch an instance to a file, can they both see that file being edited?
<White_Flame> there's always screen as a general solution
<jmercouris> yeah, but the emacs daemon would be cooler as you could do x forwarding
<jmercouris> it would only make sense on a local network realistically
EvW has quit [Ping timeout: 255 seconds]
banjamine has joined #lisp
<jmercouris> I believe sbcl complains when you don't use defgeneric, but in practice, is it bad?
<jmercouris> should I be actually doing these declarations?
<pjb> jmercouris: there are advantages of doing them. On the other hand, it's a bore for accessors.
<pjb> The main advantage, is that it allows you to document the generic function; also you can provide a default method.
<_death> if you think in terms of protocols then you generally want to write defgenerics anyway
<jmercouris> I have never made that mental connection until you just said that
<pjb> And since this allows you to explicitely define and document the protocol, you can easily export it from a package. So there's no problem when several different package define methods to the same generic function.
<jmercouris> writing a set of defgenerics is effectively defining a protocol for objects of a class
<jmercouris> that makes so much sense
<pjb> You can gather all the defgeneric in a common "protocol" package used by the others.
<jmercouris> right right, yes
<jmercouris> now I see the purpose
wigust has quit [Ping timeout: 256 seconds]
<jmercouris> or rather, a possible purpose, I'm not sure I have the whole picture yet, but yeah
varjagg has joined #lisp
<pjb> jmercouris: for example, since methods are not attached to classes but to the generic function, it make sense often to just define them with the :method option of defgeneric. Keeping all the methods in the generic function, instead of spreading them all over the project.
ak5 has joined #lisp
<pjb> Depending on the logic of your code…
<White_Flame> defmethod without defgeneric is sortakinda like setf without defvar
<phoe> theoretically, yes, I like to think of it like that
<phoe> except SBCL stopped warning about it some time ago
<beach> These days I even stick a DEFGENERIC in there for slot accessors. If I don't, the default signature has OBJECT as the name of the parameter, but I often want something more specific.
<comborico1611_> Thank pjb and _death for your time. When bike gets back, tell him I bless him in the name of Jesus Christ.
<White_Flame> comborico1611: besides this weird exchange we've had here, you should probably ask further learning questions in #clnoobs
<comborico1611_> Thank you.
<White_Flame> this channel is always going to be more advanced
<comborico1611_> I've saved the programs, not to use as a homework assignment, but to meditate on. As I stated earlier, I know Lisp is the most powerful progrmming lanugage.
thodg has quit [Read error: No route to host]
<White_Flame> (that's still like meditating on a foreign language text, instead of meditating on the instructional materials to learn the language)
<comborico1611_> And I adore Emacs. My main career is in Web Development and design. I have an interest in programming, but I'm not sure if I'm *that* intested. I only have Saturdays to dedicate to programming, when I do decide to dedicate it to learning programming. So that is why I requested a sample of this particular program. I don't wish to dedicate my free Saturdays to learning just to see a sample code. I thank this channel again fo
<comborico1611_> r helping me by providing a custom simple program for me to meditate on.
<comborico1611_> Yes, I know. But it speaks to the verbosity of a given language and other generalities.
<White_Flame> not really
<phoe> Is there a limit on how many dimensions an array can have in CL?
<White_Flame> lisp can collapse code size compared to other languages, even if it can be larger in small examples
<comborico1611_> You can definitely demonstrate verbose-ness with such a sample.
<White_Flame> again, you need context to evaluate any of this. You're on the path to cargo cult
<_death> clhs array-rank-limit
<comborico1611_> Cargo cult? haha.
<comborico1611_> White_Flame, I will keep what you said in mind.
<comborico1611_> Bye.
comborico1611_ has left #lisp ["Leaving"]
zaquest has joined #lisp
comborico1611 has quit [Quit: comborico1611]
comborico1611 has joined #lisp
hhdave has quit [Quit: hhdave]
Jesin has quit [Quit: Leaving]
<pjb> phoe: I think the limit is most-positive-fixnum.
<pjb> phoe: however in practice, since there's array-total-size-limit (which may be as low as 1024), the practical limit on dimensions is on the order of 10 in the worst case.
<pjb> phoe: also, you have to consider call-arguments-limit. You couldn't index an array with that many dimensions (aref takes the array itself as first argument).
<phoe> pjb: yes, that is what I thought.
<pjb> (you could still use array-row-major-aref, but what would be the point of declaring a multidimentionnal array if you can't index it directly).
<pjb> So (1- call-arguments-limit) being as low as 49, this could be the lowest maximum array dimension.
<Shinmera> _death already linked array-rank-limit.
<scymtym> did anybody see what _death said? also, array-total-size-limit is not relevant in (make-array (make-list 1000 :initial-element 0))
<phoe> oh wait
<phoe> right
<phoe> geez, it got lost in the talk above
<phoe> it's 8 or more.
<pjb> as long as (<= (expt 2 (1- call-arguments-limit)) array-total-size-limit)
<pjb> Shinmera: yes, but (< call-arguments-limit array-rank-limit) is possible.
<pjb> And anyways, the standard only specifies lower bounds for those maximum, so…
zaquest has quit [Quit: Leaving]
comborico1611 has quit [Read error: Connection reset by peer]
Oladon has joined #lisp
<White_Flame> you can probably get around aref's parameter limits by using displaced arrays
<pjb> Yes, that's funny, but Since there's no constraint on array-rank-limit vs. call-arguments-limit, you could have problems :-)
<pjb> White_Flame: indeed.
zaquest has joined #lisp
<fourier> anyone from osicat maintainers are around?
test1600_ has joined #lisp
banjamine has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
SaganMan has quit [Quit: WeeChat 1.6]
Chream_2 has joined #lisp
Chream_ has quit [Read error: Connection reset by peer]
smasta has joined #lisp
<fe[nl]ix> fourier: what's up ?
<beach> This is how Second Climacs computes the indentation of TAGBODY: http://metamodular.com/tagbody.png compare to what Emacs does.
tankrim has joined #lisp
<beach> Notice that the comments are aligned with what they comment, tag or statement.
<phoe> beach: This is good. Aligning of the comments is awesome.
<beach> By now, you should be convinced that the technique that I use is superior to regular expressions for indentation, right?
thallia has quit [Ping timeout: 276 seconds]
<phoe> beach: I am convinced. This is superb stuff.
<beach> Thanks.
<_death> what about a macro expanding to tagbody
<jmercouris> if I have a method like this (defmethod run-something ((args))) and then I have (defmethod run-something :before ((args))), am I correct in thinking that the method with :before will be invoked before the other?
<phoe> _death: like DO?
<_death> yes
<phoe> (do (...) (...) a (frob) b (fred) c (quux))
<phoe> something like that, yes
<phoe> jmercouris: correct
<phoe> read up on the standard method combination for more details.
<beach> _death: What about it?
<_death> beach: how will it indent
<phoe> clhs 7.6.6.2
<phoe> jmercouris: ^
<jmercouris> I'd prefer something a little lighter than the CLHS, but I'll take a look, thanks
<beach> _death: The indentation will be based on the macro lambda list.
<phoe> beach: so the DO's &body will not have tagbody indentation in that case?
<_death> beach: ok.. I think emacs/slime has some special-casing for DO
<beach> Oh, sorry. For specific standard macros, there will be a separate indentation rule.
Arcaelyx has joined #lisp
<phoe> beach: you could also define some generic "ways" of indenting stuff. You could introduce a thing like &tagbody that is only for defining indentation and otherwise equivalent to &body, but will indent the body forms in a TAGBODY style.
<phoe> (define-indentation cl:do (4 4 &tagbody)) or something alike
<_death> I think for "smart" indentation you'd want to use some annotation mechanism..
<beach> phoe: I considered that and decided against it. It is more complicated than that, because I need to know whether sub-expressions are forms or not. The recursive indentation calculation depends on it.
<phoe> beach: I see.
<phoe> Do you allow arbitrary computation when computing indentation for a form?
<phoe> Can I define a method for (eql 'cl:do) that will turn its indentation into something tagbodylike?
whoman has joined #lisp
thallia has joined #lisp
<_death> that sounds like the pretty-printer approach
<phoe> It would work like that, yeah.
<fourier> fe[nl]ix: submitted 2 prs, wanna get them in
test1600_ has quit [Ping timeout: 256 seconds]
mikecheck has joined #lisp
thallia has quit [Ping timeout: 240 seconds]
<jmercouris> beach: this is more work than I ever imagined :D
<jmercouris> now that I am starting to get into it, I am seeing what kind of a monumental task this is
<jmercouris> especially because I am simultaneously converting the interface to a CLOS object to allow for multiple simultaneous backends
<jmercouris> a lot of pain for now, but potentially unbeleivably cool stuff if the implementation actually works
<jmercouris> I can imagine a single server running multiple backends on peoples computers, that would be interesting, multiple people with the same "tabs" open, stuff like that
scymtym has quit [Ping timeout: 255 seconds]
smurfrobot has joined #lisp
terpri has quit [Remote host closed the connection]
smurfrob_ has joined #lisp
rumbler31 has joined #lisp
<whoman> ~___~
<whoman> not cool man
smurfrobot has quit [Ping timeout: 268 seconds]
<jmercouris> whoman: ???
<whoman> just seen the scrollback from last night
hhdave has joined #lisp
rumbler31 has quit [Ping timeout: 256 seconds]
smurfrob_ has quit [Ping timeout: 256 seconds]
fdund has joined #lisp
LocaMocha is now known as Sauvin
<jmercouris> whoman: what isn't cool? by whom? I don't understand
<phoe> yep, it's all out of context.
<jmercouris> what is "the scrollback"? the history? the logs?
<sjl> the stuff said while you were away but your IRC client was connected, which you usually have to "scroll back" to see
<jmercouris> ah okay, that solves part of the mystery
scymtym has joined #lisp
test1600_ has joined #lisp
<whoman> <victim_> jmercouris, you hurt my feelings. I'm not able to program blah blah blah lanague blah blah. I'm done with you, loser.
<whoman> T_T
<phoe> geez, don't repost this stuff
<phoe> the more you repost it the more energy we all spend on it
<phoe> the more we forget about it the more we can focus on actual Lisp.
<phoe> repost stuff that's worth reposting.
<whoman> sorry, should have left it. moving on
<whoman> has anyone had a chance to play with the specialized lisp editor for iphone ?
<jackdaniel> I'm a bit sceptical of editing lisp on any phone
<fourier> lisp is too verbose language for a phone
<shrdlu68> Assembly would be perfect, with those long thin poetic lines...
Xal has quit [Ping timeout: 240 seconds]
<whoman> i can't find the name of it, but it had special buttons for editing forms and such, a bit like 'touch paredit' , quite experimental. i searched but i cannot remember the name
<fourier> APL is the best lang for the phone. Dyalog is working on their version for Android, and J already has a version for Android
<Shinmera> Best to code in binary on the phone, only needs two buttons! No way to mistype!
smurfrobot has joined #lisp
Xal has joined #lisp
RyanRadomski has joined #lisp
<whoman> fourier, i think if it were more visual, for eg.: https://joelkuiper.eu/assets/knowledge/lisp-edit.png
<_death> you can use a blockly-like interface
<jackdaniel> fourier: CL also has repl and editor on android - this doesn't mean it is usable for actual programming
<whoman> i've seen one like this for s-expressions, but i cant find the name =(
<whoman> touch screen is *soooo* beautiful for scrolling and zooming. mouse wheel and keyboard cant compare with that
<fourier> jackdaniel: as i said cl is too verbose, apl would really suite well as it is extremely terse
<whoman> verbose in text form -- but we could visualize the trees of forms, getting to the verbotic symbol names as necessary
fikka has quit [Ping timeout: 248 seconds]
<whoman> for eg. one could 'zoom' in to each symbol name indefinately resolving them
<pjb> beach: Try it with (tagbody \n (expr) tag1 \n (expr) tag2 \n (expr) tagN)
<pjb> beach: We would want the expr to align on one column, and the tags to align on their own column.
<pjb> beach: I can imagine several kinds of tagbody where writing the tags at the end of the line would be the right thing to do…
<pjb> one the other hand, we all know I've got a disturbed imagination :-P
* shrdlu68 recoils at APL
<pjb> beach: perhaps more seriously, (tagbody tag (expr1) \n longer-tag (expr2) very-long-tag (expr3) final-tag)
mikecheck has left #lisp ["part"]
<beach> It's an impossible requirement. Imagine (tagbody tag1 statment1 <newline> statment2 tag2)
Pixel_Outlaw has joined #lisp
<beach> I'll look at it tomorrow. Now I will go spend time with my (admittedly small) family.
* Lycurgus only saw APL used once, at IBM Palo Alto, and it was tEH fail then
random-nick has quit [Read error: Connection reset by peer]
<Fare> Lycurgus, have you seen Aaron Hsu write APL code? He is impressive.
<Lycurgus> no and I don't doubt it
<fourier> yes Aaron's presentation is really impressive and mind blowing
<Fare> He had a point-free APL optimizing compiler from APL to C++ in ~100 lines of APL (plus C++ headers and runtime).
<fourier> dont forget it is running on GPU and generates GPU code as well
<Fare> just the source code representation was impressive.
fikka has joined #lisp
<Fare> both very high-level and very low-level at the same time.
<Lycurgus> the failure was the IBMer contending that he could implement some function, a simple transcendental iirc, quickly, which he could not
* Lycurgus expected and old guy
<Lycurgus> *an
fikka has quit [Ping timeout: 248 seconds]
<fourier> Aaron is former schemer btw. he told on one conference that APL is the only language he was not able to express in scheme
<ecraven> I still want to learn APL properly some day
<fourier> for me learning APL was the second mind-blowing programming experience after lisp
<ecraven> I learned some, but haven't really "groked" it well enough to read even simple programs
<ecraven> I don't understand most "idioms" as APLers call them
<ecraven> also, dyalog with its trains is an entirely different level yet again
<fourier> yep trains are hard ;)
<ecraven> APL finally made me understand that succinctness can be a virtue.. arcfide's compiler on a few pages is just really impressive, and the claim that you can actually keep it all in your head is indeed believable in that context
nowhere_man has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
smurfrobot has quit [Remote host closed the connection]
nowhereman_ has quit [Ping timeout: 276 seconds]
<stacksmith> Fare: are you still scheme-bound these days?
fikka has joined #lisp
fdund has quit [Quit: leaving]
<ecraven> hehe, "...in the simplest manner imaginable" is a quote I wouldn't apply to APL and the co-dfns compiler myself :P
fikka has quit [Ping timeout: 240 seconds]
test1600_ has quit [Quit: Leaving]
wxie has joined #lisp
fikka has joined #lisp
<phoe> shortest ain't mean no simple
wigust has joined #lisp
mlf has joined #lisp
RyanRadomski has left #lisp [#lisp]
raynold has quit [Quit: Connection closed for inactivity]
<fourier> strangely enough these 2 communities - apl and cl - almost never intersecting. the CL community grows from mature software engineers and science(around AI back in the day), while APL from domain experts and non-programmers
thallia has joined #lisp
<stacksmith> Don't hear much Haskell talk either, for that matter.
KarlDscc has joined #lisp
<fourier> "these haskellers and their types!"
<stacksmith> I suppose strong typing is a deal breaker for many lispers.
shrdlu68 has quit [Remote host closed the connection]
<fourier> hm the stance "if its compiles, it most certainly works" sounds appealing, I guess some lispers (like peter siebel iirc) have switched to haskell
shrdlu68 has joined #lisp
Karl_Dscc has quit [Ping timeout: 256 seconds]
* |3b| likes being able to compile things without knowing what "works" is yet :)
<phoe> I have been compiling Haskell once
<stacksmith> I am strangely attracted to this: https://en.wikipedia.org/wiki/APL_(programming_language)#/media/File:APL-keybd2.svg. Do APLers actually remember which key stands for what?
<phoe> It worked indeed, except it did not do what I wanted it to do, so I can't say that it "worked".
<fourier> stacksmith: yep its not that many of them. also for example in Dyalog APL IDE there is a toolbar with all the symbols so you can just point your mouse and get a hint on it. In GNU APL Emacs's mode there is a popup keyboard with a similar hint when you move mouse over the symbols.
wigust has quit [Quit: ZNC 1.6.5 - http://znc.in]
<stacksmith> It depends on how you define 'works'. Someone here has written gobs of Lisp code he claims "works", but he doesn't know basic things about Lisp.
<pjb> fourier: real lispers will know the dire limitations of the haskell point of view.
<phoe> stacksmith: passes the tests that I defined for it
<pjb> I would advise all to study very closely the RAX bug.
<phoe> ooh yes, how to use a REPL properly
<pjb> Check the google talk, and read the Formal Analysis of the Remote Agent Before and After Flight.
<pjb> Then you will LOL each time you hear a haskeller.
<fourier> pjb: I guess main limitation is the necessity to have a phd in category theory in order to write hello world
<pjb> phoe: the REPL part is the least interesting in that bug!
<pjb> Hing: the system had been formally verified!
<pjb> fourier: well, not really, since like in any language you're not forced to use very part of the language to write programs.
<pjb> s/Hing/Hint/
<pjb> It is possible that eventually haskell become useful. When it will run on formally verified hardware, on which would run formally verified operating systems and drivers, and where all the libraries and network protocols you'd use would have be formally verified. Then perhaps…
<stacksmith> phoe: there is an implied trust that the test itself "works".
<phoe> stacksmith: at some point you need to trust something when you automate verification.
<pjb> But the main objection I see is that businesses won't finance such development in your life time (they didn't in mine). So don't dream.
<stacksmith> phoe: indeed.
<fourier> pjb: not really. there is a pandoc which is quite widely used; other apps will come
<pjb> fourier: yes, it's free software.
<pjb> Not a paying job with paying customers.
<fourier> there are a few jobs for haskellers; and their activity in reddit for example is higher than in lisp reddit
<fourier> but still it is too hard language to be widely adopted.
<ecraven> idris seems an interesting language that might succeed haskell
<pjb> Activity in forums is proportional to the difficulties of the language or system. It's not a good sign.
thallia has quit [Ping timeout: 256 seconds]
thallia has joined #lisp
loli has quit [Quit: WeeChat 2.0.1]
loli has joined #lisp
damke_ has joined #lisp
damke has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 248 seconds]
pagnol has quit [Ping timeout: 256 seconds]
kdridi has quit [Remote host closed the connection]
kdridi has joined #lisp
kdridi has quit [Remote host closed the connection]
rumbler31 has joined #lisp
vultyre has joined #lisp
rumbler31 has quit [Ping timeout: 260 seconds]
Chream_ has joined #lisp
Lycurgus has quit [Quit: Ex Chat]
Chream_2 has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
fikka has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
kdridi has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
makomo has joined #lisp
terpri has joined #lisp
xoreaxeax has quit [Quit: Page closed]
hhdave has quit [Quit: hhdave]
fikka has joined #lisp
pagnol has joined #lisp
bmgxc9 has joined #lisp
Fare has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 268 seconds]
EvW has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
Patternmaster has quit [Quit: leaving]
bmgxc9 has quit [Remote host closed the connection]
mjl_ has quit [Ping timeout: 276 seconds]
random-nick has joined #lisp
<makomo> good evening :-)
bmgxc9 has joined #lisp
<makomo> what would be the best way to create a function from a body of code? i.e. i have a list of forms and want to make a function that will run these forms?
<fourier> flet/labels
<makomo> so far i've used (compile nil `(lambda () ,@body))
<makomo> hm i guess that's doable too, and then i could create a lambda which just calls the one defined by flet/labels
<makomo> what would be the best way to create it directly?
<pjb> makomo: yep.
<White_Flame> if you have the expressions as list-based data, it will have to end up as EVAL or COMPILE
<makomo> from what i can tell, FUNCTION is out of the game because it's a special operator and then i would have to eval it myself (which i suppose flet/labels, etc. do under the hood)
<makomo> White_Flame: yup, that's exactly what i'm thinking
<White_Flame> (at runtime. at compile-time, get it in a macro expansion)
<makomo> mhm, exactly
<pjb> it depends on the expressions. If they are all function calls, then you can do (mapcar (lambda (x) (apply (first x) (rest x))) '((+ 1 2 3) (* 3 4 5))) #| --> (6 60) |#
<pjb> but if you also have macros or special operators, then (compile nil `(lambda () ,@body)) is better.
<White_Flame> the APPLY example wouldn't work with nested expressions as written
<pjb> Also, it may depend on how you want to handle errors, notably program-errors. With compile if there's a program error, nothing will be called. On the other hand you may do (mapcar (lambda (x) (ignore-errors (funcall (compile nil `(lambda () ,x))))) '((print (+ 1 2 3)) (print (/ 0)) (print 'hi))) #| 6 hi --> (6 nil hi) |#
<pjb> White_Flame: indeed.
fikka has joined #lisp
hel-io has joined #lisp
<makomo> pjb: i see
<pjb> makomo: also you have to consider that there are no variables linking your expressions. Perhaps you want some? Why do you have such isolated expressions? Perhaps you want to scan them for free variables and bind them in a surrounding let, so that you can have ((setf foo 42) (+ foo 3)) ?
fikka has quit [Ping timeout: 256 seconds]
bmgxc9 has quit [Remote host closed the connection]
<makomo> pjb: what i'm trying to do is to see how exactly i would implement a small HDL/hardware simulator in lisp. it has already been done in C++ by writing a compiler and a vm, but i'm interested to see how easy it would be in lisp
<makomo> so the first thing to do is to come up with some macros to define the hardware components and behavioral processes and such
<makomo> and these processes would just contain lisp code which i would stuff into lambdas and store within these component objects
AX31_A13X has quit [Remote host closed the connection]
<makomo> in this case, since everything is known at compile-time i can just generate lambda expressions myself without using COMPILE
<White_Flame> yes
<makomo> this code contained within the processes can technically be arbitrary lisp code but should only contain operators which are related to the simulation
smasta has quit [Ping timeout: 264 seconds]
<White_Flame> you only need to deal with eval/compile if you're loading in code at runtime. Everything else should be doable at macro-time
<makomo> White_Flame: yup :-)
fikka has joined #lisp
<pjb> or with closures.
<makomo> if i want to be safe against people putting arbitrary/nasty code into these processes, i would have to first preprocess this code before putting it into a lambda right? i would have to somehow walk the code and allow only simulation-related operators
<White_Flame> right. have a "safe" subset of CL that you can verify
<pjb> or use closures.
<makomo> or can i somehow make this code execute in a "sandbox"?
<makomo> pjb: hmm?
<pjb> code is not random, it comes from your hdl definitions.
<White_Flame> plus, if you're concerned about reading untrusted code, you need to ensure reader eval macros are not enabled
<makomo> well, since it's just arbitrary lisp code, it could contain nasty stuff like "rm -rf /"
random-nick has quit [Read error: Connection reset by peer]
random-nick has joined #lisp
<makomo> i.e. if someone else prepares a malicious simulation for you to run
jmercouris has quit [Ping timeout: 265 seconds]
<makomo> if i had a sandbox, rather than having to check the code myself, this sandbox would only provide simulation-related operators and everything else would be unbound/undefined
<makomo> is there a way this could be done?
<makomo> White_Flame: right, that too
<makomo> but if the code ran in this sandbox, then those eval macros could be stopped too
<makomo> i.e. they would just fail
fikka has quit [Ping timeout: 256 seconds]
jmercouris has joined #lisp
<makomo> hm i was thinking of running the code in a different package or something, but the code could always just use IN-PACKAGE to switch back i guess?
<White_Flame> yes, or just (sb-ext::lol-mung-your-os)
<makomo> hm yeah :-(
kajo has quit [Quit: WeeChat 2.0.1]
kajo has joined #lisp
kajo has quit [Client Quit]
fikka has joined #lisp
kajo has joined #lisp
Pixel_Outlaw has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 256 seconds]
jmercouris has quit [Ping timeout: 248 seconds]
jmercouris has joined #lisp
fikka has joined #lisp
Pixel_Outlaw has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
fourier has quit [Ping timeout: 268 seconds]
Arcaelyx_ has joined #lisp
Arcaelyx has quit [Ping timeout: 252 seconds]
kdridi has quit [Remote host closed the connection]
Murii has quit [Quit: WeeChat 1.4]
Murii has joined #lisp
Fare has joined #lisp
dieggsy has joined #lisp
<stacksmith> Does anyone know if vectors of 4-bit unsigned-byte values are handled efficiently by modern implementations?
<Fare> probably not
<phoe> stacksmith: efficiently, what do you mean?
<phoe> because CPUs might not be able to handle them more efficiently than they would be able to handle uint8
<Fare> stacksmith, on SBCL (upgraded-array-element-type '(unsigned-byte 4)) says (UNSIGNED-BYTE 4) so you might be in luck.
<White_Flame> yes, it's a space efficiency vs code efficiency tradeoff to decide whether to bit-pack <8-bit values
<phoe> ooh, that is actually interesting
<stacksmith> I mean as efficiently as can be expected from an 8-bit vector plus the required shift/mask
<pjb> Armed Bear Common Lisp --> T
<pjb> ECL --> EXT:BYTE8
<pjb> CLISP --> (UNSIGNED-BYTE 4)
<pjb> Clozure Common Lisp --> (UNSIGNED-BYTE 8)
<pjb> SBCL --> (UNSIGNED-BYTE 4)
<pjb>
<pjb> So sbcl and clisp optimizes it. ecl and ccl are not too bad. abcl is no good there.
<Fare> cl-launch can help you quickly test out many lisps.
<Fare> or lisp-invocation.asd
<stacksmith> Interesting. Does it mean that CCL will store 4-bit values in an 8-bit byte discarding 4 bits?
<phoe> stacksmith: seems so
<Fare> next question: does anyone store strings as 3 characters per 64-bit word? :-)
<stacksmith> That is very interesting. Fare: thank you, i will check out cl-launch. And thank you all.
hhdave has joined #lisp
kdridi has joined #lisp
<Fare> interesting results for (loop for i from 1 to 128 collect (upgraded-array-element-type `(unsigned-byte ,i)))
krwq has joined #lisp
hhdave_ has joined #lisp
nowhereman_ has joined #lisp
nowhere_man has quit [Ping timeout: 260 seconds]
hhdave has quit [Ping timeout: 260 seconds]
hhdave_ is now known as hhdave
terpri has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
<stacksmith> why (unsigned-byte 7) for 5,6,7 bits? Does it mean that 7 bits are stored in an 8-bit byte?
Murii has quit [Quit: WeeChat 1.4]
<phoe> it means that it has a way of optimizing for uint7s
<phoe> probably stores them in uint8 with tags
<phoe> or something
<pjb> stacksmith: often, for integers, there's only one type tag in the low order bit, so (unsigned-byte 7) is the most efficient way to store small integer (fixnum) values into a byte.
Pixel_Outlaw has quit [Quit: Leaving]
<stacksmith> Confused: if 7 means it is probably 8, does 4 mean maybe 8? Does upgraded-array-element-type make any promises about the storage size?
<phoe> nothing makes any promises about the storage-size
<phoe> consult your implementation for the exact details. upgraded-array-element-type can't tell you such implementation details.
dieggsy has quit [Remote host closed the connection]
<stacksmith> OK. As a note, my original question had nothing to do with upgraded-array-element-type...
rumbler31 has quit [Ping timeout: 260 seconds]
<phoe> ;)
<phoe> stacksmith: I think you can direct your question towards SBCL as it's reasonably fast and has a separate u-a-e-t for uint4
<phoe> so #sbcl
<stacksmith> will do.
smasta has joined #lisp
emacsoma` has joined #lisp
vultyre has quit [Quit: Leaving]
shrdlu68 has quit [Ping timeout: 240 seconds]
shrdlu68 has joined #lisp
hel-io has quit [Remote host closed the connection]
hel-io has joined #lisp
random-nick has quit [Remote host closed the connection]
hel-io has quit [Ping timeout: 240 seconds]
Patternmaster has joined #lisp
raynold has joined #lisp
LostPw has joined #lisp
emacsomancer has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
emacsomancer has joined #lisp
LostPw has quit [Quit: Leaving]
smasta has quit [Ping timeout: 256 seconds]
smasta has joined #lisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #lisp
papachan has joined #lisp
vlatkoB_ has joined #lisp
nullman has quit [Ping timeout: 240 seconds]
nullman has joined #lisp
vlatkoB has quit [Ping timeout: 265 seconds]
jmercouris has quit [Ping timeout: 240 seconds]
borei has quit [Ping timeout: 248 seconds]
pillton has joined #lisp
le4fy has joined #lisp
Rawriful has quit [Quit: WeeChat 1.4]
gabiruh_ is now known as gabiruh
dieggsy has joined #lisp
hhdave has quit [Quit: hhdave]
<|3b|> unsigned-byte 7,15,31,etc u-a-e-t are probably from the combination of upgrading rules and type lattice, like NIL arrays being strings, since unsigned-byte 7 overlaps signed-byte 8