freenode/#lisp - IRC Chatlog
Search
13:35:16
nwoob
Lisp exists to show how wrong every other language designer has been.- How true is this statement?
13:36:13
Xach
it is a method of calling attention to the person making the statement rather than providing insight
13:37:40
nwoob
as far as i have read all the things except macros have been implemented in other languages
13:39:30
Xach
nwoob: it integrates a lot of nice ideas in one place. if you use emacs it is very easy to write in a supportive environment. if you don't, it's still pretty nice.
13:40:56
nwoob
I mean if someone asks you why are you learning a certian language, you must have a response to that right>
13:41:36
schweers
I still want to properly learn and understand (and possibly implement) forth. That doesn’t mean I want to use it every day.
13:41:40
Xach
nwoob: the reason doesn't have to be that good, though! "i was curious" or "paul graham told me it would give me a secret weapon for writing web sites" is fine.
13:42:22
dlowe
"I like learning things in the expectation that a broader mind is a more effective mind"
13:42:38
Xach
that's how i got started, and even though now i think he is a real dud with weird views about common lisp, i'm glad i got started
13:44:09
Xach
yes - it's helpful to have a broad context in which to evaluate statements presented as valuable truth
13:44:41
dlowe
"also, my half-baked thing is boring compared to startups, so I'm only doing startups now"
13:47:59
jcowan
I actually implemented a Forth (two, depending on definitions) despite being totally incompetent as a Forth programmer
13:49:29
jcowan
If said by someone else, it might be a reference to Scheme, though there is nothing in CL that doesn't appear in *some* implementation of Scheme.
13:51:41
schweers
racket seemed like such a nice thing. then they completely botched their object system :/
13:51:42
p_l
schweers: types are required for both CL and Scheme, now how complex is the implementation is another thing
13:52:03
schweers
p_l: sorry, I meant static types as a compiler hint. Not sure how to best put this.
13:53:19
p_l
I believe R3RS had essentially symbol plists so you could do like old LISP and put namespaces there
13:53:54
p_l
LFE afaik is more of a simple lisp that closely follows what's provided by Erlang itself?
13:56:46
moldybits
nwoob: other languages lack sexps, restarts, symbols, probably more. (i'm a lisp newbie so take that for what it's worth :D)
13:57:50
jcowan
There are many sexp languages now, and symbols are quite common. There is a Scheme implementation of restarts as well.
14:03:10
schweers
To get back to topic: has someone else had problems loading closer-mop in abcl on debian?
14:09:26
Bike
seems okay to me, other than the clisp thing which is probably due to clisp shipping an old asdf
14:10:52
schweers
This is what I get: Error while trying to load definition for system closer-mop from pathname /usr/share/common-lisp/source/closer-mop/closer-mop.asd: Unrecognized keyword argument ("closer-mop-packages" "closer-mop-shared")
14:11:42
schweers
I know that debian does some weird stuff to lisp and asdf, but I never figured out what is was.
14:14:06
scymtym
there is no read-time condition for abcl. the form is read as (:file :depends-on ("closer-…" …)), i.e. ("closer-…" …) appears in a keyword position
14:14:21
schweers
But it really does seem weird. As there is no clause for abcl, the last :file should result in (:file :depends-on ("closer-mop-packages" "closer-mop-shared")), right?
14:18:29
Bike
schweers: oh, you're right. on abcl it will read (:file :depends-on ("closer-mop-packages" "closer-mop-shared"))
14:19:00
schweers
Is there an easy way to configure asdf in a way so it will load a different closer-mop implementation?
14:39:15
schweers
I know what quicklisp does. I just don’t use it on this project because I need a bit more control over where my third party code comes from
14:39:40
Xach
oh, i mean in addition to the stuff it downloads. the local-projects mechanism is what i meant.
14:40:22
Xach
if you put all your third-party libraries in ~/local-projects/ it would load only those, for example. or if you didn't want to use quicklisp, you could use it to make an empty bundle, and then use the bundle's local-projects directory. there are many other options that don't use quicklisp, too.
14:44:20
pjb
ebrasca: first, why do you want to design a new file system? The guys at ext2/3/4 seem to be doing a very good job at designing a file system.
14:46:39
pjb
I don't see how you can list the versions, there's a last-version, but not previous-version.
14:48:33
pjb
So, basically you would just need to take ext4 and extend its inode with version-number and previous-version fields?
14:49:52
pjb
The rest would have to be implemented in the userland, such as would cp copy all the old versions, or just the last? This could be options.
14:52:10
p_l
in this case, the MTTR was heavily increased by ext lacking any checksumming of metadata
14:52:58
pjb
Anyways, there's also the idea of not having a file system at all, but instead to implement a persistent storage of objects. So you could in a way implement any kind of file system by defining some classes in memory, and their objects would be written or read from the disk. See the EROS OS.
14:56:12
pjb
Also, remember that old computers had static ram or magnetic core memory, which was persistent. Imagine working with such a system, when you can shut down the computer and power it up again, and still have all your objects and processes ready?
14:56:50
pjb
So there's no notion of saving and loading, but just making copies into dictionaries or indexed databases.
14:59:10
splittist
Indeed. As technology recedes into the past, it also seems to recede into the future, leaving us with an eternal present...
15:00:19
dlowe
I was hearing a while ago about memory made out of nano-cores, which would give us ultra low-power persistant ram
15:00:53
p_l
dlowe: MRAM, you can actually buy it, but densities are pretty low due to manufacturing requirements
15:07:42
p_l
verisimilitude: if you use modern standby or S3 sleep then you have same level of memory persistence
15:11:36
beach
The other day I was thinking that data bases, and also persistent stores requiring explicit actions to save object, essentially force the loss of identity of objects.
15:13:23
beach
Sure. But then, that technique would have some serious impact on the programming style.
15:13:33
pjb
Yes, and furthermore, in EROS (or was it KeyKOS, I may be mixing them), the addressing space was large enough that the network was also included in it: you could "mount" remote capability spaces in your addressing space, so you could enforce identity of object over the whole network.
15:14:51
p_l
beach: I think the worst bit is when people try to *naively* map external memory onto other kind of objects. Which often results in the same way as if someone wanted to use CAR on multi dimensional array
15:17:57
beach
ebrasca: If you follow p_l's suggestion to abandon pointer identity in favor of some external identifier for objects, then your CONS cell will no longer be represented by a Common Lisp pointer, but by some arbitrary key, so CAR and CDR will no longer work.
15:21:56
p_l
shka__: core component of OS/400 is a) single address space covering RAM and disk b) built-in database technology including relational one
15:22:41
Bike
the two pointer trick is that since A xor B xor A = B, if you store A xor B, you can get A or B out as long as you have the other. it's not that complicated, just weird
15:51:00
jackdaniel
making winow manager based on mcclim would require introducing sheepts capable of adopting other sheets
15:53:09
ebrasca
jackdaniel: I think mcclim is good. Here link https://github.com/fittestbits/McCLIM for mezzano ( I think it is WIP )
16:33:50
jackdaniel
most work would be introducing protocol for adopting frames in a sheet, I believe backend primitives are already implemented by fittestbits
16:34:13
jackdaniel
you may read about the black board pane if you think about floating windows (I haven't tested it myself)
16:49:16
beach
evanpeterjones: That might be the case, but this channel is restricted to Common Lisp.
16:51:34
evanpeterjones
actually I've been teaching myself CL for a few weeks and used it on a few projects, but entertained the idea of using clojure.
16:54:43
evanpeterjones
don't stan the JVM, or the non-standard m-like-expressions for different types, but the interop with java makes it seem very useful.
17:26:59
makomo
hm, is it possible to somehow attach slime's debugger to a running lisp image (running swank of course) which has already invoked the debugger because an error happened?
17:27:34
makomo
basically, the image errored and entered the debugger, i connected to it using slime but now want to use slime's debugger instead
17:30:18
makomo
i tried using slime-list-threads and then attaching to the thread which entred the debugger using slime-thread-attach but i'm not sure whether this does what i think it does
17:30:40
verisimilitude
Are there any restarts that would be appropriate to use for this available, makomo?
17:31:24
verisimilitude
You could, say, evaluate an expression that calls INVOKE-DEBUGGER within the native debugger.
17:31:57
phoe
makomo: rebind the *debugger-hook* with a slime hook and call invoke-debugger in the original debugger
17:36:19
phoe
you give it the condition that the standard debugger was invoked on - usually that's the value of some dynamic variable
17:39:29
phoe
only the way to invoke a debugger is standardized via INVOKE-DEBUGGER. once you're in, your implementation defines what's going on.
18:13:40
evanpeterjones
particularly if you've used any really good libraries for image processing, web scraping, or database integration
18:27:12
makomo
verisimilitude, phoe: i ended up writing my own debugger hook which then forwards to swank's debugger hook
18:27:43
makomo
also, instead of starting the swank server right away, i start it *within* my debugger hook
18:27:59
makomo
then, i set up 2 restarts. one invokes the standard debugger and the other invokes swank's debugger
18:29:01
makomo
after setting up the 2 restarts i signal an error myself explaining what the original error was and what the 2 restarts are
18:30:40
makomo
i have a tool written in lisp which is invoked as part of a bigger build system. if the tool fails, i want it to drop into the debugger and allow me to see what went wrong
18:32:11
pjb
makomo: sometimes, (handler-bind ((error . #'invoke-debugger)) (tool)) is all that is needed, if it doesn't do it by default.
19:20:44
makomo
there's swank::*connections* but i'd like something that's actually exported (and possibly documented)
19:43:29
jackdaniel
and if a superficial requirement is to have the symbol exported, then export it and forget about the issue
19:45:58
makomo
there's no requirement. i was just hoping that there's an "official" way to do it, i.e. that there's a proper protocol
20:16:33
dim
I'm close to having c:build-program work for pgloader, but I don't quite get what the epilogue should look like
20:17:17
dim
given (c:build-program "/tmp/pgloader/pgloader" :epilogue-code '(cl-user::pgloader-image-main) I get The function PGLOADER-IMAGE-MAIN is undefined., but it's defined in the same "src/save.lisp" file as where the call to c:build-program is found...
20:29:17
jackdaniel
c:build-program *is not* save-lisp-and-die, it builds application from other artifacts
20:29:31
jackdaniel
so if this function is not in one of these artifacts, then indeed function won't be accessible
20:33:45
brainacid0
hey, im very new. i was curious if there is a way i can write my code in one line and have the editor do the indentation?
20:34:29
phoe
brainacid0: it's not your task, your editor should count the parens for your and automatically indent your code
20:35:08
phoe
vim should be capable of that. I'm not a vim user myself though so can't give you concrete pointers.
20:37:56
brainacid0
see im not really a programmer per se so i dont have the ey and thought process down
20:57:54
makomo
what's the way one is supposed to use named-readtable's IN-READTABLE? just stick it as one of the first top-level forms within your file?