freenode/#lisp - IRC Chatlog
Search
1:04:00
aeth
Imo, for libraries use a permissive license unless you only want (A)GPLed software to use it. For applications, choosing between copyleft and permissive is your choice, depending on what you want. Copyleft is most useful for large, nontrivial applications if you're concerned about a commerical fork (or, if you require copyright assignment, you can sell exceptions for commerical software and be the only permitted commerical fork... this is t
1:05:22
aeth
The GPL does not prevent freeloading commercial forks, though. e.g. Oracle Linux is a fork of Red Hat Enterprise Linux.
1:08:42
aeth
The LGPL (not the LLGPL please!) is another option for libraries, but until someone gets clarification from the FSF (I think they have an email for this sort of thing), afaik the best we have to go off of is the Java LGPL article, where it says that JAR-based distribution for libraries is okay under the LGPL. Thus, it looks like the LGPL could prevent distrubtion of Lisp apps that put everything in one binary.
1:10:28
aeth
The only Lisp executables I'm aware of are the web browser written by jmercouris and some games produced by the #lispgames community.
1:11:08
emaczen
aeth: What do you call the file that is produced with (sb-ext:save-lisp-and-die ...)
1:19:46
jasom
emaczen: save-lisp-and-die makes an image; it's also an executable if :executable t is passed.
1:25:28
aeth
Afaik, an alternative would be to distribute SBCL to end users, like Sun did and Oracle does with Java.
3:53:37
pragmaticmonkey
Is there a lisp like language that isn't a global bucket of whackly named functions? Something with a lil better package and scopes?
4:58:30
jmercouris
What are you guys working on right now? Anyone interested in sharing their lisp projects?
5:03:25
minion
jmercouris: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL
5:03:32
minion
jmercouris: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future
5:04:56
minion
There are multiple help modules. Try ``/msg minion help kind'', where kind is one of: "lookups", "helping others", "adding terms", "aliasing terms", "forgetting", "memos", "avoiding memos", "nicknames", "goodies", "eliza", "advice", "apropos", "acronyms".
5:05:07
minion
To add a term, say something like ``minion: add "term" as: the definition''. I will remember the definition.
5:05:40
ahungry
This isn't Common Lisp, but it's in the lisp family and probably has some overlap with CL user's tooling (Emacs), new mode I just finished an mvp of: https://github.com/ahungry/redditor-mode
5:07:02
jmercouris
beach: The difference between cleavir and sicl isn't exactly so "clear cut" to me
5:08:22
beach
jmercouris: Cleavir is a compiler that can be used by any implementation that so wishes.
5:10:23
jmercouris
Without using vendor specific extensions, are there enough functions and accessors to persist a lisp image?
5:10:33
beach
Most Common Lisp compilers could be characterized like that. The specificity of Cleavir is that it can be customized to the specific representations and data structures of any Common Lisp implementation.
5:11:15
jmercouris
it doesn't just use the functions, data types, and accessors defined in the lisp standard
5:11:24
beach
Customized. By the use of methods and subclasses. Just like any other CLOS-based software.
5:13:10
beach
Cleavir turns those details into generic functions and classes that can be altered by the implementation, using subclassing and methods.
5:14:55
jmercouris
I think that would be THE killer feature to convince an implementation to port Cleavir
5:15:18
beach
For SICL, the plan is to stick most of the system in a shared library, so that small executables can be produced for those who are obsessed about that.
5:15:24
jmercouris
I've obviously thought way less about this than you, but that's just an outsider perspective
5:16:55
beach
Either way, that feature is related to the implementation, so Cleavir can't do anything about it.
5:17:49
beach
A thing like that would be VERY implementation specific. I see no way to make it generic.
5:17:51
jmercouris
I guess your goals are more research oriented than anything, so I imagine it doesn't really interst you
5:18:31
beach
I have no interest in digging into the details of every free Common Lisp implementation if that is what you mean.
5:18:47
jmercouris
again, a standard "way" of bundling for the end user, and then handling the implementation specific details
5:19:38
beach
I have absolutely no idea how to even think about creating such a thing, other than a generic function CREATE-BINARY that each implementation would have to define a method on.
5:20:19
jmercouris
you would define those methods like +sbcl... etc, and then a user can just say (create-binary :with-name "binary-name" ...)
5:21:43
beach
The top 5 will last my remaining lifetime, so I don't often look further down the list.
5:31:27
beach
The other thing about Cleavir is that it uses the full Common Lisp language in order for the code to be maintainable and modular. Whereas for instance the SBCL compiler does not use generic functions, because it is needed when CLOS is not available. This fact makes the SBCL compiler much harder to maintain.
5:32:18
beach
Same thing with SICL, it uses the full Common Lisp language to implement most of its features. So for instance SICL LOOP uses generic functions and classes in its expansion code.
5:38:11
beach
There are very few people that have the required knowledge and that are also available for work. But when I find one, I'll consider this option.
5:39:23
jmercouris
And when you train one, they can train another, and then bam, exponential knowledge share
5:39:45
jmercouris
sure, there are losses the further from the source, but if everything is well documented, mistakes can be corrected
5:41:02
beach
I can't afford to pay someone for full-time work. And I certainly can't afford the typical fees in the US or western EU.
5:41:33
jmercouris
but if you made a business case for your work, you could secure a grant, or investment money
5:42:30
jmercouris
I'll give you this, you are possibly the best Lisp coder in existence right now, but I don't think you know anything about business
5:43:01
jmercouris
If you care about the completion of your project, you'd give it a really good hard think
5:43:56
beach
One thing I don't like is when people put words in my mouth. I don't care about the completion of my project enough to manage a business.
5:44:18
jmercouris
beach: You don't care about the completion of your project that you work on every day?
5:45:09
jmercouris
Furthermore, if you don't care about completion, why would you have thought about paying developers?
5:45:27
beach
jmercouris: I am a researcher. I get partial results as my papers show. Clasp has already implemented fast generic function dispatch and it uses Cleavir. That's good enough for me.
5:47:06
jmercouris
I don't mean to upset or anything, if I am bothering you, tell me and I will stop, I just enjoy controversial topics
5:47:17
jmercouris
to see if I can learn something, or understand how you think, so I say provocative things
5:48:23
beach
I would like to see my numerous projects finished, of course. But that is not my highest priority, and if the cost of getting there is too high, then it just won't happen.
5:48:51
beach
Part of the reason it is not high priority is that very few people care about my projects anyway.
5:52:32
beach
Sure, and I do my part, not only for computing, but also for the environment, for the economy, etc. But I am quite pessimistic about the future. But that's off topic.
5:53:09
jmercouris
So, if I understand, you think the impact of your projects is not significant enough based on a proxy measure of overall interest?
5:53:37
jmercouris
And since this is not inline with your goal of bettering the world, why invest oneself fully into it?
5:55:10
jmercouris
So you are satisfied with the amount of positive impact you currently produce, and therefore there is no need to necessarily complete your projects?
5:56:03
beach
My current strategy is to extract some "modules" from SICL and Cleavir (and other projects) to independent repositories, and to write tests and documentation for them.
6:11:03
stylewarning
beach, I might be down to (co?)sponsor a student to help implement some of your research
7:47:01
aeth
beach: Is there any chance that your fast CLOS will one day replace PCL in implementations like SBCL? (I assume that you either already beat its performance or will eventually.) I'm not sure anyone on the planet knows more about CLOS than you.
7:52:18
aeth
Replacing the current dispatch system in SBCL with a faster one would bring an immediate improvement to so many people, e.g. gray streams.
7:54:27
aeth
And a faster CLOS in general would change the architecture of so many things, probably.
7:57:05
aeth
phoe: well, I search "fast generic function dispatch" and the first result I get is http://metamodular.com/generic-dispatch.pdf
8:01:28
phoe
aeth: he talked about it on #lisp methinks some time ago, and showed some preliminary benchmarks.
8:02:14
aeth
It looks like most results are the paper by beach on DuckDuckGo: https://duckduckgo.com/?q=lisp+fast+generic+function+dispatch&t=hf&ia=web
8:28:45
aeth
Maybe I should spend more time to proofread before I write things that are permanently logged on many different websites.
8:33:18
aeth
The problem with IRC is that I'm usually on it when I'm too exhausted to program. So if you want to judge me at my sharpest, read my code, I guess.
8:39:31
aeth
I hope I'm never famous. People might judge me by the source code I write, but 90% of it is when I didn't know better. I just don't have time to replace it all.
8:55:16
Shinmera
Lots of people ask me that and I don't know what to say beyond that I'm terrible at everything else.
9:12:26
JuanDaugherty
it's easy to be productive if you stay immersed in work, particularly work you do under your own control and for yourself
11:11:16
beach
Here is a very very preliminary suggestion for the layout of different windows in Clordane. Comments are welcome. http://metamodular.com/fig-layout.pdf
11:12:45
beach
The backtrace window is present not only when an error has been signaled, but also when the program has stopped at a breakpoint.
11:15:25
phoe
I'd switch the REPL and the error message windows. Makes more sense when the left side is where all the trouble is, and the right side is there you can do stuff to fix it.
11:16:05
phoe
Or rather, the left side is immutable (the stack is read-only, so is the error message), the right side is mutable (you can edit code and evaluate things in the REPL).
11:16:29
Shinmera
I'd also move the message above the trace, since people usually care about the message first
11:17:47
phoe
It might be a SLIME influence, but I don't think I need a separate window for the error message. It can be printed above the stacktrace in its window, just as in the SLIME debugger.
11:20:00
phoe
I generally think people enjoy allocated but unused space on their screen as much as they enjoy allocated but unused space in their memory.
12:01:03
phoe
or do you want a separate window that shows the variables and parameters in the current stack frame?
12:54:07
flip214
(OPEN #P".../..." :DIRECTION :OUTPUT :ELEMENT-TYPE BASE-CHAR :IF-EXISTS :SUPERSEDE :IF-DOES-NOT-EXIST :CREATE) but
13:00:06
beach
phoe: I am not sure. I was considering showing the value of a variable when it is hovered over by the pointer.
13:01:07
beach
phoe: Alternatively, show the live variables together with source near the source window.