freenode/#lisp - IRC Chatlog
Search
7:25:49
ljavorsk
Hi everyone, does the lisp libraries have any name template for package name? (something like: lisp-<name>)? I have this problem, I'm packaging the pgloader-bundle and in the bundle section in Packaging Guidelines is written that every bundled library within this package must be in 'Provide' section. I wanted to start with the alexandria library, but I've found that alexandria exists in fedora, but it's some ruby package and this
7:28:07
flip214
ljavorsk: Debian uses eg cl-alexandria - collection of portable Common Lisp utilities
7:29:22
jdz
It is my understanding that the whole "bundle" thing is so that pgloader does not interact with packages provided from other sources.
7:30:50
flip214
ljavorsk: how much value do you put on compatibility? You could have binary packages with only one FASL file, that would only need the exact matching SBCL version to work
7:33:02
jdz
ljavorsk: I bet it's so that the dependencies are in a known-good state (from the developer's point of view), and not some package maintainer's. dim can probably tell more.
7:36:19
ljavorsk
jdz, Hmm I don't know what is known-good state, actually this is my first package so I'm learning about packaging on it. Not to mention the lisp :D never seen it before
7:37:12
ljavorsk
A lot of stuff you write here is new for me, so I apologize if I don't understand correctly
7:43:15
jdz
ljavorsk: Maybe you can look into how Golang applications are packaged; as far as I know Go code can use libraries from git repositories (at specific branches/commits).
7:54:51
ljavorsk
jdz, I have to wait for dim, need to ask him if these libraries in software/* are really needed, or if there is another way, because it's a lot to list them in Provides, and also to finding all of their versions, and in the case of name-conflict to figure out the correct name
9:50:05
thijso
Where would I need to start looking if I get this error: Detected access to an invalid or protected memory address. occurred with errno: 0. ??
9:51:33
ralt
if you want to kill the children of the process started with uiop:launch-program, that's another story entirely.
9:52:50
ralt
(1) either you control the processes you're running, and you can have each child trickle down its SIGTERM to its own children
9:53:28
ralt
or (2) you control them but you don't want to change their code, in that case the best is usually to start a supervisor, that will know how to shutdown its children when it gets a SIGTERM
9:54:03
ralt
or (3) you spawn the child process in a new PID namespace (e.g. docker container), and when killing your direct child, the namespace will be shut down and all the children will be gone
9:55:01
thijso
I was just gonna say... "ralt says, 'you have 2 options', while holding up three fingers"... ;)
9:56:23
ralt
but yeah, "how do create docker container" or "how to spawn a child in new PID namespace" is largely googleable
9:59:32
ralt
You mean launching a supervisor? It's like launching any other process, except that process is e.g. supervisord or pm2 or whatever
10:06:34
ralt
you'll have exactly the same issue with python's subprocess.Popen(), or golang's os/exec, or whatever else. It's relevant to how OS/processes work, not to programming languages.
10:09:50
seok
I don't know, it is not just this issue. Whenever there is a problem in another language, usually there a library already which simplifies the problem
10:10:12
seok
When I am using CL, the problem can be fixed, but I need to learn all these new low level stuff in order to fix it
10:11:00
ralt
I'm not aware of anything like that, for this use case, in python, golang, php, or nodejs, which are the languages I regularly work with :)
10:11:14
seok
For example, the case of web scraping, if I want to do anything serious in CL, I need to hand-write running javascript to simulate browser
10:12:13
seok
Whereas in node, I can just use puppeteer. This is the reason which made me run node via CL interface in the first place
10:13:13
seok
If there was a simpler solution in CL, I wouldn't be running subprocess under node in the first place
10:14:38
ralt
writing a CL interface to headless chromium is not a pretty big job, no, it's one uiop:launch-process + one drakma:http-request
10:22:09
seok
I love CL and want to build everything in it, but we should admit that there are a lot of aspects in CL which drives away new developers
10:22:28
beach
seok: It is a well known fact that Common Lisp has way fewer users than many other modern languages.
10:24:34
seok
beach: I want to do away with no-defun-allowed's mindset, because it is not good for the language
10:25:28
seok
It only continues the cycle of high learning curve -> less developers -> less / incomplete libraries -> high learning curve
10:27:06
beach
seok: I don't think you have any evidence for there being fewer (not "less") developers over time who use Common Lisp.
10:27:12
seok
Like all of us in the community, I do believe CL is superior in a lot of ways than other popular languages, but I think we should do away with the arrogance which continues the cycle
10:27:16
no-defun-allowed
Or maybe they shouldn't and I was being needlessly cynical, but there's two things...
10:28:00
no-defun-allowed
- they should recognise that not everything goes the Unix way because it's quite dumb, and when CL was standardised Unix hadn't killed off everything else - they should be able to tell the difference between a programming language problem, a library problem, ..., an operating system problem. This is probably the second and the last.
10:28:59
beach
seok: If you think a simple change of attitude on the part of Common Lisp programmers will magically attract more developers, I think you ignore recent research in psychology. There are many more, much stronger barriers that will continue to keep most developers away.
10:30:19
no-defun-allowed
And I do reserve the right to be needlessly cynical, because most newbies are more focused on who funds and who programs in a language.
10:31:31
ralt
The language itself; parentheses, Emacs being mostly required if you want the expected dev experience (it improved a bit lately but Emacs is still #1), the freedom that the language gives you (programmable programming language is both a blessing and a curse), etc etc
10:36:54
ralt
I wish it was a bit more advanced (e.g. supporting upgrades), but in and of itself it's pretty great
10:37:10
beach
seok: The problem is that it is very unlikely that the number of Common Lisp developers will grow sufficiently fast for your taste.
10:39:17
beach
seok: Even with the kindest attitude, a Common Lisp programmer trying to tell a person with many years of investment in a more conventional language that he or she is using a language that is not optimal, and that there are better things out there, will not be believed. And that is because of the strong forces described by Carol Dweck.
10:40:00
seok
Isn't it in every lisper's favor for CL to be used in more commercial projects, be taught in schools, become more standardized, more lisp jobs, become a practical language rather than just be the theoretical best?
10:40:35
beach
seok: It doesn't matter what the answer to that question is, because it just won't happen.
10:41:37
beach
seok: The sooner you accept the facts, the sooner you will also find better ways of improving our infrastructure, rather than trying to convince more people to use Common Lisp.
10:41:45
no-defun-allowed
CL is standardised (see X13J3), is certainly designed to be practical (compare to Scheme), and in today's economy I would rather it isn't used as much, because then there would be a lot less dumb programming jobs as people become more efficient.
10:42:48
seok
I believe it can be done with just a few serious commercial projects which promotes real attention
10:43:34
beach
seok: The only think that I know that sometimes works, is to show that you can come up with good things, hopefully with less effort than other people using other languages. And if you don't believe even that is possible, I think your case in favor of Common Lisp is pretty weak and won't convince anyone.
10:44:22
seok
Well, from what I understand in trends, people are not as logical as we make them out to be
10:44:56
seok
The reason C became more popular over lisp is not because C is logically "better" language
10:45:35
seok
Likewise, trend for CL will not start because it is the most efficient language (even if it is), but because of certain traction
10:46:06
beach
seok: C is a disaster as a language for writing applications. It came to dominate because Unix was given away for free to universities, thereby exposing many generations to it and only it.
10:46:26
seok
Even though it was equally or more viable for deep learning to be implemented in a lot of other languages
10:47:29
no-defun-allowed
I don't think Python was designed for heavy computing work, rather more like a scripting tool. All the matrix math magic is done in C or FORTRAN (IIRC).
10:47:37
beach
seok: But, as you apparently know, people are not into facts. It's all psychology. Once you understand these forces, you will see that things are not as simple as they might initially seem.
10:48:16
no-defun-allowed
Then people get confused when you say that CL is a very dynamic language that can also run very efficiently.
10:49:11
no-defun-allowed
They come with expectations that are not fulfilled, and try to apply them anyway without considering if they're close to being correct.
10:49:35
seok
given that more developer is good for the health of the language, we should use means other than perfecting the language itself to promote the language
10:52:43
no-defun-allowed
Some friends and I started a "cooperative" where we do Lisp stuff, and none of us are older than 21 last time I checked.
10:54:58
no-defun-allowed
That's another thing, I don't think school provides good motivation, either, but it's not too relevant to the topic.
10:57:35
no-defun-allowed
I was drawn to Lisp since the other alternatives I knew were Java (which required a bulky IDE that was too slow on my dinky computer at the time for any serious work), Haskell which I couldn't read, C or C++ which I could read better but couldn't ever get to work, Python which was slow, and BASIC which requires no justification really.
10:58:44
seok
A lot of people don't like lisp syntax but for me it makes more sense than other languages
10:59:31
ralt
thijso: yup, it's mmap based mapping to CLOS objects, with transaction support and lot of nifty things. It's pretty neat.
11:04:58
no-defun-allowed
Oh, I think I'm ready to put code down to make cl-decentralise2 run a DHT now.
11:07:45
no-defun-allowed
My interpretation is most of the complexity is in the client for finding an appropriate node, and even then it's not too hard.
11:13:06
no-defun-allowed
(And then how I found Lisp was even weirder, someone that I absolutely cannot stand now posted lispers.org to a forum and it sounded interesting.)
12:06:25
_death
in BBN Lisp, prog2 took only two forms, and progn is described as an extension of it...
12:58:16
remexre
flip214: neither of those actually work: loop's across wants a vector, and iterate doesn't have in-array
13:52:59
_death
remexre: you can add in-array to iterate.. or you can use a displaced vector (make-array (array-total-size array) :displaced-to array)