<White_Flame>
what does "not change a string at all" mean? what format is the string currently? as it's a vector of potentially 21-bit or so codes, they need to map to bytes somehow
<White_Flame>
also, it highly depends on what the byte reader on the other side thinks the encoding is
orivej has quit [Ping timeout: 260 seconds]
<simplegauss>
i got disconnected earlier, so i apologize if someone already answered this, but i was wondering if a lambda function definition can be declared inline in any implementation (sbcl). concretely i have a macro that expands to some lambda, and i'd like that function to be inlined.
fikka has joined #lisp
<simplegauss>
so for example does the declaration here make a difference?: (defmacro m () '(lambda (x) (declare (inline)) (1+ x)))
<White_Flame>
the inline delcaration needs to be where the lambda is used
varjagg has quit [Ping timeout: 265 seconds]
<White_Flame>
your declare affects code inside the lambda body, which isn't where the inlining decision you want will happen
<White_Flame>
from above: (flet ((func ...)) (declare (inline func)) ...something that uses func...)
damke has joined #lisp
<simplegauss>
White_Flame: oh, so something like (defun f (args) (declare (inline f)) body...) does nothing?
<White_Flame>
right
<White_Flame>
in my flet, the declaration is in code that _uses_ func
<White_Flame>
and the body of the function is known
<White_Flame>
if you pass around lambdas dynamically, you can't inline them. You'd have to recompile to have that effect
<White_Flame>
as you invoke them
damke_ has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 260 seconds]
<simplegauss>
hmm. does the hyperspec or some document go into more details on these rules? this link (http://clhs.lisp.se/Body/d_inline.htm) seems to suggest that (inline blah) before a function definition can trigger some information to be saved
<simplegauss>
also, i guess there is no way to insist that all uses of a function are attempted to be inlined?
smasta has joined #lisp
<simplegauss>
nvm, i guess that's what declaim is for. for some reason I thought i've seen people write (defun f (args) (declare (inline f)) body)
<White_Flame>
right, the declaim is outside the defun, meaning the outer scope uses that declaration
<White_Flame>
as are inline declarations for foo & bar in the labels body
pagnol has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
<simplegauss>
White_Flame: thanks! are there some good optimization notes that deal with these questions, even if only specific to sbcl?
<White_Flame>
the best optimization tip is to use DISASSEMBLE to see what's really going on
<White_Flame>
and time things
<White_Flame>
I believe implementations are free to ignore inline declarations, so your speed/safety/etc settings have to be enough to allow it, too
zacts has quit [Quit: WeeChat 1.9.1]
azimut has quit [Ping timeout: 240 seconds]
zacts has joined #lisp
pierpal has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
Pixel_Outlaw has joined #lisp
kotrcka has quit [Quit: Page closed]
damke has quit [Ping timeout: 264 seconds]
python476 has joined #lisp
holycow has quit [Quit: Lost terminal]
d4ryus1 has joined #lisp
fikka has joined #lisp
d4ryus has quit [Ping timeout: 264 seconds]
<simplegauss>
White_Flame: thanks! I decided to do that to try and learn something about sbcl, and now i've seen something that looks very much like an optimization bug
<simplegauss>
if i have (defmacro mfoo () '(lambda (x) (1+ (1- x))))
<simplegauss>
then compile (lambda (x) (funcall (mfoo) x)), the function given by mfoo does not inline
<simplegauss>
but if i compile (lambda (x) (funcall (lambda (z) (1+ (1- z))) x)), the lambda gets inlined
<simplegauss>
i'm surprised this kind of behavior is even possible; don't macros have to be expanded before compilation?
<simplegauss>
i also thought they were supposed to be the same as hand-typed code
tokamach has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
rumbler31 has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
jlarocco has joined #lisp
<pierpa>
pfdietz: so, an implementation where (mapcar #'upgraded-array-element-type '((unsigned-byte 16) (signed-byte 16) (unsigned-byte 15))) ==> ((UNSIGNED-BYTE 16) (SIGNED-BYTE 16) (UNSIGNED-BYTE 16)) is in error, if I understand correctly? sigh :)
dmiles has joined #lisp
warweasle has quit [Quit: Leaving]
rumbler31 has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
<jlarocco>
Hi, I'm writing a wrapper for libgphoto2, and I'm running into a problem with two functions that take struct arguments on the stack.
<jlarocco>
Adding cffi-libffi as a dependency fixed an error with my defcfun declarations, but now when I try to call the functions I get "There is no applicable method for the generic function" with a pointer, my struct type, and another pointer.
fikka has quit [Ping timeout: 256 seconds]
<jlarocco>
I'm finding conflicting information on whether passing structs on the stack even works
fikka has joined #lisp
LiamH has quit [Quit: Leaving.]
jealousmonk has quit [Quit: Leaving]
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
python476 has quit [Ping timeout: 265 seconds]
fikka has quit [Ping timeout: 264 seconds]
<jlarocco>
nevermind - user error. I'm passing a pointer to the struct, and not the struct.
clintm has joined #lisp
dddddd has quit [Remote host closed the connection]
<clintm>
Before I buy lispworks out of sheer frustration, I thought I might ask here: Does anyone else (try to) use FreeBSD and either sbcl or ccl? Between sbcl's random "interrupted system call" errors, and ccl randomly hanging with slime, I'm THIS close to dropping them both.
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
<verisimilitude>
I can tell you it's good enough under OpenBSD.
<verisimilitude>
Considering that the FreeBSD developers don't even use FreeBSD, perhaps you should drop it instead, if you can.
<verisimilitude>
So, SBCL has random system call failures there; that's interesting.
<verisimilitude>
Have you given ECL and some others a try, first?
fikka has joined #lisp
Kaisyu7 has joined #lisp
<clintm>
Hrm... no, I haven't tried anything but those two.
<verisimilitude>
There's also ABCL, if you don't mind running the JVM, which probably works well under FreeBSD.
<verisimilitude>
Considering how much a Lispworks license costs, it's worth your time to test these first.
fikka has quit [Ping timeout: 240 seconds]
igemnace has quit [Read error: Connection reset by peer]
<clintm>
Hrm... I think I'll bring up an openbsd instance and see how well things work there. I feel a bit embarrassed that I didn't suspect FreeBSD itself more, and only blamed the lisps.
fikka has joined #lisp
<simplegauss>
I asked on the sbcl channel, but i am getting some strange disassembly and i don't understand how it's even possible for this optimization bug to happen: https://pastebin.com/SjBV06L2 . the top function compiles a separate lambda and calls into it, but the bottom two completely elide the lambda and have no extra function calls in their body.
<simplegauss>
I thought that macro expansion is supposed to happen before compilation?
raynold has joined #lisp
<simplegauss>
and why would assigning to a name in the flet help if it's still wrapped in a funcall?
lemons has quit [Ping timeout: 264 seconds]
epony has quit [Quit: hw malfunction]
<pierpa>
what happens if you change that macro to (defmacro mfoo () #'(lambda (z) (1+ z))) ? (or equivalently to (defmacro mfoo () (lambda (z) (1+ z))) )
<simplegauss>
pierpa: that doesn't compile...
<pierpa>
hmmm
clintm has quit [Remote host closed the connection]
<pierpa>
ah. right.
<simplegauss>
does what's happening make sense to you?
Pixel_Outlaw has quit [Quit: Leaving]
<pfdietz>
pierpa: that's right.
<pfdietz>
(about u-a-e-t)
Mutex7 has quit [Remote host closed the connection]
vtomole has joined #lisp
<pierpa>
pfdietz: so, ccl, lw, and acl got it wrong. only sbcl is right of the ones I have checked
<pfdietz>
Yes. The ANSI spec is clear on this.
<pierpa>
yes, I found the paragraph
schoppenhauer has quit [Ping timeout: 264 seconds]
<pfdietz>
Complex type upgrading in the spec is broken, though. They didn't get it right before the spec writing process ended.
<pfdietz>
Off to bed. Have a good ELS, all of you who are there.
pfdietz has quit []
<pierpa>
pfdietz: in which way is complex upgrading broken?
<pierpa>
Good night
simpleg31 has joined #lisp
arescorpio has joined #lisp
fikka has joined #lisp
damke_ has joined #lisp
jlarocco has quit [Ping timeout: 240 seconds]
damke has quit [Ping timeout: 263 seconds]
simplegauss has quit [Ping timeout: 260 seconds]
fikka has quit [Ping timeout: 256 seconds]
smasta has quit [Ping timeout: 256 seconds]
impulse has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
varjagg has joined #lisp
varjagg has quit [Ping timeout: 264 seconds]
damke has joined #lisp
simplegauss has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
vtomole has quit [Ping timeout: 260 seconds]
simpleg34 has joined #lisp
pierpa has quit [Quit: Page closed]
smasta has joined #lisp
simpleg31 has quit [Ping timeout: 260 seconds]
Oladon has quit [Quit: Leaving.]
ldb has joined #lisp
simplegauss has quit [Ping timeout: 265 seconds]
kark has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
Oladon has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
deng_cn has joined #lisp
elfmacs has quit [Ping timeout: 256 seconds]
nika has joined #lisp
fikka has joined #lisp
sjl has quit [Quit: WeeChat 1.9.1]
terpri has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 245 seconds]
SaganMan has quit [Ping timeout: 260 seconds]
pierpal has quit [Read error: Connection reset by peer]
kerrhau has quit [Ping timeout: 256 seconds]
terpri has joined #lisp
simplegauss has joined #lisp
simpleg34 has quit [Ping timeout: 265 seconds]
deng_cn has quit [Read error: Connection reset by peer]
iqubic has joined #lisp
deng_cn has joined #lisp
fikka has joined #lisp
oleo has quit [Quit: Leaving]
zaquest has quit [Ping timeout: 264 seconds]
lnostdal has quit [Ping timeout: 264 seconds]
SaganMan has joined #lisp
pierpal has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
arescorpio has quit [Quit: Leaving.]
theemacsshibe has joined #lisp
shka has joined #lisp
<theemacsshibe>
hi shka
lnostdal has joined #lisp
vlatkoB has joined #lisp
fikka has joined #lisp
simplegauss has quit [Quit: AndroidIrc Disconnecting]
simplegauss has joined #lisp
simplegauss has quit [Client Quit]
fikka has quit [Ping timeout: 260 seconds]
smasta has quit [Ping timeout: 268 seconds]
deng_cn has quit [Read error: Connection reset by peer]
captgector has quit [Remote host closed the connection]
captgector has joined #lisp
theemacsshibe has quit [Ping timeout: 276 seconds]
deng_cn has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
fikka has joined #lisp
elderK has joined #lisp
jlarocco has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
Karl_Dscc has joined #lisp
fikka has joined #lisp
nowhere_man has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
damke_ has joined #lisp
elfmacs has joined #lisp
varjagg has joined #lisp
damke has quit [Ping timeout: 264 seconds]
smasta has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
varjagg has quit [Ping timeout: 260 seconds]
SaganMan has quit [Quit: WeeChat 1.6]
smasta has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
damke_ has joined #lisp
orivej has joined #lisp
schweers` has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 268 seconds]
rippa has joined #lisp
schweers has quit [Ping timeout: 260 seconds]
smokeink has joined #lisp
Bindler has joined #lisp
Murii has quit [Remote host closed the connection]
pierpal has quit [Ping timeout: 264 seconds]
detectiveaoi has quit [Quit: Leaving]
bakkal has joined #lisp
elfmacs has quit [Quit: WeeChat 2.1]
elfmacs has joined #lisp
elfmacs is now known as EviX
fikka has joined #lisp
EviX is now known as elfmacs
elfmacs is now known as ZiX
ZiX is now known as NiX
NiX is now known as FiX
Murii has joined #lisp
FiX is now known as EiX
EiX is now known as JiX
JiX is now known as KiX
KiX is now known as MiX
MiX is now known as CiX
CiX has quit [Killed (Sigyn (Spam is off topic on freenode.))]
smokeink has quit [Ping timeout: 268 seconds]
d4ryus1 is now known as d4ryus
fikka has quit [Ping timeout: 264 seconds]
nbhauke has quit [Quit: nbhauke]
zaquest has joined #lisp
makomo has joined #lisp
fikka has joined #lisp
smokeink has joined #lisp
MasouDa has quit [Ping timeout: 256 seconds]
hiroaki has quit [Ping timeout: 265 seconds]
asarch has quit [Quit: Leaving]
hajovonta has joined #lisp
damke has joined #lisp
<hajovonta>
hi
damke_ has quit [Ping timeout: 264 seconds]
<elderK>
Hey hajovonta :)
<hajovonta>
hi elderK!
<elderK>
How's it going?
<elderK>
:D
<hajovonta>
not too much from me on Lisp side recently
mflem has quit [Read error: Connection reset by peer]
Cymew has joined #lisp
hiroaki has joined #lisp
<hajovonta>
I'm shifting to another team where python is required
<elderK>
Do you like Python at all?
<elderK>
:P I've been forced to use it for University
<elderK>
It's not horrible. But I don't like it, either.
ddrbt has joined #lisp
<hajovonta>
the same here. If I have to choose a popular language, I would choose python. It's easy to learn, and one can accomplish a lot with it.
<hajovonta>
But after programming in lisp, I tend to avoid everything else if possible.
<hajovonta>
We have tools developed in Java that I don't like to use so I developed my alternatives using Emacs Lisp
<elderK>
Nice.
<elderK>
I don't know. I'm pretty picky when it comes to languages.
<elderK>
Like, when it comes to what I call "high level languages", I figure I might as well try to use Lisp.
lagagain has quit [Quit: Connection closed for inactivity]
<elderK>
Java, Python, etc. They don't really offer anything compelling besides being widely available and supported.
<hajovonta>
what is low level nowadays? :)
<elderK>
Same with say, C/C++ vs something like say, Pascal or some other language.
<elderK>
Good question.
<elderK>
I guess for me, something is high-level if you don't have to worry so much about all the tiny details of memory and such.
<elderK>
Or if say, it's very difficult to do "unmanaged' things.
fikka has quit [Ping timeout: 240 seconds]
<elderK>
In that sense, CL kind of fits as a semi-low-level language in that with SBCL, you can create VOPs and stuff.
<elderK>
My "perception" of languages probably isn't sane - it's not based on much other than my own feelings. So, take it with salt :)
<elderK>
But in general, Python, Java, C#, etc. They all seem like slightly different shades of the same color.
<elderK>
Where as Lisp dialects are novel.
* elderK
shrugs
<elderK>
You know?
wigust has joined #lisp
<verisimilitude>
Java continues to impress me.
<elderK>
verisimilitude: How so?
<hajovonta>
yes, but I sometimes find myself in a position that either my lisp knowledge is insufficient or lisp is not capable of doing a task, and then reach out to python and make lisp and python programs work together
<verisimilitude>
It's impressive how, despite its disgusting size, it still lacks so much important functionality.
<elderK>
The fact that it does not natively support unsigned integers was a major turn off to me.
<hajovonta>
I call this "augmenting my lisp program" and it's usually a horrible marriage
<elderK>
Sure, you can kludge them.
<elderK>
And for a typed language, the lack of "references to const object" really pisses me off.
<verisimilitude>
Now, I don't know much Java, as I very much dislike it, but is most of the language OO patterns or some drivel? How do they waste so much space with so little?
<verisimilitude>
As an example, I'm begrudgingly writing some Common Lisp to pepper over some terminal functionality across implementations.
<verisimilitude>
For ABCL, I was planning to write some Java in Common Lisp to handle this, but, and I could be wrong, it seems Java has no functionality for this.
<elderK>
I've had to pick up Java for Uni. So much there is Java Java Java. I *actively* avoided it like the plague for a LONG time.
scymtym has quit [Ping timeout: 264 seconds]
<elderK>
And I found that my distaste for it was not misplaced.
<verisimilitude>
Am I wrong or does Java, despite its disgusting size, truly lack simple functionality such as permitting raw I/O and echoing?
<hajovonta>
elderK: now in my old team Java is coming like a train and I could barely step away
<hajovonta>
I wrote a solution in 6 months (by myself) in CL that had the functionality of a large Java software that a whole team was working on for years
<elderK>
I have hte same story just not with CL.
<elderK>
:P Clusterfuckery is why I returned to University to get a degree.
<hajovonta>
but CL is not adopted here
shka has quit [Ping timeout: 276 seconds]
<verisimilitude>
Oh, but hajovonta, that team can be easily replaced piecewise; it's probably slightly harder to replace you.
<hajovonta>
yes I know
<verisimilitude>
Just remember that it's all about reducing programming to assembly line work, where you don't matter and they can do whatever they want to you.
<elderK>
Dude, at my last job, I was openly mocked for talking about Lisp.
<verisimilitude>
I don't mean to seem like some commie, though; I'm not.
ldb has quit [Ping timeout: 260 seconds]
<elderK>
By a boss who didn't even know the value of writing small functions.
<elderK>
Or properly modularizing things.
<hajovonta>
it was fun to prove what CL can do, and it reinforced my feeling that lisp is the only language that is worth of using
<elderK>
"BIG FUNCTIONS COMPILE FASTER!". Idiot.
<hajovonta>
verisimilitude: yeah that's my feeling too, but I don't want to be a code monkey
<elderK>
verisimilitude: Same here.
<elderK>
In fact, I couldn't have said it better myself.
<elderK>
You nailed it.
<elderK>
:( I can see it reflected in the curriculum too.
<verisimilitude>
I had fun demonstrating to some students I had the opportunity to interact with how a single line of APL replaces however many dozens of lines of Java they were writing.
<verisimilitude>
I was then having a discussion with someone else about this same topic and they joking responded with this, paraphrased:
<verisimilitude>
Oh, but all of that Java is reusable. Your single line of APL isn't.
angavrilov has joined #lisp
<TMA>
java is the safe bet. as we all know, a team of two hundred is smarter than any single person (assuming an average intelligence for the team members their IQ total is 20000) plus it is easier to hire yet another java programmer than to find out, whether the applicant is smart
<elderK>
Have you guys found, like, I don't know. Most developers I speak to in real life, they seem to lack passion. Students, too. Instead of say, working on a personal project or getting excited about some new technology or language or idea, they just... leave it all at the door.
<elderK>
They learn only what is necessary, no more. As if there's no curiosity.
<elderK>
And if you show any passion in it - in software, hardware, whatever.
<elderK>
They look at you like you are a freak.
<elderK>
:( I hope I'm not the only person that experiences that.
<verisimilitude>
That's what happens when it all becomes about the money.
<verisimilitude>
Just look at how most Indians want to be programmers, according to a national survey, apparently.
fikka has joined #lisp
<TMA>
elderK: not restricted to developers though.
<verisimilitude>
They simply see it as the ticket to a comfortable life.
<verisimilitude>
Perhaps it's an odd difference, to compare workaholics who hate their jobs but obsess over them to someone who actually manages to get fulfillment from their job and still puts in just as much effort, if not more.
<verisimilitude>
Perhaps that's what those people find odd.
<TMA>
elderK: they possibly have some passion, it is just not anything you happened to stumble upon; they might like to dance, watch birds, tend their bonsai, get wasted, ...
ldb has joined #lisp
<elderK>
I don't know. To me, Software isn't just a tool or a job. It's not a simple process. It's more like art or expression.
<verisimilitude>
Yes, elderK, and it's also not a useless creative activity.
<verisimilitude>
Unlike other creative activities, however, it's also easy to get into.
<verisimilitude>
At least, relative to designing a building, say.
<elderK>
Sure, you build something for some purpose. But the code itself, there are so many ways to evaluate it. Not simply that it "works." Is it maintainable? Is it flexible? Is it tested? Is it efficient? And the feeling that you get, when everything seems to be going right - design has come together. I don't know. It's just a great feeling.
<elderK>
It's like the Master Builders in the Lego movie.
<verisimilitude>
Sure.
* elderK
shrugs
fikka has quit [Ping timeout: 264 seconds]
<verisimilitude>
It's in a way bewildering to me how many programmers don't seem to have novel ideas for software.
fz has joined #lisp
<verisimilitude>
It seems like most programmers fetch this from that, fed into this, massaged by that, into this format to be fed to this later.
<verisimilitude>
Where's the innovation there?
fz has quit [Remote host closed the connection]
<verisimilitude>
Where's all of the programmers saying ``This entire way people do this is wrong and I'm going to design this to prove that my way's better!''?
<elderK>
Where's the love for the details, too? I have been kind of disgusted by how I see people write software. It's like, everyone thinks you have to be writing avionics software in order for a bug to do real damage.
<elderK>
Ignoring the fact that bad code today has more effect than ever before. Writing recklessly... is dangerous.
<elderK>
Say, a forum that stores people's contact info and passwords for some pointless reason.
<elderK>
Could be easily compromised and used for other purposes.
<elderK>
verisimilitude: Yeah!
earl-ducaine has joined #lisp
<verisimilitude>
I agree, elderK.
<verisimilitude>
What programs have you been working on towards such a goal?
<verisimilitude>
I'd be interested to read about them.
<elderK>
Oh, the things I have built aren't groundbreaking :)
<verisimilitude>
If you can give me a link, that would be best.
<elderK>
They scratch itches I have.
<elderK>
Things I want to learn, or ideas I have wanted to experiment with.
<verisimilitude>
Well, alright.
<elderK>
Lately, I've been very interested in the object-capability concept.
<elderK>
And I would like to start applying it in various ways.
<elderK>
Most of my time these days is occupied by Uni work.
<elderK>
Outside of that, I continue to learn about compiler implementation, parsing and stuff. I have crazy dreams I want to realize.
<verisimilitude>
Don't let your schooling interfere with your education, if you can help it.
<elderK>
hahha
<elderK>
I could rant for hours on the schooling.
<verisimilitude>
What are these crazy dreams?
<elderK>
Suffice it to say, I am very disappointed.
<elderK>
I've always been interested in the low-level, particularly with kernels and microkernel technology.
<elderK>
I wrote a few in C and such a long time ago. Same with runtime linkers, etc.
<elderK>
My crazy dream is this:
<elderK>
And it helps precisely no one:
scymtym has joined #lisp
<elderK>
1. Implement a compiler for a dialect of Scheme or maybe CL. Ideally, gain enough smarts so that I can write something that I can say is not a toy.
smasta has joined #lisp
<elderK>
2. Implement that compiler in itself, complete with a non-toy GC.
<elderK>
3. Implement bootloader, kernel, etc, in that language.
<elderK>
I have seen Mezzano and such.
<elderK>
My goals are different.
<verisimilitude>
Howso?
<elderK>
I'd then like to investigate more into capability based security. And also do various experiments for my own satisfaction regarding how much I an shift into userspace.
* hajovonta
bought a soda
<elderK>
Well, for me, it's all about how much I can shift out of kernel space.
<elderK>
I'm very... strict on that in my mind.
<elderK>
Mezzano is very cool, no dobut about it.
<elderK>
froggey is an inspiration.
<elderK>
It would also be interesting to try and think of how to secure a modern Lisp system.
<p_l>
elderK: The question is, do we truly need the "kernel space" and "user space"? Even when using supervisor/user modes on CPUs
<hajovonta>
the software developer industry is divided already. And everybody wants to write code, and nobody likes to maintain it.
<elderK>
p_l: Well, it depends on what you mean by "kernel and user space" when using "supervisor/user."
<elderK>
It's not necessarily the memory that defines kernel and user space - it's all about the privilege.
<hajovonta>
But eventually, there will be code developers and code maintainers
<elderK>
p_l: Sure, you could do SIP.
<p_l>
elderK: supervisor/user is *hardware* security barrier. How do you actually use it, now...
<hajovonta>
these will blame each other
<verisimilitude>
Those are laudable dreams, elderK.
<p_l>
Also, hello from ELS2018 :)
<hajovonta>
hi there
smasta has quit [Ping timeout: 256 seconds]
<verisimilitude>
Now, from the earlier topic, the only particularly bothersome aspect of writing lower level code in Common Lisp, to me, is how logical manipulation can be verbose, but that could be eliminated easily if one wanted it.
<elderK>
verisimilitude: I have spent the majority of my life learning "pointless" details to enable this dream. I've also spent insane amounts of time learning how to modularize and test things. That was handy as I leanred that the more easily tested something is, the more the more modularized and flexible the resulting desing.
thblt has joined #lisp
<elderK>
So, unit testing isn't something I hate.
<elderK>
The tests are the "bonus." I use them to ensure my APIs are sane.
<elderK>
verisimilitude: And thanks :)
<verisimilitude>
That's good, elderK; I firmly believe obsessing about a topic constantly is a good, perhaps even the best, means to improve the ideas created.
<elderK>
verisimilitude: How do you mean logical manipulation?
<verisimilitude>
So, Common Lisp can be verbose when manipulating binary formats and other such things.
<elderK>
verisimilitude: Also note, none of my ideas are particularly new. Pretty much everything I have done, has been done before, elsewhere and better. I'm simply trying to do it myself, my way, just for satisfaction I guess. And because I like to think I might be abl to do something more efficiently in some case.
<elderK>
verisimilitude: Ah, yes.
<elderK>
verisimilitude: I have not yet written anything "Serious" in CL.
<elderK>
But that has been something I have been thinking about.
<verisimilitude>
If you continue, elderK, I'd wager you'll create new ideas about the topic.
<elderK>
One of those things I know I would hit.
<verisimilitude>
Would you care to see what I've been working on, elderK; it's written in Common Lisp, but is a decidedly non-lispy program.
<verisimilitude>
It's an interactive, programmable, machine code development environment.
<verisimilitude>
I don't like assemblers.
<p_l>
lol @ lisp developers as zombies rising from the grave
<elderK>
:D Cool
<p_l>
currently discussed on keynote :D
<verisimilitude>
My idea is that you have machine code programs that use some services provided by the tool, such as disassembling an instruction or asking for an integer of a certain magnitude, to write machine code programs instead.
<verisimilitude>
Unfortunately, people tend to tell me that they can't give much of an opinion on it.
<elderK>
I'm not sure I get it from that description.
<elderK>
You mean, you provide a service that allows for the generation of code?
<verisimilitude>
I went to ##asm here and was told by one fellow that my article read as if ``a schizophrenic out patient'' wrote it.
<elderK>
You have reminded me of another "dream project" of mine. Maybe some ideas from that you would find intersting for your own project.
<elderK>
Thank you for the link
<verisimilitude>
This is the article that goes into good detail, elderK. I'd be interested to read what you think of it.
<verisimilitude>
Still, I suppose you should tell me in a private message, if you do, so we don't error from Lisp here.
<elderK>
I'll let you know what I think :)
<verisimilitude>
I look forward to it, then.
<verisimilitude>
The actual Common Lisp is a mess, I think, at least in parts, but I did derive three libraries from it, which are rather nice, I think.
<hajovonta>
verisimilitude: so then by using your software, we would write machine code through your interface?
<verisimilitude>
Yes.
<verisimilitude>
This first version targets CHIP-8, which is why it's written in Common Lisp, as I've designed a Meta-CHIP-8 to use with this.
<verisimilitude>
That Meta-CHIP-8 isn't documented yet, however; there was an earlier version that I disregarded.
vap1 has quit [Ping timeout: 256 seconds]
<verisimilitude>
It's all contained in the META-CHIP-8 procedure, though; it's a memory-to-memory system.
<hajovonta>
is it a one-way street, e.g. can it parse machine code back into lisp?
<verisimilitude>
It's a one-way street. I've purposefully designed the tool to only work in formats I've designed; it's not a Lispy program at all.
<verisimilitude>
It's merely written in Common Lisp.
hhdave has joined #lisp
<hajovonta>
I had something similar in mind but not with machine code but other high-level languages
<verisimilitude>
I'm also in the process of writing a MIPS targeting in MIPS.
<verisimilitude>
Do tell, hajovonta.
<edgar-rft>
AFAIK every machine-code can be parsed into Lisp code, but probably not very meaningful Lisp code. That's the only problem.
<verisimilitude>
You'd just be representing it with S-expressions, yes.
<hajovonta>
but I never got to the point of doing it (probably because I couldn't fully convince myself)
<hajovonta>
It would be more fun developing python code in CL repl than in python console
<hajovonta>
and there are some languages that do not even have a REPL in the first place
<verisimilitude>
Well, there's also a Python written in Common Lisp, which would help.
<verisimilitude>
You can't import common-lisp in Python, so that's a major barrier to a new implementation of Common Lisp in Python.
tokamach has joined #lisp
hhdave has quit [Ping timeout: 276 seconds]
HDurer has joined #lisp
HDurer has quit [Changing host]
HDurer has joined #lisp
nbhauke has joined #lisp
`JRG has joined #lisp
tokamach has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ldb has quit [Quit: leaving]
energizer has quit [Ping timeout: 240 seconds]
nowhere_man has quit [Remote host closed the connection]
nowhere_man has joined #lisp
jlarocco has quit [Ping timeout: 240 seconds]
fzappa has joined #lisp
Oladon has quit [Read error: Connection reset by peer]
shka has joined #lisp
<makomo>
elderK: on the topic of Java, i see it at my uni too
<makomo>
it's a sad state of things
SaganMan has joined #lisp
_cosmonaut_ has joined #lisp
<makomo>
elderK: one professor who does pretty much all of his stuff in java said that lisp is a relic of the past, when talking with a collegue of mine who mentioned lisp to him
<hajovonta>
professors are just humans, too
<makomo>
(and i introduced that colleague to lisp and constantly keep talking about it :D)
<makomo>
hajovonta: i agree
<hajovonta>
my newbie colleague said "lisp is the evil itself"
<makomo>
so to prove him "wrong", i'm writing all of my opengl lab exercises in lisp
<makomo>
sadly he wasn't the one questioning me on my previous lab exercise
<makomo>
but i can't wait to see the expression on his face :D
<hajovonta>
please keep us posted :)
<makomo>
hopefully he'll be on one of the next labs
<makomo>
hajovonta: that professor teaches design patterns btw, which is really just a disguise for java
<makomo>
there's some C++, but only the "java kind". generic programming isn't talked about
kushal has quit [Ping timeout: 268 seconds]
<hajovonta>
I have difficulties communicating lisp's advantages
<hajovonta>
we continue to have argues with colleagues
<verisimilitude>
If you want to be a jackass, you could create some koans, hajovonta.
<hajovonta>
I often have to point out that language and ecosystem is not the same thing
<verisimilitude>
Koans are good for communicating very little, but in a very condescending manner.
<SaganMan>
hajovonta: lisp is fun
<hajovonta>
verisimilitude: I like koans :)
<verisimilitude>
In particular, I dislike C koans.
Kevslinger has quit [Quit: Connection closed for inactivity]
<SaganMan>
I would say lisp is most fun to program
kushal- has joined #lisp
<verisimilitude>
``This C programmer is good because he's a C programmer. He meets a higher level programmer who tells him that undefined behavior is bad. The C programmer farts and the other programmer realizes the error of his ways. The other programmer then commits suicide for daring to transgress against the ghost of Dennis Ritchie.''
<verisimilitude>
This is more colorful, but communicates the general message behind most C koans I've seen.
<hajovonta>
lol
<hajovonta>
i generally don't try to convince others
<hajovonta>
so my argues are just demonstrations really
<hajovonta>
and then the other party can decide whether he likes it or not
<hajovonta>
but lisp is very hard to get into
<jdz>
Not really.
<jdz>
I'd say it's not harder than any other environment.
<jdz>
The problem is that people get exposed to other environments first.
<hajovonta>
ok, but when you have already things set up, it's very different.
<hajovonta>
yes.
scymtym has quit [Ping timeout: 240 seconds]
<hajovonta>
and it's a shame because those other environments impose limits on what they can do
<verisimilitude>
In languages like Go and Rust, that's the point.
<verisimilitude>
The modern languages say: ``Here, put on these cool shackles and be hip like me.''
<makomo>
one of the more important things when arguing about languages is to have examples ready imo
<verisimilitude>
``Everyone knows the cool way to extend a language is to let the cabal do it for you; if they don't, then you don't really need it.''
<makomo>
and also to get past the hate for whichever language you have and take time to understand how exactly it differs from lisp
<hajovonta>
well you don't have to be a shoemaker to know if a shoe doesn't fit
<makomo>
you want to show people
<hajovonta>
sometimes you can tell it right away
<makomo>
woops
vaporatorius has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vap1 has joined #lisp
<makomo>
hajovonta: that's true and that's why almost all of us can tell that java is "wrong"
<makomo>
but for those who don't yet "see the way", only concrete examples will help
<hajovonta>
makomo: yes that was exactly on my mind :)
<makomo>
that's why you have to be the one who will think of them and show them when arguing for lisp
<verisimilitude>
Have you tried comparing Java to INTERCAL and seeing how they liked that?
<makomo>
you have to get past the hate for java and actually go and dig up some examples
<hajovonta>
but to be honest I learned Java for 2 years, but that was ~20 years ago
<makomo>
and then show them how much better the lisp way is
<makomo>
ah
<makomo>
verisimilitude: i've never heard of INTERCAL
<verisimilitude>
Simply show how both are full of boilerplate.
<makomo>
haha
<verisimilitude>
In that case, also lookup the WWW framework ``INTERCAL on Interstates''.
<jdz>
My observation: great software can be written in any language.
<makomo>
i remember a talk by bjarne stroustrup once where someone asked "how do you get the void* guy to switch over to modern c++"
<makomo>
in the sense that, the void* guy thinks that C++ will be slower, etc.
<hajovonta>
I have a colleague who tries to write a math expression parser that could simplify the expressions (in python)
<makomo>
the simple answer was really "do it for him"
<makomo>
think of an example or take his code, and rewrite it
<makomo>
and then show him that it's as fast or even faster than his void* code
<makomo>
that's the only way you'll really convince him
<hajovonta>
I showed him that when writing in lisp, you instantly work in the AST and it's easy to do transformations
<hajovonta>
he was impressed but still, I don't believe he will use lisp
<makomo>
yeah, it takes a lot of these small examples i think
<makomo>
another thing is that, lisp is kind of tied to emacs in the majority of cases
<makomo>
so getting into lisp is like stepping into a space shuttle if you've never used tools like emacs
<elderK>
I don't know. To me, I don't really care what language they use to teach students. What I care about is that the standards of teachign seem to have dropped, the enthusiasm is lacking and the students seem to be apathetic to what they are learning about.
<makomo>
most of the people at my uni who do java (so, most of them) worship intellij
markong has joined #lisp
<elderK>
I could rant on that for several reasons - I'll spare you.
<elderK>
But any time I see someone who is passionate about some idea, I am happy.
<elderK>
Sometimes, I have told classmates about various things, techniques, whatever.
<makomo>
elderK: i agree, but it seems that java is somehow connected to that whole problem imo
<elderK>
There is this one friend that got excited, a new coder, but he went away and spent a week hacking up something based on that idea in Java.
<elderK>
His code was terrible.
<elderK>
But to see the lightbulb.
<elderK>
To see how excited he was - just to try it out.
<elderK>
That was the key.
<elderK>
And is the key.
<elderK>
Instead, I see people say "I don't need to learn about trees and ADTs because it's all done and if It wasn't, someone else in a company would do it for me."
<elderK>
"I don't need to learn about graphics and stuff because Unity does it all and I'm a gamedev."
<elderK>
"Unity 4 LYF!"
<elderK>
etc, etc.
<elderK>
I know I shouldn't - but I can't help but judge people like that negatively.
<elderK>
Makes me a bad person. But it just, it angers me so much.
<makomo>
i don't think that you shouldn't :D
<elderK>
I don't care that they don't care about the low-level. But they should have passion about what htey are doing! I mean, Unity will not let them express everything.
<elderK>
They need to learn how to be *Free*
<makomo>
i mean, you surely aren't going to hate them or similar, but seeing how apathetic they are is just lame
<elderK>
And build solutions for themseles.
<verisimilitude>
You can either judge them negatively or use violence, elderK.
<verisimilitude>
In that dichotomy, the former is completely harmless in comparison.
<elderK>
It makes me stick out like a sore thumb at Uni. I have very few friends.
<elderK>
:P
<elderK>
Of course, they are all "kids."
<makomo>
teach them the way, be persistent :D
<makomo>
i mean, i basically transformed this colleague of mine
<elderK>
We're talking 19-24 year olds. I'm 30. When I was their age, I had already written my first kernel and a set of drivers and the like. When I was 19, I lived and breathed it all.
<makomo>
i kept jabbering about lisp, on and on
<makomo>
now he's using emacs and getting into cl
<elderK>
:D
<elderK>
I have been suggesting it to several students - as well as old workmates :)
<makomo>
i'm still going on about lisp. last thing i showed them was interactive opengl
<elderK>
A few, afaik, have taken the links and taken a peek.
<makomo>
minds == blown
<elderK>
People have to realize, the more vantage points you have to examine a problem, the more solutions there are. The more freedom you have. And the potential to build a much greater system, a much... more elegant system. In any language.
<makomo>
i've also told them about Shinmera's (thanks!) little game engine and how he made a presentation in it
<makomo>
wrapping it all up in macros such as define-slide, etc.
<makomo>
and the presentation is fully interactive, the teapot is spinning right in front of you
vap1 has quit [Quit: Leaving]
<makomo>
that's was amazing to watch
<makomo>
that*
<makomo>
elderK: yup, but they can't do that until they learn more languages. they don't see how important it is at that level.
<makomo>
once they learn more and more languages and compare their features, they'll be able to see the "essence" of programming
<makomo>
and that's why concrete examples/comparisons, when arguing for any language, is essential i think
<elderK>
makomo: I don't know. I appreciated the variety of things even before I learned of Lisp, even when I used a single language only. That may, however, be due to my focus on kernels and the like.
<elderK>
I studied many different approaches and grew an appreciation for them all.
<elderK>
Then again, we are all different.
* elderK
shrugs
<makomo>
elderK: yeah, some people just have the natural tendency to explore and see many different ways how to do something
<makomo>
some don't, obviously :D
<makomo>
one thing i don't like is how modern languages keep reinventing the wheel with regards to naming stuff
<makomo>
for example Kotlin
<makomo>
sealed classes (really just variants (the adt) from what i've understood, also called enums in rust)
<makomo>
extension methods (just a special name for a certain type of normal functions, but i can get past this one i guess)
<makomo>
companion objects (no clue what this mess is, it includes singletons)
<hajovonta>
when I learnt from Let over lambda that objects are not fundamental, I felt something similar
<makomo>
hajovonta: holy crap that was amazing for me too
<hajovonta>
and then we had a dispute recently with a C++ colleague
<hajovonta>
and I told them that objects can be constructed from let and lambda
<elderK>
I need to get LoL.
<hajovonta>
the reaction was like "what is a lambda?"
<makomo>
hajovonta: exactly, pretty much expected
<makomo>
most people don't know what a closure is
<makomo>
i've told them about let-over-lambda too
damke_ has joined #lisp
<makomo>
i even showed them an example
<hajovonta>
yes, but they know about "iterators" and "comparators"
<elderK>
man, I remember telling someone about closures.
<hajovonta>
which are basically closures
<elderK>
and there were from Delphi
<elderK>
and were like, oh yeah, __closure!
<elderK>
I knwo all about them!
<makomo>
yeah, they don't get that the *essence* of all that stuff are lambda/closures
<elderK>
It's like... No, no, you really don't :P OBSERVE! :D
<makomo>
that's what i'm talking about when i say "essence"
<hajovonta>
and I mindfully avoid the term "macros", particularly when talking to a C++ guy
<jack_rabbit>
Is there a "go-to" thread pool library for CL?
<makomo>
hajovonta: oh boy, macros are one of my *favorite* things to talk about :D
<makomo>
hajovonta: and i explicitly mention how different they are from C++
<makomo>
and then i mention how all of the fear mongering for C++'s macros are dumb
<makomo>
is dumb*
<makomo>
DON'T USE MACROS!!!!!
<makomo>
nobody ever explains in detail what the issues are
<makomo>
but if you take a look at a macro system like lisp, you will instantly see the problems
<makomo>
you will see the essence of what's wrong with C++'s macro system
<jack_rabbit>
Which C++ macro system? ;)
<makomo>
the fear that came through fearmongering will disappear, because now you'll know what exactly is the difference
damke has quit [Ping timeout: 264 seconds]
<hajovonta>
yes, because you have knowledge about it. But the other guy has something else in his mind about macros
<makomo>
exactly, which is why you need to explaint to him clearly what it is
<hajovonta>
it's unfortunate that the same word is used for these completely different concepts
<makomo>
now this might or might not always be possible, but at least describe to him what the gist is
<makomo>
yeah, true
<makomo>
lots of these words are overloaded all the time, that's just cs/it
<makomo>
it is how it is
<verisimilitude>
Make sure he doesn't think it's a github gist, either.
<makomo>
another very interesting thing is that, once you see what lisp can do, the difference between compile-time and run-time is basically non-existent
energizer has joined #lisp
<hajovonta>
makomo: when I showed how an expression is evaluated, I instantly created an expression that lisp is an interpreted language.
<makomo>
hajovonta: almost everyone asked me "soo lisp is an interpreted language?"
<makomo>
the looks on their faces when i tell them that it's compiled, oh man
<hajovonta>
and then we unconsciously jumped to the conclusion that lisp is slow because it's interpreted
<makomo>
SAME
<makomo>
always the same shitty stuff
<verisimilitude>
Well, it's been fun, but I'm finished for now.
<makomo>
hajovonta: a good example for "it's slow hurr", it the cl-ppcre example from LoL
verisimilitude has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<makomo>
it's just something that languages like C/C++ can't do, unless they write a compiler on the side to do it
ruste has quit [Ping timeout: 265 seconds]
<hajovonta>
makomo: yes, but I'm yet struggling with making my programs really fast
<makomo>
(i'm referring to implementing regexes as VMs and then compiling that bytecode to native code)
<hajovonta>
not that I'm overly interested in the topic though
<makomo>
i guess, but you have to be ready to tell them they're wrong so that they won't get the wrong picture about lisp :-)
elderK has quit [Quit: Late!]
<hajovonta>
well I usually just point out that their code in C++ does much less than mine in Lisp
thblt has quit [Remote host closed the connection]
<jack_rabbit>
hajovonta, what methods are you using to optimize?
thblt has joined #lisp
<makomo>
hajovonta: also showing them the example from PCL is pretty nice, how a generic + operation can be compiled into just 3-4 instructions with proper optimizations
<hajovonta>
jack_rabbit: I'm usually give type hints
<hajovonta>
and compiler declarations and such
<jack_rabbit>
cool.
<hajovonta>
jack_rabbit: then I just say, aha, do you have the overflow thing? You must include an overflow protection to your C++ program
<makomo>
oh another cool example from cl-ppcre is register-groups-bind
<makomo>
which is a macro which binds the symbols you give it to the captured groups of the regex
<makomo>
so nice and clean
<hajovonta>
and then: do you check and change type when it's too small to accomodate your number?
<makomo>
basically a LET but with the results of the regex
<jack_rabbit>
hajovonta, Yes, having unbounded ints is a great leisure in CL. I'm very grateful to have them. :)
<makomo>
hajovonta: i've avoided the whole bignum thing most of the time because it's not that special imo. python has bignums too for example
<makomo>
but CL has a great numerical stack
<makomo>
functions like floor, ceiling, round are pretty well thought out
<jack_rabbit>
makomo, are python's ints big by default, though? I thought it was a special type.
<makomo>
the logarithm of a negative number actually returns a complex number
<hajovonta>
makomo: yes. python has a nicer color than Java/C++
<makomo>
jack_rabbit: i think so? i remember computing huge fibonacci numbers and everything was fine
<jack_rabbit>
hmm. I'll have to check.
<makomo>
i'm not sure what the logarithm of a negative number would be in python
<makomo>
let's see
<makomo>
>math domain error
<makomo>
hah!
<makomo>
now try it in lisp and see what you get
<hajovonta>
last time I asked my colleague, what does he think, "5.0" is an integer or a floating-point number?
<jack_rabbit>
makomo, ahh, yes. You are correct about Python's ints.
<jack_rabbit>
hajovonta, It's a string. ;)
<hajovonta>
ohh ok
<hajovonta>
let me express it in another way :)
<makomo>
(log -10) # => #C(2.3025851 3.1415927)
<makomo>
amazing
<jack_rabbit>
hehehe
<hajovonta>
but you get the point
<jack_rabbit>
hajovonta, Yes. What did he say?
<hajovonta>
he said something like "I' confused"
<makomo>
lol
<hajovonta>
and: "it's a float because you have a decimal point"
<jack_rabbit>
Is that not correct? CL reads 5.0 as a SINGLE-FLOAT.
<jack_rabbit>
*my* CL
<hajovonta>
I just used the example to show the difference between a number representation and the actual number
<jack_rabbit>
I see.
<hajovonta>
yes, CL takes it as float, too
<makomo>
another great example to blow their minds is CLOS tbh
<makomo>
you know, i've learned the most about OOP from CLOS
<jack_rabbit>
Yeah, CLOS is fantastic.
<makomo>
that's when i was enlightened about OOP
<makomo>
i finally saw the way
<jack_rabbit>
makomo, same here.
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<makomo>
i saw the two versions -- the single-dispatch one, and the generic functions one
<makomo>
finally i saw the essence
<hajovonta>
jack_rabbit: try this (= 5 5.0)
<makomo>
and then came MOP, oh boy, i couldn't believe what was going on
<makomo>
i was talking to my friend about MOP the other day
<makomo>
amazing stuff
<jack_rabbit>
hajovonta, Yep. But the numbers do have different types. It just allows us to compare them.
<makomo>
*another* great thing are conditions, i.e. "resumable exceptions" as they're called in other circles
<makomo>
but CLOS is definitely something special
<makomo>
most of the people who i mention CLOS to can't believe how a method can not belong to a class
<makomo>
then i tell them about the visitor pattern and multiple dispatch in CLOS
<jack_rabbit>
makomo, yeah, restarts are another thing I consistently miss when not writing CL.
<hajovonta>
yes, it's the same object in the world, with different representation.
<makomo>
jack_rabbit: yup, they're really cool
<jack_rabbit>
yep
<jack_rabbit>
makomo, I rarely use them, but when I do, they're indespensible. That's true of many tools CL provides.
<makomo>
i've only recently started to get to know them better, but it's still awesome
<makomo>
and it's amazing how all of these ideas were created 40+ years ago
<hajovonta>
we have a saying "nothing is new under the Sun"
<jack_rabbit>
Yeah. I chuckle when someone tells me about their favorite lanugage's "new feature" and how genius it is.
siraben has joined #lisp
<makomo>
jack_rabbit: yeah lol, every time :')
<jack_rabbit>
:)
thblt has quit [Remote host closed the connection]
<makomo>
i like to refer to lisp in general as the knowledge of the ancients, the ancient scrolls
<hajovonta>
and when you say "I implemented this new feature into my language", that's completely alien to them
<makomo>
most people can't believe when i tell them i'm reading/learning about some language that was made 60 years ago
thblt has joined #lisp
<makomo>
in general i think that the it industry doesn't have very much appreciation for the past
<makomo>
everybody wants to rewrite everything
<makomo>
everything that wasn't made in the last 5 years is so uncool and old and broken
<hajovonta>
if a library hasn't seen any edits since 3 years, it's considered abandonware
<makomo>
yep, and lisp has taught me to get rid of this feeling and appreciate the old papers, the old articles, the old code
<makomo>
so much to be discovered
<hajovonta>
Unicode wasn't even here when lisp was invented, and now we use Unicode CLs
<makomo>
hah yeah
<makomo>
and the whole story about how CLOS is really a library on top of lisp
jmercouris has joined #lisp
<TMA>
well, most code is crap (because it is written by humans), the practitioners are (unconsiously) aware of that. The desire to rewrite is (a) there are bugs for sure, it is easier to rewrite than to fix (b) at least it will somewhat work for my use case
<makomo>
TMA: sometimes it makes sense, i agree. but for example when you mention Emacs to most people, they all go "eww, why would you use such an old editor?? use something modern like intellij, look at all of the cool features i has!"
<makomo>
i loved the moment a few days ago where, after all of the buildup from my CL stories, i showed the guy that Emacs itself is just a huge lisp system
pagnol has joined #lisp
<makomo>
evaluating the code in front of his eyes and seeing the change instantly
<hajovonta>
I plan to make a demo for the colleagues on Emacs
thblt has quit [Remote host closed the connection]
<makomo>
i use spacemacs which some consider to be bloated, but i like the ease of configuration (when it works) + the default vim keybinds
<hajovonta>
because recently I got a question that why I'm bothering with that
<makomo>
vim's keybinds + emacs' extensibility (lisp) is the best combination for me
thblt has joined #lisp
<TMA>
makomo: to be frank, I have to admit that intellij has its merits for editing java.
<makomo>
TMA: i also agree with that, it's pretty polished
<makomo>
but most of them cling onto intellij because it's so shiiiiny!
<makomo>
it's new, it's cool
<TMA>
makomo: not that the features are impossible in emacs, but noone has yet written it
<makomo>
yeah, no one even wants to bother, which is ok
<makomo>
if i had to do java, i'd probably use eclipse/intellij myself, it's just how it is
<makomo>
but the whole notion that, if something is old it must be bad, is wrong
<makomo>
although i would first like to try out eclim
<makomo>
(it marries eclipse and emacs, basically runs eclipse in the background in headless mode and provides completions for emacs)
<makomo>
most of the stuff that another friend was telling me about, how cool all of these features are in intellij and how eclipse doens't have them, was plain wrong
<makomo>
eclipse had all of them, he just never even tried to use them because intellij is new and better
<TMA>
makomo: it is a natural feeling, most people consider themselves young _and_ better than anyone else (it is a well established fact of human psychology). they just mistake their own personal bias/delusions with natural laws
varjagg has joined #lisp
<jack_rabbit>
I began writing some tools for Java editing in emacs, but got frustrated, and decided just not to write Java anymore.
<TMA>
when editing java, I routinely use all three big ides -- eclipse, netbeans and intellij.
<makomo>
TMA: yeah, this guy does have that vibe to him sometimes :D
<jack_rabbit>
makomo, I gave eclim a fair shot, but found it unintuitive. It seemed to get in the way more than it was helpful.
<makomo>
jack_rabbit: ah :^(. what was the worst part about it?
damke has joined #lisp
varjagg has quit [Ping timeout: 268 seconds]
Kevslinger has joined #lisp
<jack_rabbit>
makomo, It seemed inconsistent. There were also some features that seemed to require a fixed window layout. I'm not sure how they hacked emacs to behave that way, but it was very strange.
<makomo>
jack_rabbit: hm interesting. i'll have to give it a shot soon
<jack_rabbit>
makomo, Basically instead of providing tools and such to use with my regular work flow, it seemed to require me to conform to its rigid rules.
<jack_rabbit>
makomo, Also, it seemed to work pretty inconsistently. But YMMV.
<makomo>
mhm
damke_ has quit [Ping timeout: 264 seconds]
<jack_rabbit>
I ended up just going back to my sed and grep scripts for finding classes and stuff. :)
<makomo>
hahaha
<makomo>
oh well :D
<makomo>
in conclusion, i consider CL/Lisp to be one of the most important discoveries i've made
<makomo>
it has opened my eyes to many things, and allowed me to see the essence of many language features
<makomo>
i have to learn more of the emacs api to be able to do anything non-trivial with emacs
<makomo>
learning emacs lisp is easy. it's the emacs ideas/internals/apis you need to really learn
<jack_rabbit>
Yes. And they're not great, TBH.
<jack_rabbit>
I don't really enjoy writing elisp.
<makomo>
sometimes it's a bit confusing, even more so since i'm using spacemacs and then some stuff doens't really work as described
<makomo>
because spacemacs has either overriden it, etc.
<makomo>
using something like spacemacs is both good and bad
<jack_rabbit>
Never tried spacemacs. Why do you use it?
<makomo>
it allowed me to get a quick start on emacs and make me feel at home with its vim keybinds
<jack_rabbit>
gotcha.
<makomo>
the greatest thing about vim are its keybinds and the whole concept of modal editing imo
<makomo>
settuping up that by myself when i was just starting out would be a suicide mission
<makomo>
setting up*
<makomo>
so i'm glad something like spacemacs exists, and it's good to introduce newbies too because of the familiar vim keybinds/modes
<jack_rabbit>
Yeah, the learning curve is real.
<makomo>
now when i know more about lisp, i'm considering going back to raw emacs and trying to do it myself, but we'll see about that
<jack_rabbit>
I have never been a fan of modal editing.
<makomo>
ah really?
<makomo>
it was one of my revelations :D
<jack_rabbit>
:)
<jack_rabbit>
I've never found it that useful. I just hold down Ctrl and issue commands. I guess it's sort of like a rapid mode switch.
<jack_rabbit>
No Ctrl - input mode, Ctrl - command mode.
<jack_rabbit>
or meta, or whatever.
<makomo>
when you start out you're in "normal mode", to enter insert mode you just press "i", and then "ESC" to go back to normal mode
<makomo>
while in normal mode i just use "hjkl" to move around
<makomo>
with other appropriate motions, etc.
<jack_rabbit>
Yeah, I'm somewhat familiar with vim.
<jack_rabbit>
I know how to get around, anyway. :)
<makomo>
:-)
python476 has joined #lisp
KZiemian has joined #lisp
<jack_rabbit>
Does anyone know who maintains cliki.net?
<KZiemian>
If some one here is on ELS
<KZiemian>
Happy celebrating 60 years of Lisp and it future!!!
iqubic` has joined #lisp
<KZiemian>
I want to be with you but due to timidity I mess it up
<jack_rabbit>
KZiemian, welcome!
iqubic has quit [Ping timeout: 276 seconds]
<hajovonta>
first I used Emacs in cua mode. for years.
<hajovonta>
then I slowly became more hardcore and disabled it.
<hajovonta>
I now use the old C-f, C-b etc. keybindings to navigate around
<hajovonta>
this is because it was hard to switch when I used paredit to navigate lisp code
KZiemian has quit [Ping timeout: 260 seconds]
scymtym has joined #lisp
_cosmonaut_ has quit [Quit: Leaving.]
_cosmonaut_ has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
<TMA>
the problem with the default emacs keybinding for me is my supershort pinky finger. that and the left ctrl being too far, the right too awkwardly positioned.
Fare has quit [Ping timeout: 264 seconds]
<hajovonta>
I swapped the capslock and left ctrl for the same reason
<hajovonta>
it was real easy to get used to
playful-owl has joined #lisp
<p_l>
TMA: get a classic full size keyboard and use opposite hands for modifier keys?
<fe[nl]ix>
jackdaniel: are you at the ELS ?
<jackdaniel>
yes
<jackdaniel>
I saw your peer review, thanks
orivej has quit [Ping timeout: 268 seconds]
milanj has joined #lisp
hhdave has joined #lisp
<dim>
is it possible to build SBCL in a way that the sbcl binary then contains extra .so dependencies, such as openssl.so or sqlite.so?
nullman has quit [Ping timeout: 256 seconds]
nullman has joined #lisp
<jack_rabbit>
dim, Is there a reason you want to do that?
<dim>
yeah, to avoid having to dlopen from the image when it's possible that the symbol found at dlopen won't match the symbols found at image creation time
<dim>
now that I had to write this, I wonder if having the .so in the binary header rather than used with dlopen() is going to have an impact on the problem...
hutchi has joined #lisp
<p_l>
dim: you might want to write a hook before save-lisp-and-die, which dumps a list of shared objects, copies them to where the image is to be saved, and rewrites the list to contain image-relative paths
<p_l>
but getting dlopen to link code from arbitrary memory location might be tricky
<p_l>
(unless your bootstrap code unpacks them to filesystem before calling dlopen() )
orivej has joined #lisp
orivej has quit [Ping timeout: 245 seconds]
hutchi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pierpal has joined #lisp
BitPuffin has joined #lisp
ebzzry has quit [Ping timeout: 240 seconds]
ddrbt has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
agspathis has joined #lisp
hutchi has joined #lisp
ddrbt has quit [Ping timeout: 264 seconds]
kushal- is now known as kushal
orivej has joined #lisp
<lieven>
there was a tool called statifier that did something like that
ddrbt has joined #lisp
al-damiri has joined #lisp
<ebrasca>
p_l: Hi
<p_l>
ebrasca: hello!
<theemacsshibe[m]>
Hi ebrasca and p_l
<shka>
ebrasca: hi
<shka>
p_l: hello
dddddd_ has joined #lisp
dddddd_ is now known as dddddd
damke_ has joined #lisp
hutchi has quit [Read error: Connection reset by peer]
damke has quit [Ping timeout: 264 seconds]
pierpal has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Bindler has quit [Read error: Connection reset by peer]
Kevslinger has quit [Quit: Connection closed for inactivity]
DataLinkDroid has quit [Quit: Ex-Chat]
DataLinkDroid has joined #lisp
fikka has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
nckx has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 268 seconds]
smokeink has quit [Ping timeout: 260 seconds]
DataLinkDroid has quit [Quit: WeeChat 1.6]
ddrbt has quit [Ping timeout: 260 seconds]
Ukari has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
kozy has quit [Remote host closed the connection]
DataLinkDroid has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
kozy has joined #lisp
pierpal has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
agspathis has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
damke_ has quit [Ping timeout: 264 seconds]
fikka has quit [Ping timeout: 260 seconds]
damke_ has joined #lisp
Lord_Nightmare has quit [Ping timeout: 264 seconds]
pierpal has joined #lisp
Lord_Nightmare has joined #lisp
fzappa has quit [Remote host closed the connection]
fikka has joined #lisp
khisanth__ has joined #lisp
siraben has quit [Remote host closed the connection]
<ebrasca>
Is there some library for visualizing functions relations in common lisp?
Fare has joined #lisp
khisanth_ has quit [Ping timeout: 268 seconds]
lnostdal has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
<jack_rabbit>
ebrasca, function relations?
<ebrasca>
jack_rabbit: Like function a used by function b.
<p_l>
Then you can render it with graphviz or whatever
<pierpal>
?
ddrbt has joined #lisp
<p_l>
Regarding visualising function dependencies
<p_l>
Did that recently with T-SQL
<p_l>
Was hellish
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
<Shinmera>
makomo: I'm glad you enjoyed my talk demo!
__rumbler31 has quit [Remote host closed the connection]
_cosmonaut_ has quit [Ping timeout: 268 seconds]
Kundry_Wag has joined #lisp
sjl has joined #lisp
pierpal has quit [Ping timeout: 255 seconds]
TCZ has joined #lisp
pierpal has joined #lisp
ddrbt has quit [Ping timeout: 256 seconds]
pierpal has quit [Ping timeout: 264 seconds]
TCZ has quit [Quit: Leaving]
fikka has quit [Ping timeout: 256 seconds]
nimiux has joined #lisp
nimiux has joined #lisp
nimiux has quit [Changing host]
pierpal has joined #lisp
fikka has joined #lisp
pierpal has quit [Client Quit]
pierpal has joined #lisp
<makomo>
Shinmera: :-)
_cosmonaut_ has joined #lisp
random-nick has joined #lisp
warweasle is now known as warweasle_afk
pierpal has quit [Ping timeout: 240 seconds]
playful-owl has quit [Quit: leaving]
<shka>
what "Known attributes" in sbcl documentation means?
LiamH has joined #lisp
puchacz has joined #lisp
<puchacz>
hi, I would like to give unique identifiers to threads.
<puchacz>
I know they can have names, but names are not unique and they exist only for threads I create.
<puchacz>
in Java, there is something called ThreadLocal variable
<puchacz>
can I have something similar?
himmAllRight has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
<shka>
puchacz: you can bind dynamic variables when thread starts
<puchacz>
I am not sure about semantics of special variables; (let ((*special-var* (random-string))) ....) for example ?
<shka>
for instance, but i would rather use (gensym)
himmAllRight has joined #lisp
<shka>
instead of string
<puchacz>
shka: ok... thanks
<shka>
should be simple enough
<shka>
puchacz: does that answer your question?
<puchacz>
shka: yes, it will work. however I was hoping I could have a mechanism that works for all threads I can encounter, not only these I create or control somehow
<shka>
hmmm
<puchacz>
for truly ThreadLocal variables, I could just (unless (threadlocal :name) (setf (threadlocal :name) (gensym))
<shka>
i don't know way to do that
<puchacz>
without any locking or anything like this, because they would be thread local
<shka>
myself, i almost always try to use lparallel whenever it makes sense
makomo has quit [Ping timeout: 260 seconds]
<puchacz>
I know lparallel, btw it names all threads "lparallel" :)
<shka>
yup
fikka has joined #lisp
oleo has joined #lisp
<shka>
anyway, i don't run into thread issues, mostly because i am really good at avoiding explicit synchronization :P
<puchacz>
:)
<puchacz>
I am poor at multithreading
dyelar has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Cymew has quit [Remote host closed the connection]
krasnal has joined #lisp
<shka>
everybody is, just don't try to be smart, keep things simple and separated and you are fine
Cymew has joined #lisp
<shka>
so share very little between threads (mutable stuff), and explicitly mark those things
nsrahmad has joined #lisp
<shka>
it makes life so much easier
fikka has quit [Ping timeout: 256 seconds]
<puchacz>
yes, I agree with the theory
himmAllRight has quit [Quit: WeeChat 2.0.1]
Cymew has quit [Ping timeout: 264 seconds]
cross has quit [Remote host closed the connection]
Cymew has joined #lisp
fikka has joined #lisp
azimut has quit [Ping timeout: 260 seconds]
jack_rabbit has quit [Ping timeout: 264 seconds]
deng_cn has quit [Remote host closed the connection]
Arcaelyx has joined #lisp
azimut has joined #lisp
Cymew has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
cage_ has joined #lisp
himmAllRight has joined #lisp
Kundry_Wag has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
_cosmonaut_ has quit [Ping timeout: 268 seconds]
_cosmonaut_ has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Cymew has joined #lisp
jack_rabbit has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
Cymew_ has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
Cymew_ has quit [Ping timeout: 268 seconds]
deng_cn has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
Cymew has joined #lisp
Fare has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 260 seconds]
Cymew has quit [Ping timeout: 256 seconds]
smokeink has joined #lisp
Cymew has joined #lisp
Kevslinger has joined #lisp
drewc has joined #lisp
fikka has joined #lisp
deng_cn1 has joined #lisp
deng_cn has quit [Ping timeout: 260 seconds]
deng_cn1 is now known as deng_cn
Cymew has quit [Ping timeout: 264 seconds]
Kundry_Wag has quit [Remote host closed the connection]
Cymew has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Cymew has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
fikka has joined #lisp
cage_ has quit [Remote host closed the connection]
cage_ has joined #lisp
katco has joined #lisp
ddrbt has joined #lisp
hajovonta has quit [Quit: hajovonta]
Cymew has quit [Ping timeout: 255 seconds]
fikka has quit [Ping timeout: 264 seconds]
nbhauke has quit [Quit: nbhauke]
blackwolf has joined #lisp
Cymew has joined #lisp
warweasle_afk is now known as warweasle
Poeticode has joined #lisp
jlarocco has joined #lisp
janivaltteri has joined #lisp
Cymew_ has joined #lisp
jack_rabbit has quit [Ping timeout: 264 seconds]
nckx has joined #lisp
Poeticode has left #lisp ["Leaving"]
Cymew has quit [Ping timeout: 260 seconds]
smasta has joined #lisp
Cymew_ has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
`JRG has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
jack_rabbit has joined #lisp
nsrahmad has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
smokeink has quit [Ping timeout: 240 seconds]
Cymew has quit [Ping timeout: 240 seconds]
himmAllRight has quit [Quit: WeeChat 2.0.1]
fikka has joined #lisp
himmAllRight has joined #lisp
iqubic` has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
arrdem has quit [Remote host closed the connection]
Baggers has joined #lisp
damke_ has quit [Read error: Connection reset by peer]
_cosmonaut_ has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
damke_ has joined #lisp
varjagg has joined #lisp
Cymew has quit [Ping timeout: 268 seconds]
puchacz has quit [Read error: Connection reset by peer]
Cymew has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
Oladon has joined #lisp
Kundry_Wag has joined #lisp
jack_rabbit has quit [Remote host closed the connection]
puchacz has joined #lisp
iqubic has joined #lisp
jack_rabbit has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
kajo has joined #lisp
easye has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
Cymew has quit [Ping timeout: 246 seconds]
SenasOzys has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
Karl_Dscc has joined #lisp
ruste has joined #lisp
SenasOzys has joined #lisp
fikka has joined #lisp
Cymew has quit [Ping timeout: 246 seconds]
pierpal has joined #lisp
pierpal has quit [Client Quit]
pierpal has joined #lisp
Cymew has joined #lisp
ruste has quit [Ping timeout: 265 seconds]
smasta has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 240 seconds]
Cymew has quit [Ping timeout: 260 seconds]
Kundry_Wag has quit [Remote host closed the connection]
fikka has joined #lisp
smasta has joined #lisp
Cymew has joined #lisp
kajo has quit [Ping timeout: 260 seconds]
Cymew_ has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
hhdave has quit [Ping timeout: 256 seconds]
Kundry_Wag has joined #lisp
Cymew_ has quit [Ping timeout: 256 seconds]
Cymew has joined #lisp
dtornabene has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
Cymew has joined #lisp
deng_cn1 has joined #lisp
jlarocco has quit [Ping timeout: 255 seconds]
deng_cn has quit [Ping timeout: 260 seconds]
deng_cn1 is now known as deng_cn
Cymew has quit [Ping timeout: 256 seconds]
hiroaki has quit [Ping timeout: 255 seconds]
palmtree has joined #lisp
jjkola has joined #lisp
equwal has joined #lisp
<jjkola>
hi
<equwal>
hi
<edgar-rft>
ho
Cymew has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
Cymew has quit [Ping timeout: 260 seconds]
Cymew has joined #lisp
nbhauke has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
dtornabene has quit [Remote host closed the connection]
dtornabene has joined #lisp
energizer has joined #lisp
Cymew has quit [Ping timeout: 255 seconds]
Satou has joined #lisp
Cymew has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
Cymew has quit [Ping timeout: 240 seconds]
Bindler has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
equwal has quit [Remote host closed the connection]
<puchacz>
hi, in unwind-protect, will cleanup body be executed even if return-from the whole function?
equwal has joined #lisp
makomo has joined #lisp
surya has joined #lisp
comborico1611 has joined #lisp
surya has quit [Remote host closed the connection]
surya has joined #lisp
fikka has joined #lisp
Cymew has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
shka_ has joined #lisp
ruste has joined #lisp
Cymew has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 256 seconds]
asarch has joined #lisp
Cymew has joined #lisp
fikka has joined #lisp
<Baggers>
puchacz: yup
equwal has quit [Remote host closed the connection]
equwal has joined #lisp
Bindler has quit [Read error: Connection reset by peer]
surya has quit [Remote host closed the connection]
Cymew has quit [Ping timeout: 256 seconds]
nika has quit [Quit: Leaving...]
fikka has quit [Ping timeout: 256 seconds]
surya has joined #lisp
nullman has quit [Ping timeout: 264 seconds]
nullman has joined #lisp
deng_cn1 has joined #lisp
deng_cn has quit [Ping timeout: 240 seconds]
deng_cn1 is now known as deng_cn
fikka has joined #lisp
Folkol has joined #lisp
equwal has quit [Remote host closed the connection]
random-nick has quit [Read error: Connection reset by peer]
pierpal has quit [Ping timeout: 240 seconds]
surya has quit [Remote host closed the connection]
surya has joined #lisp
surya has quit [Remote host closed the connection]
mflem has joined #lisp
<makomo>
i would like to use conses as keys into my hashtable but i would like a special equality test for them
<makomo>
two keys would compare equal if the stuff in the cons itself is EQ/EQL
<makomo>
i don't want EQ/EQL to be performed on the cons itself
<makomo>
what are my options? i don't think the standard hash table allows me to do this
dtornabene has quit [Quit: Leaving]
milanj has joined #lisp
Satou has quit [Quit: Cya soon guys!]
nullman has quit [Ping timeout: 240 seconds]
nullman has joined #lisp
surya has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
thblt has quit [Remote host closed the connection]
Kundry_W_ has quit [Remote host closed the connection]
Josh_2 has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
damke has joined #lisp
Kundry_Wag has joined #lisp
<edgar-rft>
comborico1611, it once was designed by a guy named Manfred Spiller, AFAIK it was never used by any paricular project, it just was a suggestion how a Lisp Logo could look like. There are several copies of that logo on various GitHub etc. repositories.
<comborico1611>
It is a great logo.
damke_ has quit [Ping timeout: 264 seconds]
EvW1 has quit [Ping timeout: 268 seconds]
Josh_2 has joined #lisp
smasta has quit [Ping timeout: 260 seconds]
<edgar-rft>
It's the best Lisp Logo I know of :-) think it first appeared in context of this comp.lang.lisp discussion: <https://groups.google.com/forum/#!topic/comp.lang.lisp/dOS2dMSSTHg>
<comborico1611>
It's a very regretable it isn't being used far and wide.
<pierpa>
the professional hand shows through
nowhere_man has quit [Remote host closed the connection]
<comborico1611>
I am very convinced that logo will be copied and used for something major.