freenode/#lisp - IRC Chatlog
Search
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`
10:49:29
edgar-rft
When the mismatch-index argument is true, it is an integer representing the first character position at which the two substrings differ, as an offset from the beginning of string1
10:52:30
edgar-rft
agree, Lisp was *much* better when strings still were handled by symbol-names :-)
10:55:53
no-defun-allowed
rogersm: It is usually a good idea to stop making sense when writing Lisp.
10:57:10
zge
Can anyone tell me what SBCL's "could not allocate SB-IMPL::TEST" notes mean? I'm getting it for functions that don't even have :test arguments.
10:58:42
no-defun-allowed
A much stupider no-defun-allowed first gave that advice two years ago, but I still stand by it. Though if they act the same, MISMATCH conveys your intent better if you want the mismatch position.
11:00:20
no-defun-allowed
Well, string/= will return false for strings of different lengths (without other start and end positions), so they do not act the same.
11:09:06
edgar-rft
phoe: The inequality functions return a mismatch-index that is true if the strings are not equal, or false otherwise (last paragraph under "Description")-> http://www.lispworks.com/documentation/HyperSpec/Body/f_stgeq_.htm#stringSLEQ