freenode/#lisp - IRC Chatlog
Search
0:12:44
aeth
beach: The problem with the lack of hierarchical packages leading to the foo/bar package name idiom as a convention to work around that isn't the same class of problem of "add it and then the language can't be compiled". It's more likely to be in the class of problem of something that probably didn't exist back in the early 1990s so no one even thought about it.
0:14:32
aeth
In 1995, I don't think large projects with hierarchical packages were a thing in many languages, even if possible. When I think about that, I think about Java (which is possibly the most rigid enforcing of this sort of thing, definitely not something to emulate) or Python (which definitely existed, but wasn't popular until the 2000s)
0:15:02
aeth
Both Java and Python afaik tie this sort of thing to the directory structure of the program, which is kind of a non-starter for CL.
0:16:59
phoe
yeah, ASDF's bundle-op would give you a really weird look if you tried to do that same thing
0:21:04
aeth
And beyond that, the further back you go, I'd bet you'd observe that a CL project is more likely to be just all at the top level with one package, i.e. foo/*.lisp whose sole package is foo/package.lisp
0:23:36
HiRE
What is the (:use :cl) used for defpackage? I mean, I would assume it means "use common lisp" but I find the notation funny since it's being written _in_ common lisp
0:24:13
aeth
e.g. the initial McCLIM git repo (probably converted from CVS/SVN/etc.) from as recent as 2000-06-08 didn't have subdirectories for the core *.lisp files: https://github.com/McCLIM/McCLIM/tree/3cb03ba6a0bfbd54e5076b20b627905d5517f043
0:25:05
aeth
I mean, oh wow, 1164 clim-package.lisp that's mostly just one giant defpackage. https://github.com/McCLIM/McCLIM/blob/3cb03ba6a0bfbd54e5076b20b627905d5517f043/clim-package.lisp
0:26:16
aeth
So, I mean, 1990s CL is very stylistically different than 2010s CL, which is why you don't really see the need for hierarchical packages... just have one giant package.lisp contain everything with one giant defpackage > 1000-lines
0:27:05
aeth
These days I'm guessing you'd want at least 10 packages with a top package that does something like uiop:define-package's use-reexport instead of having a giant 1000+ line defpackage.
0:27:13
Xach
reminds me of how one of the clisp maintainers complained that quicklisp cluttered up the system by adding too many packages.
0:29:11
aeth
Xach: It is a fairly valid complaint, however it's worse to have a 1000-line DEFPACKAGE. Hierarchical packages means you get the best of both, needing to only expose one or a few top-level packages while still being able to, well, read any given DEFPACKAGE.
0:29:44
pjb
HiRE: you don't necessarily write Common Lisp code to run on a Common Lisp implementation!
0:29:45
aeth
ASDF these days sort of strongly encourages a multi-package design to be FOO/BAR which is just a hack to only somewhat polute the package namespace, in a way that's very unlikely to collide
0:30:28
pjb
HiRE: so for example, when you write a CLIM application, you don't use CL, you use CLIM instead. You don't get the same defclass and defmethod macros amongst other changes.
0:30:57
HiRE
Interesting. That's good to know. It was sort of given matter-of-factly in PCL so I was curious
0:31:11
pjb
HiRE: or you can run LISP 1.5 code from 1962: http://informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html
0:31:18
aeth
A clever specification of hierarchical packages could probably define it in a way that's compatible both with unmodified CL implementations and extended ones, but then it would assign semantic meaning to / in the name of a packags.
0:31:57
pjb
HiRE: this is why any criticism of Common Lisp is usually untimely, since you can just define your own lisp package and use it instead of CL.
0:33:26
pjb
In 1990, you wouldn't fetch thousands of libraries from the Internet… Software Engineering of CL software has much improved during the last 20 years, only thanks to asdf, quicklisp and the Internet.
0:33:30
aeth
hmm, actually you could define separator characters in hierarchical packages and so if you want #\\ or #\. or #\/ then no matter what you can have it.
0:34:33
aeth
HiRE: as far as (:use :cl) goes, you could e.g. (:use :r7rs) and get R7RS Scheme with symbols such as |car| and |cdr| and |list| instead of CAR and CDR and LIST
0:35:04
aeth
CL has always been a language for writing languages. It would be far easier to do something like JS's TypeScript in CL than it is in JS, and it would be "built-in" rather than an additional compilation step
0:35:23
HiRE
thats so interesting. I guess thats the power of lisp. Makes sense, just mindboggling coming from a professional programming life of if you write it one language everything must be in that language
0:36:04
aeth
As far as doing something like TypeScript in CL, it's almost an introductory project to do a type-declared DEFUN macro. There are probably like 50 of those. There's at least one that's fancier than that and tries to do a fancier ML-style type system, though.
0:37:15
aeth
HiRE: Scheme, not CL. The author of JS was originally going to implement a Scheme, but that was rejected based on the syntax. Not much was borrowed from Scheme, although since idk 2007 or so people have been adding parts of Scheme to JS to try to justify the origin myth.
0:37:47
aeth
So at this point "JS is inspired by Scheme" is probably true, even though it was once false.
0:37:56
HiRE
oh I didnt even realize it was at least a partial truth. I figured it was just another jab using greenspun's 10th rule.
0:43:34
pjb
Well, any good programming language designer would have to know lisp and scheme, amongst a lot of other programming languages. So you can always say that a new programming language is inspired by scheme (or lisp). But this is definitely not a guarantee of quality for the new language.
0:49:58
aeth
pjb: The problem with "inspired by Lisp" is that you could make that claim for nearly any modern language because Lisp used to have features that no one else did, like GC
0:50:27
aeth
But these days, saying your language is "inspired by Lisp" just because it has a GC would be incredibly misleading because people think about the features that still distinguish Lisps from the rest, like the numeric tower
1:22:09
pjb
aeth: indeed, "inspired by lisp" is a problem. Foremost when they deliberately masacre lisp to make their language, like Matsumoto created Ruby the matsacred lisp…
2:25:26
aeth
pjb: On the other hand, technically speaking, Common Lisp is an "inspired by Lisp" language.
3:29:10
pjb
aeth: Definitely. And it has been criticized as such. And it has the same success relatively as the other ones.
5:24:28
White_Flame
aeth: common lisp has direct lisp lineage; it's not some new offshoot that only takes inspiration without continuance of design
5:26:18
aeth
White_Flame: Good enough for the "Influenced by" in the Wikipedia infobox. https://en.wikipedia.org/wiki/Common_Lisp
5:27:08
aeth
It doesn't go the other way around, though. [[Lisp]] has Common Lisp under "Dialects" not "Influenced"
5:29:44
asarch
One stupid question: I do the query (let ((results (query "SELECT * FROM foo"))) and then I parse every record in the query (loop for record in results do ..., question: how could I initialize a counter from 0 and increment its value on every iteration inside the loop expression?
5:29:44
minion
asarch, memo from pjb: genera and instructions can be found at: https://cliki.net/VLM_on_Linux
5:29:44
minion
asarch, memo from lieven: for recent X versions, you need to patch genera. See https://archives.loomcom.com/genera/genera-install.html#org783aa06
5:31:55
White_Flame
or VLM in docker, where you don't have to worry about any config: https://github.com/sethm/docker-vlm
5:50:53
asarch
(loop for i in (list 1 2 3 4 5) and b = 0 do (format t "Valor: ~d " b) (incf b) (format t "Hello paisanos~%")) <- Why b is not incremented?
5:59:15
minion
seok: look at Universal Greeting Time: It is always morning when a person enters a channel, and late night when they leave. You may want to read http://www.total-knowledge.com/~ilya/mips/ugt.html for further information
6:02:22
no-defun-allowed
https://common-lisp.net/project/mcclim/1.html could be it, but that really only has releases.
6:07:30
holycow
you are accessing irc through something on the google app engine? something perhaps writting in lisp?
7:45:01
LdBeth
is it good idea to store the instruction database :allocation :class into a mixin class so the database can be isolated for different machine
8:28:13
g0d_shatter
LdBeth: I'm sorry I can't help you, but I'm super curious what the application is if you can talk about it!
8:30:23
LdBeth
g0d_shatter: it an assembler modeled after the one used for Symbolics Virtual Lisp Machine https://github.com/hanshuebner/vlm
9:00:12
lieven
yeah the ANSI committee is going to reconvene and bring out a new version of the standard with the deprecated functions removed any day now
9:03:07
heisig
There is none. I think at some point in time, people were too hyped about cl:complement and made some funny choices.
9:05:40
jackdaniel
orthogonal features like complement make a lot of sense from a learning perspective, but deprecated in case of CL means: it will be around for another three standard revisions