freenode/#lisp - IRC Chatlog
Search
0:10:15
remexre
is there a way with iterate to iterate through all the active elements of an arbitrary array?
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.