<Bike>
"n conformance with the CLHS, fare-quasiquote expands its patterns at read-time ... If you enable feature #+quasiquote-at-macro-expansion-time, fare-quasiquote will expands its patterns at macro-expansion time, using the same convention as Scheme, with symbols quasiquote, unquote, unquote-splicing and unquote-nsplicing" huh?
zachk has quit []
applePrincess has joined #lisp
smurfrobot has joined #lisp
ryanbw has joined #lisp
smurfrobot has quit [Remote host closed the connection]
<|3b|>
mentioned a few times, not sure there was much discussion
fikka has quit [Ping timeout: 268 seconds]
dieggsy has quit [Ping timeout: 255 seconds]
orivej has quit [Ping timeout: 248 seconds]
smurfrobot has joined #lisp
<vtomole>
Looks like my post was the third time. Should have checked logs.
sajvif has joined #lisp
ebrasca has joined #lisp
<aeth>
What video is that? There's no title bot in here and I don't trust YouTube links. (Although it probably is safe or else |3b| would have commented.)
<Hiver>
just so i know what not to do though. what is bad about that code? I dont wanna fuck up. ooooooooooh and thanks
<jackdaniel>
it has articles describing how it works in Documentation
astronavt has quit [Quit: Leaving...]
<jackdaniel>
Hiver: first thing: indentation. it made me stop reading it ;)
astronavt has joined #lisp
<jackdaniel>
another one: lack of abstraction, everything is put as a list
<Hiver>
ok. so, use abstraction.
<Hiver>
Anything else?
<jackdaniel>
line breaks are bad, it is not clear what functions do (not docstrings or comments)
<jackdaniel>
it is simply bad, I'm not interested in reading it further
<Zhivago>
Almost as bad a sign as not being able to spell "don't".
<Zhivago>
Don't trust subliterate programmers -- programming is a literary exercise.
<Hiver>
Okey. so, docs, abstraction, and indent. thats good form for lisp.
<Hiver>
also, what line did they sat "dont" I cant find in cntrl-f. lol
wheelsucker has joined #lisp
<Zhivago>
That's just general advice -- but it also applies regarding people who can't spell "can't".
<Hiver>
oh lol
<beach>
Hiver: It uses SETQ to define special variable, but that is undefined behavior. And it does not use earmuffs on special variables, which is bad style.
<beach>
It uses IF when it ought to use WHEN.
<beach>
It has mysterious blank lines.
<Hiver>
ok
<beach>
It uses the wrong number of semicolons for comments.
<Zhivago>
It is obviously written by the wrong sort of person.
<Hiver>
so, basically style. lol
<beach>
Hiver: style is what programming is about.
<Hiver>
yeah, it's really important
<jackdaniel>
no, style is just a strong indicator it is not worth reading. program doesn't look useful either
<Hiver>
ok. it has not practical use
<jackdaniel>
so style is the initial condition for anyone to bother reading what it does
<jackdaniel>
did you write this snippet?
<Hiver>
no.
<Hiver>
a friend did
<beach>
That friend should come here, listen to advice, and then rewrite the code.
<Zhivago>
They're trying to get intelligent people to ignore them so that they can focus on the stupid ones.
<Hiver>
ahhhhh. like an echo chamber?
<Zhivago>
No. They just get the intelligent people to decide that the message is obviously a scam so that they then don't respond, which would waste the scammers' time.
<Hiver>
ooooh. ok. so, he wont come here because he is afraid of the advice? or is the program a scam?
<Zhivago>
The same process applies to software. Intelligent people avoid using software that looks like it was written by a twelve-year old who had been dropped frequently on its head as a child.
<Hiver>
lol yeah.
<Zhivago>
Which is generally a good idea, because software that looks like that probably hasn't been written carefully or well thought out, and the cost of maintaining it is high.
<jackdaniel>
interesting, didn't know about that (badly written email thing)
sword has quit [Ping timeout: 264 seconds]
<Zhivago>
One problem is that to beginners, they are so bad at reading code that they can't distinguish between good code and bad code.
<Zhivago>
Which means that they also don't see any value in writing good code.
<Hiver>
ok. another question! why does it not look well thought out?
<Hiver>
ok
<Hiver>
I see.
<vtomole>
Why is is using setq?
<vtomole>
*he
<Zhivago>
Either due to malevolence or incompetence.
<beach>
vtomole: Because he or she has not bothered to learn the language.
<jackdaniel>
or he/she is during the process of learning it
<jackdaniel>
Hiver: recommend your friend this excellent introduction
<jackdaniel>
minion: tell Hiver about pcl
<minion>
Hiver: direct your attention towards pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<jackdaniel>
I'm sure he will benefit from reading it greatly
<Hiver>
sent it to him
<Hiver>
Also to respond to beach. He used to do a bit of Java (idk if it is true). Recently switched to LisP
<beach>
Hiver: Your friend should also learn to use an editor that can handle Common Lisp code so as to obtain correct indentation.
<stylewarning>
“LisP”
<beach>
stylewarning: Nice talk!
<Hiver>
Ok. Beach. What editor?
<jackdaniel>
Hiver: rush to read PCL, it has all information he needs
<jackdaniel>
editor advice included
<beach>
Hiver: Most people here use Emacs and SLIME.
<Hiver>
ok
tlf1 has joined #lisp
<turkja>
lol, why so harsh? it for sure looks like someone's first lisp program.. but it's a start anyways :)
* jackdaniel
tried to be gentle :)
<jackdaniel>
/but honest/
<Hiver>
honest it better
<Hiver>
Hey, i gtg. Thanks for this, my friend hasn't responded, but we can be hopeful.
rippa has joined #lisp
<jackdaniel>
good luck and bye
<Hiver>
thanks. you tooo
Hiver has quit [Quit: Page closed]
smurfrobot has joined #lisp
tlf1 has quit [Quit: Page closed]
fikka has joined #lisp
teddy_error has joined #lisp
<stylewarning>
beach: Thanks!!
sfa has quit [Ping timeout: 240 seconds]
smurfrobot has quit [Ping timeout: 246 seconds]
<vtomole>
One of these days I'm going to have enough money to go to that Bay Area Lisp meet up and ELS.
fikka has quit [Ping timeout: 240 seconds]
<beach>
Airline tickets are pretty cheap these days.
<beach>
Especially if you accept the standard of low-cost airlines.
<jackdaniel>
lovely, 5 different lisp implementations in one emacs session :-)
<vtomole>
beach: I'm a student. $300 kills me.
zmt00 has quit [Quit: Leaving]
djinni` has quit [Quit: Leaving]
* jackdaniel
hints, that more than $300 is possible to earn on McCLIM bounties ;)
<vtomole>
I'm graduating next year. So I should be able to make it to the 2019 one.
<jackdaniel>
and I will probably add more bounties this weekend
<vtomole>
jackdaniel: Ha!
<jackdaniel>
then you'll be able to say proudly at ELS: I'm here, because I've solved bunch of McCLIM problems
djinni` has joined #lisp
<SaganMan>
these days people don't use setq, they use defparameter
<SaganMan>
if it's a constant defvar
<Zhivago>
Or, rather, if reloading should reinitialize the value.
<SaganMan>
it's neat that way than to use defvar and setq to variables
<SaganMan>
yeah
<pjb>
defvar and defparameter are top-level forms, you would never use them to set a variable. Use setf for that!
raphaelss has joined #lisp
<SaganMan>
yeah
sfa has joined #lisp
mson has joined #lisp
<Shinmera>
vtomole: You won't get the student discount anymore if you graduate.
<lisp_guest>
this when bothers me a bit, because the usual way i would implement this is to have a check for the opposite and then just return early before proceeding
<lisp_guest>
i.e. if it's not a symbol, return nil immediately
<lisp_guest>
yes, they're functionally equivalent, but what style is preferred in lisp?
<Shinmera>
WHEN evaluates to NIL if its condition fails
<lisp_guest>
ya, i'm aware of that
<Shinmera>
explicit RETURN-FROM is very rare.
<lisp_guest>
i see
<lisp_guest>
because i don't like when stuff gets too indented
damke_ has joined #lisp
<lisp_guest>
or rather i think of it as setting up invariants for the code that follows
<lisp_guest>
so if something doesn't hold, just get out immediately
<Shinmera>
Invariants should be set up via checks that error.
<lisp_guest>
Shinmera: so then this would be the preferred style in lisp?
<Shinmera>
And you can do that with check-type, for instance.
damke has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
<Shinmera>
I can't speak for everyone, but I like concise code.
<Shinmera>
So WHEN is definitely preferred towards (unless .. (return-from my-fun))
<jackdaniel>
I'm working on semaphores for BT (will try to merge it upstream if possible) – this is generic implementation (using cv): https://plaster.tymoon.eu/view/686#686 -- fallback for implementations which doesn't have semaphores
<jackdaniel>
I'd appreciate comment on this (for instance if I got it right) if someone have a slice of time
<Shinmera>
Especially since the return-from increases mental overhead by requiring the explicit function name, having an inverted check, and introducing an explicit control flow transfer.
<Shinmera>
jackdaniel: I'd much prefer a struct to a list.
<lisp_guest>
Shinmera: hmm ok, thanks
<Shinmera>
jackdaniel: In fact, having a list is awful because it means you don't get a distinct type for the semaphore.
<jackdaniel>
me too, but I don't want to introduce structs for default implementation
<Shinmera>
Why not
<jackdaniel>
because I would have to check somehow, if implementation has semaphores implemented "its way"
<jackdaniel>
and conditionally disable it
<Shinmera>
Huh?
<Shinmera>
The implementation potentially providing its own semaphore object doesn't really change anything.
<jackdaniel>
there is bt:timeout type defined without such conditionalization, but SBCL with-timeout signals different condition – this is a source of many programmer errors
<loke>
jackdaniel: You forgot to with a WITH-LOCK-HELD in the call to SEMAPHORE-COUNT
<jackdaniel>
I want to avoid such situation for semaphores, that programmer does check-type on bt:sempahore
<Shinmera>
jackdaniel: Make the struct named %foo and provide a deftype that aliases to the concrete type on each impl
<jackdaniel>
loke: thanks
<loke>
Other than that, it looks fine to me.
<Shinmera>
I really don't think that any amount of implementation overhead is going to justify using a list
<loke>
Why not use a struct for this instead of alist?
<Shinmera>
I already just suggested that
<loke>
"os a list"
<jackdaniel>
it is plist
<loke>
I mean it say "instead of a list"
<jackdaniel>
I'll think about it, thanks
<jackdaniel>
ah
fourier has quit [Ping timeout: 260 seconds]
<jackdaniel>
I've explained initial motivation for such avoidance, I may reconsider (or change upon maintainer request)
<loke>
jackdaniel: if so, you could make it three-elemtn array instead? That'll make lookups fast.
<Shinmera>
You're threading with a lock
<Shinmera>
plist lookup won't really matter in comparison
<Shinmera>
and that's just even worse because then the fields are implicit in the array
<loke>
Shinmera: I think you're underestimating the speed of locks.
<Shinmera>
And I think you're overestimating the slowness of a plist lookup.
<loke>
Shinmera: likely.
<loke>
Shinmera: I think both are very fast. That said, array lookups are even faster.
<Shinmera>
Either way, a struct is going to be fast and typed
<Shinmera>
so really, the only right choice.
<loke>
Shinmera: True. But I think JD's argument is that he doesn't want it to be typed.
<Shinmera>
I don't think that's his argument at all
<loke>
I don't agree with that argument, but I understand it.
<Shinmera>
His argument is that he would need to conditionalise the existence of the struct or type for each implementation if they provide their own native semaphore object type.
<loke>
Isn't his point that you shouldn't be able to do CHECK-TYPE (or whatever) on the object, becasue in specialised implementations the type of the object can be unpredictable?
<Zhivago>
It's rather then class can differ -- but CL has that leak back into the type for array, which sucks.
<Shinmera>
No, I'm pretty sure he'd like it if you can check-type
<Shinmera>
Anyway
<jackdaniel>
maybe I put it wrong, but loke get it right
<jackdaniel>
s/get/got/
<loke>
That said, I'd like to see a custom type that is defined to be whatever the underlying impleemntation uses. That way I cal always use (CHECK-TYPE BT:SEMAPHORE) and it'll word regardless of implemnetation. Then a struct would be fine.
<Shinmera>
the solution is (defstruct %semaphore ..) (deftype semaphore #+sbcl 'sb-whatnot:whatever #-... '%semaphore)
<Shinmera>
As I already suggested ages ago
<loke>
Shinmera: Right, that was what I trued to say.
<jackdaniel>
Shinmera: and where should I put this deftype, if implementation doesn't have native semaphore on %semaphore?
<Shinmera>
jackdaniel: BT has a file for each implementation, yeah?
<jackdaniel>
because that's not how source is arranged (that you spawn a lot of #+foo)
<Shinmera>
So you could just put that deftype into each specific file.
<Shinmera>
with only the correct expansion for that particular impl
raphaelss has quit [Ping timeout: 240 seconds]
scymtym has quit [Remote host closed the connection]
yeticry_ has joined #lisp
random-nick has joined #lisp
<beach>
lisp_guest: It is considered bad style to use WHEN in a situation where the value matters. It is better to use an IF and return NIL in the "else" branch.
<lisp_guest>
beach: so making explicit the fact that i want "nil" to be returned if sym is not a symbol?
<Shinmera>
I don't consider it bad style, but that's just me.
<beach>
lisp_guest: In this case, you can also remove the WHEN entirely.
<beach>
Shinmera: I am sorry to hear that.
wxie has joined #lisp
<Shinmera>
Style is opinionated after all.
yeticry has quit [Ping timeout: 276 seconds]
<lisp_guest>
beach: why?
<beach>
Shinmera: There are general rules though.
<beach>
lisp_guest: Yes, but in this case, you can just do the (let ... (and ...)).
<beach>
lisp_guest: Because your function returns a Boolean value, and AND does as well.
<lisp_guest>
beach: yes, but the WHEN is there to guard against non-symbols
<beach>
Oh, sorry, the symbol-name. Yes. But then this is better:
<Shinmera>
beach: Sure. In this case one could argue that returning NIL on failure is an explicit property of WHEN so the return value of NIL is already explicit too.
<Shinmera>
How explicit you want your code to be is often a matter of preference.
<beach>
Shinmera: There are general rules though.
random-nick has quit [Remote host closed the connection]
basket has joined #lisp
<basket>
Good morning!
<beach>
Hello basket.
<phoe>
Hey everyone
<beach>
Hello phoe.
<basket>
Hi phoe
<phoe>
Hey hi.
Tobbi has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
scymtym has joined #lisp
teddy_error has quit [Quit: Peace ☮︎]
raphaelss has joined #lisp
<oleo>
sup sup
teddy_error has joined #lisp
scymtym_ has joined #lisp
dtornabene has joined #lisp
Guest87516 has quit [Remote host closed the connection]
scymtym has quit [Ping timeout: 240 seconds]
Guest87516 has joined #lisp
teddy_error has quit [Ping timeout: 260 seconds]
SuperJen has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Jen has joined #lisp
Jen is now known as Guest55904
wxie has quit [Ping timeout: 255 seconds]
JenElizabeth has joined #lisp
Guest87516 has quit [Ping timeout: 248 seconds]
SuperJen has quit [Ping timeout: 248 seconds]
Guest55904 has quit [Ping timeout: 248 seconds]
SuperJen has joined #lisp
<basket>
I started trying to write an Emacs mode knowing vaguely about EIEIO as a CLOS-like but discovered that it's single-dispatch and doesn't support around methods, very disappointing
JenElizabeth has quit [Ping timeout: 260 seconds]
<scymtym_>
basket: i think this is no longer true in recent emacs versions. the object system is much closer to CLOS now
<basket>
If so, the documentation needs updated
<scymtym_>
the ones i looked at are cl-def{generic,method}
Bike has joined #lisp
peterhil has joined #lisp
EvW has joined #lisp
<pjb>
lisp_guest: I use sprunge which is barebone and cool: #!/bin/sh  exec curl --silent -F 'sprunge=<-' http://sprunge.us  # cf. https://clbin.com/ 
<pjb>
Kevslinger has joined #lisp
fikka has joined #lisp
nowhere_man has joined #lisp
varjag has quit [Ping timeout: 268 seconds]
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
orivej has quit [Ping timeout: 255 seconds]
varjag has joined #lisp
neoncont_ has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
drcode has joined #lisp
drcode has quit [Remote host closed the connection]
dddddd has joined #lisp
applePrincess has joined #lisp
drcode has joined #lisp
pseudonymous has joined #lisp
applePrincess has quit [Client Quit]
wigust_ has joined #lisp
pseudonymous has quit [Ping timeout: 240 seconds]
wigust has quit [Ping timeout: 260 seconds]
EvW has quit [Ping timeout: 246 seconds]
narendraj9 has quit [Remote host closed the connection]
pseudonymous has joined #lisp
EvW1 has joined #lisp
damke has joined #lisp
pseudonymous has quit [Ping timeout: 268 seconds]
damke_ has quit [Ping timeout: 240 seconds]
pareidolia has quit [Ping timeout: 248 seconds]
BitPuffin|osx has quit [Ping timeout: 246 seconds]
Kundry_Wag has joined #lisp
asarch has joined #lisp
random-nick has joined #lisp
grublet has quit [Ping timeout: 240 seconds]
jfe has quit [Ping timeout: 240 seconds]
whartung_ has joined #lisp
orivej has joined #lisp
whartung has quit [Ping timeout: 248 seconds]
whartung_ is now known as whartung
whartung_ has joined #lisp
jfe has joined #lisp
whartung has quit [Ping timeout: 268 seconds]
whartung_ is now known as whartung
Kundry_Wag has quit [Remote host closed the connection]
<drmeister>
That's why I'm excited about it. I hope they are on the right track.
<beach>
drmeister: You can discuss it with stylewarning at ELS. :)
<drmeister>
stylewarning?
<beach>
That's his IRC nick.
dddddd has quit [Ping timeout: 248 seconds]
dddddd has joined #lisp
Jen has joined #lisp
Jen is now known as Guest31104
EvW1 has quit [Ping timeout: 240 seconds]
SuperJen has quit [Ping timeout: 260 seconds]
damke_ has joined #lisp
neoncontrails has joined #lisp
EvW has joined #lisp
damke has quit [Ping timeout: 240 seconds]
SuperJen has joined #lisp
whartung has quit [Read error: Connection reset by peer]
whartung has joined #lisp
Guest31104 has quit [Ping timeout: 240 seconds]
cess11_ has quit [Ping timeout: 260 seconds]
applePrincess_ has joined #lisp
applePrincess_ has quit [Client Quit]
neoncontrails has quit [Ping timeout: 255 seconds]
neoncontrails has joined #lisp
neoncontrails has quit [Ping timeout: 255 seconds]
test1600 has joined #lisp
<drmeister>
Thank you
Devon has joined #lisp
<Devon>
Anyone know how to (read-byte *standard-input*) and (write-byte * *standard-output*) portably?
orivej_ has joined #lisp
neoncontrails has joined #lisp
orivej has quit [Ping timeout: 248 seconds]
Kundry_Wag has quit [Remote host closed the connection]
jfe has quit [Ping timeout: 260 seconds]
neoncontrails has quit [Ping timeout: 255 seconds]
<beach>
Devon: As far as I know, those are character streams, so you have to write characters to them.
<phoe>
Devon: *STANDARD-INPUT* and *STANDARD-OUTPUT* are character streams
<phoe>
and they may accept multibyte characters in case someone's using UTF-8 for example
<pjb>
Devon: this is not possible in a conforming way.
<phoe>
as in, they are not byte streams.
<beach>
Devon: You can of course bind those variables to some binary streams.
<pjb>
Devon: implementation dependent, you may be able to use flexi-stream to change the kind of stream, or you may be able to create binary streams on the same file descriptors.
<pjb>
Devon: for command line tools, just pass paths to the binary files as command line arguments, and open them.
neoncontrails has joined #lisp
<pjb>
You can then bind them to *standard-input* and *standard-output*, but I would advise against it (just use parameter named input and output). Keep *standard-input* and *standard-output* for textual I/O, you may want to issue messages, etc.
fikka has quit [Ping timeout: 255 seconds]
neoncontrails has quit [Ping timeout: 255 seconds]
dddddd has quit [Ping timeout: 248 seconds]
jfe has joined #lisp
<Devon>
Yeah, everything said so far I already know, none of it answers the question.
<pjb>
Devon: there's also another consideration: this is a big no-no to touch *terminal-io* and the object bound to it. (it's the stream used to report errors and by the debugger by default). But by default *standard-input* and *standard-output* may be synonym-streams to *terminal-io*; so mutating the streams bound to those variables would mutate the stream bound to *terminal-io* and this would break the implementation!
<pjb>
So, rebinding *standard-input* and *standard-output* is allowed, but not mutating (eg. changing the element-type) of those streams.
<pjb>
Devon: the answer to your question is NO. Do not do that!
<pjb>
If you want, more precisely, it's Mu!
<pjb>
無
Kundry_Wag has joined #lisp
<Devon>
Since it cannot be done portably, any implementation-specific solution could carefully mutate all the standard streams without breaking anything.
<pjb>
First try flexi-stream, as I answered above. (Despite your erroneous affirmation that no solution was proposed).
dddddd has joined #lisp
alexmlw has quit [Quit: alexmlw]
neoncontrails has joined #lisp
alexmlw has joined #lisp
<scymtym_>
jackdaniel: in https://plaster.tymoon.eu/view/686#686 in WAIT-ON-SEMAPHORE: when going back to sleep via CONDITION-WAIT, timeout should be decreased by already elapsed time
fikka has joined #lisp
<jackdaniel>
scymtym_: good point, thanks. current version is here: github.com/dkochmanski/bordeaux-threads/ , I will incorporate your remark later today
neoncontrails has quit [Ping timeout: 255 seconds]
<jackdaniel>
I've switched to internal-real-time, generic implementation had small problems when tested on CCL with timeouts like 0.1
<scymtym_>
jackdaniel: sure. i envy you for not having to take deadlines into account :)
<jackdaniel>
heh, you still try to fix timeout+deadline combo?
<scymtym_>
i think i have it figured out. needs a lot of polishing and testing, though
vertigo has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
damke_ has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
vertigo has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
SuperJen has quit [Remote host closed the connection]
SuperJen has joined #lisp
neoncontrails has quit [Ping timeout: 255 seconds]
neoncontrails has joined #lisp
EvW has quit [Ping timeout: 258 seconds]
wheelsucker has joined #lisp
knobo has quit [Ping timeout: 240 seconds]
astronavt has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
neoncontrails has quit [Ping timeout: 255 seconds]
Tobbi has joined #lisp
knobo has joined #lisp
beach has quit [Ping timeout: 260 seconds]
nowhere_man has quit [Ping timeout: 240 seconds]
nowhere_man has joined #lisp
lisp_guest has quit [Ping timeout: 240 seconds]
neoncontrails has joined #lisp
dtornabene has quit [Quit: Leaving]
knobo has quit [Ping timeout: 248 seconds]
resttime has joined #lisp
neoncontrails has quit [Ping timeout: 255 seconds]
jfe has quit [Ping timeout: 248 seconds]
vertigo has quit [Ping timeout: 248 seconds]
Kundry_Wag has quit [Remote host closed the connection]
neoncontrails has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
neoncontrails has quit [Ping timeout: 258 seconds]
Josh_2 has joined #lisp
k-stz has joined #lisp
neoncontrails has joined #lisp
_whitelogger has joined #lisp
beach has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
vertigo has joined #lisp
Kundry_Wag has quit [Ping timeout: 255 seconds]
jfe has joined #lisp
vertigo has quit [Ping timeout: 240 seconds]
neoncontrails has joined #lisp
neoncontrails has quit [Ping timeout: 240 seconds]
EvW has joined #lisp
dddddd has quit [Ping timeout: 248 seconds]
neoncontrails has joined #lisp
vertigo has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
mint has joined #lisp
neoncontrails has quit [Ping timeout: 240 seconds]
sebastien_ has quit [Quit: Stretch 9.3 reboot]
vertigo has quit [Ping timeout: 240 seconds]
dddddd has joined #lisp
neoncontrails has joined #lisp
sebastien_ has joined #lisp
neoncontrails has quit [Ping timeout: 255 seconds]
neoncontrails has joined #lisp
fikka has joined #lisp
neoncontrails has quit [Ping timeout: 255 seconds]
Xal has quit [Ping timeout: 260 seconds]
neoncontrails has joined #lisp
LiamH has quit [Quit: Leaving.]
Xal has joined #lisp
neoncontrails has quit [Ping timeout: 258 seconds]
neoncontrails has joined #lisp
knobo has joined #lisp
scymtym_ has quit [Ping timeout: 250 seconds]
neoncontrails has quit [Ping timeout: 258 seconds]
pseudonymous has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
neoncontrails has joined #lisp
damke_ has joined #lisp
turkja has quit [Ping timeout: 240 seconds]
neoncontrails has quit [Ping timeout: 255 seconds]
knobo has quit [Ping timeout: 240 seconds]
neoncontrails has joined #lisp
knobo has joined #lisp
neoncontrails has quit [Ping timeout: 255 seconds]
neoncontrails has joined #lisp
lisp_guest has joined #lisp
<earl-ducaine>
Devon: It depends a bit on what you're trying to do. But one approach would be to create custom streams along the lines of string output stream and string input string, i.e. create a byte stream that converts and writes characters to the output stream.
<earl-ducaine>
Then rename that stream to *be* the output stream.
<beach>
earl-ducaine: In that blog of yours, indentation is screwed up.
<Devon>
earl-ducaine: I'll see how it's done in flexi-streams
<beach>
earl-ducaine: I mean indentation in the code examples.
<beach>
earl-ducaine: And in one example, you have two consecutive lines with (let (rest) on them.
<beach>
earl-ducaine: Plus, when you write (let (result) ...) the reader expects RESULT to be assigned to before being used. If you want to initialize it to the empty list, it is best to write (let ((result '())) ...)
<earl-ducaine>
Beach: thanks! Yeah. Bike pointed that out.
<beach>
Ah, OK.
<earl-ducaine>
Problems of trying to blog with emacs. :)
<beach>
I see.
knobo has quit [Ping timeout: 240 seconds]
<Devon>
No apropos matches for ‘blog’
<earl-ducaine>
Devon: I think that approach would require you to create your own stream subclass. So, the flexi stream library would be a good place to see how that's down.
<fiddlerwoaroof>
Yeah, I'm perfectly fine with my configuration :)
<fiddlerwoaroof>
I think, sometimes people have indentation issues because lisp-mode is using the emacs-lisp indentation function
damke has quit [Ping timeout: 240 seconds]
Tobbi has joined #lisp
manjaro has joined #lisp
manjaro has quit [Client Quit]
<fiddlerwoaroof>
If you do M-: lisp-indent-function<RET>, you should see common-lisp-input-function in the message arez
<fiddlerwoaroof>
s/z/a
* Devon
considers trashing his init file and starting over
sz0 has quit [Quit: Connection closed for inactivity]
damke_ has quit [Ping timeout: 240 seconds]
quazimodo has joined #lisp
drcode_ has joined #lisp
smurfrobot has quit [Remote host closed the connection]
drcode has quit [Ping timeout: 248 seconds]
knobo has quit [Ping timeout: 268 seconds]
quazimodo has quit [Ping timeout: 240 seconds]
Fare has quit [Quit: Leaving]
knobo has joined #lisp
fikka has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
smurfrobot has quit [Ping timeout: 248 seconds]
Jen has joined #lisp
Jen is now known as Guest93005
SuperJen has quit [Ping timeout: 255 seconds]
scymtym has joined #lisp
orivej_ is now known as orivej
xor-xor has joined #lisp
dddddd has quit [Ping timeout: 248 seconds]
quazimodo has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
vlatkoB has quit [Remote host closed the connection]
kark has joined #lisp
quazimodo has joined #lisp
quazimodo has quit [Read error: Connection reset by peer]
dddddd has joined #lisp
shenghi has quit [Remote host closed the connection]
shenghi has joined #lisp
jfb4 has quit [Ping timeout: 252 seconds]
raphaelss has quit [Ping timeout: 248 seconds]
jfb4 has joined #lisp
damke_ has joined #lisp
fikka has joined #lisp
quazimodo has joined #lisp
shrdlu68 has quit [Ping timeout: 260 seconds]
knobo has quit [Ping timeout: 248 seconds]
xor-xor has quit [Quit: Killed by buffer]
knobo has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
wigust has joined #lisp
shrdlu68 has joined #lisp
kark has quit [Ping timeout: 258 seconds]
kark has joined #lisp
kartik1 has joined #lisp
fikka has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
damke has joined #lisp
quazimodo has quit [Ping timeout: 248 seconds]
kark has quit [Ping timeout: 255 seconds]
damke_ has quit [Ping timeout: 240 seconds]
CrazyEddy has quit [Remote host closed the connection]
Rawriful has joined #lisp
<drmeister>
Are there any lispers who use docker-compose and know how to get 'volumes:' to work? I am building a Common Lisp docker image and I'm banging my head against a wall for the past hour trying to get volumes to work.
<drmeister>
Off topic - I know - but my cries in more appropriate wildernesses bringing no succor.
peccu1 has joined #lisp
<earl-ducaine>
parjanya: I'm planning on totally revising my approach. Each post will be an org document, I'll use tangle tags to extract all the lisp code into an ASDF project and export as HTML to generate the HTML, which I'll publish to word press as files.
<earl-ducaine>
there are still a few details to work out like how to handle stylesheets....
peccu has quit [Ping timeout: 240 seconds]
<earl-ducaine>
Previously my technique was just copy-and-paste from emacs to wordpress editor, which is problematic.
butterthebuddha has quit [Max SendQ exceeded]
test1600 has quit [Ping timeout: 268 seconds]
butterthebuddha has joined #lisp
<earl-ducaine>
drmeister: what are you trying to do with volumes?
<earl-ducaine>
the big trick that I've run into is the to use them you need to 'run' them first, and that specifying *where* they're located no the host, i.e. host path and where they're mounted in the container is tricky.
<drmeister>
earl-ducaine: Thanks for responding! I want to mount a directory from the host that contains a .tgz file and then untar it into the docker container.
z3t0 has joined #lisp
<drmeister>
'run' them first? Could you elaborate?
pierpa has joined #lisp
<drmeister>
I can ADD the .tgz file to the docker container but then it adds a lot of useless space to resulting image
python476 has quit [Remote host closed the connection]
epony has quit [Remote host closed the connection]
<earl-ducaine>
drmeister: I'm not a docker expert.... so this is probably not the 'best' way. But it should work... give me a couple minututes and i'll post the example to pastebin.
<drmeister>
Thank you!
<earl-ducaine>
drmeister: while your waiting.... (the code is on another machine) the command I'm using is: docker creat -v /some/directory blah blah
<drmeister>
Oh - I'm familiar with mounting directories using: docker -v ... that works very reliably.
<drmeister>
I use docker-compose kind of like a 'makefile' for docker - I was trying to get the 'volumes:' keyword of a docker-compose.yml file to work. I _thought_ it played the role of 'docker -v ...' mounting a host directory within the docker container that docker-compose starts up.
<drmeister>
I can _not_ use docker-compose and drop down to just using docker, I suppose. It just irks me when a feature that appears to be the appropriate one (volume:) fails and especially when it fails silently.
* drmeister
is irked.
<drmeister>
Unless I misunderstand your meaning. In any event - I look forward to your advice.
z3t0 has quit [Quit: Leaving...]
cmatei has quit [Ping timeout: 248 seconds]
zaquest has quit [Remote host closed the connection]
<earl-ducaine>
ok. I was being an idiot (i.e. giving you the long way round) all you need to do is something like this:
<earl-ducaine>
/holt/dir being a directory on your host. /opt/cointainer being the directory on the container where it's mapped.
<earl-ducaine>
What I was describing previously was a way to take an existing docker image and mount it as a volume in another runing instance. very powerful but not at all what you need.
<earl-ducaine>
drmeister: oop just saw your latest msgs, cheers!
<drmeister>
No problem! I really appreciate the time you took.
zaquest has joined #lisp
<earl-ducaine>
For a moment I got exited that I could help out someone nearly as docker inept as myself! ....until you gently pointed out that I misunderstood the question.
knobo has quit [Ping timeout: 255 seconds]
<drmeister>
No worries - I've subsequently learned that what I want (mount a directory during docker build) is not possible!
knobo has joined #lisp
<drmeister>
Apparently it was a design choice to improve portability.