freenode/lisp - IRC Chatlog
Search
6:42:13
beach
rk[ghost]: It was a restriction that was necessary because of the computers at the time. It is anything but "nice".
6:42:40
beach
rk[ghost]: The computers being much more powerful these days means that this restriction is no longer necessary.
6:43:00
jackdaniel
beach: btw, did you see zeitgeist framework? (it's not lisp, but it acts on similar premises, that file is a lousy abstraction)
6:43:08
beach
rk[ghost]: Strangely, many generations of software developers still assume it is a necessary restriction for intrinsic reasons.
6:43:27
random_numbers
Honestly, besides the collision issue and a few usabilities questions (difficulty imagining it), I would say the LispOS file model seems more reasonable from a programmatic and user side.
6:43:57
random_numbers
Not knowing where my files are is weird if I don't have a fuzzy way to find them incrementally.
6:44:18
Zhivago
It's closer to 'everything is a device', and 'make all devices visible in the filesystem', which aren't particularly terrible ideas.
6:44:57
beach
random_numbers: Since it is a strict generalization, I don't see the problem. Anyone who wants to continue to live with those restrictions can do so. Just like you can program in a C style in Common Lisp.
6:45:29
jackdaniel
random_numbers: that could be done in the following way: you select one tag you are interested in and "file manager" shows other tags connected with this one
6:45:46
beach
random_numbers: And I have no idea what "collision issues" or "usabilities question" you have in mind.
6:46:05
random_numbers
beach: Files with similar or near-identical tags and how to find them quicky and in a practical manner for use.
6:46:52
beach
random_numbers: If you want to, you can have a "directory" object that has a single tag. It can then contain other objects, such as directories and vectors of bytes.
6:47:05
rk[ghost]
beach: aye the stack has a rotten core.. and people keep piling up on top. backwords compability.. finally should be abandoned for a move forward. quit making stuff specifically for x86 running POSIX ;P
6:47:05
random_numbers
jackdaniel: With usage tracking a bit ala Zeitgeist, I could see that working very nicely.
6:47:21
Zhivago
Yes, the apple solution of having directories that look like files was a reasonable approach.
6:48:55
random_numbers
About the cl-readline, readline has a clear-screen command. Not sure if the CL bindings allow access to it.
6:49:36
Zhivago
rk: Once you view the kernel as a provider of virtual machines ... it gets a lot simpler.
6:49:41
rk[ghost]
random_numbers: aye good to know. if it is jus tthe bindings lacking, i can dive deeper knowing not in vain.. add the binding myself.
6:50:03
random_numbers
rk[ghost]: https://cnswww.cns.cwru.edu/php/chet/readline/readline.html#fn_C It's about 10th in that list.
6:51:28
random_numbers
Given what I think I got out of LispOS, there's no reason the system-level commands couldn't be redundant Actors on a distributed network.
6:52:57
Zhivago
Well, you'd need some kind of multi-process semantics for that to work, unless you're proposing distributed shared memory.
6:52:59
rk[ghost]
random_numbers: grreat. thanks! i will start peeling away the layers of the cl-readline source.
6:53:28
Zhivago
And if you're proposing distributed shared memory, it's probably time to look into why it's not really a workable option.
6:54:22
rk[ghost]
i imagine that there will be distinct chips (open too!) soon enough for any given service..
6:55:04
rk[ghost]
aye, i think process semantics (adopting OTP principles of the actor model) seems like the right path forward.
8:05:02
phoe
rann: bindings are bindings, you can always hack around it if you can read the TERM variable and issue the proper escape command yourself.
8:05:38
phoe
this is hackery, but is only worse than a pull request to cl-readline that implements the missing functionality
8:06:53
phoe
today exclusively on #lisp: unexpected tips and how they can affect your life (more on page 7)
8:30:46
phoe
ebrasca: On hiatus for now - I'm doing other things that my real life requires to be done first.
8:37:51
phoe
ebrasca: I'm not familiar with ansi-test but it should give you some sort of list of what tests failed.
8:41:58
phoe
it looks like the function is copied or something, where it should be the same object at the same memory address.
8:43:54
phoe
ebrasca: ask around for help on #mezzano - this looks complicated and might need changes in either what SETF does or in compiler or some other place.
10:47:38
rk[ghost]
i am attempting to add the proper readline binding to cl-readline. seems worth the current effort for understanding of foriegn function interfacing with a standard library. i used quicklisp to pull the library. if i edit the cl-readline.lisp in ~/my/path/to/quicklisp/dist/quicklisp/software/cl-readline/ and use (ql:quickload) will it use my local copy or try to sync with the net and overwrite?
10:49:19
rk[ghost]
i suppose that is the downside of the beauty of CL and why it isn't commonly adopted is there doesn't seem to be standard practice for many things.
10:50:26
rk[ghost]
then do i just (load "~/quicklisp/local-projects/cl-readline/cl-readline.lisp") or does quicklisp have a method like quickload for loading from local vs. git?
10:50:56
pjb
rk[ghost]: once you've put your system in quicklisp/local-projects, you will just use (ql:quickload :cl-readline).
10:52:29
pjb
like when a variable in an inner scope is shadowed by another of the same name in an outer scope.
10:54:20
pjb
like when a variable in an OUTER scope is shadowed by another of the same name in an INNER scope.
11:32:57
rk[ghost]
wahoo! my intuition was correct and i was able to break out a function of gnu readline as expecterd
12:26:47
phoe
rk[ghost]: quicklisp distros are changed once a month AFAIK. you're better off cloning the newest version from github and PRing to it in most cases.
12:28:10
phoe
(defun rl:clear-screen () (uiop:run-command #+windows "cls" #-windows "/usr/bin/clear"))
12:28:47
phoe
rk[ghost]: a quicklisp dist is basically a list of all offered systems along with their version.
12:29:26
phoe
(but I might be very wrong here, this description is based on 50% intuition 50% accidental overhearing)
12:33:02
Xach
quicklisp provides a set of libraries that build together, and they are updated on a server once per month. if you call the update function, it will fetch those updates to your computer. otherwise it never locally updates.
12:33:30
Xach
if you have a system in an asdf directory somewhere, it will always be loaded before a quicklisp-provided system is loaded
12:35:35
rk[ghost]
phoe: ha. however, i like the abstraction layer of having gnu readline, such that it only requires that gnu's readline is on a system and not various other x, y, or z userspace tools
12:50:16
phoe
quote is pretty unique to Lisp because it's only really useful in places where you can directly manipulate code as data.
12:51:18
beach
Murii: It is similar to the rule in natural languages such as English. So air is something you can breathe, but "air" is a one-syllable word. In the first case, air gets "evaluated" to mean the substance. In the second case, because it is quoted, it refers to the word itself.
13:48:26
Xach
i don't really understand it though. http://report.quicklisp.org/2017-06-16/failure-report/mcclim.html
13:54:57
Xach
slyrus: it's a slightly idiosyncratic indexing system, but it has never failed on mcclim before
13:56:43
slyrus
I added a new ASDF .asd file down in Backends/PostScript. I'm wondering if that's what messed things up. So... zapping your fasls and running (ql:register-local-projects) are the two things that come to mind.
14:35:47
pjb
Murii: the important point wrt. quote, is that lisp programs are written using the format defined for lisp DATA.
14:36:34
pjb
Murii: actually, there's a (preliminary) syntax defined for lisp programs. Stuff like: label[subst;λ[[x;y;s];[null[s]->nil;atom[s]⟶[y=s->x;1->s];1->combine[subst[x;y;first[s]];subst[x;y;rest[s]]]]]]
14:37:23
pjb
Murii: in this syntax, there's no need for quote, since data is simply written with parentheses and uppercase, instead of brackets and lowercase: subst[(WATER;WINE;(MIX WATER AND WINE INTO (MIXED WATER AND WINE))];
14:39:28
pjb
Murii: but the thing is that: 1- there's a direct mapping of the lisp syntax to lisp data; 2- we can easily define an eval function that will take lisp data representing a lisp program, and interpret it; 3- a young student was impulsive and implemented this eval function in assembler before the syntax for lisp program was entirely finalized. The rest is history.
14:39:53
pjb
Murii: in this context, quote is used to indicate that its argument must not be interpreted as lisp code.
14:40:21
pjb
subst[(WATER;WINE;(MIX WATER AND WINE INTO (MIXED WATER AND WINE))]; translates to (subst (quote (water wine (mix water and wine into (mixed water and wine)))))
14:42:24
pjb
Murii: notice that this let an important invention (which existed entirely since the origin, but was embryonic) of macros: ie. functions transforming some lisp data into lisp code, embedded in the code, and called at compilation time.
14:44:24
pjb
Timeframe: AIM-8 specifies lisp and eval in Mars 1959; Russel implemented it in assembler 7090 from 1959-1960 (next version 1.5 in 1962); macros were invented in 1964. Until then, people still used the M-expressions (lisp code syntax) in papers; they only use S-expressions (lisp data syntax) on puched cards and listings. But once macros were introduced everybody flew with them and they forgot about M-expressions.
14:46:01
pjb
Murii: http://informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/aim-8.html http://informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html
18:08:22
random_numbers
phoe: Read up the logs. 2017-06-16T08:05:02Z Touché. Though that's a fair bit lower-level than desirable.