<jasom>
a simple test caused the method to propagate, but I wasn't running with optimization levels dialed up
<jasom>
and with optimizations high on the thread function (but not the defmethod) it also propagated.
<jasom>
My test used an eql specifier for the method "foo" and looked like this: (sb-thread:make-thread (lambda () (declare (optimize (speed 3))) (loop (foo 'foo) (sleep 1))))
stylewarning has quit [Ping timeout: 252 seconds]
stylewarning has joined #lisp
<jasom>
Of course I didn't try e.g. (defmethod ((foo child-class)) ...) then spawn thread and (defmethod ((foo base-clase)) ...) which might be different
arescorpio has joined #lisp
debsan has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
Kundry_Wag has joined #lisp
anamorphic has quit [Quit: anamorphic]
warweasle has joined #lisp
Arcaelyx has joined #lisp
holycow has joined #lisp
frgo has joined #lisp
jiby has quit [Quit: Page closed]
frgo has quit [Ping timeout: 240 seconds]
dale has quit [Quit: dale]
jack_rabbit_ has joined #lisp
frodef has quit [Ping timeout: 252 seconds]
Kundry_Wag has quit [Ping timeout: 252 seconds]
robotoad has joined #lisp
[X-Scale] has joined #lisp
X-Scale has quit [Ping timeout: 244 seconds]
[X-Scale] is now known as X-Scale
pierpal has quit [Ping timeout: 246 seconds]
smokeink has joined #lisp
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
Oladon has quit [Quit: Leaving.]
dmiles has quit [Ping timeout: 246 seconds]
physpi has joined #lisp
dmiles has joined #lisp
WhoTookMyName has joined #lisp
<WhoTookMyName>
Hello. How can I get a bareword like not to expand to something like (not x)? Can I do a macro for that?
<oni-on-ion>
(defmacro n () `(not x)) ;; ?
dmiles has quit [Ping timeout: 268 seconds]
<WhoTookMyName>
That would expand (n) to not x
logicmoo has joined #lisp
<WhoTookMyName>
sorry, I meant you have to type (n) instead of n.
<no-defun-allowed>
(setf (fdefinition 'my-not) (fdefinition 'not)) would be how i'd usually handle it
<oni-on-ion>
so that you could do (defnot my-not x) for (defun my-not (x) (not x))
logicmoo has quit [Ping timeout: 246 seconds]
Kundry_Wag has quit [Ping timeout: 268 seconds]
dmiles has joined #lisp
<WhoTookMyName>
The basic thing I'm working for is to have a "toggle" variable x that switches back and forth when I write x in a function definition or somewhere. This way (toggle toggle) gets shrunk to just toggle, making it less redundant.
<WhoTookMyName>
Sorry if I was inarticulate about what I meant.
<no-defun-allowed>
macrolet?
<no-defun-allowed>
looks like a symbol macro actually
<WhoTookMyName>
aha!!!
<no-defun-allowed>
(unrelated: is it possible to make groups on gitlab.c-l.net?)
<smokeink>
WhoTookMyName: there's also symbol-macrolet
<no-defun-allowed>
threads work on sbcl on macos, linux (x86, not arm) and windows from testing
<z3t0>
okay, from the manual I can see that threads need to be explicitly enabled when being built, other than on linux
<no-defun-allowed>
the ones off sbcl.org had threads out of the box
WhoTookMyName has quit [Ping timeout: 252 seconds]
smokeink has quit [Remote host closed the connection]
smokeink has joined #lisp
<no-defun-allowed>
aeth: another one about gitlab CI: can you somehow get the path of the repository from the environment? i mirrored a repo on c-l.net with a different username and it broke
<z3t0>
I am having some issues with getting threading support on macos
<z3t0>
I have rebuilt from the latest source with --fancy but I still get an error saying make-thread is undefined
<loke`>
z3t0: SBCL?
<z3t0>
the steelbank common lisp
<loke`>
make-thread is in the SB-THREAD package.
<loke`>
(SB-THREAD:MAKE-THREAD ...)
<z3t0>
wait one second
<z3t0>
ah...
<elderK>
bordeaux-threads?
<elderK>
(spelling probably wrong)
<z3t0>
I was first trying to make sure that threading was supported
<jcowan>
elderK: At your service
* elderK
dips hat
<elderK>
:)
dddddd has quit [Remote host closed the connection]
<elderK>
Guys, is there like... a definitive reference somewhere for how to format Lisp code?
<elderK>
Like, how to layout long parameter lists, etc.
<elderK>
What do you do when you have say, a reasonably complicated form for initializing optionals, etc.
<loke`>
elderK: I think Google had one
<elderK>
I've seen their style guide - it didn't contain much in the way of formatting information. Although, I'll look again, just in case I missed something.
<elderK>
Which is only so useful to me. Surely, somewhere, the formatting rules of SLIME must be codified somewhere?
<loke`>
Not really.
<loke`>
elderK: just using Slime should get you to instinctively know it
<loke`>
I know I do
<elderK>
:P I don't use Slime.
<elderK>
I use Slimv
<loke`>
Tried EVIL-mode?
ryan_vw has quit [Ping timeout: 252 seconds]
ryan_vw has joined #lisp
<PuercoPop>
loke`: the timeout was working fine, I was overriding T instead if notification.
<PuercoPop>
Thanks for your config, and stumpwm-dbus seems great, do you want to limit the scope to notification or does stuff like battery reporting still in scope?
<loke`>
PuercoPop: I don't use Stump on a laptop, so I haven'
<loke`>
haven't bothinered with that.
<loke`>
bothered.
<loke`>
I haven't worked on it for quite some time, because frankly it works pretty well for me. :-)
<loke`>
I had intended to implement support for interactive notifications, but I was waiting for the Stumpwm-native UI. As you may have noticed, I'm using McCLIM right now.
z3t0 has quit [Remote host closed the connection]
wusticality has quit [Ping timeout: 246 seconds]
_whitelogger has joined #lisp
nowhere_man has quit [Read error: Connection reset by peer]
nowhereman has joined #lisp
nowhereman is now known as Guest24308
pierpal has joined #lisp
johnjay has quit [Ping timeout: 256 seconds]
<jcowan>
Someone gave me a little script that runs Emacs in batch mode to format Lisp code on stdin and writes it to stdout.
<jcowan>
Unfortunately I can't find it now.
megalography has quit [Ping timeout: 250 seconds]
debsan has quit [Ping timeout: 244 seconds]
z3t0 has joined #lisp
charh has quit [Ping timeout: 260 seconds]
<aeth>
Sorry for the lack of responses. I have a 38.78 °C / 101.8 °F temperature.
matzy_ has joined #lisp
megalography has joined #lisp
<pillton>
Oh you a sick.
<pillton>
Bah. you are sick.
<aeth>
no-defun-allowed: Good job finding the correct configuration
z3t0 has quit [Remote host closed the connection]
<no-defun-allowed>
tyvm
cgay has joined #lisp
<aeth>
I wonder if there's a way to handle out-of-Quicklisp dependencies without installing git
equwal has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
Roy_Fawlty has joined #lisp
Roy_Fokker has quit [Ping timeout: 250 seconds]
<no-defun-allowed>
better docker image?
<gendl>
I'm thinking of making a docker image, with our stuff in it
<gendl>
which you can do M-x slime-connect, as well as http & https with a browser to.
<gendl>
but then again, I sometimes hear bad things about emacs on windows.
<gendl>
although i've not really experienced any weird behavior with emacs on windows.
<gendl>
Does Portacle ship as a docker image?
<no-defun-allowed>
half of it wouldn't be particuarly useful for testing i'm afraid
<no-defun-allowed>
daewok/lisp-devel has SBCL and Quicklisp at least
<gendl>
no-defun-allowed: whom are you talking to?
<no-defun-allowed>
aeth: maybe use another apt source?
<no-defun-allowed>
portacle as a docker image
<no-defun-allowed>
so, erm you i think?
<gendl>
aeth: make shared filesystem with VM which is installing git.
<gendl>
VM or host.
<no-defun-allowed>
or just preinstall git in the image
<elderK>
Guys, can you use with-slots with structures?
<no-defun-allowed>
does not seem like it, elderK
<gendl>
elderK: Um, I'm no expert, but from what I know (which is little), you would need a custom hacked macro for that.
<elderK>
Sweet. I checked the spec, but it just said "object instance."
<gendl>
elderK: so what does that mean.
<gendl>
so is a struct instance an object instance?
<elderK>
Yeah, exactly.
<elderK>
That's why I asked.
<LdBeth>
not always
<LdBeth>
it can also be just array or list
debsan has joined #lisp
<cgay>
with-slots is defined in terms of slot-value, which seems pretty clearly about defclass.
Roy_Fawlty has quit [Read error: Connection reset by peer]
<aeth>
gendl: with-accessors will always work
asarch has quit [Quit: Leaving]
<aeth>
gendl: You should always use with-accessors, even with standard-objects (defined via defclass)
<gendl>
aeth: got it.
<aeth>
gendl: What I sometimes do is this idiom in a defclass slot definition: :reader foo :accessor %foo
<aeth>
Then I can with-accessors on %foo internally (it's weird having a writer that's not a reader with with-accessors) but only export foo
<aeth>
That solves slot-value for internal writing on something that shouldn't otherwise be written.
<beach>
Good morning everyone!
shka_ has joined #lisp
<shka_>
good morning
<beach>
Hello shka_.
ringer1 has joined #lisp
<no-defun-allowed>
morning shka_
<gendl>
beach: good morning, the fact of me saying which means that I'm up too late...
<gendl>
just got home from Tenacious D concert.
<beach>
I see.
<gendl>
But, I will be in your time zone starting Friday.
azrazalea has joined #lisp
<beach>
Oh, where?
matzy_ has quit [Remote host closed the connection]
Inline has quit [Quit: Leaving]
<gendl>
Hamburg.
<beach>
Nice.
<gendl>
Hamburg/Harburg (doubt I'll get out much).
<gendl>
have yoga studio and temple to eat lunch.
<beach>
I see.
<gendl>
and couple days meetings, plenty work to get done... tomorrow have to prep laptop.
<gendl>
have been trying to get our build system working for 3 OSs X 3 CL impls
<gendl>
X 3 distinct distro types
<gendl>
so like 27 combos
space_otter has joined #lisp
<gendl>
21st have to justify approx. EUR 150K spent.
<beach>
Who wants to know what you spend?
<no-defun-allowed>
have you tried lots and lots of VMs?
azrazalea has quit [Quit: ZNC 1.6.2+deb2~bpo8+1 - http://znc.in]
<no-defun-allowed>
i would not suggest buying 27 machines for 27 combos, maybe do one OS per box and run VMs on those
<gendl>
European commission. We got sucked into a euro research project. ("we" being Genworks BV, a Dutch subsidiary we formed to avoid tax issues with foreign bank account for U.S. citizen).
<beach>
Oh, I see.
<gendl>
but the Dutch partners of this EU research project ("Agile"), decided to switch to our Python-based competitor near the beginning of the project
sariyar has quit [Quit: Connection closed for inactivity]
<beach>
That sucks.
<no-defun-allowed>
if macOS is in the testing system, the mac will easily cost more than the other two boxes combined so glhf
<gendl>
so we ended up (with almost no feedback) doing essentially what we wanted to do, for this project.
<gendl>
Added a Python-based interoperability layer,
<gendl>
improved our build situation,
<gendl>
improved the Emacs-based IDE
azrazalea has joined #lisp
<gendl>
added some other stuff -- all showing up in our open-source project
<no-defun-allowed>
nice
<gendl>
so hopefully that is going to be enough for them not to harass us too much..
<beach>
Good luck.
<gendl>
thx.
oni-on-ion has quit [Ping timeout: 246 seconds]
oni-on-ion has joined #lisp
<gendl>
beach: so how's the wine in Bordeaux?
rozenglass has joined #lisp
shrdlu68 has joined #lisp
<gendl>
No other major wine region placed their top estates in 5, simple, easy to understand categories with those results being officially certified by the French Government.
sauvin has joined #lisp
vlatkoB has joined #lisp
frodef has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
ryan_vw has quit [Ping timeout: 252 seconds]
oni-on-ion has quit [Ping timeout: 272 seconds]
oni-on-ion has joined #lisp
shka_ has quit [Ping timeout: 272 seconds]
<beach>
gendl: It is excellent, of course.
frodef has quit [Read error: Connection reset by peer]
Lord_Nightmare has quit [Ping timeout: 246 seconds]
<elderK>
Hey guys, I'm trying some IO Stuff. Parsing something form a string. I was wondering if it's possible to like, include a literal newline in a string, such that read-line (when using with-input-from-string) will consider them individual lines
<jackdaniel>
elderK: did you try it?
<elderK>
Yeah. It didn't work :(
<elderK>
I tried using ~% in the string as well as \n
<elderK>
Wait, maybe I'll use format to make it :D
<elderK>
AHA! That worked.
<jackdaniel>
this yields only first line: (with-input-from-string (s (format nil "hellow~%daniel")) (read-line s)); "hellow"
<elderK>
:D
<jackdaniel>
if you have raw string, then put verbatim newline
<elderK>
I did. That strangely didn't work either.
<elderK>
Oh, wiat.
<elderK>
You mean actually a newline.
<elderK>
Not the control character.
<elderK>
That didn't work for me.
<jackdaniel>
CL-USER> (with-input-from-string (s "hellow
<jackdaniel>
daniel") (read-line s))
<elderK>
Thanks jackdaniel :)
<jackdaniel>
that yields "hellow" as well
JohnMS_WORK has joined #lisp
esrse has quit [Ping timeout: 268 seconds]
igemnace has joined #lisp
ryan_vw has joined #lisp
nirved has joined #lisp
scymtym has quit [Ping timeout: 264 seconds]
<makomo>
morning :-)
angavrilov has joined #lisp
Jesin has quit [Ping timeout: 264 seconds]
Jesin has joined #lisp
fikka has joined #lisp
<zigpaw>
morning :)
frgo has joined #lisp
<no-defun-allowed>
morning makomo and zigpaw
<makomo>
hi :)
space_otter has quit [Remote host closed the connection]
heisig has joined #lisp
* no-defun-allowed
attempts to put as many unnecessary -> threading arrows as possible
<no-defun-allowed>
idk why you have to buy the end of let over lambda to implement forth in lisp, just use -> and ->> as much as possible
shka_ has joined #lisp
<no-defun-allowed>
if -> was the other way around, i'd find it more natural though
<no-defun-allowed>
also it might be easier to parse and recurse on, but don't bet on it
* jackdaniel
has no idea what no-defun-allowed is talking about
<no-defun-allowed>
in an attempt to escape the parens they do not know the powers of, lisp newbies -- i mean clojure users -- made arrows a thing to describe steps in a "linear" computation without the parens
<no-defun-allowed>
only problem is it's postfix notation for the most part, which i don't like
<no-defun-allowed>
for example, (-> link children (aref 0) text) is how i'm extracting the link text from a plump-dom element. notice it's backwards compared to the rest of lisp?
<elderK>
It's kind of annoying thing to read, because I don't know the dimensions of a "universe" when I start reading. The width is determined by the length of the first line in a "universe." Universe "descriptions" are terminated by a blank line, or EOF.
xkapastel has quit [Quit: Connection closed for inactivity]
k-hos has quit [Ping timeout: 245 seconds]
joast has quit [Ping timeout: 252 seconds]
scymtym has joined #lisp
robotoad has quit [Quit: robotoad]
rozenglass has quit [Remote host closed the connection]
jochens has joined #lisp
k-hos has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
fikka has joined #lisp
jasom has quit [Ping timeout: 272 seconds]
<beach>
elderK: Yes, looks good.
jasom has joined #lisp
SaganMan has joined #lisp
<elderK>
Awesome :D Thank you for taking the time to look :)
<SaganMan>
Morning bleach
<SaganMan>
oops
<SaganMan>
Morning beach
<no-defun-allowed>
looks good to me, elderK
<no-defun-allowed>
FOR HEIGHT = 0 THEN (1+ HEIGHT) could be FOR HEIGHT FROM 0 i think
<elderK>
Thank you no-defun-allowed :)
<beach>
Yes, definitely.
<elderK>
I always thought that kind of form was like, acted like a terminator.
<elderK>
I guess if it has like, no "below" Or something, then it will just count :D
<elderK>
Thank you both :D I'll make these changes.
<no-defun-allowed>
also FOR WIDTH = LINE-LENGTH THEN WIDTH could be improved on but i'm not sure how to do that. i understand you want to keep the original LINE-LENGTH and WITH may not go after FOR but i'll have to check.
<no-defun-allowed>
yeah WITH WIDTH = LINE-LENGTH even after some FORs should be alright
<no-defun-allowed>
i can't read the loop grammar specification that well but clisp and sbcl are fine with it
marvin3 has quit [Ping timeout: 268 seconds]
rozenglass has joined #lisp
<elderK>
Afaik, the problem is, is that with has to come before the fors.
<elderK>
AFAIK.
<elderK>
I really hate this format. :P
<elderK>
Like, the Universe format the teachers had. It would have been better to have a specification first, then the data.
<elderK>
Like, a line with X Y then the data :P
<elderK>
Would have made life easier.
<elderK>
I've had a lot of fun working on this, in CL.
<elderK>
:) I still need to learn how to make like, a program from my source code. And what's equivalent to C's main, etc.
<beach>
Don't bother.
<shka_>
elderK: many things from C land make zero sense in the lisp land
<beach>
elderK: WITH does not have to come before FOR, but it would be strange if it isn't. If you are trying to assign the variable in each iteration, WITH is not the construct. Just do FOR.
marvin2 has joined #lisp
<elderK>
Ideally, I'd not initialize width and stuff in the loop at all. But, having to read the line first, then do stuff, then loop for all the rest, well. It was pretty nasty.
<elderK>
So, I wound up with what I have now.
<elderK>
It's nice to know that with can follow for though.
<elderK>
:)
<elderK>
beach: Don't bother with what? :)
<beach>
writing a MAIN.
<makomo>
no-defun-allowed: i was reading (carefully this time) the forth chapter in LoL just 2 days ago
<makomo>
but it felt like a cliff hanger to me for some reason
<elderK>
How do you write like, "proper programs" with CL? Say, I want to make a tool that runs, accepts command line options, etc.
<shrdlu68>
elderK: Creating an executable is implementation-dependent. If you're going to be using CL in the real world, you'll have to keep your implementation's manual close by.
<shka_>
elderK: start lisp, load system, use lisp functions
<elderK>
From my cursory look at SBCL's save-image-and-die, you can tell it what function to give control to?
<elderK>
shka_: Well, what if I want to make a game or something? :)
<makomo>
no-defun-allowed: i was expecting he would develop the forth2lisp compiler further and somehow use to write a macro which allows you to write forth but then compiles fully into lisp, or something
<elderK>
Ideally, I will migrate to using CL as my primary language.
<beach>
elderK: You have been brain washed by too much UNIX exposure.
<makomo>
haha
<makomo>
creating/deploying executables is always going to be implementation-dependent
<shrdlu68>
beach: Well, a program does need an entrypoint.
<elderK>
beach: I don't understand?
<makomo>
elderK: you'll want to check UIOP's save-image for a portable "save-lisp-and-die"
<elderK>
Thank you makomo.
<beach>
shrdlu68: Sometimes, sure.
<elderK>
I mean, to me, there's a difference between say, a utility that you use, and something you load up and interact with through Lisp.
<elderK>
Like sure, in a sense, you are using the Lisp REPL as a CLI for your program. That's cool.
<shrdlu68>
Portability is overrated.
<elderK>
I guess, I don't understand how I'm so mistaken.
<makomo>
elderK: ah, it's "dump-image" and "create-image" actually
<shrdlu68>
elderK: You're not.
<elderK>
One thing that I need to learn about, too, is like, the licensing issues around creating a binary, say. It really seems that unless you want to do everything yourself, you kind of need to be open source since there is some confusion about Babel's licensing. At least, from some stuff I read on Reddit.
jochens has quit [Read error: Connection reset by peer]
jochens_ has joined #lisp
jochens_ has quit [Read error: Connection reset by peer]
jochens has joined #lisp
logicmoo has quit [Ping timeout: 245 seconds]
dmiles has joined #lisp
orivej_ has quit [Ping timeout: 240 seconds]
<makomo>
elderK: LGPL in a lisp space is an interesting case which you can read about online
<makomo>
since there's no standard notion of "statically linking" something in lisp
<elderK>
Will do.
<elderK>
I guess I'm concerned about like, the licensing of stuff that CFFI requires.
<elderK>
Even if we dynamically link to whatever we need, if I use say, CFFI, it will be in the image I save and distribute, right?
<elderK>
And so with all of its dependencies.
<makomo>
i've never deployed anything that used CFFI, but i'm not sure that the dumped image will contain any code of the library you were calling into
<makomo>
the CFFI scaffolding and the bindings will be, but the library itself, i doubt it?
<elderK>
Yeah, I'm talking about CFFI itself, not the foreign stuff.
<makomo>
yeah, i would expect that to be in the image since it's a normal lisp library
<ogamita>
Not on more efficiently, but also safer, since we would convert between kernel ABI and lisp objects directly.
<ogamita>
s/ on / only /
<scymtym>
well, you would lose any workarounds for kernel bugs and papering over incompatibilities applied by the C library (i don't know how big a deal that actually is)
<shka_>
ok, so from what i understand you all advocate for making something like trivial-linux with pure lisp API to linux syscalls, correct?
<shka_>
or am i confused?
<ogamita>
Yes.
<jebes>
i'm down af
<jackdaniel>
merely pointing you at a right direction isn't the same thing as advocacy. but yes, such possibility seems to be discussed
<scymtym>
i'm not advocating that. just stating pros and cons
<shka_>
right, ok
<shka_>
now i understand what is happening here :D
<shka_>
sorry for stupid questions
<ogamita>
I'm noting that some people are dissatisfied with glibc too. If we could provide a libcl that would track more readily the linux kernel new syscalls as they are added, perhaps some people would like to switch to CL to write linux client code? (*.*)
<shka_>
what exactly would have to be done?
<ogamita>
But foremost, for the lisp side, having a "native" syscall without going thru C data type for the libc, would be a safety and speed win.
fikka has joined #lisp
<scymtym>
skipping the errno bullshit would be great indeed
<ogamita>
I guess, write a little tool that would process the syscall table from the linux kernel, and generate the VOP or similar for a few CL implementations.
<shka_>
is there already a way to abstract different ways to invoke syscalls accross implementations?
<ogamita>
Indeed, you could translate errno into conditions directly.
<jebes>
hrm, i've done quite a bit of linux asm, i'd be willing if someone points to the right direction
<ogamita>
For now, we only have things like osicat, and various direct POSIX API.
<jebes>
ogamita: errno doesn't really exist except as the return value from the syscall
<ogamita>
Of course. It's a libc figment.
<jebes>
shka_: x86 uses int 80, x86_64 uses syscall, and both have differnt numbers
<ogamita>
That's the first thing I abstract away around C functions when I do a FFI wrapper, converting error code into lisp conditions…
<jebes>
shka_: oh i misread, sorry
<shka_>
jebes: no worries
<ogamita>
beach: notice the scopes of posix and linux syscall are different. They have a big common intersection however. So yes, it'd be similar.
<beach>
Sure.
<beach>
shka_: I don't think there are such portable abstractions. Hence the project of the link I showed.
<shka_>
beach: ok
<beach>
I would definitely like to see an implementation-independent protocol. Whether some implementations realize it with some FFI code or directly in their Common Lisp code is unimportant, at least initially.
<beach>
Many standard Common Lisp functions could then be implemented, using this protocol, in a portable way.
hhdave has joined #lisp
ggole has joined #lisp
dddddd has joined #lisp
<beach>
Yes, yes, I know. I am always looking for ways to decrease the total maintenance burden for FLOSS Common Lisp implementations.
ogamita has quit [Ping timeout: 240 seconds]
neirac has joined #lisp
Bike is now known as Bicyclidine
<beach>
I did not mean to silence this interesting conversation.
<shka_>
beach: heh
<shka_>
Bicyclidine: you evolved?
skeuomorf has joined #lisp
skeuomorf has left #lisp [#lisp]
joast has joined #lisp
beach has quit [Ping timeout: 252 seconds]
<jebes>
what would be the best way to go about making a text editor in lisp? gtk?
<jebes>
i specifically mean the gui.
<jebes>
or would using gtk/cairo offer more flexibility in internal representation?
<shka_>
jebes: clim
<heisig>
jebes: yYou could try McCLIM. Even in its unfinished state, it seems much more pleasant than GTK or Qt.
<antoszka>
jebes: A good attempt in a GUI has been ABLE
<antoszka>
jebes: it uses Ltk
<antoszka>
but the lisp/tk(wish) integration is a bit fragile
<TMA>
jebes: the best gui framework for lisp is not a settled question as of 2018. Great many people prefer McCLIM that is native lisp gui framework, while some prefer interfacing with C toolkits. It needs to be pointed out that McCLIM has its rough edges. But those are being fixed
<shka_>
everything has rough edges
<jebes>
it just needs to be able to render text from an internal representation
<jebes>
if mcclim can do that, and is pleasasnt enough to use
<antoszka>
able is able ;)
<antoszka>
IMO is the best looking and easiest to program
<antoszka>
but you need to non-lisp wish binary
orivej has quit [Ping timeout: 240 seconds]
<antoszka>
which may not suit your taste and/or technical limitations
<antoszka>
need to interface with*, excuse my brainfart
<jebes>
that's no big deal, this is more to flex the ol' lispy muscles than make a practical product
<jebes>
but able is already an editor
beach has joined #lisp
Essadon has joined #lisp
nicksmaddog has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
orivej has joined #lisp
<beach>
jebes: I definitely vote for McCLIM. It works very well for rendering text.
<beach>
jebes: There is a channel named #clim if you have any questions.
<beach>
Oh, that's (first) Climacs, not Second Climacs.
<beach>
(first) Climacs is working pretty well.
<smokeink>
got it
JohnMS_WORK has quit [Read error: Connection reset by peer]
<jackdaniel>
fwiw "well text rendering" is not merged yet (no kerning, transformations etc), but PR will be made in a matter of days
<jebes>
i'd rather contribute to a project then do my own
<jebes>
so thanks, i'll look into it
<jebes>
i still need to fix that bug with Next
ogamita has joined #lisp
<jackdaniel>
I like the shift of mood from "McCLIM is abandoned" to "many people prefer McCLIM … despite it having rough edges" (comparing to a state from a not that long ago :)
xkapastel has joined #lisp
<beach>
jackdaniel: I totally agree. Good work, you and the others!
<jackdaniel>
nb: same thing happened with ecl a few years bag, from "floating dead" to "maintained" or "third preferred"
<jackdaniel>
back*
<ogamita>
:-)
<beach>
Yes, I am very pleased with the evolution of the entire ecosystem.
solyd has joined #lisp
<jebes>
yes, i remember when i started lisp not too long ago
<jebes>
it was much harder to get started,
<jebes>
now, its quite pleasant
<beach>
jebes: In that case, don't work on (first) Climacs. I fully intend to make Second Climacs a much better editor.
JohnMS_WORK has joined #lisp
<jebes>
beach: were you involved with the first climacs?
<beach>
I wrote it, yes.
<beach>
... with lots of help.
<jebes>
hahaha, i'm forking now and looking for low hanging fruit
<carmack>
hi i'm new in clisp. And cannot start work with quicklisp
<beach>
carmack: What prevents you?
<jackdaniel>
carmack: clisp is one of many common lisp implementations
<carmack>
Always some kind errors
<shka_>
carmack: not very specific
<jackdaniel>
its new user experience is not that great, I'd recommend using sbcl
<beach>
carmack: Quicklisp is probably better supported with some other implementation.
<carmack>
ok so
<carmack>
i try find solve in google
<beach>
carmack: Er, what?
<carmack>
one second...
<carmack>
I'm load and install quicklisp
jochens has quit [Remote host closed the connection]
<carmack>
Then i try (ql:quickload "packagename") -- package ql doesn't exist
<beach>
carmack: Do you have any particular reason for using CLISP? There are three other Common Lisp implementations that are better supported, and whose maintainers come here regularly.
<shrdlu68>
Are you using "clisp" as an abbreviation for "Common Lisp"? That creates some confusion.
jochens has joined #lisp
<carmack>
Common Lisp
<carmack>
yes
<carmack>
I'm just curious to understand.
<beach>
carmack: Then you need to tell us which of a dozen or so implementations you are using.
megalography has quit [Ping timeout: 250 seconds]
<Bike>
did you run a function called "add-to-init-file"?
<jackdaniel>
minion: tell carmack about pcl
<Bike>
when you installed quicklisp.
<minion>
carmack: direct your attention towards pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<jackdaniel>
carmack: one of first chapters describes setup with sbcl, emacs and slime
<jackdaniel>
also check out portacle.io for nice ready to use configuration
<beach>
carmack: Do you have any particular reason for using CLISP? There are three other Common Lisp implementations that are better supported, and whose maintainers come here regularly.
<shrdlu68>
carmack: Can you record a fresh session with asciinema or something?
<beach>
carmack: If you are new to Common Lisp, you should probably try a better implementation of it.
<beach>
carmack: Perhaps you don't realize that the Common Lisp language has more than one implementation, and CLISP is not one of the better maintained ones.
<carmack>
I write a little on elisp, but I want to learn common lisp
<beach>
carmack: Are you reading what I write?
jochens has quit [Ping timeout: 240 seconds]
<carmack>
beach: yes
<beach>
carmack: If you want to learn Common Lisp, then there are better implementations than CLISP, so you should try one of the better ones.
<neirac>
carmack try ccl quicklisp works perfect in there, just started from scratch
frgo_ has joined #lisp
<jackdaniel>
I'm afraid he got hopped with too many answers (competing with each other) and now it is hard to put things together :)
<beach>
carmack: Do you realize that CLISP and Common Lisp are not the same thing?
<shrdlu68>
This conversation is like one of those surreal comedic ones in Alice's Adventures in Wonderland.
<jackdaniel>
can I be a mad hatter?
ogamita has quit [Ping timeout: 264 seconds]
<jackdaniel>
the mad hatter*
<carmack>
neirac: what is the ccl?
<jackdaniel>
ccl is one of common lisp implementations (clozure common lisp)
<minion>
carmack: direct your attention towards pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
frgo has quit [Ping timeout: 252 seconds]
* beach
feels like he failed to make himself understood, despite the direct message.
<carmack>
minion: I read that a while ago. Not one example of a more complicated "hello word" I have not worked.
<beach>
carmack: Do you know any other programming language?
orivej has quit [Ping timeout: 245 seconds]
<carmack>
yes
<beach>
Which ones?
orivej has joined #lisp
<carmack>
golang, python, c++
<beach>
carmack: Do you understand the difference between say GCC and C++?
ogamita has joined #lisp
<beach>
carmack: One is an implementation of a language. The other one is a language (i.e. a specification of the syntax and semantics of conforming programs).
<carmack>
Thank you all for your help, I think I will have to make more effort to start writing something in Common Lisp
<carmack>
gb
<beach>
carmack: CLISP is like GCC. Common Lisp is like C++.
* beach
can't believe he just wrote that.
<shrdlu68>
Would be hilarious if someone quoted you out of context.
<beach>
Indeed.
* jackdaniel
jumps to check out c++
<jackdaniel>
I've heard it is similar to CL ;-)
<beach>
carmack: I am very sorry that I am unable to explain this to you.
* beach
never realized he was THAT bad a teacher.
<jcowan>
How about "CLISP is like MSVC"?
<jcowan>
beach: Teaching and tutoring are to some extent separate skills.
<shrdlu68>
Could you record something like that? You'll get concrete help with a concrete demo.
megalography has joined #lisp
<pfdietz>
clisp and sbcl are in the same class: "things I enjoy breaking"
lavaflow has quit [Read error: No route to host]
<heisig>
pfdietz: Your efforts are most appreciated :)
<pfdietz>
Bruno fixed a bug I just reported! Clisp continues to be supported.
<ggole>
pfdietz: do you perform testing of some kind on those implementations?
dale has joined #lisp
sjl_ has joined #lisp
<jebes>
i want to mantain clisp but i just don't have the time to dedicate
<pfdietz>
Yes I do.
<jebes>
(i say as i totally have the time to dedicate)
<pfdietz>
Various kinds of random testing, these days. There's also a conformance test but I don't run that much (others have copies that they use.)
<ggole>
Oh, nice.
fikka has quit [Ping timeout: 276 seconds]
<ggole>
I assume it's something like generating random expressions and seeing if they produce different results in different implementations or with (speed 3), that sort of thing.
<pfdietz>
Right now, I have eight threads running with SBCL random compiler tests, about 16 core-days, close to 40M tests.
<pfdietz>
Yes
<jcowan>
Clisp seems not to need a maintainer so much as a release manager, which is considerably less of a time suck.
<pfdietz>
I've wanted to compile SBCL with some sort of coverage enabled, but I'm not clear on how to do that. I do want to couple random test generation/minimization to coverage (Waters' COVER package, in particular) to automatically generate minimal coverage-improving test cases for things.
<ggole>
Right.
warweasle has joined #lisp
Roy_Fokker has joined #lisp
<pfdietz>
The change to COVER would be to allow coverage info to be checkpointed and rolled back, so tests that improve coverage could be minimized while still improving coverage.
<ggole>
I've only some experience with random testing, but my experience so far is that it is very easy to lose track of what has been well tested and what has not (and what work to do to bridge the gap)
<pfdietz>
The main purpose of random testing on SBCL is to catch bugs in new development. Older bugs have mostly been mined out, at least in the space that the random tester can see.
<shrdlu68>
That's because you're running the wrong thing, there's no "(quicklisp-quickstart:setup)" in that doc.
<shrdlu68>
Where did you get it?
<ogamita>
beach: there's #lispcafe (it's not logged, contrarily to #lisp).
anamorphic has joined #lisp
<carmack>
shrdlu68: from 2010
<Xach>
that is too old
<ogamita>
carmack: you would need to add (load #P"~/quicklisp/setup.lisp") in your ~/.sbclrc.lisp file.
fikka has joined #lisp
<ogamita>
or ~/.sbclrc
<beach>
ogamita: It appears that carmack is not using SBCL.
<shrdlu68>
carmack: How did you end up reading docs from 2010?
<shrdlu68>
beach: He is, in fact.
<beach>
Oh.
<beach>
OK.
<beach>
Sorry then.
<carmack>
I can't figure out what changes have happened. And what is important now. There are old books from 2005. Advise them to read. However, there is also outdated information. In General, somehow it's all depressing.
<jackdaniel>
carmack: I've suggested you at least twice portacle as a working pre-configured environment
<Xach>
portacle is good
<carmack>
jackdaniel: i know!
<jackdaniel>
then try it!
<ogamita>
carmack: adding this loading of setup.lisp is what (ql:add-to-init-file) does.
<carmack>
jackdaniel: I'm trying to figure this out.
<shrdlu68>
carmack: Yeah, just use the link I gave you and be done setting up quicklisp.
jsc has joined #lisp
<shrdlu68>
It appears the book/tutorial you are reading is based on an old version of quicklisp.
<carmack>
I can't do everything at once. Now try the option that offered shrdlu68
jsc is now known as status402
<carmack>
68 is the year of birth?
<ogamita>
1958 actually. Lisp is not THAT old!
<jackdaniel>
that's what I've meant when I said that too many people jumped in with help ,) I'll back off now. ftr: there is #clschool channel if you want to ask questions in less strict environment (keeping in mind, that my use of word "strict" is vague, snh snh)
<shka_>
is it acceptable to use #'identity as default that is supposed to do nothing for a &key argument?
rippa has joined #lisp
<ogamita>
shka_: of course.
<carmack>
shrdlu68: 68 is the year of birth?
<ogamita>
shka_: nothing prevents you to write a compiler-macro to optimize this case, if that bothers you.
<ogamita>
carmack: nope. it's 1958.
smokeink has quit [Ping timeout: 252 seconds]
<shrdlu68>
carmack: Quicklisp is not part of the language, it's a library. Of course it has changed in 8 years.
<shka_>
also i discovered that sbcl can inline funcall if it knows what function you are trying to call
<shka_>
so one strategy to handle this is to use trick beach showed for sequences some time ago
<shka_>
and simply generate separate branch for defaults
pierpal has joined #lisp
<jackdaniel>
I mean: what did you measure: two versions of the same code one using funcall one not using it? or you have tried to profile funcall itself?
kuwze has joined #lisp
<shka_>
jackdaniel: i tested different versions of few of my various functions, trying to figure out how much i can save by eliminate needless calls to identity set as :key
nly has joined #lisp
status402 has quit [Ping timeout: 272 seconds]
lnostdal_ has joined #lisp
<shka_>
as i said, difference exists, but for "normal" code it is not significant enough to justify extra code to mitigate that
lnostdal_ has quit [Remote host closed the connection]
<shrdlu68>
carmack: Can't figure that one out, works for me.
<jackdaniel>
if he insists on configuring things himself, then yes. and after that quicklisp-slime-helper should be quickloaded and .emacs should be adjusted
<jackdaniel>
carmack: try pacman -Ql | grep slime
<jackdaniel>
or something in this spirit, I haven't used arch for a long time
<carmack>
yeah -Ql
<carmack>
He find it
<carmack>
slime
<carmack>
slime needed for autocomplete-mode or some...
<carmack>
i don't clearly remember
<jackdaniel>
I'm going to take care of /things/, good luck!
<shrdlu68>
carmack: Grab sbcl from github, compile it, then completely uninstall your distro's SBCL.
<shrdlu68>
In that order.
<jackdaniel>
shrdlu68: I believe that your advice will only make him more frustrated
<jackdaniel>
just grab portacle already and start hacking
<shrdlu68>
jackdaniel: Portacle or not, he needs to uninstall packman's SBCL, right?
<Xach>
no
<pfdietz>
I always keep several versions of sbcl around. A release one to build with, and a current one built off master.
<pfdietz>
And some older ones for comparison.
<shrdlu68>
carmack: The people have spoken, go with portacle.
<carmack>
so?
<carmack>
remove clisp and try portacle?
<ogamita>
carmack: you are not using clisp!
<ogamita>
carmack: you are using sbcl.
<carmack>
sbcl repl?
<shrdlu68>
carmack: Yeah, remove it and follow portacle's installation guide. That should work.
<ogamita>
Common Lisp has several implementations. ccl, sbcl, abcl, clisp, cmu cl, corman lisp, allegro common lisp, lispworks, mocl, etc.
<beach>
ogamita: We went through this already.
<carmack>
It seems to me that this is one of the problems why common lisp is not so popular.
<ogamita>
beach: yes, it it didn't stick :-(
<ogamita>
carmack: if you have problems with icc, don't say you will uninstall gcc!
<carmack>
ok :)
<ogamita>
carmack: you don't confuse clang with gcc, so don't confuse clisp with sbcl.
<carmack>
no problem
<Xach>
carmack: I worry about that, too, but I've found that even very popular systems have similar issues of getting and properly using the right things to get started.
<Xach>
Not that difficulties are good, just not unique.
<carmack>
Xach: yeah, mate
<shrdlu68>
carmack: CL has some warts, for sure, but you'll get to the good stuff soon.
<carmack>
shrdlu68: I really hope so, because so far I get negative emotions from the process. But I'll try to handle it.
<shrdlu68>
Perhaps someone could suggest a more modern tutorial.
charh has joined #lisp
voidlily has quit [Ping timeout: 260 seconds]
<ogamita>
Actually, in the seventies, software system came to newbies all setup by an IT team, or hardwired in a ROM.
<ogamita>
Probably the equivalent today would be a web site.
<shrdlu68>
Anyone know of a tutorial that would've made this process more pleasant for carmack?
<carmack>
So, what i get from portacle?
shrdlu68 has left #lisp [""Home time""]
<jackdaniel>
isn't it covered in its readme?
robotoad has joined #lisp
<ogamita>
carmack: I've never used portacle. I wasn't a newbie for a long time when it appeared. Tell us, what do you get from portacle?
<shka_>
carmack: everything, basicly
<shka_>
emacs, slime, swank, sbcl
status402 has quit [Ping timeout: 250 seconds]
<carmack>
I want sbcl?
<shka_>
yes you do
<beach>
shka_: Are you sure? He might want Common Lisp instead. :)
<jackdaniel>
beach: don't you think that above statement may confuse him even more?
<shka_>
i second the jackdaniel
<beach>
I think that would be hard.
<shka_>
lol
<shka_>
ok
status402 has joined #lisp
<shka_>
seriously though
<carmack>
portacle not work for me
<shka_>
carmack: portacle does not require setup
<shka_>
well, that sucks
<antoszka>
carmack: what's not working?
<carmack>
just don't running
<antoszka>
carmack: it should just run from the directory you unpacked it to
<jkordani>
I can't tell if this is a portacle problem or a userspace problem
<otwieracz>
I believe you still run portacle in userspace.
<beach>
jkordani: I don't think it matters anymore.
robotoad has joined #lisp
<jkordani>
I mean, the answer suggests that either portacle needs to be built differently, or the supporting libraries it depends on need to be installed differently on the user system
robotoad has quit [Client Quit]
<jkordani>
beach: yup I noticed, I won't dive in any further
ogamita has joined #lisp
<ogamita>
carmack: IMO, the problem comes from the fact that you were told to use systems that try to do things automatically for you. Unfortunately, they break (general bit-rot, dependencies version compatibility, etc).
<ogamita>
carmack: the only solution is that you install yourself the component, by hand, one by one, and that you understand what and why you install them.
<ogamita>
carmack: it's a lot to ask from a complete newbie, I agree.
<beach>
We are working on it in #clschool
<ogamita>
Oh.
<ogamita>
<ogamita>
I'll go there.
<wusticality>
is that -the- carmack?
<beach>
wusticality: Do you know something we don't?
<wusticality>
wondered if it was john
status402 has quit [Quit: status402]
<carmack>
i'm not john carmack, lol ;)
<carmack>
haha
<ogamita>
Good for you! :-)
ryan_vw has joined #lisp
<carmack>
i just read book Master of Doom and love it
<jcowan>
Surely "release when done" is an appropriate attitude for a Lisper
jack_rabbit_ has quit [Ping timeout: 252 seconds]
<jcowan>
"Master of Doom by doom mastered!"
slac-in-the-box has quit [Quit: leaving]
ryan_vw has quit [Ping timeout: 252 seconds]
ryan_vw has joined #lisp
makomo has quit [Ping timeout: 244 seconds]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
carmack has left #lisp [#lisp]
<kyby64>
hi everybody.i want use caveman2 but after create project when i load it with quicklisp i get this error https://0x0.st/slU8.png
<Xach>
kyby64: that can happen if you use a new version of sbcl with an old version of ironclad/nibbles, I think
edgar-rft has quit [Quit: Leaving]
<Xach>
kyby64: what do you get from (ql:where-is-system "nibbles")?
<kyby64>
sorry i dont know what you mean,i'm using sbcl-1.4.13 and i'm reading caveman2 github page
jochens_ has joined #lisp
<Xach>
kyby64: no worries. but i can help troubleshoot if you type the command i gave and tell me what it shows.
jochens has quit [Read error: Connection reset by peer]
jochens has joined #lisp
<Xach>
kyby64: ok! that is too old. you can get a new one by using (ql:update-dist "quicklisp")
beach has quit [Ping timeout: 252 seconds]
ogamita has quit [Read error: Connection reset by peer]
jochens_ has quit [Ping timeout: 240 seconds]
<kyby64>
ok after update quicklisp when i want load caveman2 i get this: "NINGLE.CONTEXT" is a package name, so it cannot be a nickname for "NINGLE/CONTEXT".
wusticality has quit [Remote host closed the connection]
wusticality has joined #lisp
<kyby64>
problem solved with a new sbcl repl.thank for your help
ogamita has joined #lisp
robotoad has joined #lisp
<kyby64>
yes,now caveman2 works.thanks again for your help
ogamita has left #lisp ["Good night!"]
<Xach>
glad to hear it
<wusticality>
man, i wish there were remote lisp jobs around
kuwze has quit [Quit: Page closed]
<dim>
maybe there are? some companies want solutions that work and are easy to maintain and don't care so much about the programming language that's used to deliver the solution
nly has quit [Quit: Quit]
fikka has quit [Ping timeout: 272 seconds]
<wusticality>
yeah maybs
fikka has joined #lisp
ryan_vw has quit [Ping timeout: 252 seconds]
shka_ has joined #lisp
<shka_>
good evening
solyd has quit [Ping timeout: 252 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
beach has joined #lisp
<beach>
wusticality: What do you have against moving to Marbella?
<anamorphic>
Is there a loop clause that works for things that are sequences? I found "for foo being the elements of fooseq" works, but I think it's a loop impl specific
<beach>
It is an implementation-specific extension, yes.
<beach>
There is no such clause type in the standard.
angavrilov has quit [Remote host closed the connection]
angavrilov has joined #lisp
slyrus2 has joined #lisp
<anamorphic>
So something like (loop with length = (length myseq) for i below length do ... (elt myseq i)) would be the way to go?
<beach>
No.
<beach>
For lists, you would then have a quadratic algorithm.
<shka_>
anamorphic: using cl:map in such cases may be the way to go
<shka_>
it works on both lists and vectors
frgo_ has quit [Remote host closed the connection]
hhdave has quit [Ping timeout: 268 seconds]
<Bike>
doing it in loop without an extension would be annoying.
steiner has joined #lisp
skeuomorf has joined #lisp
m00natic has quit [Read error: Connection reset by peer]
<wusticality>
anamorphic: I just noticed your name :)
skeuomorf has left #lisp [#lisp]
<wusticality>
I'm reading Let Over Lambda right now haha
<wusticality>
beach: say wut now
<oni-on-ion>
anamorphic != anaphoric.
solyd has joined #lisp
jochens has quit [Remote host closed the connection]
jochens has joined #lisp
shrdlu68 has joined #lisp
<aeth>
anamorphic: Never use length more than once, ideally on something known to be small. It's O(n) on lists.
<aeth>
(If you need to uae length constantly use vectors.)
<oni-on-ion>
aeth: because loop would assign 'length = (length myseq)' each iter?
<oni-on-ion>
but it is not 'for i below (length myseq)'
<aeth>
Oh sorry it's a with
orivej has joined #lisp
<aeth>
I'm not used non-keyword loopa
<aeth>
*loops
<aeth>
You're still going to have problems with length followed by elt.
<aeth>
Usually if you write a sequence-generic function you need etypecase and two versions
<anamorphic>
Yeah that's what I ended up doing
ggole has quit [Quit: ggole]
jochens has quit [Ping timeout: 252 seconds]
<anamorphic>
Maybe iterate works better for this kind of thing
steiner has left #lisp ["ERC (IRC client for Emacs 26.1)"]
<aeth>
If your loop is simple enough you could have a macro use for ... in ... when it's a list or for ... across ... when it's a vector. If you need to set, you would have to set the car on for ... across if it's a list (if that's not undefined behavior) and use indices for vectors
<aeth>
anamorphic: Iterate is problematic imo. It is not just a strict superset of loop with s-expressions for clauses
<aeth>
You would have to learn it (and it has a 40+ page PDF manual) and expect the reader to know it. You also would, apparently, have to use iterate:foo symbols for its clauses instead of keywords
<sjl_>
You can use keywords with iterate, except for the first symbol. (iterate (for x :from 0))
<aeth>
I have added writing something like iterate but readable by people who only know loop to my macro todo list
solyd has quit [Remote host closed the connection]
<aeth>
sjl_: That means that you need to :use iterate if it isn't a symbol in CL (never :use packages) or prefix always or explicitly import those symbols one-by-one
<aeth>
It is not a modern style imo
<Bike>
what the heck
<aeth>
I'm perfectly happy to start with a keyword in a DSL and, in fact, it helps hint that it is a DSL and not a Lisp macro/function.
<sjl_>
Sure. That's the point of the package system -- if I extend iterate with an iteration construct (foo ...) and someone else extends it with a different (foo ...), the names don't clash.
pjb has joined #lisp
<sjl_>
If you used keywords, one of them would overwrite the other, depending on load order.
<aeth>
Extensible is overrated imo.
<sjl_>
If you're making an iteration DSL that's not extensible by users, then sure.
nicksmaddog has quit [Ping timeout: 244 seconds]
<shka_>
heh, iterate has problems, but i simply don't like loop
<aeth>
sjl_: One possible solution is to do the extensible part in a clause that begins with keyword and then is followed by a symbol
<shka_>
for looks nice
<shka_>
doplus does not seems to be bad
<pjb>
(defmacro while …) (defmacro for …) and with do dolist and dotimes, you don't need anything lese.
<pjb>
else.
<aeth>
sjl_: Another solution is to do explicit inheritance like (loop* (:extends foo) ...)
<Bike>
saying extensibility is overrated now, in the midst of "how can i use this LOOP extension", is a little odd
<aeth>
I think I'd prefer (loop* (:extends foo) ...) over using symbol clauses.
<sjl_>
aeth: ... I'd rather use the package system than invent some kind of inheritance system for loops.
<sjl_>
And I very much like iterate's extensibility. I probably have 50+ custom iterate driver macros/clauses that save me boilerplate.
varjag has joined #lisp
<aeth>
Bike: Outside of LOOP similar super-iteration macros/functions, the solution is simple when extending: write your own macro or higher order function on top of a more basic one, e.g. my do-destructuring-bind macro on top of dolist.
<aeth>
s/LOOP similar/LOOP and similar/
<Bike>
inside of a dog, it's too dark to read
<jcowan>
--Groucho
hiroaki has joined #lisp
<Bike>
which is to say
<Bike>
"why are you talking about that then"
<jcowan>
However, length is no problem if you already have an O(n) algorithm.
<pfdietz>
LOOP is so simple a child of five could understand it. Someone please get me a child of five.
<aeth>
Bike: Even for something that replaces loop, the solution for extensibility might just be to write your own macro/HOF on top of it
<aeth>
Bike: Using s-expressions would make this easier
<pfdietz>
My complaint about ITERATE is that COVER doesn't work with it.
<Bike>
how exactly would you write another macro on top of loop that gives it a new thing to iterate over
<aeth>
Bike: The only problem with either of my extension solutions (pseudo-inheritance, probably trivially implemented on actual inheritance; or write a macro) is when you want to combine two separate extensions in one iteration construct
<aeth>
Bike: I'm talking about a superset of s-expressionized LOOP, let's call this hypothetical DO-LOOP
<aeth>
The parts that LOOP cannot do would have to go in the superset
frgo has joined #lisp
<pfdietz>
pwd
<pfdietz>
Gah
<aeth>
#lisp
<aeth>
alternatively, Freenode/#lisp
rozenglass has quit [Remote host closed the connection]
frgo has quit [Ping timeout: 250 seconds]
cage_ has quit [Remote host closed the connection]
lumm has joined #lisp
<pjb>
the url is: irc://irc.freenode.org/#lisp
<sjl_>
isn't it freenode.net?
<sjl_>
though .org appears to redirect
<pjb>
yes. .net
<aeth>
Someone should write a bot that posts irc://irc.freenode.net/#lisp when someone says "pwd" (with a limit of once every 12 hours so people don't spam it and it only happens to accidents)
azrazalea has joined #lisp
ravndal has quit [Quit: WeeChat 2.3]
ravndal has joined #lisp
LiamH has joined #lisp
<pjb>
and the irc client would translate cd ../#clschool into a /join :-)