Search
Wednesday, 18th of October 2017, 20:17:50 UTC
20:17:53
phoe_
as again, warning because it's GPLv2
20:18:24
jmercouris
Hmm yeah, that seems to be a problem for me
20:18:29
jmercouris
I have a BSD License project
20:18:48
phoe_
jmercouris: I've mailed the author if he can relicense that code, maybe we'll get him to respond.
20:20:06
jmercouris
phoe_: http://gplv3.fsf.org/wiki/index.php/Compatible_licenses#GPLv2-compatible_licenses
20:20:12
jmercouris
phoe_: hopefully yeah
20:20:23
jmercouris
Until then I guess I'll just have no interface, I'll have to trust myself :P
20:22:38
phoe_
no interface? what do you mean?
20:23:08
phoe_
pulling GPLv2 code into your repo means that your code is now GPLv2-licensed
20:23:18
phoe_
it's not LGPL where you can use LLGPL as a clarification
20:23:42
phoe_
it's full GPLv2, so even using this code as a library in your code counts as being infected with stallmanovirus
20:24:58
jmercouris
phoe_: that's what I'm saying, I can't pull it into my code, I refuse that license
20:27:31
phoe_
jmercouris: which is why I mailed the author to relicense it
20:27:51
phoe_
in the worst case, I'll just clean-room reimplement that macro based on its specification
20:29:09
jmercouris
phoe_: Right yeah, we're not in disagreement here, just a misunderstanding
20:39:41
pjb
Not necessarily. AFAIK, You could include GPL2 code in a LGPL library, and use this library in a BSD project, as long as the library doesn't contain core functinality of your project, and it may easily be replaced by a BSD library.
20:40:10
pjb
GPL3 and AGPL would be more restrictive there…
20:43:49
phoe_
>You could include GPL2 code in a LGPL library
20:43:53
phoe_
The LGPL library is now GPLv2.
20:44:43
phoe_
https://softwareengineering.stackexchange.com/questions/342156/can-i-use-some-gpl-code-in-lgpl-project
20:46:36
jackdaniel
can't you cleanly implement this thing if this license obthers you?
20:47:01
jackdaniel
it is lgpl2, not gpl2
20:48:13
jackdaniel
also saying, that pulling gplv2 to repository makes your code have same license is bs, it just means, that derived work is gplv2 - you still may copy your bsd code from the core library to other bsd project without any implications
20:49:40
jackdaniel
library general public license version 2
20:49:58
jackdaniel
(or any later version – to be more specific)
20:50:13
phoe_
which is less viral, but still not BSD
20:52:20
jackdaniel
I would appreciate (if you really dislike LGPL2+) not linking McCLIM project with a disclaimer, that it is a virus or as being infected by something, it is rude and belittles work of many people
20:59:15
phoe_
I really like and enjoy (L)GPL 2/3 and use it in my own projects
20:59:53
phoe_
but it is a viral license, as https://www.gnu.org/philosophy/vaccination.en.html itself states
22:09:01
hrehf
I'm trying to implement read, as elegantly as possible. So far my only axiom/invariant/hard-coded rule is that everything that is not matched is returned as a symbol when (actually before) the next match is returned. This allows to implement everything else as a reader macro, however it does NOT easily cover rules like "whitespace before numbers"
22:09:15
hrehf
what are the minimal hard-coded rules for the reader?
22:19:27
pjb
hrehf: this channel is concerned by Common Lisp only. The specification of Common Lisp contains ONLY ONE algorithm. This is the reader algorithm.
22:19:41
pjb
hrehf: so go read Chapter 2 of CLHS…
22:25:20
Xach
hrehf: the real CL reader?
22:27:37
Xach
hrehf: the algorithm is specified in http://l1sp.org/cl/2.2
22:34:21
hrehf
Xach: thanks, gonna check it out
23:00:46
emaczen
http://paste.lisp.org/display/358990 -- requires ABCL knowledge
4:27:43
drmeister
We are making faster progress optimizing clasp. We've figured out how to use profiling and flame graphs to identify what is taking time.
4:27:44
drmeister
https://i.imgur.com/5cXnXrP.png
4:28:00
drmeister
This is what you get from allocating CLOS objects in a loop.
4:28:58
drmeister
For instance - from this it's easy to see that initialization is taking more time than allocation.
4:30:04
drmeister
Common Lisp code and C++ code are all compiled to the same llvm bitcode and on to native code - that lets us profile them together.
4:44:51
Zhivago
I congratulate your failure to die so far.
4:45:57
iqubic
I am still alive, yes.
4:46:06
iqubic
I have thought about death though.
4:46:10
iqubic
But I am still alive.
5:20:09
emaczen
where are the ABCL logs located?
5:31:34
borei
how to add to empty list
5:31:57
borei
(nconc *a* (list 1 2 3))
5:32:34
emaczen
(setf *a* (nconc *a* (list 1 2 3)))
5:32:49
emaczen
push will only add one element to the front of the list
5:33:11
borei
wait a sec, nconc modifies list
5:33:16
emaczen
for conc nonc reverse nreverse etc... you have to do setf
5:33:34
Zhivago
nconc _may_ modify the list.
5:33:40
borei
http://www.gigamonkeys.com/book/they-called-it-lisp-for-a-reason-list-processing.html
5:33:47
borei
(defparameter *x* (list 1 2 3))
5:33:47
borei
(nconc *x* (list 4 5 6)) ==> (1 2 3 4 5 6)
5:33:47
borei
*x* ==> (1 2 3 4 5 6)
5:34:23
Zhivago
But you may note that '() is nil, and nil can't be modified.
5:34:54
Zhivago
So you need to write (setf *a* (nonc ...))
5:35:07
borei
Zhivago: yes '() is nil
5:35:44
Zhivago
And as nil cannot be modified, (nconc *a* ...) cannot modify the value of *a*, since that value is nil.
5:36:01
Zhivago
Thus *a* has the value nil after that call.
5:37:32
borei
one more general question then
5:37:38
Zhivago
PUSH, on the other hand, modifies the variable, not its value.
5:38:24
borei
what would be best option for collection to accumulate pretty big number of items ?
5:38:37
borei
items are single-float and int
5:38:38
Zhivago
It depends on what you want to do with it afterward.
5:40:01
borei
after that just linear access to dump to another memory
5:40:27
borei
to another collection
5:40:29
Zhivago
Do you know how many of these you expect to collect in advance?
5:40:45
borei
technically yes, i can calcualte
5:40:50
Zhivago
And that sounds pretty pointless -- why don't you just put it in the other collection to start with?
5:42:13
borei
another collection is gl:array, and the first place where im generating first collection has no idea about gl: at all
5:43:04
Zhivago
Why not bridge the gap with some kind of emitter that understand both ends?
5:43:37
Zhivago
Instead of building a collection, pass a function which can be called with each value.
5:43:59
Zhivago
Then have the receiver construct a suitable function to put the value where it needs to go.
5:44:21
Zhivago
Now the producer and consumer are decoupled by the function.
5:45:26
blackadder
** NICK SaganMan
5:45:34
Zhivago
(iterate-wombles (lambda (womble) (put-in-cement-mixer womble))
5:45:54
Zhivago
Well, it's probably time to think about it since it would make your current problem evaporate.
5:46:36
borei
im just trying to construct data pipeline at first approach
5:48:15
borei
but the problem with "empty list" initialization is much more fundamental
5:49:20
Zhivago
Then I suggest using pipes rather than collections.
5:59:30
borei
Zhivago: i'll try to catch you tomorrow, wanted to chat a bit about pipes, about to run now
6:29:20
beach
Good morning everyone!
7:19:44
beach
phoe_: I completely forgot. I'll try to do it today.
Thursday, 19th of October 2017, 8:17:50 UTC