freenode/#lisp - IRC Chatlog
Search
0:20:47
pjb
liambrown[m]1: also, consider that on a system, you may have systems depending on different versions of a same system, but quicklisp doesn't deal with versions.
0:22:35
grewal
Or you can throw caution to the wind, chmod -R 777 that directory and pray that nothing bad happens
0:23:07
liambrown[m]1
pjb: So it's not the precise analog of NPM or PIP? That makes sense. I wonder what it would take to tweak it so that there could be a single install for all users.
0:23:50
liambrown[m]1
Then again, on a shared system that may not even be wanted; I'm bringing my JS habits to Lisp, which could be limiting.
0:23:58
pjb
liambrown[m]1: you could download and compile all the systems in the distribution, for all the CL implementation available to the users, and make that read-only to all users.
0:40:42
aeth
I didn't think someone would make the same suggestion so I wrote that while reading the backlog, but grewal already said that, my bad
1:07:44
_ark_
Hello lispers. I have a question on SO about hunchentoot redirection. I'd appreciate if anyone could help. https://stackoverflow.com/questions/55960088/redirect-to-https-with-hunchentoot
1:43:20
mooch
hey, is anybody in here interested in developing emulators as well? i'm working on a project that i think you might be interested imn
3:04:30
mooch
beach, would you be interested in helping with an emulation project of mine? i basically want to write emulation cores for a bunch of different components and make emulators based around them, in common lisp of course
3:05:31
asarch
How exactly do you get an executable binary file? I mean, I would like a binary for the (gtk-demo:main) function from the cl-cffi-gtk-demo-demo package
3:06:29
asarch
So, I evaluate (ql:quickload :cl-cffi-gtk-demo-demo package) and then (gtk-demo:main) and finally (sb-ext:save-lisp-and-die "tigger" :executable t)?
3:06:57
beach
mooch: I am sorry, but I am way too busy with other stuff. Plus, you really put me off when you told us that you disagree with basic principles of software engineering. There is no way I could collaborate with someone who writes that kind of code.
3:07:03
asarch
If yes, however, why the binary doesn't have permissions?: ksh: ./tigger: Permission denied
3:07:31
asarch
In spite of it actually has them: -rwxr-xr-x 1 asarch 1000 76300824 May 2 22:04 tigger
3:22:42
aeth
beach: What are the basic principles of software engineering according to you? Do you have a blog or article somewhere?
3:24:50
aeth
mooch: Encapsulation is like CS 101 (or 102), that's going to be tricky to argue against.
3:27:32
mooch
and i honestly don't see the point. if someone could explain it to me, then maybe it'd make sense
3:28:32
aeth
Well... There are many approaches. Here's one. Excluding debugging, you have to (within reason) anticipate every change that can be made if you want robust software. The more you expose, the more checks you have to add in.
3:29:26
aeth
Privacy can be, to some degree, a convention, though. For instance, in CL, if you start messing with unexported symbols that's kind of on you if the software breaks.
3:29:30
mooch
aeth, i mean, i only write emulators, so in my cpu cores, for example, i don't need to make anything private because the cpu core should already handle all edge cases
3:32:11
aeth
mooch: sounds like your style probably has a few giant functions that does a bunch of de facto encapsulation
3:35:02
aeth
mooch: If you have a helper function for foo, bar doesn't need to know that it exists. Even if you're just doing things internally to one program.
3:37:48
PuercoPop
LdBeth: It is a cool concept. You define your models and the application figures out how to best store them
3:38:58
aeth
mooch: I'm more talking about, if you have a function that's 80 lines long with comments that serve as headings splitting it into 4 parts, why not turn those into four functions? And in CL it's pretty easy to split off functions because everything's an expression and almost everything returns a useful value
3:39:33
aeth
And once you have a dozen functions instead of one, it's pretty clear that you want a public interface, and most of the functions won't make the cut, at least not initially.
3:39:46
LdBeth
Let me bookmark the pages. Last time I thought I’ve seen a library introduces a meta class called cube which is for syncing database across languages
3:46:51
aeth
I mean, of course, there's the completely opposite approach, too. http://number-none.com/blow/blog/programming/2014/09/26/carmack-on-inlined-code.html
3:47:09
beach
aeth: One such principle is "information hiding" which is the one that mooch publicly disagreed with when saying that everything should be public.
3:48:27
aeth
mooch: Note that that contrarian article has the author's semi-retraction at the top, though.
3:52:50
beach
aeth: I can't quote a single source for those principles to you, because I learned them as a result of life-long reading of books on the subject, but I am pretty sure that this one principle is cited in almost all books with "software engineering" in the title, and also in many other books on programming.
3:54:45
beach
mooch: "I don't see the point" is different from "I disagree". The first one can be explained by ignorance and inexperience (both of which are fixable), whereas the second one reflects some conviction based on careful study.
3:55:19
beach
mooch: It is time then to go read some books. I recommend reading one book per month or so.
3:56:35
beach
mooch: Now, if you hate reading, there is little that can be done to fix your ignorance and inexperience.
3:56:58
aeth
mooch: This is introductory material, so there should be plenty of $0 videos, websites, book PDFs, etc.
3:57:41
beach
mooch: It is said that in software development, most people don't have 10 years of experience, but 1 year of experience 10 times.
3:58:27
beach
mooch: That most programmers, you included, appear to learn nothing from the experience.
3:58:31
aeth
mooch: This is a different skill than just programming. Sort of one level more abstract than programming.
3:59:32
aeth
mooch: The skill in question is about building large applications that you can make changes to 10 years from now, or that other people can make changes to even if they're not too familiar with your code.
4:00:30
aeth
mooch: I don't doubt that you probably can program, but I would try programming a very large project just so you can see the necessity of some techniques you might not otherwise see the point of. Or program with a team of several people, if you haven't already.
4:01:03
LdBeth
PuercoPop: so at least I get ap5 build with CLISP, although there’s some issue with CLISP itself on save executable
4:03:00
mooch
one of them is support for the i386 debug registers, and another one is a driver for the original iphone
4:18:28
mooch
okay, so basically, there would be libraries that emulate various components, and standalone emulators that use those libraries, but the libraries are shared between the various emulators!
4:24:18
aeth
I've been using some emulators on Archive.org, e.g. https://archive.org/details/mac_MacOS_7.0.1_compilation
4:26:14
no-defun-allowed
aeth: For some constraints on the definition of magic, emscripten is magic.
4:34:01
beach
Speaking of reading books, someone said the other day that "The Pragmatic Programmer" is a good book. So I am now reading it, and it is true. It is good, at least as far as I have had time to read so far (page 32). I can't believe I have not read it in the past.
5:39:17
dmiles
so i see SHRDLU runs in old CLISP http://maf.directory/misc/shrdlu.html ( http://hci.stanford.edu/~winograd/shrdlu/download/consoleshrdlu.zip ) anyone know if i cna find it that owuld run in SBCL?
5:41:26
dmiles
i sort of started trying to port to SBCL but i know others would be better at it than me
5:57:56
dmiles
what would be nice is if i know how to get the old CLISP and new CLISP to dumpo their canonical versions in order to see where the new misunderstanding is
5:59:07
dmiles
btw to get as far as i have in a port to SBCL it has involved running macroexpand and then using the macroexpanded code
5:59:53
dmiles
but i have a feeling somethihng that does those 40 hours a week instal of 40 hours a year would do better than me
6:01:41
dmiles
is hsould probably take my ports and #+CLISP #+SBCL #+ABCL so that someone can continue the work
6:10:58
dmiles
hehe.. i know actualyl i just thought i had found happiness with some of the others (not) and then not looked at that one
6:16:31
dmiles
um oops nope.. basically they jsut renamed the non-common-lisp versions to to .lisp files
6:20:13
dmiles
but it is at least helpfull as i looking at https://www.dropbox.com/s/ulpiwmqs7p2ht80/Screenshot%202019-05-02%2023.19.43.png?dl=0
6:46:40
dmiles
putting in the things that made SBCL happier: https://github.com/TeamSPoon/CYC_JRTL_with_CommonLisp/commits/larkc
8:40:51
gjvc
/usr/lib64/clisp-2.49.93+/base/lisp.run: initialization file `LISPINIT.MEM' was not created by this version of CLISP runtime
8:44:06
dmiles
(the error only happens when the code tries to update the postioning of items in the world)
8:44:45
dmiles
"Grasp the pyramid." give no error due to it replying it donet know as to which pyramid you menat
8:47:32
dmiles
the main problem is it is using REST as a special variable.. its hard ot just blanket rename that throuought the files
8:48:29
dmiles
since i think that there are a couple occurences (not the &rest) that it is not supposed to be spcial *yet*
8:49:53
dmiles
well heres a question (defun foo (bar) (declare (special bar) ) ... just how special is bar here?
8:56:13
dmiles
(defun foo (bar) (print `(foo ,bar)) (declare (special bar) ) (set-bar 2) (print `(foo ,bar)) )
8:59:23
dmiles
(defun foo (bar) (declare (special bar) ) (print `(foo ,bar))(set-bar 2) (print `(foo ,bar)) )
9:00:19
dmiles
the question i have next is if there was a new call to (foo 3) if that changes it again?
9:07:03
dmiles
G:\opt\CYC_JRTL_with_CommonLisp\platform\e2c\shrdlu\src>clisp -M lispinit.mem --version
9:07:46
aindilis
somewhere someone should be interested in keeping old software running, I find I need this quite a lot
9:08:22
dmiles
searching clisps bug database i see that 2.27 has some of the same bugs as the windows version..l that was why i assumed it was 2.27
9:11:24
dmiles
> also won't the sources not compile due to bitrot? (I think you have to use a differnt version of GCC)
10:57:59
xkapastel
http://okmij.org/ftp/continuations/undelimited.html argues that delimited continuations are "more expressive" but that seems misleading, it's precisely because undelimited continuations are like `goto` that you can do weirder stuff with them