jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | offtopic --> #lispcafe
bg__ has quit [Ping timeout: 244 seconds]
EvW has quit [Ping timeout: 244 seconds]
Jeanne-Kamikaze has quit [Ping timeout: 240 seconds]
Alloc has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
Alloc has quit [Ping timeout: 260 seconds]
Alloc has joined #lisp
wxie has joined #lisp
wxie has quit [Remote host closed the connection]
Volt_ has joined #lisp
voidlily has quit [Remote host closed the connection]
voidlily has joined #lisp
mangoicedtea has quit [Quit: Leaving]
torbo has joined #lisp
Necktwi has quit [Ping timeout: 240 seconds]
Alloc has quit [Ping timeout: 240 seconds]
Jeanne-Kamikaze has joined #lisp
iAmDecim has joined #lisp
karlosz has quit [Quit: karlosz]
Necktwi has joined #lisp
iAmDecim has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
Alloc has joined #lisp
_jrjsmrtn has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 256 seconds]
Necktwi has quit [Ping timeout: 246 seconds]
jeosol has joined #lisp
iissaacc has quit [Ping timeout: 240 seconds]
bsd4me has joined #lisp
Necktwi has joined #lisp
luckless has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
Necktwi has quit [Remote host closed the connection]
akoana_ has joined #lisp
akoana_ has quit [Client Quit]
iissaacc has joined #lisp
akoana has joined #lisp
Necktwi has joined #lisp
PuercoPop has joined #lisp
luckless has quit [Ping timeout: 240 seconds]
luckless has joined #lisp
wxie has joined #lisp
iissaacc has quit [Ping timeout: 240 seconds]
<akoana> I'm trying to run an external program on linux in sbcl with (uiop:run-program (list "/usr/bin/mpv" "http://stream.srg-ssr.ch/m/rsj/mp3_128") :output :interactive :input *standard-input*)
<akoana> the mpv program accepts 'q' to terminate it, but I can't make that work if I start it in sbcl
john__ has joined #lisp
<akoana> I had that working in clisp with run-program, but sadly - on a raspberry pi clisp crashes with errno = 12 (:ENOMEM): Cannot allocate memory. :(
PuercoPop has quit [Quit: WeeChat 1.9.1]
<akoana> any ideas?
<no-defun-allowed> Maybe try :input :interactive?
<no-defun-allowed> Somehow I wonder if SBCL is doing something with the input stream, but it shouldn't be.
<akoana> yeah, I tried that already, no chance sadly, even tried with "bash -c mpv url", the mpv program starts, but does not accept a keypress
gaqwas has quit [Ping timeout: 240 seconds]
<akoana> I can only use CTRL-C but that starts the debugger and leaves mpv running
<no-defun-allowed> Also, I would not expect only the character q to close it, unless mpv has still set terminal(?) settings to not buffer input.
<no-defun-allowed> (And if you use SLIME, :interactive input is the stream connected to *inferior-lisp*)
<no-defun-allowed> Hey, (uiop:run-program "mpv foo.mp3" :input :interactive :output :interactive) closes with just q.
<akoana> hah, let me try...
<akoana> no-defun-allowed: yay - thanks a lot - that works - you saved my day :)
<akoana> I have been struggling with this for hours - now it works with 1.4.16.debian on my raspi
<akoana> no-defun-allowed: thank you very much again!!!
<akoana> (*sbcl 1.4.16)
<no-defun-allowed> Sure.
<no-defun-allowed> It also works with the "proper" way to specify the command to run, i.e. '("/usr/bin/mpv" "foo.mp3")
<akoana> yes, I have it like that
jeosol has quit [Remote host closed the connection]
<akoana> on my workstation it runs like a charm, but on the raspi I guess I've to install quicklisp ("Package UIOP does not exist".)
Oladon has quit [Quit: Leaving.]
<no-defun-allowed> I think UIOP comes with ASDF, but you can indeed get both quickly using Quicklisp.
<akoana> although i installed the cl-asdf package, but maybe thats for clisp only, hmm, Raspian (Debian10)
<no-defun-allowed> Right, I've never used Debian's CL packages, so I can't comment. (But it should be accessible by any implementation?)
<akoana> yes, I thoght so, but usually I compile clisp and sbcl myself and don't use the distro packages (only clisp for the initial installation of sbcl)
<akoana> thought*
<no-defun-allowed> What model of Pi are you on?
<akoana> Model: Pi 2 Model B v1.1 - lol
<akoana> 1GB ram
zooey has quit [Ping timeout: 240 seconds]
zooey_ has joined #lisp
Oladon has joined #lisp
<no-defun-allowed> I would recommend Clozure on the 32-bit Pis (a superset of Pi 2), as it has mostly working threads.
<akoana> the mpv thing is part of a small internet radio streaming program, with a small database of station
<akoana> I have once compiled ccl on a Pi, and it did work well, but the build process on the Pi takes a long time :)
<no-defun-allowed> Yeah, I think I just downloaded a bootstrap image and lived with that out of laziness.
karlosz has joined #lisp
<akoana> and also, I'm rather a noob with Common Lisp - but I like it very much
<akoana> in fact I love it
<akoana> I've replaced some of my old python and shell scripts with lisp programs, and I'm going to continue that :)
aeth_ has joined #lisp
sveit has quit [Ping timeout: 260 seconds]
aeth has quit [Ping timeout: 240 seconds]
aeth_ is now known as aeth
<akoana> no-defun-allowed: installed quicklisp on the Pi - now I can listen to the music - wonderful!
<no-defun-allowed> Great!
iAmDecim has joined #lisp
simplegauss has quit [Ping timeout: 240 seconds]
sveit has joined #lisp
simplegauss has joined #lisp
<akoana> It's a small program with a database of internet radio stations, it lets you select a station or add one on the command line or just lists all available stations (without an argument)
Alfr_ has joined #lisp
endousan has joined #lisp
<akoana> well database is a bit exaggerated, it's just a list of lists stored in a file :)
Alfr has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
iAmDecim has quit [Ping timeout: 240 seconds]
Jeanne-Kamikaze has quit [Quit: Leaving]
orivej has quit [Ping timeout: 240 seconds]
endousan has quit [Quit: WeeChat 2.3]
iissaacc has joined #lisp
bsd4me has left #lisp ["Leaving"]
orivej has joined #lisp
<beach> Good morning everyone!
rumbler31 has quit [Ping timeout: 256 seconds]
torbo has quit [Remote host closed the connection]
shangul has joined #lisp
<akoana> good morning beach!
ueta has joined #lisp
mathrick has joined #lisp
macoy has quit [Read error: Connection reset by peer]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Client Quit]
gravicappa has joined #lisp
thecoffemaker has quit [Ping timeout: 265 seconds]
wxie has quit [Ping timeout: 240 seconds]
orivej has quit [Remote host closed the connection]
orivej has joined #lisp
_paul0 has joined #lisp
paul0 has quit [Ping timeout: 246 seconds]
brj has quit [Ping timeout: 240 seconds]
samebchase- has joined #lisp
<Balooga> Hiya beach.
rtoy has joined #lisp
thecoffemaker has joined #lisp
Lord_of_Life_ has joined #lisp
shangul has quit [Ping timeout: 265 seconds]
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
peterhil has joined #lisp
wxie has joined #lisp
bilegeek has quit [Quit: Leaving]
<aeth> beach: you aren't in #lispcafe so you didn't see the conversation, but can you elaborate on this? https://irclog.tymoon.eu/freenode/%23lisp?around=1598677456#1598677456
<aeth> In particular "But maybe this minimalism trend is due tot he fact that their tools are so complex that they can't do otherwise. ... The hypothesis was that, in order to simplify their work (design, first-time development, maintenance), since their main tool (i.e., the programming language) makes their task so hard, they need to cut down on the features. ...
<aeth> "Lisp had fixed these problems ages ago, and in a better way than Python does."
shangul has joined #lisp
grewal has quit [Ping timeout: 246 seconds]
wxie1 has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
wxie1 is now known as wxie
<beach> aeth: Today is Monday morning, and Monday mornings are chaotic around here. It may take some time.
<beach> aeth: For the minimalist trend, I was just guessing. I don't know what is really going on.
<beach> As for the last quote, The guy was just enumerating things that were surprising to him. He didn't have the words to express them necessarily, but one was what I call "uniform reference semantics". To him, it seemed like Python invented that idea, but Lisp had it in 1960.
<beach> As for the "better" part, it is just about things that I repeat fairly frequently, namely that Common Lisp was designed by people who know about language design and compiler technology. Some quotations I have seen from the creator of Python seems to suggest that such knowledge is quite limited there.
<beach> aeth: What was the discussion in #lispcafe about?
<aeth> beach: I guess it was almost more of a request for comment than a real conversation because we don't know what features you think Common Lisp has that other languages lack.
iAmDecim has joined #lisp
<beach> Again, the guy was lamenting the complexity of C and C++ because they distinguish what he calls "values" from what he calls "pointers", and he seemed to think that Python invented what I call "uniform reference semantics".
<beach> He was also talking about things like operator priority in C and C++, and claimed that Python has a much better solution. I claim that Lisp has had the best solution for 60 years.
shka_ has joined #lisp
<beach> I wasn't so much comparing Common Lisp to other languages as I was comparing this person's idea about what Python supposedly invented, to what Lisp has had for a long time.
<beach> Also, this guy seemed convinced that there must be a distinction between a general-purpose language and a scripting language. Again, he seemed totally ignorant of the fact that you can have the features of something like Python with the power of something like Common Lisp and the speed of a good Common Lisp implementation.
<aeth> Yes, that seems like a common opinion.
<beach> I personally find it unacceptable to have people like that invited to a conference, or to have their papers accepted at one, if they are unaware of Common Lisp.
<beach> I also don't see much mention of the main problem with this distinction between general-purpose and scripting, namely that it can be a nightmare to debug and maintain, especially if the semantics are different, and also the problem that users start writing complex code in the scripting language, thereby making the combination slower than if the entire applicatio had been written in Common Lisp.
iAmDecim has quit [Ping timeout: 265 seconds]
<aeth> beach: What do you think Common Lisp offers to make maintaining code easier?
<beach> I am reminded of how a colleague of mine cleaned up the ICMC, the International Computer Music Conference, by taking on the chairmanship and rejecting all papers that didn't make a scientific argument. Maybe a Lisper should take on the chairmanship of a Python conference and do the same.
<beach> I am saying that it is easier to maintain an application written in one language with sane and consistent semantics, than to maintain a mixture between a traditional static general-purpose language and a dynamic scripting language.
<aeth> ah
<beach> But the guy was right that the semantics of C and C++, with the distinction between "values" and "pointers" is a horrible idea. And, as I often point out (and as Paul Wilson says), liveness is a global property, so if you don't have automatic memory management, you already either have a maintenance nightmare, or you have a slow application.
<beach> I have explained the reason why several times. But basically, either you break the modularity so that you know what the module does with your objects (and you have a maintenance nightmare), or you copy objects, use smart pointers, or use reference counting (and you have a slow application).
<beach> So, instead of taking a general-purpose dynamic language with sane semantics and good implementations, like Common Lisp, they combine a static language with horrible semantics that can't be made both fast and modular with a dynamic language with a slow implementation and totally different semantics. And they are proud of themselves, to the degree that they get to speak at conferences.
josemanuel has quit [Ping timeout: 246 seconds]
josemanuel has joined #lisp
Volt_ has quit [Quit: ]
<aeth> beach: thank you for your in-depth response
<beach> Sure. I hope it helped clarify things.
narimiran has joined #lisp
john__ is now known as gaqwas
gaqwas has joined #lisp
gaqwas has quit [Changing host]
toorevitimirp has joined #lisp
_Posterdati_ is now known as Posterdati
alfonsox has joined #lisp
Oladon has quit [Quit: Leaving.]
Volt_ has joined #lisp
Jesin has quit [Ping timeout: 240 seconds]
wxie has quit [Ping timeout: 256 seconds]
wxie has joined #lisp
edgar-rft has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
toorevitimirp has quit [Ping timeout: 256 seconds]
frgo has quit [Ping timeout: 240 seconds]
frgo has joined #lisp
wxie has joined #lisp
peterhil has quit [Quit: Must not waste too much time here...]
wxie has quit [Ping timeout: 258 seconds]
ralt has joined #lisp
Volt_ has quit [Quit: ]
jprajzne has joined #lisp
narimiran has quit [Ping timeout: 256 seconds]
ljavorsk has joined #lisp
holycow has joined #lisp
mangul has joined #lisp
shangul has quit [Ping timeout: 240 seconds]
scymtym has quit [Ping timeout: 256 seconds]
jonatack has quit [Ping timeout: 244 seconds]
treflip has joined #lisp
akoana has left #lisp ["Leaving"]
iissaacc has quit [Ping timeout: 258 seconds]
pve has joined #lisp
liberliver has joined #lisp
scymtym has joined #lisp
grobe0ba_ has joined #lisp
random-nick has joined #lisp
davepdot_ has joined #lisp
aeth has quit [*.net *.split]
_paul0 has quit [*.net *.split]
ueta has quit [*.net *.split]
treflip has quit [*.net *.split]
gaqwas has quit [*.net *.split]
Alloc has quit [*.net *.split]
jurov has quit [*.net *.split]
logicmoo has quit [*.net *.split]
Misha_B has quit [*.net *.split]
luna_is_here has quit [*.net *.split]
CrazyEddy has quit [*.net *.split]
bocaneri has quit [*.net *.split]
andinus has quit [*.net *.split]
vaporatorius__ has quit [*.net *.split]
grobe0ba has quit [*.net *.split]
quazimodo has quit [*.net *.split]
johnjay has quit [*.net *.split]
hjudt has quit [*.net *.split]
stux|RC-only has quit [*.net *.split]
grobe0ba_ is now known as grobe0ba
alfonsox has quit [Ping timeout: 245 seconds]
_paul0 has joined #lisp
ueta has joined #lisp
aeth has joined #lisp
Alloc has joined #lisp
gaqwas has joined #lisp
treflip has joined #lisp
jurov has joined #lisp
CrazyEddy has joined #lisp
Misha_B has joined #lisp
luna_is_here has joined #lisp
bocaneri has joined #lisp
andinus has joined #lisp
quazimodo has joined #lisp
vaporatorius__ has joined #lisp
johnjay has joined #lisp
logicmoo has joined #lisp
stux|RC-only has joined #lisp
scymtym_ has joined #lisp
logicmoo has quit [Max SendQ exceeded]
bocaneri has quit [Max SendQ exceeded]
bocaneri has joined #lisp
scymtym has quit [Ping timeout: 244 seconds]
CrazyEddy has quit [Ping timeout: 255 seconds]
wxie has joined #lisp
dmiles has joined #lisp
hendursa1 has joined #lisp
hjudt has joined #lisp
wxie has quit [Client Quit]
hendursaga has quit [Ping timeout: 240 seconds]
nicktick has joined #lisp
tumdum has joined #lisp
tumdum has joined #lisp
tumdum has quit [Changing host]
Jesin has joined #lisp
brj has joined #lisp
rogersm has joined #lisp
Hineios has joined #lisp
VincentVega has joined #lisp
jonatack has joined #lisp
jibanes has quit [Ping timeout: 265 seconds]
heisig has joined #lisp
paines has joined #lisp
paines_ has joined #lisp
paines_ is now known as paines
jibanes has joined #lisp
ggole has joined #lisp
iissaacc has joined #lisp
cosimone has joined #lisp
davepdot_ has quit [Remote host closed the connection]
p_l|shit1bp has joined #lisp
p_l|shitmbp has quit [Ping timeout: 258 seconds]
Kaisyu has joined #lisp
davepdotorg has joined #lisp
nicktick has quit [Ping timeout: 256 seconds]
cosimone has quit [Remote host closed the connection]
dmiles has quit []
yitzi has quit [Read error: Connection reset by peer]
johnweldon has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 258 seconds]
jw4 has joined #lisp
Hineios has quit [Ping timeout: 245 seconds]
yitzi has joined #lisp
mseddon has joined #lisp
cosimone has joined #lisp
gko`` has left #lisp ["ERC (IRC client for Emacs 27.1)"]
gko` has quit [Quit: ERC (IRC client for Emacs 27.1)]
gko has joined #lisp
gko has quit [Client Quit]
<pve> Hello! If I try to do (defclass let () ()) then SBCL signals a package lock error.
<phoe> yes
<pve> But it will happily let me get away with (closer-mop::ensure-class 'let)
<pve> is this expected behaviour?
<phoe> both are UB
<pve> oh
<phoe> defining classes with names in CL package is UB
<pve> so basically, anytime I use ensure-class I'm going to have to check that the symbol is not in CL?
<phoe> 1) yes
<phoe> 2) even better: file a SBCL bug
<phoe> this should be a package lock violation.
<pve> alright, thanks phoe
<phoe> in particular, (sb-mop:ensure-class 'let) should signal the same error that (defclass let () ()) does
<pve> yep
orivej has joined #lisp
mseddon has quit [Ping timeout: 240 seconds]
gko has joined #lisp
holycow has quit [Quit: Lost terminal]
Cymew has joined #lisp
q-u-a-n2 has quit [Read error: Connection reset by peer]
q-u-a-n2 has joined #lisp
cosimone has quit [Quit: Quit.]
yitzi has quit [Quit: yitzi]
cosimone has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
mangul has quit [Quit: Leaving]
davepdotorg has quit [Remote host closed the connection]
wxie has joined #lisp
VincentVega has quit [Remote host closed the connection]
orivej has joined #lisp
dmiles has joined #lisp
bitmapper has quit [Ping timeout: 264 seconds]
shangul has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
shangul has quit [Ping timeout: 258 seconds]
EvW has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
libertyprime has joined #lisp
scymtym_ has quit [Remote host closed the connection]
iissaacc has quit [Ping timeout: 256 seconds]
treflip has quit [Quit: WeeChat 2.6]
scymtym has joined #lisp
cosimone has quit [Quit: Quit.]
paines has quit [Remote host closed the connection]
davepdot_ has joined #lisp
liberliver has quit [Ping timeout: 244 seconds]
liberliver has joined #lisp
p_l|shit1bp has quit [Ping timeout: 265 seconds]
Alloc has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
davepdot_ has quit [Remote host closed the connection]
davepdotorg has joined #lisp
Alloc has quit [Ping timeout: 256 seconds]
dddddd has quit [Ping timeout: 264 seconds]
Archenoth has joined #lisp
Necktwi has quit [Ping timeout: 264 seconds]
wxie has joined #lisp
cosimone has joined #lisp
Necktwi has joined #lisp
jonatack has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
IPmonger has joined #lisp
IPmonger has quit [Remote host closed the connection]
Alloc has joined #lisp
brj has quit [Ping timeout: 265 seconds]
brj has joined #lisp
p_l|shitmbp has joined #lisp
gko_ has joined #lisp
mseddon has joined #lisp
dddddd has joined #lisp
cosimone has quit [Quit: Quit.]
cosimone has joined #lisp
terpri has quit [Ping timeout: 244 seconds]
davepdot_ has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
davepdot_ has quit [Remote host closed the connection]
terpri has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
davepdotorg has joined #lisp
cosimone has quit [Quit: Quit.]
Bike has joined #lisp
wsinatra has joined #lisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
narimiran has joined #lisp
terpri has quit [Ping timeout: 240 seconds]
aaaaaa has joined #lisp
rat has joined #lisp
cosimone has joined #lisp
rat has quit [Remote host closed the connection]
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
<phoe> pve: have you created the ticket?
cosimone has quit [Quit: Quit.]
cosimone has joined #lisp
<pve> phoe: no, I haven't
<phoe> OK; just asking in case it gets forgotten or something
Alloc has quit [Ping timeout: 256 seconds]
brj has quit [Ping timeout: 265 seconds]
brj has joined #lisp
<pve> I wrote it down, hopefully I won't forget.. I don't think I've ever reported something to SBCL, so I need to familiarize myself with their process
rat has joined #lisp
<beach> I think that shows how screwy the concept of "package locks" is.
yitzi has joined #lisp
<phoe> beach: obviously it is, but that's the best we have at the moment
<phoe> pve: I can report it if that's a hassle for you, and credit you there
<pve> phoe: It's a minor hassle, but I guess I should learn anyway
brj has quit [Ping timeout: 258 seconds]
brj has joined #lisp
luna_is_here has quit [Ping timeout: 240 seconds]
luna_is_here has joined #lisp
rat has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 258 seconds]
nicktick has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
ljavorsk has quit [Ping timeout: 256 seconds]
theseb has quit [Quit: Leaving]
rumbler31_ has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
sjl_ has joined #lisp
ggoes has quit [Ping timeout: 256 seconds]
Necktwi has quit [Ping timeout: 256 seconds]
Cymew has quit [Ping timeout: 240 seconds]
natter has quit [Disconnected by services]
natter has joined #lisp
Necktwi has joined #lisp
<Krystof> pve: either create a launchpad account and open a ticket there, or send mail to sbcl-bugs@lists.sourceforge.net (the list is moderated, so it might take a while for your mail to show up)
<Krystof> (I'm not sure how an implementation defect shows that the concept of package locks is screwy)
<beach> In my opinion, since it is not about locking a package, but about locking certain aspects of the environment, then if it were implemented like that, any attempt to define a class with that name would fail, no matter which other module made that attempt.
<beach> (defmethod (setf clostrum:find-package) :before (client environment name) (when <name is a Common Lisp standard symbol> (error ...)))
<beach> Something like that.
<Krystof> hm
r3x5 has quit [*.net *.split]
samebchase- has quit [*.net *.split]
cdegroot has quit [*.net *.split]
kingcons has quit [*.net *.split]
mood has quit [*.net *.split]
<_death> but where do you test that it's a class that's being associated with the symbol?
mood has joined #lisp
<Krystof> I think that the desire to keep packages safe from accidental name collision is more general, although I grant that modern style is to :use CL and nothing else
kingcons has joined #lisp
r3x5 has joined #lisp
<beach> Oops, i meant FIND-CLASS.
<beach> Not FIND-PACKAGE.
<beach> *sigh*
<beach> (defmethod (setf clostrum:find-class) :before (client environment name) (when <name is a Common Lisp standard symbol> (error ...)))
<Krystof> for me the use of package locks is to say that just because we are using CL, which has the symbol CAR in it, doesn't mean that we should be able to accidentally make a CL:CAR class that all other users of the CL package would be able to see
<Krystof> and this generalizes to "just because we are using VEHICLES, which has the symbol BUS in it..."
<Krystof> so it is in my mind about keeping the set of definitions accessible through collection-of-symbols (package) static
cdegroot has joined #lisp
<Krystof> the fact that this allows enforcement of CLHS 11.1.2.1.2 is a bonus
<beach> I think that is what my attempted method was meant to do.
samebchase-4 has joined #lisp
frgo has quit [Read error: Connection reset by peer]
<beach> Oh, I see what you are saying.
samebchase-4 is now known as samebchase-
frgo has joined #lisp
<beach> I view it more as a restriction on an environment.
<_death> that prevents them from making a cl:car class using CLOS, but not from making a cl:car class using MYOS ;)
<Krystof> it's true that we don't have a good story for allowing new namespaces to be protected in the same way
<phoe> time to add first-class namespaces to the next version of the Common Lisp standard
<Krystof> we do export PACKAGE-LOCKED-P so users can if they choose implement lock semantics for their defining / binding forms
<beach> No need. It can be done transparently.
<Krystof> I suspect it's not trivial
<beach> phoe: No need. It can be done transparently.
<phoe> beach: I know, I was kidding
Bourne has quit [Ping timeout: 265 seconds]
ebrasca has joined #lisp
yonkunas has joined #lisp
<beach> Krystof: If it is a package lock as you describe it, how come it is allowed to define lexical variables with the same names as in the package, but not lexical functions? Would that be the same for the vehicle/bus example?
<beach> And if so, what is the justification for that?
<Xach> surely you have memorized 11.1.2.1.2 already
<Krystof> a lexical variable with the same name as a function in the package is allowed, because its effect is completely local
<Krystof> it cannot influence or be influenced by the outside
<_death> Krystof: maybe it could have a purpose argument (and symbol-locked-p or even name-locked-p for more granular control)
<Krystof> a lexical function with the same name as a function in the package is not allowed, because it might interfere in surprising ways with macros expanding to calls to that function
<Krystof> Xach: I didn't have to look up the section number :-0
<_death> but that's likely overkill
<Krystof> similarly, a lexical function with the same name as a constant in the package is allowed, because it can't interfere in surprising ways
<beach> Krystof: I know that to be the case for the Common Lisp package, but is it really that general a rule that it must apply to user-defined packages as well?
rat has joined #lisp
<Krystof> I think it's true in general, for anything that might be :USEd
<jackdaniel> consistency with the cl package lock would be also less surprising
<beach> That's an interesting point of view, since I am of the opinion that only the CL package should ever be :USEd.
<Krystof> if you make sure that you don't break the rules, you can combine :USEd code arbitrarily
<Krystof> right, we implemented package locks a while ago (2004? 2005?) when the style was to :USE more stuff than just CL
<beach> Interesting.
<_death> I would say :use is ok for CL + packages you control
<phoe> beach: unless you're writing code that, for whatever reason, provides its own package to be used over the CL package
<phoe> for instance, Qtools does that to introduce its own SETF stuff that integrates with dynamically created Qt functions.
<phoe> but that's an edge case of a framework that bends standard CL to some of its portable limits
<jackdaniel> there is a question of a good style and a question of what the language allows; the language "doesn't care" what the programmer assumes to be a good style
vaporatorius__ has quit [Ping timeout: 240 seconds]
<jackdaniel> except for maybe style warnings :-)
Alloc has joined #lisp
<_death> I guess in some settings it's possible to lose control of a package at some point, or lose track of the :use-ing package.. then the more conservative CL-only rule would make sense..
bsd4me has joined #lisp
bsd4me has left #lisp [#lisp]
<jackdaniel> I like the rule and use it myself (especially that we have package-local nicknames); the point being made is that imo language extensions (like package locks) should not have opinions about the style
<_death> jackdaniel: but style is relevant to how useful package locks is
rat has left #lisp ["Leaving"]
<jackdaniel> sure; both statements does not contradict each other
<phoe> package locks are completely style-agnostic though, all they do is protect symbols inside a pacakge from having their definitions changed
<_death> if I qualify all non-CL symbols or make myself well aware that I import them, then package locks become less useful
<jackdaniel> there was an interesting piece comparing clojure and cl about that "cl is an unopinionated language", but I don't remember where I've read it
<phoe> it's purely accidental that :USEing packages makes it easier for people to accidentally define stuff on top of symbols that they don't really want to define them on.
<scymtym> even when only CL is :USEd, bad things can happen easily in some cases. a problem i have seen in practice is multiple libraries defining (esrap:defrule string …)
<jackdaniel> makes sense, string is a string ;_)
<_death> scymtym: yes, I did not mean to say that it becomes useless :)
<_death> scymtym: only, that in the general case (think vehicles/bus) it becomes less useful
<scymtym> _death: sure, i'm just mentioning this case as an example of the extensibility requirement Krystof mentioned earlier
<scymtym> maybe not "just", but "also"
<phoe> and the point that beach made earlier, that such a thing can be done on top of CL, is defeated easily by just one library deciding to *not* use package locks inside its DEFINE-FOO macros
<phoe> and esrap adding package locks atop CL symbols would now likely break tons of code, too
<_death> scymtym: maybe defrule could warn on CL symbols
<phoe> _death: ASDF promotes warnings to errors, so breakage will happen nonetheless
<_death> phoe: I don't consider asdf to have a say on how I write my programs :)
<phoe> neither do I, but e.g. Xach does
<scymtym> _death: i have thought about that as well
<Xach> i won't say anything
<jackdaniel> warning: symbol's home package is not eq to *package*
<phoe> jackdaniel: that would work in most cases, unless someone explicitly decides to go (esrap:defrule my-system.esrap-rules:foo ...) for whatever reason
<phoe> all in all, that would be a mostly okay heuristic though
<_death> phoe: does asdf promotes all warnings to errors?
<_death> phoe: that would surprise me
<phoe> _death: AFAIK all compile-time warnings other than style-warnings
<phoe> but let me verify
<Bike> that's how compile-file is defined, tho
heisig has quit [Quit: Leaving]
<jackdaniel> asdf has a flag for that
<_death> phoe: it could make sense to have (defrule string ...) be a style warning..
jesse1010 has joined #lisp
<phoe> jackdaniel: oh! thanks
<phoe> stuffing (eval-when (:compile-toplevel :load-toplevel :execute) (warn "haha")) into phoe-toolbox.lisp and then (asdf:load-system :phoe-toolbox :force t) causes an error, but quickloading phoe-toolbox doesn't
<_death> quickload muffles warnings.. well known issue
liberliver has quit [Ping timeout: 240 seconds]
treflip has joined #lisp
mokulus has joined #lisp
Necktwi has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
<pve> Krystof: thanks for the info, I'll check it out
terpri has joined #lisp
josemanuel has quit [Ping timeout: 246 seconds]
josemanuel has joined #lisp
kapilp has quit [Quit: ZNC 1.7.5 - https://znc.in]
kapil_ has joined #lisp
gko_ has quit [Ping timeout: 246 seconds]
simendsjo has joined #lisp
Necktwi has joined #lisp
cg505 has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
dominic34 has joined #lisp
cg505 has joined #lisp
dominic35 has joined #lisp
davepdot_ has joined #lisp
dominic34 has quit [Ping timeout: 260 seconds]
dominic35 is now known as dominic34
rippa has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
davepdot_ has quit [Remote host closed the connection]
liberliver has joined #lisp
yitzi has quit [Quit: yitzi]
yitzi has joined #lisp
orivej has quit [Quit: orivej]
orivej has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
mseddon_ has joined #lisp
mseddon has quit [Ping timeout: 256 seconds]
Bourne has joined #lisp
Josh_2 has joined #lisp
<Josh_2> Afternoon
davepdotorg has joined #lisp
bitmapper has joined #lisp
Lord_of_Life_ has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
mseddon_ is now known as mseddon
mseddon has quit [Quit: Leaving]
mseddon has joined #lisp
thawes has joined #lisp
thawes has quit [Client Quit]
<treflip> Hello! Could you recommend me a library for POS-tagging or English sentences that don't requires a lot of configuration?
<_death> ouch.. screamer's defun may redefine callers, but does not declaim the function notinline, so sbcl warns about redefinition in the same file when loading screamer-plus (3.2.2.3)
davepdotorg has joined #lisp
orivej has joined #lisp
liberliver has quit [Ping timeout: 260 seconds]
frgo has quit []
davepdotorg has quit [Ping timeout: 244 seconds]
<_death> and notinline does not seem to have an effect..
<_death> "A call within a file to a named function that is defined in the same file refers to that function, unless that function has been declared notinline. The consequences are unspecified if functions are redefined individually at run time or multiply defined in the same file."
Bourne has quit [Ping timeout: 256 seconds]
rogersm has quit [Quit: Leaving...]
jw4 has quit [Quit: tot siens]
frgo has joined #lisp
jw4 has joined #lisp
rumbler31_ has quit [Ping timeout: 256 seconds]
ueta has quit [Quit: WeeChat 2.3]
rogersm has joined #lisp
rumbler31 has joined #lisp
<mseddon> treflip I couldn't actually recommend a POS tagger for lisp, but if I could, I'd need more information on what you would consider an acceptable POS tagger.
<_death> so I guess screamer should (i) declaim notinline (ii) muffle redefinition warnings.. though the bulletpoint doesn't say what to do in the case of notinline, and it seems to me that users and implementors conspire to make things "work" beyond the standard here
<mseddon> treflip, a POS tagger is not a black box. Or at least, ought not to be.
<mseddon> treflip, if you accept verbatim the most probably tag, you are automatically looking at a very high failure rate on most sentences. POS tagging accuracy looks great at the word level, it utterly sucks at the sentence level, since a single failure will derail the parse permanently unless you receive multiple possibilities, and are willing to backtrack.
<mseddon> probable*
<mseddon> (obviously you can not backtrack and enjoy the luxury of a chart parsing (lazy) approach, but yes.)
<mseddon> treflip, what is your use case, in particular?
<treflip> mseddon: Thanks. I know very little about NLP, so I wasn't aware of these issues. I guess, I need to formulate my task more preсisely.
<mseddon> treflip, sure, it is no problem. I cannot speak for CL in this particular area, but I suggest looking at Java/CL interop, and looking at e.g. bridging to Stanford Universities work.
<treflip> mseddon: I'm trying to write a simple command shell that will interpret commands in the form of natural sentences.
<mseddon> treflip, oh boy. May I suggest for fun, you google "semantic grammars" and see if that works for you? Far easier to get started, and plenty of fun to be had.
koyamasama has joined #lisp
<_death> you can also check https://github.com/vseloved/cl-nlp/
koyamasama has quit [Client Quit]
<mseddon> _death, aha, thanks!
<jackdaniel> or look into eliza implementation |)
<jackdaniel> minion: tell me something interesting.
<minion> jackdaniel: you speak nonsense
<mseddon> jackdaniel, holy shit, bash + eliza. that is terrifying :D
<mseddon> treflip, I also heartily recommend "Natural Language Understanding" by James Allen. 1994.
<treflip> mseddon: Ok, thanks. Maybe it's what I'm looking for :<)
<mseddon> treflip, It really goes into the detail of it. Throwing linear algebra at the problem is a poor approximation of what is needed in this area.
<treflip> jackdaniel: At this moment I'm using trivia.ppcre to match input with patterns, so it's very similar to ELIZA :<)
<mseddon> sadface.
<treflip> mseddon: I think it might be too hard for me :<)
<treflip> But I'll have a look.
<mseddon> I must /away now, but definitely check out that book. It's aimed at beginners, although there are a few gotchas. I am happy to answer questions on it if you PM me later.
<jackdaniel> I know! devise some mnemonics and remember them, then define this natural-language-like commands in the program
<jackdaniel> i.e ls could be for listing
<mseddon> jackdaniel, you may almost be solving it correctly, but you're ruining the fun. :)
<jackdaniel> my solution has one shining benefit: it requires no development ,)
davepdotorg has joined #lisp
bsd4me has joined #lisp
bsd4me has quit [Remote host closed the connection]
rogersm has quit [Quit: Leaving...]
bsd4me has joined #lisp
rumbler31 has quit [Remote host closed the connection]
liberliver has joined #lisp
nicktick has quit [Ping timeout: 256 seconds]
frgo has quit [Remote host closed the connection]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
frgo has joined #lisp
davepdotorg has quit [Ping timeout: 244 seconds]
<mseddon> jackdaniel, :P
mseddon has quit [Read error: Connection reset by peer]
bocaneri has quit [Ping timeout: 256 seconds]
yitzi has quit [Quit: yitzi]
dominic34 has quit [Ping timeout: 244 seconds]
ggoes has joined #lisp
izh_ has joined #lisp
liberliver has quit [Quit: liberliver]
rogersm has joined #lisp
rogersm has quit [Client Quit]
treflip has quit [Quit: WeeChat 2.6]
Inline has joined #lisp
davepdotorg has joined #lisp
cosimone has quit [Quit: Quit.]
EvW1 has joined #lisp
ebrasca has quit [Read error: Connection reset by peer]
ebrasca has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
Lycurgus has joined #lisp
Bourne has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Remote host closed the connection]
Jesin has quit [Quit: Leaving]
puchacz has joined #lisp
<puchacz> hi, is it legal to have NIL as a hash table key? I cannot figure out from clhs
<_death> sure it is.. that's why gethash returns two values
<puchacz> _death - as a key, not value
<_death> er, as key.. right.. still, yes
<puchacz> how do you know :) ?
<_death> key---an object.
<puchacz> I mean it works, but it may be an accident
<_death> there is no restriction on the key
<puchacz> ok, tks
<_death> btw the example in the gethash entry has (setf (gethash nil table) nil)
rumbler31_ has joined #lisp
<puchacz> ah, ok, I was looking at http://clhs.lisp.se/Body/f_mk_has.htm
<_death> what made you ask this question?
<puchacz> I wanted a fast equivalent of remove-duplicates
<puchacz> with hash-table
<puchacz> inside
bilegeek has joined #lisp
<shka_> puchacz: gotta write it yourself if you want to keep it portable
<puchacz> shka_: write what? remove duplicates with hash-table inside?
<shka_> yes
<shka_> now i realize that you came to this conclusion already
<puchacz> :)
davepdot_ has joined #lisp
<puchacz> I just called it remove-duplicates/hash in case the original has some subtle semantics I did not replicate
<aeth> Yes, there is no restriction on the key... but the equality test might not be useful for the key you want to use. It will be for NIL, though.
<puchacz> but I have key and test arguments all right
<shka_> well, it preserve order of elements
<shka_> which may or may not be important
<puchacz> yes, I preserve order as well. and I realise it works only for eq, eql, equal, equalp as test, because it uses standard hash function with these tests
<shka_> that is correct
<puchacz> so it is good I did not give it a name remove-duplicates, because it is not exactly the same thing
<shka_> yeah
<shka_> well, i was to late to help
<puchacz> thanks all of you
<puchacz> all 3
davepdot_ has quit [Ping timeout: 244 seconds]
<pve> Hi, I'm trying to solve a problem, and my first attempt uses metaclasses, but I'm seeing some slow-down as the number of metaclasses increases
<pve> Here is a reduced example:
<shka_> pve: i wonder what kind of problem you are trying to solve
<pve> Am I doing something wrong?
narimiran has quit [Ping timeout: 256 seconds]
<shka_> pve: sbcl?
cosimone has joined #lisp
<pve> shka_: yes
<shka_> ok, so i think that this is because ensure-method in the loop
edgar-rft has quit [Quit: Leaving]
<pve> doubling the number of classes leads to a 10x increase in adding methods to validate-superclass
<shka_> which is about to be expected
<shka_> however, maybe we can solve your problem using an alternative approach
<shka_> ?
<pve> shka_: so 10x increase is expected? can you dumb it down for me?
<shka_> well, i don't know why, but that's how sbcl works
<shka_> something in the implementation
<shka_> i guess ensure-method was not considered to be performance critical
<shka_> and usually it is not
<pve> for validate-superclass specifically or any gf?
<shka_> i would want to say any gf
<pve> huh, well that sucks for me
<shka_> well, do you want to discuss alternative approach or you have this all figured out?
<pve> I'm writing a smalltalk-like language and want to implement the metaclasses, so naturally I decided to see they can map directly to CLOS metaclasses
flazh1 has quit [Quit: flazh1]
<shka_> oh i see
<pve> yeah, no I'm pretty sure I don't have anything figured out :)
<shka_> well, do you want to use generic functions to implement smalltalk message passing?
<pve> that's how it works now
<shka_> ok, i am asking because if not, you can sidestep the whole issue be making smalltalk metaclasses just a normal lisp classes
<shka_> and don't go to CL MOP at all
<pve> yes, I considered that, but haven't tried it yet
<shka_> ok, just putting this out
<shka_> anyway, i am not fluent in smalltalk, but why ensure-method is critical in that case?
<_death> pve: maybe try defining a supermetaclass and one validate-superclass method for it?
<pve> shka_: I mean everything was working fine, then I tried adding the metaclasses and everything slowed down to a crawl
<shka_> right, but why do you need so many metaclasses to begin with?
<pve> I don't know if I *need* them, but in smalltalk, whenever a class is defined, a metaclass is also defined
<shka_> wow
<shka_> i had no idea
<shka_> care to hint why?
<shka_> as is: what is the rational behind this design
<pve> because objects are instantiated by sending messages to the class objects
<pve> _death: I'm not sure I understand, but I will ponder it
<shka_> ok, but in lisp you are just creating separate instance of the metaclass to represent the class
<_death> pve: (defclass smalltalk-class (standard-class) ()) (defmethod validate-superclass ...) then for the metaclasses, (ensure-class ... :direct-superclasses (list (find-class 'smalltalk-class)))
<p_l> shka_: iirc, in smalltalk model, every new Class definition is a new instance of metaclass, which if you squint right is similar to MOP
<shka_> p_l: that is what makes sense to me
<shka_> pve: you sure you got it right?
<p_l> shka_: Ruby reuses the model iirc
<shka_> p_l: well, creating instance of metaclass instead of the subclass of the metaclass seems to be the obvious way to do so
<shka_> so i am not surprised
<pve> shka_: all I need is for the inheritance to work for class objects also
<pve> right now class messages dispatch on (eql (find-class 'foo)), which doesn't really give me that
<shka_> ok, give me a second to wrap my brain around this
<pve> so if a class Foo responds to [ Foo new: size ] then subclasses of Foo should also
<shka_> ok, so the class object contains everything needed to construct the new instance
<shka_> question arise then, why do you need dispatch on the specific instance, if slots in the class objects contain effective slot definition and stuff
<shka_> ?
<shka_> that should be enough to initialize the new object, right?
<shka_> pve: i need to get some sleep, a terrible storm didn't let me sleep the last night
<pve> shka_: no problem, and thanks
<shka_> also, i am not understanding your problem, apparently
scymtym has quit [Ping timeout: 244 seconds]
<pve> Having the metaclasses be standard-objects too might work, but naturally I'd like for (class-of (find-class 'foo)) to return the metaclass, and not standard-class
<shka_> yeah, i don't get it
<shka_> good night :-)
<pve> sleep well
<shka_> thanks
izh_ has quit [Quit: Leaving]
Lycurgus has quit [Quit: Exeunt]
<pve> _death: I will try that
bsd4me has left #lisp ["Leaving"]
puchacz has quit [Remote host closed the connection]
<pve> or hmm, I'm not sure that will make the inheritance work.. but it's indeed getting a bit too late for me to think about these things
flazh has joined #lisp
dominic34 has joined #lisp
dominic34 has quit [Excess Flood]
dominic34 has joined #lisp
yitzi has joined #lisp
scymtym has joined #lisp
wsinatra has quit [Quit: WeeChat 2.9]
davepdotorg has joined #lisp
zaquest has quit [Read error: Connection reset by peer]
zaquest has joined #lisp
rumbler31_ has quit [Ping timeout: 240 seconds]
davepdotorg has quit [Ping timeout: 272 seconds]
choegusung has joined #lisp
Inline has quit [Remote host closed the connection]
hendursaga has quit [Remote host closed the connection]
gravicappa has quit [Ping timeout: 256 seconds]
hendursaga has joined #lisp
arbv has quit [Quit: ZNC - https://znc.in]
Inline has joined #lisp
choegusung has quit [Quit: leaving]
random-nick has quit [Ping timeout: 265 seconds]
todun has joined #lisp
josemanuel has quit [Quit: leaving]
arbv has joined #lisp
secretmyth has joined #lisp
davepdotorg has joined #lisp
ggole has quit [Quit: Leaving]
davepdotorg has quit [Ping timeout: 272 seconds]
Jesin has joined #lisp
sjl_ has quit [Ping timeout: 258 seconds]
brj has quit [Ping timeout: 240 seconds]
brj has joined #lisp
ebrasca has quit [Remote host closed the connection]
todun has quit [Quit: todun]
_whitelogger has joined #lisp
davepdotorg has joined #lisp
sonologico has joined #lisp
p_l|shit1bp has joined #lisp
davepdotorg has quit [Ping timeout: 244 seconds]
p_l|shitmbp has quit [Ping timeout: 258 seconds]
brj has quit [Ping timeout: 240 seconds]
AmatureProgramme has joined #lisp
brj has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
dominic34 has quit [Ping timeout: 240 seconds]
simendsjo has quit [Ping timeout: 240 seconds]
EvW1 has quit [Ping timeout: 240 seconds]
iAmDecim has joined #lisp
rumbler31_ has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
iAmDecim has quit [Ping timeout: 260 seconds]
pve has quit [Quit: leaving]
Inline has quit [Ping timeout: 260 seconds]
EvW has joined #lisp
sympt_ has joined #lisp
sympt has quit [Ping timeout: 240 seconds]
hasegawatan has joined #lisp
adam4567 has joined #lisp
iAmDecim has joined #lisp
davepdotorg has joined #lisp
cosimone has quit [Quit: Quit.]
iAmDecim has quit [Ping timeout: 240 seconds]
davepdotorg has quit [Ping timeout: 244 seconds]
Bourne has quit [Ping timeout: 260 seconds]
earl-ducaine has joined #lisp
iissaacc has joined #lisp
bilegeek has quit [Quit: Leaving]
mangoicedtea has joined #lisp
iAmDecim has joined #lisp
iAmDecim has quit [Ping timeout: 258 seconds]
davepdotorg has joined #lisp
bsd4me has joined #lisp
mangoicedtea has quit [Quit: Leaving]
davepdotorg has quit [Ping timeout: 260 seconds]
q-u-a-n2 has quit [Read error: Connection reset by peer]
q-u-a-n2 has joined #lisp