freenode/#lisp - IRC Chatlog
Search
12:40:38
heisig
Ah, not the CL:LOOP. Yes, there is plenty of data flow graph optimization and - most importantly - normalization, so that I can cache and reuse compiled code.
13:24:48
heisig
Two red flags about Skip: "Skip achieved [efficient memoization-based caching] via a static type system ..." and "Skip is no longer under active development at Facebook".
15:19:27
dim
yeah, I think I saw one the other day, something that's at least 30 years old and seemed to have a modern offering to it, but I can't remember any name, it was tweeted by Rainer Joswig
15:43:36
gendl
Xach: any chance of getting the planet Lisp link to google calendar of Lisp meetings working again?
15:47:11
gendl
heisig: check out Gendl.org for an actively maintained, dynamically-typed, Lisp-based system which sounds something like Skip (plus more, also minus a bunch of stuff too I’m sure).
16:05:10
Blackbeard
I need to kill the wallpapers timers because if you decide to change your timer the other would still run
16:19:44
trittweiler
Blackbeard, the longer the name of the equivalence function, the broader its concept of equivalence is. EQ just compares by memory address, EQL additionally compares numbers and character by identity (their memory address might be different, thing of boxed numbers), equal also compares lists and arrays (including strings), case sensitively, and equalp is like equal but compares case insensitively. There are a few more details, but that's essentially i
16:21:29
trittweiler
equalp also compares structures and hash-tables element-wise, though again case insensitively
16:28:17
Shinmera
Blackbeard: a similar explanation is in PCL, so your wish had been granted before you even had it
16:28:47
trittweiler
Yeah was just going to paste http://www.gigamonkeys.com/book/syntax-and-semantics.html search for EQ
16:42:48
pjb
shka_: it's random. It's just because equal and equalp are called recursively, and in the case of strings, equal is case sensitive and equalp is case insensitve.
16:44:42
pjb
Common Lisp is a hybrid programming language. It's the oldest and also the most modern. It's the lowest level programming language, but also the highest level programming language thanks to the macros.
16:45:14
pjb
It's a big ball of mud, but also the cleanest programming language (since thanks to meta-programming, you can clean it as aseptically as you wish).
16:47:20
pjb
Not only it's an elephant, but an alien elephant at that (you don't even recognize the parts you touch). And while it's an elephant, it's small compared to other programming languages (java, c++, r7rs, etc).
16:48:09
pjb
It has fun with you: program parameters shall be defined with defvar, global variables shall be defined with defparameter!
16:48:54
wiselord
hi! help me plz, i use ccl on windows. (ql:quickload 'cl+ssl) return error: libssl32.dll or ssley32.dll unable to load, i realized what i need to install openssl, but where do i put files "ssley32.dll" and "ssleay32.dll"?
16:54:54
jasom
wiselord: you can write it wherever you want. You can also copy the DLLs into the same directory as CCL, but that's kind of an ugly solution.
16:57:18
pjb
wiselord: possibly. But since you're using Common Lisp, and may use another CL implementation, I would advise to use a ~/rc/common.lisp file and load it from all the rc files.
16:58:12
pjb
(don't use my rc files, you'd be puzzled; but writing your own you may follow the model).
17:24:41
jkordani
cffi uses the operating system's dll load mechanism. If any dlls loaded in this way *also* depend on other dlls, the os will attempt to find them using %path
17:25:50
jkordani
B.dll, and you put the path to a.dll in cffi:*foreign-library-directories*, loading will still fail because B.dll will also need to be resolved.
17:27:26
jkordani
you can get around this by "cffi loading" dependencies first, as the os machinery will then be able to find the libraries in question, or install them all to a location in %path
17:28:05
jkordani
on 64 bit windows, sysWOW64 is where 32 bit libs go, and system32 is where 64 bit libs go
17:40:52
jackdaniel
dlopen is posix function for opening dynamic libraries (to find functions in them for instance)
17:43:50
jkordani
and specifically wiselord's set of libs, there's a 3rd library that one of those two reference that isn't called out for by the cffi call in cl+sll
17:44:43
jkordani
since I was shipping a binary I just found all three and made explicit cffi load library calls to all 3 in the proper order and put the dlls in the local directory
18:32:53
russellw
what's the most efficient and cleanest way to write a newline as a literal string (or as close as it is possible to get to that)? #\newline is the character form, but what's the appropriate string form?
18:42:35
pjb
trafaret1: you, I don't know. But Paul Graham made millions with CL, writing a program in clisp, and selling it to Yahoo!.
18:43:17
pjb
trafaret1: so at least, it's possible, and since lisp is fun, you may be able to do it having fun. With C++, you'd be about to do it, but in hellish tortures.
21:10:51
aeth
I think Lisp code looks better than code in most languages, but if you're in it for the money, no one's going to see your code's elegance/inelegance amd you can always pay someone to clean up your technical debt later.
22:24:10
no-defun-allowed
With PG's case, he had a better chance working in Lisp since it was better for prototyping and live development. I'd argue that you have a better chance with Lisp but PG is pretty biased since he didn't fail.
22:42:29
aeth
if you're building software to last 20 years, I suspect pg's experience here is irrelevant
22:44:02
aeth
You want a language where you can make sure something is (integer 2 #.(isqrt most-positive-fixnum))
23:23:14
aeth
I'm using a 16 year old web browser, a 19 year old IRC client, a (probably) 12 year old terminal, a 38 year old compiler (if you count the original branch), a 33 year old editor, etc.
23:24:02
aeth
All the software I'm using except maybe the terminal (it's lxterminal and LXDE is moving everything to Qt) has a very good chance to make it past 20 if it's not already past 20
23:25:29
jasom
we are using different definitions of "last" then since I suspect most of that software has changes made in the past year or two.
23:26:45
aeth
jasom: My point is, if something's going to be around for decades anyway, you should optimize for the multi-decade maintenance period, not the first few years of rapid development
23:27:12
aeth
And a lot of website code is probably already at or approaching this 20 year point now in 2018.
23:27:57
aeth
Of course, a language that's mostly compatible with things written 59 years ago is a good choice to write multi-decade software in.
23:28:35
jasom
a core argument was that if you didn't optimize for being successful now, you will be starved of resources by those that do
23:35:38
aeth
jasom: on the other hand, that essay was refuted a few years later in Worse is Better is Worse by Richard P Gabriel
23:40:22
jasom
"And in preparation for this panel, the organizer, Martine Devos, asked me to write a position paper, which I did, called "Back to the Future: Is Worse (Still) Better?" In this short paper, I came out against worse is better. But a month or so later, I wrote a second one, called "Back to the Future: Worse (Still) is Better!" which was in favor of it. I still can’t decide."