freenode/#lisp - IRC Chatlog
Search
14:33:56
drmeister
Is the idea that I build a system that depends on a bunch of systems and uses asdf:monolithic-concatenate-source-op and then load that?
14:54:05
drmeister
(asdf:load-asd "/Users/meister/Development/cando/tools/prebuild/jupyter/cando-jupyter.asd")
14:54:42
drmeister
I still get a lot of REPL loading/compiling - and this is what I'm trying to avoid.
14:56:15
drmeister
What I was hoping is that ASDF would bundle up everything as a single fasl file and load that.
15:58:56
jmercouris
When you use a function, or a set of functions from another project with a compatible license, how do you show which pieces of code are from that other project/license?
16:07:31
Shinmera
jmercouris: By "use" I assume you mean copying into your project rather than simply calling?
16:30:17
jmercouris
Let's say I leave only 25% of the "original" implementation, do you think I still have to include the other license and a reference?
16:31:45
jmercouris
I think I'll probably okay, I don't think people in the Lisp community will sue me into oblivion
16:32:06
Shinmera
What I've seen done is include a reference or history of modifications being made by whom.
16:32:25
jmercouris
Shinmera: Can you expand on that? Do you mean per file? or in a master "changes" file?
16:33:27
jmercouris
I know you are not a lawyer, but what do you think of this idea: 1. Create a Licenses folder including all licensees from all projects 2. Create references in the source code to each applicable license
16:34:04
Shinmera
I think that's fine, if you also include a list of authors/contributors in the files that contain the included code.
16:34:54
jmercouris
Seems a little cleaner, and easier than having to break apart their functions into separate files
17:01:37
pjb
jmercouris: let's have fun, take a program under GPL, and write an anagram of it, licensed under BSD.
17:03:10
jmercouris
pjb: Lol, that's just asking for trouble, I prefer to just stay away from GPL sources
17:03:16
pjb
jmercouris: you could write a tool to help, it would add or remove comments to adjust :-)
17:04:03
pjb
jmercouris: and of course you could use that tool to check if two programs are anagram on of the other, and thus demonstrate a CLEAR derivation of your BSD or proprietary code from any GPL program >:->
17:05:13
jmercouris
pjb: I'm pretty sure such a program already exists, it's called moss or something
17:05:21
pjb
Or we could present an expert to the court, a physicist demonstrating that there is only one electron in the whole universe, zig-zapping between the start and end of times, and weaving the universe; therefore all your so called new code is actually reusing the same electron as my GPL code! BAM!
17:33:30
flip214
If a loop gets too long, what's the best way to split a big COND into separate subroutines?
17:34:19
flip214
Having to pass quite a few calculated variables into the functions, using a few specials, and some lambdas (to do COLLECT clauses etc.)
17:38:06
flip214
and moving all the calculated variables to specials so that I don't have to pass them along means they won't show up in stack traces
17:42:43
flip214
pjb: but I can't have FLET within the loop (because of the COLLECT clauses), and I can't have it easily outside (because of the variables)
17:43:49
flip214
beach: yes. but then the function bodies are again _within_ the loop body, and so it becomes quite long...
17:44:02
pjb
Well, either pass them all to functions, or use something else than loop. I mean, if you use local lexical variable defined in a surrounding let, you can have (let (flet (loop)))
17:45:19
flip214
I even pondered having all that calculated state in some struct, and have a macro expand to WITH-SLOTS of that...
17:45:27
pjb
(let ((collected '()) (flet ((collect (x) (push x collected)) (collected () (reverse collected))) (loop … (collect foo) finally (return (collected)))))
17:46:17
flip214
and I prefer (FOR var = (expression)) in the loop (it's an iterate) over (SETF var (expression))
17:47:09
pjb
You have a code complexity problem and it should be resolved with macros. If the loop macro doesn't help, use another or your own macros (and macrolet).
17:52:09
flip214
can I tell ITERATE to use outer bindings in (FOR var = ) forms, or do they need?
17:57:30
flip214
pjb: beach: thanks for the help. do you mind me pasting that conversation into the source file?