<kreyren_>
There is no package with the name UIOP..
<kreyren_>
note this being ecl
<no-defun-allowed>
Best load it them, with something like (ql:quickload :uiop)
<kreyren_>
> There is no package with the name QL..
<no-defun-allowed>
In ECL, (ext:getenv "USER") will work, but I really don't like writing implementation-dependent code.
<kreyren_>
no-defun-allowed, what do you recommend then?
<tychoish>
can you install quicklisp?
<no-defun-allowed>
Well, probably installing Quicklisp so you can use UIOP.
<tychoish>
uiop is a component in asdf
<tychoish>
what version of ecl are you running?
<kreyren_>
ECL 20.4.24
<tychoish>
hrm, same as what I'm using,
<kreyren_>
what's implementation-dependent code in this scenario though?
* kreyren_
would think that importing packages to his ecl would make it more dependent on the configuration
* kreyren_
's trying to write his ecl to work on as many systems as possible
<tychoish>
(ext:getenv "foo") is something specific to the ECL implementation
<tychoish>
ah, so here's a concept that you might not be used to, that CL folks will talk about a lot.
<kreyren_>
so that won't work on ccl ?
<tychoish>
so there are lots of different implementations of Common Lisp which have their own extension set (SBCL has functions that start with "sb-" and ecl has ones that start with 'ext" and if you're on SBCL you can't use ECL functions and vice versa
<tychoish>
if you stick to only ECL or only SBCL your code works on any version of ECL or SBCL on any system (more or less.)
<kreyren_>
is that a bad thing for compatibility to stick only to ECL/SBCL ?
<tychoish>
if you have a dependency on a library, that's written in pure standard compliant common lisp, which many (most?) are, then your code should run on EITHER sbcl or ecl (or any of the others.)
<kreyren_>
and that won't break compatibility right?
<tychoish>
nope
<tychoish>
works great
<kreyren_>
i see O.o
<kreyren_>
What is the better implementation then? Installing quicklisp then loading uiop ?
<kreyren_>
also is there some kind of linting that would capture this?
<tychoish>
so UIOP is a compatibility layer that provides a common interaface to lots of common systems-type functions (getenv/setenv/getwd)
<tychoish>
I'm not aware of a good linter for portability.
<tychoish>
most implementations that people use support quicklisp
<tychoish>
(all?)
<kreyren_>
checking
<tychoish>
so there's this package called asdf which is a build system tool for common lisp packages (it's like setuptools or distutil from python, say)
<tychoish>
and everyone / everything uses it (more or less).
<tychoish>
and uiop is a component of asdf so it's really everywhere.
* kreyren_
is still not sure how to get `(write-line (uiop:getenv "VAR"))` to work in ecl
<kreyren_>
So is quicklisp a package from the distro or ?
<kreyren_>
tychoish, debian has this as a package, but should i vendor this? assuming that my code is called from a Makefile.toml loaded using cargo-make
* kreyren_
is not sure what is the better way for compatibility across multiple systems
<Alfr>
kreyren_, if your package is mostly list, stick to asdf. The other case will be a mess either way.
<tychoish>
kreyren_: I don't really know what you're trying to do or what the practical requirements are. I'd get it working locally and then try and decided.
<tychoish>
and decide from there
<Alfr>
s/list/lisp/
<kreyren_>
tychoish, if that makes sense: http://ix.io/2zF9 basically defining a makefile where instead of POSIX sh i am using common lisp so that it works on legacy systems
<kreyren_>
so `makers kreyren` will invoke ecl --shell <generated-file>.cl
<tychoish>
yeah, I dunno.
<kreyren_>
x.x
<kreyren_>
saganman, mornin' ^-^
<tychoish>
the set of systems that don't have posix shells but do have ECL? I don't think that exists.
<tychoish>
but good luck!
<kreyren_>
tychoish, Allegedly VAX are that way as they only have bourne shell (bsh)
<tychoish>
yeah, but I don't think ECL runs on VAX, and
<kreyren_>
also why is ecl a thing when ccl using can interpret the suggested code? Woudn't that make it embeddable ?
<tychoish>
but also no one's writing new software for VAXes
<kreyren_>
tychoish, apparently the users are exporting the C99 to work there O.o
<tychoish>
meh?
<tychoish>
haha
<no-defun-allowed>
ECL has a bytecode interpreter and C generator, which can be more portable than Clozure's native code compiler.
<no-defun-allowed>
I don't know what platforms ECL supports, so don't take this example too literally, but you could run the former but not the latter on a Linux system with C99 compiler on a MIPS processor.
<kreyren_>
ah i see O.o
<saganman>
I always learn something new from this channel
<no-defun-allowed>
Okay, ECL officially supports x86, SPARC, Alpha, PowerPC and ARM processors, whereas Clozure only supports x86 and ARM.
<Alfr>
kreyren_, why not write your script completly in cl? And then use asdf to dump one lisp file (as asdf does for itself).
<kreyren_>
Alfr, dunno yet, currently investigating the option
<Alfr>
.asd files describe systems and how to load them, essentially file dependencies, and ASDF can use that description to load such a system into the running lisp.
cjv has joined #lisp
<kreyren_>
Alfr, do you have proof of concept or something? from provide don't understand how could that be implemented
<Alfr>
Konwing that, it can also concatenate the component files of a system into a single file, so that loading it would have the same results (usually minus compilation) as using ASDF's load-system directly.
<kreyren_>
x.x
<Alfr>
kreyren_, that's already implemented to package ASDF itself.
<kreyren_>
Alfr, so basically .asdf is quicklisp with bunch of metadata at it's header?
<Alfr>
kreyren_, no. It doesn't download systems for you. And Quicklisp is built upon ASDF.
<Alfr>
It essentially defines component dependencies, and specifies :build-operation as monolithic-concatenate-source-op .
sts-q has joined #lisp
nullheroes has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
<kreyren_>
i see O.o
<kreyren_>
checking
<Alfr>
Calling (asdf:make :asdf), I think, will then generate a lisp file, which includes all dependencies (uiop and asdf itself).
IAmRasputin has joined #lisp
<bhartrihari>
kreyren_: An asdf system definition basically allows you to describe how to load your lisp code (from the file system). (eg. what files to load, what order to load them in, dependencies etc.).
* kreyren_
expects only `(write-line (uiop:getenv "MESSAGE"))` and simmilar content in the `script` that is compatibility friendly so that the code is not bloated
<kreyren_>
ah apparently i can
EvW has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
IAmRasputin has joined #lisp
<Alfr>
Seems that requiring asdf sets it to nil, interesting.
iissaacc has joined #lisp
_whitelogger has joined #lisp
<no-defun-allowed>
Some day I'll ask if you could use a paste service so I can run the code without having to transcribe it, but that day isn't today.
narimiran has joined #lisp
<no-defun-allowed>
Could you configure the scripting program that runs ECL to prepend loading ASDF and include the arguments to ECL? A user probably doesn't need to know how you invoke ECL either.
torbo has quit [Remote host closed the connection]
kreyren_ has quit [Remote host closed the connection]
kreyren_ has joined #lisp
Jesin has joined #lisp
krid has quit [Ping timeout: 256 seconds]
isBEKaml has joined #lisp
aaaaaa has quit [Quit: leaving]
_whitelogger has joined #lisp
ex_nihilo has quit [Quit: Leaving]
skapata has quit [Remote host closed the connection]
ym555 has joined #lisp
Jeanne-Kamikaze has quit [Quit: Leaving]
_whitelogger has joined #lisp
daphnis has joined #lisp
treflip has joined #lisp
wxie has joined #lisp
_whitelogger has joined #lisp
rgherdt has joined #lisp
<moon-child>
when I load quicklisp from sbcl, I get a lot of warnings like 'In source-registry entry /usr/local/lib/sbcl// found several entries for sb-sprof - picking #P"/usr/local/lib/sbcl/contrib/sb-sprof.asd" over #P"/usr/local/lib/sbcl/sb-sprof/sb-sprof.asd"'
<moon-child>
(don't get that from ccl or from sbcl without quicklisp)
<moon-child>
anyone have any clues about that?
toorevitimirp has quit [Ping timeout: 258 seconds]
brainfunnel has joined #lisp
<no-defun-allowed>
Well, it appears the contribs could be installed twice.
<easye>
moon-child: when loaded, Quicklisp configures ASDF to find additional systems. What exactly is happening is unclear, but it kinda looks like sbcl has a funny installation.
cjv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
karlosz has quit [Quit: karlosz]
<moon-child>
oh, I see; apologies. It looks like the port has a note about this, saying to modify a config file if using quicklisp
<easye>
moon-child: having SBCL configured this way probably isn't fatal, as the systems are presumably identical, but it is probably nice to have less noise.
rippa has joined #lisp
isBEKaml has quit [Quit: leaving]
epony has quit [Ping timeout: 258 seconds]
pve has joined #lisp
hendursa1 has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
jmarciano has joined #lisp
ggole has joined #lisp
jmarciano has quit [Client Quit]
jonatack has quit [Ping timeout: 244 seconds]
pankajgodbole has joined #lisp
enzuru has quit [Quit: Lost terminal]
epony has joined #lisp
Atranimus has joined #lisp
tiwEllien has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
daphnis has quit [Ping timeout: 240 seconds]
jonatack has joined #lisp
pankajgodbole has quit [Ping timeout: 265 seconds]
aindilis has quit [Read error: Connection reset by peer]
natj212_ has quit [Ping timeout: 260 seconds]
aindilis` has joined #lisp
natj212 has joined #lisp
jibanes has quit [Ping timeout: 272 seconds]
Bike has joined #lisp
jibanes has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
rusua_ has joined #lisp
aartaka has quit [Ping timeout: 265 seconds]
rusua_ is now known as rusua
jw4 has quit [Ping timeout: 240 seconds]
johnweldon has joined #lisp
narimiran has quit [Ping timeout: 240 seconds]
narimiran has joined #lisp
pve_ has joined #lisp
random-nick has joined #lisp
CEnnis91_ has joined #lisp
pve has quit [Ping timeout: 240 seconds]
Atranimus has left #lisp ["WeeChat 2.9"]
CEnnis91 has quit [Ping timeout: 240 seconds]
ludston has quit [Ping timeout: 240 seconds]
CEnnis91_ is now known as CEnnis91
treflip has quit [Ping timeout: 258 seconds]
Alfr_ has joined #lisp
Alfr has quit [Ping timeout: 240 seconds]
selwyn has quit [Ping timeout: 240 seconds]
selwyn has joined #lisp
RedMallet has joined #lisp
conjunctive has quit [Ping timeout: 240 seconds]
jerme_ has quit [Ping timeout: 240 seconds]
mindCrime has quit [Ping timeout: 240 seconds]
jerme_ has joined #lisp
conjunctive has joined #lisp
RedMallet has quit [Quit: WeeChat 2.6]
tiwEllien has quit [Quit: WeeChat 2.9]
Lycurgus has joined #lisp
Lord_of_Life has quit [Ping timeout: 272 seconds]
aartaka has joined #lisp
rogersm has joined #lisp
rogersm has quit [Remote host closed the connection]
narimiran has quit [Ping timeout: 265 seconds]
ludston has joined #lisp
ggole- has joined #lisp
galex-713 has joined #lisp
Oladon1 has joined #lisp
bars0 has joined #lisp
ggole has quit [Remote host closed the connection]
quazimodo has quit [Ping timeout: 240 seconds]
Oladon has quit [Ping timeout: 240 seconds]
mfiano- has quit [Ping timeout: 240 seconds]
DGASAU has quit [Ping timeout: 240 seconds]
aartaka has quit [Ping timeout: 258 seconds]
achilles has joined #lisp
quazimodo has joined #lisp
Lord_of_Life has joined #lisp
sonologico has quit [Remote host closed the connection]
jonatack has quit [Read error: Connection reset by peer]
Lycurgus has quit [Quit: Exeunt]
_whitelogger has joined #lisp
motersen has joined #lisp
achilles has quit [Remote host closed the connection]
achilles has joined #lisp
orivej has joined #lisp
blackadder has joined #lisp
blackadder has joined #lisp
blackadder has quit [Changing host]
gaqwas has joined #lisp
brainfunnel has quit [Quit: whoops]
saganman_ has joined #lisp
blackadder has quit [Ping timeout: 265 seconds]
cosimone has joined #lisp
jonatack has joined #lisp
motersen has quit [Ping timeout: 240 seconds]
motersen has joined #lisp
frgo has joined #lisp
frgo_ has quit [Ping timeout: 240 seconds]
saganman_ is now known as blackadder
blackadder has joined #lisp
blackadder has quit [Changing host]
isBEKaml has joined #lisp
treflip has joined #lisp
bars0 has quit [Quit: leaving]
iissaacc has quit [Ping timeout: 246 seconds]
daphnis has joined #lisp
mfiano- has joined #lisp
isBEKaml has quit [Ping timeout: 246 seconds]
C-16 has quit [Ping timeout: 244 seconds]
TwoNotes has joined #lisp
enrio has joined #lisp
sts-q has quit []
TwoNotes has quit [Quit: Leaving]
heisig has joined #lisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
blackadder has quit [Quit: Leaving]
orivej has quit [Ping timeout: 246 seconds]
sts-q has joined #lisp
daphnis has quit [Ping timeout: 258 seconds]
johnweldon has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
guest74637 has joined #lisp
guest74637 has quit [Remote host closed the connection]
guest74637 has joined #lisp
guest74637 has quit [Max SendQ exceeded]
guest74637 has joined #lisp
yoel has joined #lisp
yoel is now known as Guest73536
guest74637 has quit [Remote host closed the connection]
<Guest73536>
Can your favorite CL compiler repeat the optimization mentioned in PAIP P.279?
<beach>
I don't know, but it doesn't look very hard.
_jrjsmrtn has quit [Ping timeout: 240 seconds]
<beach>
Except that there is some semantic violations in that code.
<beach>
It is possible that L is not a list, so that has to be tested for, unless you have a very low safety setting and the compiler takes advantage of it.
notzmv has quit [Ping timeout: 256 seconds]
<beach>
Er, hold on...
<beach>
The first argument to EXPT is N, provided N is a number. That has to be tested for too.
<beach>
The second argument is -2 and the compiler can figure that out.
<beach>
I don't see how the disassembly corresponds to that code.
orivej has joined #lisp
<beach>
Oh, sorry, the second argument is 2. Duh!
<beach>
Guest73536: If you want Common Lisp to be a safe language, neither function can be optimized that much.
kaftejiman has joined #lisp
<beach>
Guest73536: But with enough declarations and a low safety, perhaps. I would not generate code like that myself.
<beach>
Also, there is hidden complexity. Even if N is a number, it could be a bignum, or a complex number, so the * operator is not free.
narimiran has joined #lisp
krid has joined #lisp
<Guest73536>
Declaring type function input type doesn't help. Even changing F1 as follows does not:
Inline has quit [Read error: Connection reset by peer]
notzmv has quit [Remote host closed the connection]
oleo__ is now known as Inline
TwoNotes has joined #lisp
notzmv has joined #lisp
<_death>
sbcl does reduce (length '(a b)) to 2.. a direct (length (list ...)) should be easy, but likely not worth it
renzhi has joined #lisp
EvW has joined #lisp
tankrim has left #lisp ["ERC (IRC client for Emacs 27.1.50)"]
ludston has quit [Ping timeout: 272 seconds]
tankrim has joined #lisp
enrio has quit [Read error: Connection reset by peer]
saganman has quit [Quit: WeeChat 1.6]
notzmv has quit [Remote host closed the connection]
notzmv has joined #lisp
notzmv has quit [Remote host closed the connection]
saganman has joined #lisp
saganman has quit [Changing host]
saganman has joined #lisp
decentyousername has joined #lisp
notzmv has joined #lisp
<decentyousername>
Hi guys. I remember that there was a website which provided a preconfigured emacs for Common Lisp development. It had dark CSS. Anyone know what I mean?
<_death>
portacle?
<decentyousername>
could be
<saganman>
is anyone using rcirc?
<decentyousername>
_death: thanks. I was looking for portacle.
rgherdt has quit [Ping timeout: 256 seconds]
Inline has quit [Remote host closed the connection]
rgherdt has joined #lisp
Guest73536 has quit [Quit: Guest73536]
saganman has quit [Quit: Leaving]
shka_ has joined #lisp
treflip has quit [Quit: WeeChat 2.6]
coltkirk has joined #lisp
<coltkirk>
hi, where is the newbie channel? the beginner question area
Inline has joined #lisp
aindilis` has quit [Remote host closed the connection]
<coltkirk>
i wrote an algorithm that, although it works it's very non-elegant, was curious to get some feedback while it's fresh on my mind
aindilis has joined #lisp
<mfiano->
#clschool is the Common Lisp beginners channel.
<coltkirk>
thanks
Inline has quit [Remote host closed the connection]
<coltkirk>
i'll write a note in my .emacs file as to not forget the name of that channel
Inline has joined #lisp
coltkirk has left #lisp ["ERC (IRC client for Emacs 27.1)"]
orivej has joined #lisp
isBEKaml has quit [Ping timeout: 240 seconds]
notzmv has quit [Remote host closed the connection]
notzmv has joined #lisp
Gerula has quit [Quit: Leaving]
notzmv has quit [Remote host closed the connection]
notzmv has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
aindilis has quit [Remote host closed the connection]
skapata has joined #lisp
aindilis has joined #lisp
Gerula has joined #lisp
chrpape has joined #lisp
Aurora_v_kosmose has quit [Ping timeout: 240 seconds]
Aurora_v_kosmose has joined #lisp
notzmv` has joined #lisp
notzmv` has quit [Ping timeout: 258 seconds]
notzmv has quit [Ping timeout: 260 seconds]
renzhi has quit [Ping timeout: 240 seconds]
kaftejiman has quit [Remote host closed the connection]
cjv has joined #lisp
Jeanne-Kamikaze has joined #lisp
daphnis has joined #lisp
mindCrime has joined #lisp
TwoNotes has quit [Remote host closed the connection]
TwoNotes has joined #lisp
rogersm has joined #lisp
daphnis has quit [Ping timeout: 256 seconds]
rogersm has quit [Quit: Leaving...]
daphnis has joined #lisp
EvW has joined #lisp
daphnis has quit [Ping timeout: 240 seconds]
daphnis has joined #lisp
arpunk has quit [Ping timeout: 240 seconds]
zacts has joined #lisp
saganman has joined #lisp
saganman has quit [Quit: WeeChat 1.6]
gravicappa has quit [Ping timeout: 260 seconds]
gravicappa has joined #lisp
sympt_ has quit [Read error: Connection reset by peer]
achilles has quit [Read error: Connection reset by peer]