freenode/#lisp - IRC Chatlog
Search
22:48:22
adlai
ACTION wonders whether anyone suggested to github that they parse dependency information from .asd files
22:49:29
adlai
whereas once their easy excuse not to, the absence of a package manager, is gone, they could now just blame the lack of standardization on any single one.
23:04:06
phoe
there's nothing even close to it in terms of popularity and use nowadays, and most of these other utilities parse .asd files anyway.
23:05:55
phoe
it handles the part where you declare dependencies and it ensures that they are loaded; that's the context that GitHub might want to care about in this context
23:08:44
adlai
ACTION used the word 'package', in 'package manager', with the connotation it has in the linux world, of locating and installing external libraries; as opposed to the parts that are entirely within ANSI CL
23:09:58
adlai
lol, at one point, wasn't asdf-install doing text searches of cliki to locate tarball urls?
23:31:52
lotuseater
adlai: i learned some time ago it was the first .com domain in 1985 :) and the ones after that also companies with relation to LISP (machines)
23:36:08
surabax
lotuseater: The first web site of the US White House was powered by CL-HTTP and Statice running on a Symbolics Lisp machine, iirc
23:40:23
cl-arthur
lotuseater: maybe you'll enjoy https://lisper.in/reader-macros, it's the tutorial someone recommended me when I first had a problem addressable by a reader macro.
23:42:45
lotuseater
i read up to now to that topic (not everything) in On Lisp, Let over Lambda and https://gist.github.com/chaitanyagupta/9324402
23:45:16
lotuseater
did you get my reference last week? https://en.wikipedia.org/wiki/Knights_of_the_Lambda_Calculus
23:46:28
cl-arthur
I didn't, so I ended up reading the wikipedia entry and some other website too :)
23:47:22
lotuseater
ok good. it came to my mind again because Arthur was one of the Knights from the legend
23:52:48
lotuseater
so to have a readmacro for writing lists (aka vectors) like in Haskell i alter the readtable after going into (set-macro-character #\[ ...) so i can have something like [2,5..100] ?
23:55:51
Bike
anyway, reader macros get a handle to the stream and can read whatever they want and interpret it however they want
23:56:37
lotuseater
listcomp would be something like [ x + y | x <- [1..100], y <- [1..100], x+y == 10]
0:00:40
moon-child
no-defun-allowed: true, but their strings are [Char], which has caused endless consternation
0:00:56
lotuseater
Bike: but what didn't fit in my head yet is when I do READ-CHAR but also want to jump back how to do it
0:01:54
lotuseater
moon-child: yes it is awful (but can for simple stuff also be useful) newer libs like RIO are better if you don't like that or the hole Prelude
0:03:21
cl-arthur
read-char -> peek-char -> unread-char. now you know the next two chars in the stream XD
0:04:34
lotuseater
yeah and you can give peek-char a char, but if it's not found it seems to throw me to the debugger
0:08:23
no-defun-allowed
(peek-char peek-type) accepts peek-type = NIL to peek the very next character, = T to peek at the next non-whitespace character, and a character to peek at the next character char= to that one.
0:21:45
no-defun-allowed
I think that is the generic function you can use with Gray streams to implement PEEK-CHAR.
3:09:05
no-defun-allowed
One way to implement it is to have a header object, which references a storage vector. Then when you resize the array, you copy the contents of the old storage vector to a new storage vector and swap the old one out.
3:12:20
moon-child
ldb: if you grow your allocation chunk size exponentially, then the number of times you have to copy goes O(lgn) in the number of items you add
3:12:47
ldb
Bike: https://www.researchgate.net/publication/2801681_Resizable_Arrays_in_Optimal_Time_and_Space
3:12:50
no-defun-allowed
SBCL extends a vector with vector-push-extend by 50% of its length, from memory.
3:15:34
ldb
This paper describles a improvement on the 50% expansion approch, reduces the extra memory usuage to minimal, and still has the same time complexity
3:17:27
no-defun-allowed
It looks like AREF would be slower, and I don't know of any Lisp systems that use buddy allocation.
3:20:18
ldb
I think the buddy system is for languages with manual memory management, the core data structure is sufficient to be used with GC
7:45:00
flip214
Does someone have a gist to fetch all the COPYING, LICENSE, etc. files from all the loaded QL systems?
7:45:36
flip214
The asdf only has a short license name (in different upper/lowercase versions etc.), and some licenses require the authors' names to be mentioned
8:24:47
adlai
ACTION wonders whether there is any legal precedent regarding the proper labelling of files containing that grade of toxic waste
8:25:17
phoe
legal, I think not; practical, they're called COPYING or LICENSE or sometimes the license text is spliced into the README
8:25:55
adlai
someone could claim that they only read licenses labelled "COPYING", because they only redistribute code without ever running it.
8:29:06
adlai
there were few enough installed systems that I "only" encountered a singlehandedly-digital number of (complement #'equal) names for identical licenses.
8:30:20
adlai
however, it was the kind of garbage-in-garbage-out that made me afk^hrepl for long enough to forget my paranoiae about intellectual property.
8:35:37
Nilby
About 750 of 4330 systems I have "loaded" have the liscense field blank. Some licenses have interesting names, such as "BSD or Bugroff" and "do whatever the fuck you want".
8:37:06
flip214
Nilby: asdf::primary-system-p could help you to remove all the -tests and similar systems.
8:38:15
flip214
and QL doesn't distribute a source link (incl. git hash) with the system list, right?
8:38:51
flip214
well, I guess I'll just make a heuristic that fetches the README.md, .asd, and one of LICENSE|COPYING|similar stuff
8:42:06
Nilby
Well, it's hackish and depends on my stuff, but https://plaster.tymoon.eu/view/2180#2180
8:46:02
Nilby
For this to work you need a checked out quicklisp-projects so it probably can't be in quicklisp proper and probably. I have done some work on a quicklisp tool of sorts.
8:50:35
Nilby
I think Xach has something planned, but if I ever get my thing done, we could have a project metadata extract.
8:57:08
flip214
it would also be great if everything that's needed for distributing would be available in a central QL place... so the license name, authors (if 4-clause bsd), link to license file (github or whereever), etc.
9:06:57
flip214
what is needed to get trivial-signal working on Windows? I'd like to catch ctrl-c, but the various GCC.EXE I can find just say "sorry, unimplemented: 64bit mode is not included"
9:11:50
flip214
Alfr_: mingw/cygwin already emulates so much, so I think it should be possible... it's just that grovelling fails, because I can't find a 64bit mingw gcc for windows
9:55:05
srandon111
hello all guys i wanted to start with lisp, i watched the SICP lessons and tried some racket but would like to try some lisp, which dialect do you suggest?
9:56:10
beach
srandon111: But perhaps you mean "which implementation of Common Lisp" rather than "which dialect"?
9:56:18
srandon111
common lisp is the most common option out there? is it modern or like an old abandoned language
9:56:41
beach
srandon111: The common options consist of Common Lisp, as far as this channel is concerned.
9:57:24
phoe
Common Lisp is a dialect of its own, like Scheme, Clojure, Racket, Shen, Carp, PicoLisp, and what else
9:57:39
White_Flame
common lisp basically was the most commercially used lisp variant (and absorbed all the commercial variants). others are more academic or internal/scripting
9:58:42
beach
srandon111: There is no widely accepted definition of "Lisp", so it is hard to answer your question.
10:13:06
beach
srandon111: We recommend Common Lisp. It is a modern language with features that no other language has.
10:13:29
srandon111
what i was exploring with common lisp, is checking out libraries/modules available... since i use neo4j for other projects... i saw this.. https://github.com/kraison/cl-neo4j
10:13:49
srandon111
now my thing is... where is the documentation? or should i be able to read the code? is reading code easier in lisp?
10:14:15
phoe
you might want to spend some time reading Practical Common Lisp to get used to the syntax
10:15:32
beach
srandon111: If your question is "What Lisp dialect should I choose so that I can use something like neo4j with it", then that is a very tough and very specific question.
10:20:31
edgar-rft
ah, yes, from reading the code I see that cl-neo4j uses drakma and a web interface
10:21:32
adlai
srandon111: "common lisp" describes implementations that have benefitted most from various overfunded industries, and committees, near the end of the previous century.
10:23:30
adlai
ACTION thinks of it as a live thing, consisting of large reptiles, armed amniotes, and ballistic garbage collectors, although you are free to use the term to describe a book instead
10:26:25
edgar-rft
srandon111: one of the advantages of using Common Lisp is that the language doesn't change every other year, so you can be pretty sure that your code still will run 10 or 20 years ahead, but because the language hasn't changed in the last 25 years it's sometimes a bit of work to implement newfangled things :-)
10:39:57
no-defun-allowed
You could also install a SBCL of dubious age from the package manager, then use that to bootstrap a new SBCL. Or if there's newer packages, as phoe says...
10:40:39
no-defun-allowed
What version does Debian 10 ship? Knowing Debian, you could do with a newer version.
10:42:22
phoe
roswell auto-downloads its own SBCL binaries, it doesn't depend on any systemwide Lisp.
10:42:27
Nilby
I'm confused. Are you guys talking about the Robot Operating System, or ros the Roswell commmand.
10:43:55
phoe
after installing the deb file, you should be able to just `ros init` and then `ros install sbcl`