freenode/#lisp - IRC Chatlog
Search
14:05:43
idurand
Shinmera: I registered to ELS this morning, never got a confirmation email though, is it normal?
14:09:25
Shinmera
It should only display that if it already sent the email. Are you sure it didn't land in spam or something?
15:12:19
pjb
(make-array 16) #| --> #(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) |# creates a vector of 16 elements, not a matrix (a 2D array).
15:24:12
pjb
borei: the question was for a url to the documentation of gl:uniform-matrix. If want some help. Obnviously you cannot read the documentation so we will have to read it for you.
15:31:58
pjb
Still no url. If you want us to do all the work, you should pay us. The url, or bitcoins!
15:45:10
borei
but glUniformMatrix4fv (the documentation i was reading) - just array of float numbers
16:54:19
Shinmera
borei: Also, as far as I know, gl:uniform-matrix-4/3/2fv also just takes a flat CL array of data.
17:06:14
jmercouris
I didn't see it in any of the charts, are there really so few people using Lisp?
17:08:20
jmercouris
Do we have any way to estimate how many people are using it? any proxy measures?
17:27:16
pjb
World wide, I'd guess there are between 60 and 100 companies using lisp. between 300 and 500 CLispers, worldwide.
17:27:54
whoman
i would increase it, there are many hobbiests, unknown bloggers, nonirc users, obscure github projects
17:29:11
whoman
counting up common-lisp.net projects, github.com, gitlab, bitbucket, savannah, ... i would say less than half for sure are not employed for doing lisp , and less so at actual lisp companies
17:40:01
whoman
i dont remember who shared this link with me, but i want to thank them, i am reading it now : https://wps.aw.com/wps/media/objects/5771/5909832/PDF/Luger_0136070477_1.pdf
18:02:52
fe[nl]ix
Xach: can you get log5 into sharplispers ? Gary King can't transfer ownership on his own, see https://github.com/gwkkwg/log5/issues/2#issuecomment-372848806
18:06:44
fe[nl]ix
the Github docs say "Users must have repository creation permissions within the receiving organization before they can transfer a repository that they individually own"
18:08:43
Shinmera
Seems good to me. Otherwise you could just push garbage repositories into other orgs, right?
18:09:43
fe[nl]ix
and the owners of the target org would receive a notification that they can approve or reject that request
18:10:48
fe[nl]ix
when I asked Sunrin Shimura for the ownership of CIM I got an email asking me to approve the transfer
18:10:53
shenghi
That could, and probably would, still lead to a lot of spam for popular (or unpopular) org owners.
18:12:33
shenghi
Don't underestimate the collective internet's power to thoroughly abuse otherwise perfectly good ideas.
18:24:20
fouric
jmercouris: really really rough estimate of Lisp usage might be https://api.github.com/search/users?q=language:Common%20Lisp
18:24:42
fouric
Not entirely sure if I actually did that right, but the results *appear* to show...624 users with Common Lisp repositories.
18:26:23
fouric
(that's obviously only a small fraction of total Lisp users, but if you compare it to the number of developers using other languages (Python, JavaScript) on the same platform then you can at least begin to get *relative* scales)
18:29:38
fouric
You could get slightly higher numbers if you settle for "Lisp-family" developers (as opposed to CL), because then you get to include Clojure (9.4K), Scheme (1.5K), and Racket (1.5K).
18:29:52
whoman
js devs get fresh idea from teacher and markets it on their parents money, lispers are more like nerd monks
18:30:41
fouric
Yes, although I think that more people use it for tweaking Emacs than actual *development*.
18:31:24
stacksmith
Good day. Could someone explain the intent and meaning of / // /// in REPL? I am somewhat confounded by (floor 3 1) and '(3 0) both resulting in / of (3 0)...
18:32:26
jackdaniel
basically / returns you a list of values returned by last statement typed in repl
18:34:57
stacksmith
Ok. I think I was just confusled by repeatedly hitting / - which of course makes sense.
18:37:57
stacksmith
The value of / is a list of the most recent values that were printed... Do they really mean vaules returned from eval?
18:45:26
pjb
Since you can use almost anything to name variables, there's no reason why not use it when it make sense.
18:46:37
pjb
Well, if you cannot call the REPL itself, there's indeed no point to bind those variables.
18:47:00
pjb
And even if you can call the REPL, it probably has its own binding, so yours will be shadowed.
18:48:08
pjb
You'd have to have an open REPL, like com.informatimago.common-lisp.interactive.interactive:rep
18:48:41
pjb
But notice that com.informatimago.common-lisp.interactive.interactive:repl doesn't actually bind them, rep calls %rep that sets them.
18:49:16
pjb
So it would make sense to (let (* ** *** + ++ +++ / // /// -) (repl) (use-history-variable-after-repl)).
18:49:35
stacksmith
pjb: yes, thanks, I saw that. It makes no sense to bind them, as they need to expire in a natural way.
18:54:07
stacksmith
Did the old Lisp Machine place less emphasis on 'printing' in the REPL? Given the closer relationship to sexps and structured editing I can envision a REPL that is mostly an evaluator that returns sexps that can be manipulated more directly, for instance.
18:55:33
stacksmith
I guess I am trying to figure out if converting to and from text was always the case...
18:56:35
stacksmith
jackdaniel: yeah, it's pretty weak and makes me wonder if it's a lame attempt at something much nicer.
19:00:57
stacksmith
I love the idea of mcclim, but in practice I find it hard to look at, especially the way fonts are antialiased. Although I haven't seen it in a year or so...
19:02:20
stacksmith
I have a pretty nice minimal implementation of XCB and FT2 rendering really nice text in X - I've been meaning to see how hard it's to add a backend...
19:03:27
stacksmith
I know it's a little antithetical in not being pure Lisp, but it sure looks good and any machine that has X has the libs.
19:11:05
didi
Do people use DOLIST's tags? I was thinking of making my DOOBJECTS more like DOLIST, but I don't remember even using the tags.
19:12:54
jackdaniel
didi: for the sole reason that "DO" constructs usually have implicit tagbody is a good argument to add it in your macro
19:14:18
jackdaniel
(ah, missed occasion to stack pun on pun, I should have said "I didi put DO in there" ;-)
19:52:46
jmercouris
unfortunately we do not know what percentage of lisp users are using github, as many of them are using gitlab it seems
19:56:10
whoman
whoman | counting up common-lisp.net projects, github.com, gitlab, bitbucket, savannah, ... i would say less than half for sure are not employed for doing lisp , and less so at actual lisp companies
19:58:21
whoman
autocad users, gimp script-fu; i would count those kind of things even being non-CL but they are engineers and artists who might be awesome at coding with sexp without even realising, and if set down with a CL REPL may be quite surprising
19:58:50
fouric
jackdaniel: wikipedia doesn't seem to be giving me a page on the type of "presentations" that you're describing
19:59:05
jmercouris
I don't think knowing the exact number is very important, but having a good estimate is
19:59:17
jmercouris
you can see whether the community is growing or shrinking and track your efforts to increase it
19:59:21
whoman
and accounting someone just giving up on lisp or losing his hands/eyes/life, or someone just tripping on a rock on the street and seeing an akward symbol that looks like a lambda that his subconscious relates to later at home and he finds CL ....
20:00:00
whoman
why not just always increase efforts to increase, bountifully ? be fruitful and multiply
20:01:21
whoman
jmercouris: response to "you can see whether the community is growing or shrinking and track your efforts to increase it "
20:01:36
whoman
why would you stop efforts knowing its "big enough" or "increasing at an acceptable rate" ?
20:02:03
jmercouris
whoman: It's not about stopping at some set point, it is about tracking the efficacy of your method
20:02:25
jmercouris
if you know the growth rate, and you know what you've been doing, then you can determine what the ratio of effort/growth rate *might* be
20:02:47
epony
wikipedia page argues lisp first appeared 1958, 60 years ago, so the calendar note may be off a bit
20:03:20
jackdaniel
jmercouris: OK, let me give you two number and tell me, how different your behavior will be: there is 1000 active CL programmers vs there is 100000 active CL programmers
20:03:33
jmercouris
jackdaniel: I am not going to change my behavior, I am only interested in measuring it
20:03:37
whoman
and of all lang communities, i think lisp would be the least susceptible to that kind of practice
20:03:58
jackdaniel
jmercouris: all measurement should have a goal, otherwise it might be perceived as a wasted effort
20:04:15
jmercouris
jackdaniel: given this initial value, I will not change my behavior, I want to know the measuring technique
20:06:26
jackdaniel
better, lets make an exam which certifies to use lisp (and without the license it can't be practicioned)
20:06:42
fouric
Sure, and then when the Haskellers take over, they'll have part of their hit-list pre-made for them /s
20:06:55
whoman
then we can subdivide those levels into "percentage of symbol usage" and "application of design patterns" and "repl marksmanship" to get real accurate numbers
20:07:48
jmercouris
I've often felt that "programmer" should be a protected term like "engineer" or something
20:08:15
whoman
what about "hacker", "coder" television programs, radio programs, education programs...
20:13:47
didi
`(block nil (iterate-on-objects (lambda (,x) (tagboy ,@body)) ,objects)) did the trick.
20:14:42
didi
Although now I have to be careful with changing the definition of `iterate-on-objects'. Oh well.
20:23:59
fouric
How would one give a macro two different names? You can do (setf (symbol-function 'foo) (symbol-function 'bar)) but SYMBOL-MACRO doesn't appear to be a thing...
20:25:59
fouric
...and I guess that makes sense, because what is a macro but a function that is run at eval-time.
20:27:41
phoe
but EVAL needs to do a thing called "minimal compilation" on the code that it is meant to evaluate. this minimal compilation involves macroexpansion.
20:28:29
stacksmith
"How a compound form is processed depends on whether it is classified as a special form, a macro form, a function form, or a lambda form."
20:38:16
epony
I think that's about all the calendaring I had to do today. Thank you for the attention.
21:57:14
didi
In `dolist', I wonder why `var' is in the scope of `result-form' if it will be NIL anyway.
22:02:33
stacksmith
Probably for consistency again. It would be weird for list-form to be in-scope and result-form to be out. I think.
22:03:18
didi
"The scope of the binding of var does not include the list-form, but the result-form is included."
22:05:49
pjb
Because "It is implementation-dependent whether dolist establishes a new binding of var on each iteration or whether it establishes a binding for var once at the beginning and then assigns it on any subsequent iterations."
22:06:37
pjb
So (dolist (x '(1 2 3) x)) results in a warning about an unused variable x (in the body) :-)
22:11:49
vtomole
How do I do file io in quicklisp? When I try to open and close a file outside my local-project directory, I get " There is no applicable method for the generic function #<STANDARD-GENERIC-FUNCTION SB-GRAY::PCL-CLOSE (2)> when called with arguments (NIL)."
22:15:42
vtomole
Looks like an SBCL thing : https://sourceforge.net/p/sbcl/mailman/message/30611811/. I'll look more into it.
22:17:10
Xach
vtomole: i don't really understand the question. quicklisp does not normally get involved in file io.
22:19:03
vtomole
(defun compiler (code output) "Reads code file and compiles each expression into output file" (let ((in (open code :if-does-not-exist nil)) (out (open output :if-does-not-exist :create :direction :output :if-exists :supersede)).......
22:21:41
Xach
vtomole: it seems as though you are calling CLOSE on a thing that is nil, and giving the error.
22:21:55
Xach
vtomole: can you share more of the code through some paste service? like perhaps all the code?
22:26:36
Xach
vtomole: i think it would be worth arranging things so that you can use WITH-OPEN-FILE.
22:27:36
Xach
and :if-exists :error would be fairly normal if you only want to proceed on a file that exists
23:23:13
vtomole
With respect to a shebang script "#!/usr/bin/sbcl --script (ql:quickload :eagle)", I get "Package QL does not exist." When I run it.
23:28:54
vtomole
Make sense. idk how i should approach in that case. I don't want to call sbcl --noinform --eval