<thatpythonboy>
they say they made defun using cond,quote,atom,car,cdr,cons .... but they say label
<thatpythonboy>
they say they made defun using cond,quote,atom,car,cdr,cons .... but they say label
<thatpythonboy>
they say they made defun using cond,quote,atom,car,cdr,cons .... but they say label
<thatpythonboy>
now label doesn't exist in lisp
<thatpythonboy>
now label doesn't exist in lisp
<thatpythonboy>
now label doesn't exist in lisp
<thatpythonboy>
anyone knows?
<thatpythonboy>
anyone knows?
<thatpythonboy>
anyone knows?
<thatpythonboy>
others wise send me a memo using memoserv
<thatpythonboy>
others wise send me a memo using memoserv
<thatpythonboy>
others wise send me a memo using memoserv
<Bike>
labels does exist in lisp
<Bike>
labels does exist in lisp
<Bike>
labels does exist in lisp
dude2 has joined #lisp
dude2 has joined #lisp
dude2 has joined #lisp
<Bike>
defun is a macro, so it coudln't be defined with just some functions
<Bike>
defun is a macro, so it coudln't be defined with just some functions
<Bike>
defun is a macro, so it coudln't be defined with just some functions
<Bike>
but maybe i don't understand what you mean
<Bike>
but maybe i don't understand what you mean
<Bike>
but maybe i don't understand what you mean
<thatpythonboy>
in maccarthy's paper he says we can define defun using just primitives
<thatpythonboy>
in maccarthy's paper he says we can define defun using just primitives
<thatpythonboy>
in maccarthy's paper he says we can define defun using just primitives
<Bike>
do you mean the "The Roots of Lisp" paper linked near the top?
<Bike>
do you mean the "The Roots of Lisp" paper linked near the top?
<Bike>
do you mean the "The Roots of Lisp" paper linked near the top?
<thatpythonboy>
ya
<thatpythonboy>
ya
<thatpythonboy>
ya
<Bike>
that's not by mccarthy, it's by paul graham. and, if you mean on page 5, defun is actually introduced as an abbreviation outside the language.
<Bike>
that's not by mccarthy, it's by paul graham. and, if you mean on page 5, defun is actually introduced as an abbreviation outside the language.
<Bike>
that's not by mccarthy, it's by paul graham. and, if you mean on page 5, defun is actually introduced as an abbreviation outside the language.
<Bike>
the actual definition of eval on page 8 does not seem to handle defun.
<Bike>
the actual definition of eval on page 8 does not seem to handle defun.
<Bike>
the actual definition of eval on page 8 does not seem to handle defun.
<thatpythonboy>
what do you mean
<thatpythonboy>
what do you mean
<thatpythonboy>
what do you mean
<Bike>
I mean that "defun" is introduced as shorthand for the reader. The actual evaluator program does not handle it.
<Bike>
I mean that "defun" is introduced as shorthand for the reader. The actual evaluator program does not handle it.
<Bike>
I mean that "defun" is introduced as shorthand for the reader. The actual evaluator program does not handle it.
<thatpythonboy>
but defun does handle eval
<thatpythonboy>
but defun does handle eval
<thatpythonboy>
but defun does handle eval
<Bike>
The evaluator on page 8 doesn't handle defun, does it?
<Bike>
The evaluator on page 8 doesn't handle defun, does it?
<Bike>
The evaluator on page 8 doesn't handle defun, does it?
<thatpythonboy>
no
<thatpythonboy>
no
<thatpythonboy>
no
<Bike>
I don't see any mention of defun.
<Bike>
I don't see any mention of defun.
<Bike>
I don't see any mention of defun.
<thatpythonboy>
ok look lets say there is no defun in the language... then how will eval work??
<thatpythonboy>
ok look lets say there is no defun in the language... then how will eval work??
<thatpythonboy>
ok look lets say there is no defun in the language... then how will eval work??
<thatpythonboy>
it won't so lisp shouldn't exist
<thatpythonboy>
it won't so lisp shouldn't exist
<thatpythonboy>
it won't so lisp shouldn't exist
<Bike>
In that case eval would work with a predefined and/or empty environment to which no new definitions could be added.
<Bike>
In that case eval would work with a predefined and/or empty environment to which no new definitions could be added.
<Bike>
In that case eval would work with a predefined and/or empty environment to which no new definitions could be added.
<Bike>
You can still do things in a language like that, though it's a little inconvenient.
<Bike>
You can still do things in a language like that, though it's a little inconvenient.
<Bike>
You can still do things in a language like that, though it's a little inconvenient.
<Bike>
defun means state and mutation, which don't seem to be handled in this simple paper.
<Bike>
defun means state and mutation, which don't seem to be handled in this simple paper.
<Bike>
defun means state and mutation, which don't seem to be handled in this simple paper.
<thatpythonboy>
what about in maccarthy's paper on recursive functions
<thatpythonboy>
what about in maccarthy's paper on recursive functions
<thatpythonboy>
what about in maccarthy's paper on recursive functions
<Bike>
i haven't read it in a while, but i wouldn't be surprised to find it also skips these things. Mutation makes math harder and so in math definitions are usually kept as metalanguage.
<Bike>
i haven't read it in a while, but i wouldn't be surprised to find it also skips these things. Mutation makes math harder and so in math definitions are usually kept as metalanguage.
<Bike>
i haven't read it in a while, but i wouldn't be surprised to find it also skips these things. Mutation makes math harder and so in math definitions are usually kept as metalanguage.
<Bike>
assuming you mean "Recursive functions of symbolic expressions and their computation by machine"
<Bike>
assuming you mean "Recursive functions of symbolic expressions and their computation by machine"
<Bike>
assuming you mean "Recursive functions of symbolic expressions and their computation by machine"
dhil has quit [Ping timeout: 256 seconds]
dhil has quit [Ping timeout: 256 seconds]
dhil has quit [Ping timeout: 256 seconds]
<thatpythonboy>
why you say mutation
<thatpythonboy>
why you say mutation
<thatpythonboy>
why you say mutation
<Bike>
because that's what i mean. effecting a change.
<Bike>
because that's what i mean. effecting a change.
<Bike>
because that's what i mean. effecting a change.
<thatpythonboy>
but functions are different? side-effect is the only thing i know of ... how could they mutate by default
<thatpythonboy>
but functions are different? side-effect is the only thing i know of ... how could they mutate by default
<thatpythonboy>
but functions are different? side-effect is the only thing i know of ... how could they mutate by default
<moon-child>
'defun' mutates the global environment, by introducing a definition for a function
<moon-child>
'defun' mutates the global environment, by introducing a definition for a function
<moon-child>
'defun' mutates the global environment, by introducing a definition for a function
<thatpythonboy>
can we make defun with just atom,cond,quote,car,cdr,cons
<thatpythonboy>
can we make defun with just atom,cond,quote,car,cdr,cons
<thatpythonboy>
can we make defun with just atom,cond,quote,car,cdr,cons
<_death>
see what EVAL. does there in the case of LABEL, it calls itself with the definition consed to the environment
<_death>
see what EVAL. does there in the case of LABEL, it calls itself with the definition consed to the environment
<_death>
see what EVAL. does there in the case of LABEL, it calls itself with the definition consed to the environment
<moon-child>
you can certainly implement a language with defun using only those primitives. That's trivial. Turing equivalence
<moon-child>
you can certainly implement a language with defun using only those primitives. That's trivial. Turing equivalence
<moon-child>
you can certainly implement a language with defun using only those primitives. That's trivial. Turing equivalence
dude2 has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
dude2 has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
dude2 has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
<Bike>
it depends on what you mean. those primitives don't allow any mutation of structures. you'd have to emulate another language.
<Bike>
it depends on what you mean. those primitives don't allow any mutation of structures. you'd have to emulate another language.
<Bike>
it depends on what you mean. those primitives don't allow any mutation of structures. you'd have to emulate another language.
<thatpythonboy>
are those primitives turing complete?
<thatpythonboy>
are those primitives turing complete?
<thatpythonboy>
are those primitives turing complete?
<moon-child>
yes
<moon-child>
yes
<moon-child>
yes
<Bike>
assuming you have lambda, you don't actually need any of them to be turing complete.
<Bike>
assuming you have lambda, you don't actually need any of them to be turing complete.
<Bike>
assuming you have lambda, you don't actually need any of them to be turing complete.
<thatpythonboy>
excluding lambda and defun
<thatpythonboy>
excluding lambda and defun
<thatpythonboy>
excluding lambda and defun
<thatpythonboy>
and label as well
<thatpythonboy>
and label as well
<thatpythonboy>
and label as well
<thatpythonboy>
i doubt it
<thatpythonboy>
i doubt it
<thatpythonboy>
i doubt it
<moon-child>
no
<moon-child>
no
<moon-child>
no
<Bike>
If you don't have lambda you can't define functions anyway.
<Bike>
If you don't have lambda you can't define functions anyway.
<Bike>
If you don't have lambda you can't define functions anyway.
<thatpythonboy>
paul graham claims using just these primitive we have a model of computation, turing complete... lol
<thatpythonboy>
paul graham claims using just these primitive we have a model of computation, turing complete... lol
<thatpythonboy>
paul graham claims using just these primitive we have a model of computation, turing complete... lol
<thatpythonboy>
and he keeps saying that i am like super confused
<thatpythonboy>
and he keeps saying that i am like super confused
<thatpythonboy>
and he keeps saying that i am like super confused
<Bike>
lambda by itself is turing complete. it's called lambda calculus.
<Bike>
lambda by itself is turing complete. it's called lambda calculus.
<Bike>
lambda by itself is turing complete. it's called lambda calculus.
<thatpythonboy>
of course
<thatpythonboy>
of course
<thatpythonboy>
of course
<thatpythonboy>
y-combinator does functions
<thatpythonboy>
y-combinator does functions
<thatpythonboy>
y-combinator does functions
<Bike>
i don't see any statement about turing completeness in this, except to say that turing machine definitions are "not very edifying to read", which is true
<Bike>
i don't see any statement about turing completeness in this, except to say that turing machine definitions are "not very edifying to read", which is true
<Bike>
i don't see any statement about turing completeness in this, except to say that turing machine definitions are "not very edifying to read", which is true
<thatpythonboy>
i get the lambda calculus part, but not the lisp part...
<thatpythonboy>
i get the lambda calculus part, but not the lisp part...
<thatpythonboy>
i get the lambda calculus part, but not the lisp part...
<thatpythonboy>
but lisp machines are...
<thatpythonboy>
but lisp machines are...
<thatpythonboy>
but lisp machines are...
<Bike>
what's to get?
<Bike>
what's to get?
<Bike>
what's to get?
bilegeek has joined #lisp
bilegeek has joined #lisp
bilegeek has joined #lisp
<thatpythonboy>
he assumes that without lambda,label we can make turing complete model of computation-lisp model... i don't get that lisp part
<thatpythonboy>
he assumes that without lambda,label we can make turing complete model of computation-lisp model... i don't get that lisp part
<thatpythonboy>
he assumes that without lambda,label we can make turing complete model of computation-lisp model... i don't get that lisp part
<Bike>
where does he say that?
<Bike>
where does he say that?
<Bike>
where does he say that?
<thatpythonboy>
he professes that repeatedly throughout the article root of lisp
<thatpythonboy>
he professes that repeatedly throughout the article root of lisp
<thatpythonboy>
he professes that repeatedly throughout the article root of lisp
<Bike>
i have the article open in front of me and i don't see anything about removing lambda. what page is this?
<Bike>
i have the article open in front of me and i don't see anything about removing lambda. what page is this?
<Bike>
i have the article open in front of me and i don't see anything about removing lambda. what page is this?
<thatpythonboy>
he never used lambdas while making eval
<thatpythonboy>
he never used lambdas while making eval
<thatpythonboy>
he never used lambdas while making eval
aartaka_d has joined #lisp
aartaka_d has joined #lisp
aartaka_d has joined #lisp
<Bike>
Sure he did. Defun is an abbreviation for labels, which is lambda plus y combinators.
<Bike>
Sure he did. Defun is an abbreviation for labels, which is lambda plus y combinators.
<Bike>
Sure he did. Defun is an abbreviation for labels, which is lambda plus y combinators.
<Bike>
Eval calls itself recursively, so something like that is necessary.
<Bike>
Eval calls itself recursively, so something like that is necessary.
<Bike>
Eval calls itself recursively, so something like that is necessary.
<thatpythonboy>
yes but he says label doesn't exist, just these primitives
<thatpythonboy>
yes but he says label doesn't exist, just these primitives
<thatpythonboy>
yes but he says label doesn't exist, just these primitives
kevingal has quit [Remote host closed the connection]
kevingal has quit [Remote host closed the connection]
kevingal_ has quit [Remote host closed the connection]
kevingal_ has quit [Remote host closed the connection]
kevingal_ has quit [Remote host closed the connection]
kevingal has quit [Remote host closed the connection]
<Bike>
Yes, it's an abbreviation for lambda plus y combinators, as he mentions in footnote 3.
<Bike>
Yes, it's an abbreviation for lambda plus y combinators, as he mentions in footnote 3.
<Bike>
Yes, it's an abbreviation for lambda plus y combinators, as he mentions in footnote 3.
<thatpythonboy>
but secretly uses labels and instead claims it's due to primitives "only"
<thatpythonboy>
but secretly uses labels and instead claims it's due to primitives "only"
<thatpythonboy>
but secretly uses labels and instead claims it's due to primitives "only"
<Bike>
I don't see anything in this where he talks about lambda not being primitive.
<Bike>
I don't see anything in this where he talks about lambda not being primitive.
<Bike>
I don't see anything in this where he talks about lambda not being primitive.
edgar-xyz has joined #lisp
edgar-xyz has joined #lisp
edgar-xyz has joined #lisp
aartaka has quit [Ping timeout: 256 seconds]
aartaka has quit [Ping timeout: 256 seconds]
aartaka has quit [Ping timeout: 256 seconds]
<thatpythonboy>
he very clearly is talking about those 7 operators, and keeps saying using "just these" seven...cond,atom,quote,car,cdr,cons we have an elegant model of computation
<thatpythonboy>
he very clearly is talking about those 7 operators, and keeps saying using "just these" seven...cond,atom,quote,car,cdr,cons we have an elegant model of computation
<thatpythonboy>
he very clearly is talking about those 7 operators, and keeps saying using "just these" seven...cond,atom,quote,car,cdr,cons we have an elegant model of computation
<thatpythonboy>
i didn't knew he was lying but now i know
<thatpythonboy>
i didn't knew he was lying but now i know
<thatpythonboy>
i didn't knew he was lying but now i know
<Bike>
I think you are misinterpreting what he's saying.
<Bike>
I think you are misinterpreting what he's saying.
<Bike>
I think you are misinterpreting what he's saying.
<Bike>
He goes through a lot of effort to define lambda.
<Bike>
He goes through a lot of effort to define lambda.
<Bike>
He goes through a lot of effort to define lambda.
edgar-rft has quit [Ping timeout: 245 seconds]
edgar-rft has quit [Ping timeout: 245 seconds]
edgar-rft has quit [Ping timeout: 245 seconds]
dbotton has joined #lisp
dbotton has joined #lisp
dbotton has joined #lisp
<thatpythonboy>
he shouldn't have said using these 9 primitives lambda,label+7 others we have a lisp model
<thatpythonboy>
he shouldn't have said using these 9 primitives lambda,label+7 others we have a lisp model
<thatpythonboy>
he shouldn't have said using these 9 primitives lambda,label+7 others we have a lisp model
<Bike>
i mean, with lambda, quote, atom, eq, car, cdr, cons, cond, you do actually have a lisp model. the lisp model is the eval function.
<Bike>
i mean, with lambda, quote, atom, eq, car, cdr, cons, cond, you do actually have a lisp model. the lisp model is the eval function.
<Bike>
i mean, with lambda, quote, atom, eq, car, cdr, cons, cond, you do actually have a lisp model. the lisp model is the eval function.
<thatpythonboy>
but he didnt say
<thatpythonboy>
but he didnt say
<thatpythonboy>
but he didnt say
<Bike>
The eval function is at the climax of the article. It seems pretty obvious to me that it is the model in question.
<Bike>
The eval function is at the climax of the article. It seems pretty obvious to me that it is the model in question.
<Bike>
The eval function is at the climax of the article. It seems pretty obvious to me that it is the model in question.
<Bike>
If he said it didn't use lambda, he was mistaken, because by his own definitions it obviously does.
<Bike>
If he said it didn't use lambda, he was mistaken, because by his own definitions it obviously does.
<Bike>
If he said it didn't use lambda, he was mistaken, because by his own definitions it obviously does.
<thatpythonboy>
he is a liar he said he used "only" or "just" 7 primitives he lied very clear
<thatpythonboy>
he is a liar he said he used "only" or "just" 7 primitives he lied very clear
<thatpythonboy>
he is a liar he said he used "only" or "just" 7 primitives he lied very clear
<Bike>
Okay. Sure.
<Bike>
Okay. Sure.
<Bike>
Okay. Sure.
<thatpythonboy>
paul graham-"Using just quote,atom,eq,car,cdr,cons and cond, we can define a function, eval., that actually implements our language, and then using that we can define any additional functions we want" - liar
<thatpythonboy>
paul graham-"Using just quote,atom,eq,car,cdr,cons and cond, we can define a function, eval., that actually implements our language, and then using that we can define any additional functions we want" - liar
<thatpythonboy>
paul graham-"Using just quote,atom,eq,car,cdr,cons and cond, we can define a function, eval., that actually implements our language, and then using that we can define any additional functions we want" - liar
<thatpythonboy>
it kept bothering me how the heck did he implement without lambda,label that thing....
<thatpythonboy>
it kept bothering me how the heck did he implement without lambda,label that thing....
<thatpythonboy>
it kept bothering me how the heck did he implement without lambda,label that thing....
<thatpythonboy>
kept wasting my time
<thatpythonboy>
kept wasting my time
<thatpythonboy>
kept wasting my time
<Bike>
If you really want to ascribe that to malice rather than sloppiness go ahead I guess.
<Bike>
If you really want to ascribe that to malice rather than sloppiness go ahead I guess.
<Bike>
If you really want to ascribe that to malice rather than sloppiness go ahead I guess.
<thatpythonboy>
not that my time that precious
<thatpythonboy>
not that my time that precious
<thatpythonboy>
not that my time that precious
<thatpythonboy>
he confused me like hell
<thatpythonboy>
he confused me like hell
<thatpythonboy>
he confused me like hell
curtosis is now known as curtosis[away]
curtosis is now known as curtosis[away]
curtosis is now known as curtosis[away]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
* moon-child
wonders why car/cdr/cons need to be primitives
* moon-child
wonders why car/cdr/cons need to be primitives
* moon-child
wonders why car/cdr/cons need to be primitives
MetaYan has quit [Ping timeout: 256 seconds]
MetaYan has quit [Ping timeout: 256 seconds]
MetaYan has quit [Ping timeout: 256 seconds]
<moon-child>
why not cons = \ad.\f.fad; car = \c.c(\ad.a); cdr = \c.c(\ad.d)
<moon-child>
why not cons = \ad.\f.fad; car = \c.c(\ad.a); cdr = \c.c(\ad.d)
<moon-child>
why not cons = \ad.\f.fad; car = \c.c(\ad.a); cdr = \c.c(\ad.d)
bugrum has quit [Remote host closed the connection]
bugrum has quit [Remote host closed the connection]
bugrum has quit [Remote host closed the connection]
wxie has joined #lisp
wxie has joined #lisp
wxie has joined #lisp
mrchampion has quit [Remote host closed the connection]
mrchampion has quit [Remote host closed the connection]
mrchampion has quit [Remote host closed the connection]
<thatpythonboy>
i still feel that car,cdr,cons can make it turing complete as car would pick the first, and cdr the last, and join them... maybe we can make lambdas using them with conds combined atom,quote,eq.?
<thatpythonboy>
i still feel that car,cdr,cons can make it turing complete as car would pick the first, and cdr the last, and join them... maybe we can make lambdas using them with conds combined atom,quote,eq.?
<thatpythonboy>
i still feel that car,cdr,cons can make it turing complete as car would pick the first, and cdr the last, and join them... maybe we can make lambdas using them with conds combined atom,quote,eq.?
<moon-child>
no
<moon-child>
no
<moon-child>
no
long4mud has joined #lisp
long4mud has joined #lisp
long4mud has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
contrapunctus has joined #lisp
contrapunctus has joined #lisp
<moon-child>
you can't do unbounded computation with only those primitives
<moon-child>
you can't do unbounded computation with only those primitives
<moon-child>
you can't do unbounded computation with only those primitives
dbotton has quit [Quit: This computer has gone to sleep]
dbotton has quit [Quit: This computer has gone to sleep]
dbotton has quit [Quit: This computer has gone to sleep]
Stanley00 has joined #lisp
Stanley00 has joined #lisp
Stanley00 has joined #lisp
karlosz has joined #lisp
karlosz has joined #lisp
karlosz has joined #lisp
mrchampion has joined #lisp
mrchampion has joined #lisp
mrchampion has joined #lisp
bilegeek_ has joined #lisp
bilegeek_ has joined #lisp
bilegeek_ has joined #lisp
pokes_ has quit [Ping timeout: 264 seconds]
pokes_ has quit [Ping timeout: 264 seconds]
pokes_ has quit [Ping timeout: 264 seconds]
bilegeek has quit [Ping timeout: 264 seconds]
bilegeek has quit [Ping timeout: 264 seconds]
bilegeek has quit [Ping timeout: 264 seconds]
curtosis has joined #lisp
curtosis has joined #lisp
curtosis has joined #lisp
<fiddlerwoaroof_>
car/cdr/cons _don't_ need to be primitives
<fiddlerwoaroof_>
car/cdr/cons _don't_ need to be primitives
<fiddlerwoaroof_>
car/cdr/cons _don't_ need to be primitives
notzmv has joined #lisp
notzmv has joined #lisp
notzmv has joined #lisp
hendursa3 has quit [Quit: hendursa3]
hendursa3 has quit [Quit: hendursa3]
hendursa3 has quit [Quit: hendursa3]
<Bike>
you need some way for a program to proceed through an unbounded number of distinct states.
<Bike>
you need some way for a program to proceed through an unbounded number of distinct states.
<Bike>
you need some way for a program to proceed through an unbounded number of distinct states.
<Bike>
recursion or infinite loops are usually how that goes.
<Bike>
recursion or infinite loops are usually how that goes.
<Bike>
recursion or infinite loops are usually how that goes.
<fiddlerwoaroof_>
I saw slyrus's soiree, but had performance issues and got annoyed by dealing with XML/XPath, so I wrote a simple parser that parses an iCalendar file and genreates events
<fiddlerwoaroof_>
I saw slyrus's soiree, but had performance issues and got annoyed by dealing with XML/XPath, so I wrote a simple parser that parses an iCalendar file and genreates events
<fiddlerwoaroof_>
I saw slyrus's soiree, but had performance issues and got annoyed by dealing with XML/XPath, so I wrote a simple parser that parses an iCalendar file and genreates events
rickygee has joined #lisp
rickygee has joined #lisp
rickygee has joined #lisp
<fiddlerwoaroof_>
So I can pull my calendar into sqlite and then use datasette to get a website for it
<fiddlerwoaroof_>
So I can pull my calendar into sqlite and then use datasette to get a website for it
<fiddlerwoaroof_>
So I can pull my calendar into sqlite and then use datasette to get a website for it
pankajsg has joined #lisp
pankajsg has joined #lisp
pankajsg has joined #lisp
curtosis is now known as curtosis[away]
curtosis is now known as curtosis[away]
curtosis is now known as curtosis[away]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
curtosis[away] has quit [Quit: My Mac Mini has gone to sleep. ZZZzzz…]
dbotton has joined #lisp
dbotton has joined #lisp
dbotton has joined #lisp
charles` has quit [Read error: Connection reset by peer]
charles` has quit [Read error: Connection reset by peer]
charles` has quit [Read error: Connection reset by peer]
dbotton has quit [Client Quit]
dbotton has quit [Client Quit]
dbotton has quit [Client Quit]
gko has joined #lisp
gko has joined #lisp
gko has joined #lisp
marusich has joined #lisp
marusich has joined #lisp
marusich has joined #lisp
charles` has joined #lisp
charles` has joined #lisp
charles` has joined #lisp
charles` has quit [Ping timeout: 244 seconds]
charles` has quit [Ping timeout: 244 seconds]
charles` has quit [Ping timeout: 244 seconds]
Oladon has quit [Quit: Leaving.]
Oladon has quit [Quit: Leaving.]
Oladon has quit [Quit: Leaving.]
MetaYan has joined #lisp
MetaYan has joined #lisp
MetaYan has joined #lisp
hendursaga has joined #lisp
hendursaga has joined #lisp
hendursaga has joined #lisp
semz has quit [Ping timeout: 244 seconds]
semz has quit [Ping timeout: 244 seconds]
semz has quit [Ping timeout: 244 seconds]
hendursaga has quit [Remote host closed the connection]
hendursaga has quit [Remote host closed the connection]
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
hendursaga has joined #lisp
hendursaga has joined #lisp
<drmeister>
fiddlerwoaroof_: I finished implementing save-lisp-and-die in clasp. I got the startup time for our cando scientific programming environment down from 40 seconds to 5 seconds. I hope for better performance in the future. There's an engineer at Apple who's working with us on it.
<drmeister>
fiddlerwoaroof_: I finished implementing save-lisp-and-die in clasp. I got the startup time for our cando scientific programming environment down from 40 seconds to 5 seconds. I hope for better performance in the future. There's an engineer at Apple who's working with us on it.
<drmeister>
fiddlerwoaroof_: I finished implementing save-lisp-and-die in clasp. I got the startup time for our cando scientific programming environment down from 40 seconds to 5 seconds. I hope for better performance in the future. There's an engineer at Apple who's working with us on it.
<drmeister>
70% of the time is now spent in llvm linking the 12,000 or so object files that are part of the image.
<drmeister>
70% of the time is now spent in llvm linking the 12,000 or so object files that are part of the image.
<drmeister>
70% of the time is now spent in llvm linking the 12,000 or so object files that are part of the image.
<drmeister>
General question: Does anyone remember the name of the thing that makes Common Lisp macros unsanitized?
<drmeister>
General question: Does anyone remember the name of the thing that makes Common Lisp macros unsanitized?
<drmeister>
General question: Does anyone remember the name of the thing that makes Common Lisp macros unsanitized?
<drmeister>
It's something like "capture"? - I don't recall. It's where macros can change the meaning of variables if you aren't careful to use gensyms.
<drmeister>
It's something like "capture"? - I don't recall. It's where macros can change the meaning of variables if you aren't careful to use gensyms.
<drmeister>
It's something like "capture"? - I don't recall. It's where macros can change the meaning of variables if you aren't careful to use gensyms.
<aeth>
For people not in the other channel... Fits more here since it's just trivia...
<aeth>
For people not in the other channel... Fits more here since it's just trivia...
<aeth>
For people not in the other channel... Fits more here since it's just trivia...
<aeth>
Generally, people only GENSYM stuff in the variable namespace, but hygiene is also an issue with the function namespace. You just rarely see it come up with the combination of packages, (non-standard but permitted) package locks, and the relative rarity of FLET as opposed to LET (i.e. CL being a Lisp-2).
<aeth>
Generally, people only GENSYM stuff in the variable namespace, but hygiene is also an issue with the function namespace. You just rarely see it come up with the combination of packages, (non-standard but permitted) package locks, and the relative rarity of FLET as opposed to LET (i.e. CL being a Lisp-2).
<aeth>
Generally, people only GENSYM stuff in the variable namespace, but hygiene is also an issue with the function namespace. You just rarely see it come up with the combination of packages, (non-standard but permitted) package locks, and the relative rarity of FLET as opposed to LET (i.e. CL being a Lisp-2).
<aeth>
If you use USE and you use FLET, you might see something like that come up eventually.
<aeth>
If you use USE and you use FLET, you might see something like that come up eventually.
<aeth>
If you use USE and you use FLET, you might see something like that come up eventually.
aindilis` has quit [Remote host closed the connection]
aindilis` has quit [Remote host closed the connection]
aindilis` has quit [Remote host closed the connection]
Oladon has joined #lisp
Oladon has joined #lisp
Oladon has joined #lisp
<fiddlerwoaroof_>
drmeister: I think you just mean "variable capture"?
<fiddlerwoaroof_>
drmeister: I think you just mean "variable capture"?
<fiddlerwoaroof_>
drmeister: I think you just mean "variable capture"?
<fiddlerwoaroof_>
drmeister: that's cool about s-l-a-d
<fiddlerwoaroof_>
drmeister: that's cool about s-l-a-d
<fiddlerwoaroof_>
drmeister: that's cool about s-l-a-d
<drmeister>
Yes - variable capture - thank you.
<drmeister>
Yes - variable capture - thank you.
<drmeister>
Yes - variable capture - thank you.
<drmeister>
I was trying to put into context some strange C++ macro handling in one of the garbage collectors we support - it essentially uses variable capture to optimize scanning memory.
<drmeister>
I was trying to put into context some strange C++ macro handling in one of the garbage collectors we support - it essentially uses variable capture to optimize scanning memory.
<drmeister>
I was trying to put into context some strange C++ macro handling in one of the garbage collectors we support - it essentially uses variable capture to optimize scanning memory.
mindCrime_ has quit [Ping timeout: 256 seconds]
mindCrime_ has quit [Ping timeout: 256 seconds]
mindCrime_ has quit [Ping timeout: 256 seconds]
Bike has quit [Quit: Lost terminal]
Bike has quit [Quit: Lost terminal]
Bike has quit [Quit: Lost terminal]
_whitelogger_ has quit [Remote host closed the connection]
_whitelogger__ has quit [Remote host closed the connection]
prxq has joined #lisp
dude2 has joined #lisp
prxq_ has quit [Ping timeout: 265 seconds]
bilegeek_ has quit [Quit: Leaving]
dude2 has quit [Client Quit]
kaiwulf has quit [Ping timeout: 256 seconds]
akoana has left #lisp ["Leaving"]
Alfr is now known as Guest35455
Guest35455 has quit [Killed (sinisalo.freenode.net (Nickname regained by services))]
Alfr has joined #lisp
Oladon has quit [Quit: Leaving.]
phantomics_ has joined #lisp
phantomics has quit [Ping timeout: 260 seconds]
wxie has quit [Ping timeout: 260 seconds]
Stanley00 has joined #lisp
fiddlerwoaroof_ is now known as fiddlerwoaroof
phantomics_ has quit [Ping timeout: 245 seconds]
fiddlerwoaroof has left #lisp ["Using Circe, the loveliest of all IRC clients"]
fiddlerwoaroof has joined #lisp
phantomics has joined #lisp
<fiddlerwoaroof>
hm
<beach>
Good morning everyone!
mindCrime_ has joined #lisp
pillton has joined #lisp
rickygee has quit [Ping timeout: 265 seconds]
mindCrime_ has quit [Ping timeout: 265 seconds]
tumdum has joined #lisp
tumdum has quit [Changing host]
tumdum has joined #lisp
asdflkj has quit [Quit: IRCNow and Forever!]
mindCrime_ has joined #lisp
wxie has joined #lisp
jonatack_ has quit [Ping timeout: 256 seconds]
hendursaga has quit [Remote host closed the connection]
asdflkj has joined #lisp
hendursaga has joined #lisp
tumdum has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
mindCrime_ has quit [Ping timeout: 256 seconds]
wxie has quit [Ping timeout: 265 seconds]
sauvin has joined #lisp
anticrisis has quit [Read error: Connection reset by peer]
anticrisis has joined #lisp
aartaka has joined #lisp
aartaka_d has quit [Ping timeout: 246 seconds]
frost-lab has joined #lisp
rickygee has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
toorevitimirp has joined #lisp
epony has quit [Read error: Connection reset by peer]
pillton has quit [Remote host closed the connection]
narimiran has joined #lisp
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
zooey has quit [Remote host closed the connection]
zooey has joined #lisp
waleee-cl has quit [Quit: Connection closed for inactivity]
shka_ has joined #lisp
asarch has joined #lisp
<asarch>
How would you concatenate a '\n'?
<loke[m]>
asarch: with what?
<asarch>
(setf buffer (concatenate 'string "The Quick Brown Fox" "\n"))
<loke[m]>
asarch: Sure, why not?
<asarch>
(set buffer (concatenate 'string buffer "Jumps over the lazy dog"))
<loke[m]>
Unless you epxect \n to mean something other than the two characters backslash and n
<asarch>
I get "The quick brown foxn" from the first concatenation
<loke[m]>
Right, you have to explain what you actually want.
<loke[m]>
I'm buessing what you really want is to append a neline to tne end of the string.
thatpythonboy has quit [Ping timeout: 256 seconds]
<beach>
I wonder what would happen if I joined (say) #python with a nick like "thatlispcodger".
<shinohai>
They'd prolly offer you some crayons to eat.
<beach>
Not that I am going to try. I am just musing about the extreme politeness of #lisp participants compared to what I hear about other IRC channels.
yitzi has quit [Quit: yitzi]
yitzi has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
kam1 has quit [Read error: Connection reset by peer]
supercoven has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
shifty has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
kevingal has joined #lisp
kevingal_ has joined #lisp
vegansbane6963 has joined #lisp
Stanley00 has quit [Remote host closed the connection]
eden has joined #lisp
vutral_ has quit [Quit: Connection closed for inactivity]
dhil has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
Stanley00 has joined #lisp
shifty has joined #lisp
luni has joined #lisp
yitzi has quit [Quit: yitzi]
cchristiansen has quit [Remote host closed the connection]
asarch has quit [Quit: Leaving]
<dim>
in my experience the PostgreSQL channels are of comparable welcoming and politeness too
<dim>
people often show up asking questions about mysql or rds/aurora or other non Postgres systems and they are politely pointed to the fact that Postgres knowledge can't be used to answer them and directed to other places, or sometimes the questions are answered too
<Xach>
dim: do people join and ask "i heard normalization is for chumps"?
luni has quit [Quit: Connection closed]
<beach>
Heh.
<beach>
Xach: Are you paraphrasing a particular utterance here?
<dim>
Xach: we have that kind of people yeah
<dim>
Xach: we have people who come and ask us to optimise their MySQL queries and schemas too, because they heard we're good at SQL...
<dim>
maybe that's comparable to people showing up here and asking about their scheme or emacs-lisp code?
<beach>
Here, I often observe the phenomenon that people will ask an unrelated question just because the relevant IRC channel is not active.
Stanley00 has quit [Remote host closed the connection]
supercoven_ has joined #lisp
gitgoood has quit [Read error: Connection reset by peer]
gitgood has joined #lisp
Stanley00 has joined #lisp
supercoven has quit [Ping timeout: 245 seconds]
mrchampion has quit [Ping timeout: 264 seconds]
Stanley00 has quit [Read error: Connection reset by peer]
Stanley00 has joined #lisp
Stanley00 has quit [Read error: Connection reset by peer]
Stanley00 has joined #lisp
mrchampion has joined #lisp
schweers has joined #lisp
john_ is now known as gaqwas
schweers has quit [Client Quit]
gaqwas has quit [Changing host]
gaqwas has joined #lisp
schweers has joined #lisp
<schweers>
Does anyone here have experience with deploying applications created with ABCL? I’m trying to create a jar file which includes everything the application needs, but I’m getting nowhere. I asked on #abcl a few days ago, but did not recieve an answer.
<minion>
schweers, memo from easye: RE: "abcl tries to load the contents from the surrounding host system (i.e. ~/common-lisp/": the inclusion of <file:~/common-lisp/> comes from having Quicklisp loaded. You can try mucking with the ASDF configuration or not having Quicklisp present in the process. Unfortunately, the packaging document is the most current description of the situation, but as you have found, it could use an update or two.
Stanley00 has quit [Remote host closed the connection]
<schweers>
huh
<schweers>
easye: I just got your message. I’m afraid it won’t help me, as simply moving ~/common-lisp/ should cause abcl to then load from within the jar, which is sadly not the case.
orivej has joined #lisp
Stanley00 has joined #lisp
shifty has quit [Ping timeout: 245 seconds]
long4mud has quit [Quit: WeeChat 3.0.1]
shifty has joined #lisp
frost-lab has quit [Quit: Connection closed]
luni has joined #lisp
Stanley00 has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 264 seconds]
notzmv has joined #lisp
orivej has joined #lisp
shifty has quit [Ping timeout: 245 seconds]
shifty has joined #lisp
orivej has quit [Ping timeout: 265 seconds]
ldbeth has joined #lisp
<ldbeth>
good afternnon
aartaka_d has joined #lisp
orivej has joined #lisp
aartaka has quit [Ping timeout: 265 seconds]
edgar-xyz has quit [Quit: Leaving]
edgar-rft has joined #lisp
Stanley00 has joined #lisp
mrchampion has quit [Ping timeout: 245 seconds]
Inline has quit [Ping timeout: 265 seconds]
orivej has quit [Ping timeout: 246 seconds]
cosimone has joined #lisp
kevingal_ has quit [Remote host closed the connection]
kevingal has quit [Remote host closed the connection]
kevingal has joined #lisp
shifty has quit [Ping timeout: 265 seconds]
andrei-n has joined #lisp
warweasle has joined #lisp
__jrjsmrtn__ has quit [Ping timeout: 264 seconds]
mrchampion has joined #lisp
__jrjsmrtn__ has joined #lisp
epony has joined #lisp
Sheilong has joined #lisp
luni has quit [Quit: Connection closed]
Stanley00 has quit [Remote host closed the connection]
ldbeth has quit [Ping timeout: 256 seconds]
Stanley00 has joined #lisp
Stanley00 has quit [Remote host closed the connection]
jonatack_ has joined #lisp
ldbeth has joined #lisp
yitzi has joined #lisp
ldbeth has quit [Ping timeout: 264 seconds]
pankajsg has quit [Read error: Connection reset by peer]
kevingal has quit [Remote host closed the connection]
kevingal has joined #lisp
kevingal_ has joined #lisp
kevingal_ has quit [Client Quit]
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
eden has quit [Quit: Leaving]
cyraxjoe has quit [Quit: No Ping reply in 180 seconds.]
cyraxjoe has joined #lisp
orivej has joined #lisp
surabax has joined #lisp
spal_ is now known as spal
matryoshka has quit [Ping timeout: 264 seconds]
matryoshka has joined #lisp
caret has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
azimut has quit [Ping timeout: 268 seconds]
Lycurgus has quit [Quit: Exeunt]
skapata has joined #lisp
asterope has joined #lisp
<asterope>
I have an asdf system that depends on a package that uses cffi to load some libraries, but each time I load it I need to manually point cffi to the right library directory and continue
kevingal has quit [Remote host closed the connection]
<asterope>
I need to either somehow hook into the loading process and execute some code after cffi loads or react to the exception it throws and continue automatically
kevingal has joined #lisp
<asterope>
can someone point me in the right direction to do either of those things?
cage_ has joined #lisp
Stanley00 has joined #lisp
Stanley00 has quit [Read error: Connection reset by peer]
<Xach>
asterope: That's a good question, I wish I could help, but I haven't seen that and don't know how to tweak CFFI that way.
<Bike>
i think cffi leaves finding libraries up to the implementation as much as possible. i think the only hook it has is *foreign-library-directories*, which it discourages using.
<asterope>
the cffi part is easy. I'm just changing the cffi::*foreign-library-directories* when it throws that it can't find the libraries
<Bike>
well, the manual says what it signals is load-foreign-library-error, so you can put a handler on that, maybe?
rigidus has joined #lisp
<jackdaniel>
asterope: what I do is that I'm closing all libraries before saving the image
<jackdaniel>
and put load-all-libraries in the initialization code
<jackdaniel>
(where load-all-libraries is your function that works on a preserved result of cffi:list-loaded-libraries from before you have closed them)
drbluefall has quit [Ping timeout: 246 seconds]
<jackdaniel>
or something in this spirit, I don't have the actual code nearby
<asterope>
reading about handling gives me the impression a handler has to "wrap around" the code that throws the exception
<Bike>
the code that signals has to be in the dynamic extent of the handler, yes.
<Bike>
in this case it seems like you'd put it around the load-foreign-library call.
orivej has joined #lisp
<asterope>
can it be somehow used globally using my .sbclrc? I don't load cffi directly and it's a quirk of my system that I need to hijack foreign-library-directories
<beach>
asterope: In Common Lisp we don't "throw exceptions". We "signal conditions". The distinction is important because the Common Lisp condition system is much more sophisticated than the exception systems of other languages. And Common Lisp has an operator THROW which does something completely different.
<Bike>
there is no way to define global handlers, no.
<Bike>
if you're doing asdf:load-system or something you could wrap it around that maybe?
<asterope>
sorry for the incorrect terminology, it's a condition of cffi:load-foreign-library-error
<asterope>
I think I could write a simple wrapper function, but then I'd have to remember not to use slime's ,load-system
aartaka has joined #lisp
aartaka_d has quit [Ping timeout: 246 seconds]
<phoe>
...or hook it to use your wrapper function
<Bike>
i think you can configure asdf to do that, yeah. however, why exactly do you need to work with foreign-library-directories dynamically? are you like, adding new entries to it whenever a load fails?
<asterope>
more specifically, guix install libraries to a directory in home dir, and cffi doesn't know that
<Bike>
how do other programs load libraries? all cffi does is use the lisp implementation, which almost certainly uses dlopen
<Bike>
(i mean, on posix)
nullx002 has joined #lisp
<asterope>
programs in the distribution are already changed to tolerate that, but for cffi I need to either set LD_LIBRARY_PATH or *foreigh-library-directiories*
shka_ has quit [Quit: Konversation terminated!]
<asterope>
just confirmed that I can rebind ql:quickload to a wrapper and slime will use it, I think that will solve it
curtosis[away] has joined #lisp
Inline has joined #lisp
shka_ has joined #lisp
<Bike>
we get questions like this not infrequently and i'm wondering if there's a comprehensive Right Thing To Do. ld.so.conf? something? do guix programs just never dlopen anything?
<Josh_2>
basically I have a long list of many strings, and I would like to conditionally remove some of the strings based on a list of strings to exclude
varjag has quit [Quit: ERC (IRC client for Emacs 26.3)]
<beach>
I don't think of that as removing a list from another, but hey.
<beach>
And what is the "conditionally" part?
<beach>
Otherwise, yes, that sounds like set-difference.
<Josh_2>
Oh right, yes It's not technically removing anything is it
<Josh_2>
just creating a new list from the difference
<White_Flame>
so, default quickload hides all warnings and only shows progress dots. *quickload-verbose* t shows the build stuff, but for all dependencies
<White_Flame>
is there a way to only be verbose for your dev projects that you're working on, and not the entire dependency tree?
<Shinmera>
No, but that's something Xach has been talking about wanting to add for ages.
<White_Flame>
ok
<White_Flame>
it can probably be cobbled up with some :around thingies on the asdf project triggers, but it's not a big enough deal to bother with that
<White_Flame>
I still need to tear out our ancient build tools and standardize everything on those more in-depth asdf features
galex-713 has quit [Ping timeout: 256 seconds]
luckless has joined #lisp
dbotton has joined #lisp
Klopsch has quit [Remote host closed the connection]
<Josh_2>
but basically I'm trying to get (args-from-validation-lists ..) to evaluate to a list like (message message2) and then add that to the end of that λ list
<Josh_2>
and the same with (list-of-lists->validators ..) that returns a list and I'm trying to add that list into my progn
<Josh_2>
I keep getting the error that args is unbound
warweasle has quit [Quit: rcirc on GNU Emacs 26.1]
<Bike>
nothing is obvious about double backquotes, i'm afraid
<Josh_2>
rip
<phoe>
I hate double backquote with a passion
<Bike>
try writing it with list operators instead at first
<Bike>
see where that takes you
<_death>
well, you have ',args in ,@(...) .. maybe just plain args will do
<Josh_2>
well that worked _death
<_death>
double backquote is not the culprit, this time ;)
<phoe>
but nonetheless it's a good occasion to let us all collectively complain about it
<phoe>
I hate double backquote
<Josh_2>
my macro writing macro was working until I added the ,@ .. so id didn't think it was because of the double backquotes
shifty has joined #lisp
hiroaki has quit [Ping timeout: 260 seconds]
<Bike>
what you have to understand is that double backquotes were inserted into creation by the demiurge to distract us from the true light of the emanations.
<Josh_2>
Yes that sounds about right
<phoe>
the demiurge had to insert distractions because otherwise we'd notice the gc pauses
galex-713 has quit [Ping timeout: 265 seconds]
charles` has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
narimiran has quit [Ping timeout: 256 seconds]
kam1 has joined #lisp
kam1 has quit [Read error: Connection reset by peer]
caret has quit [Read error: Connection reset by peer]
galex-713 has joined #lisp
<_death>
and on the third day, backquote was inserted, and it was good, and yet another backquote was inserted, and was now 2*good.
hiroaki has joined #lisp
Lord_of_Life has quit [Ping timeout: 265 seconds]
galex-713_ has joined #lisp
galex-713 has quit [Ping timeout: 265 seconds]
vutral_ has quit [Quit: Connection closed for inactivity]
orivej has quit [Ping timeout: 264 seconds]
kam1 has joined #lisp
kam1 has quit [Read error: Connection reset by peer]
DHARMAKAYA has joined #lisp
aindilis has joined #lisp
mathrick has quit [Ping timeout: 256 seconds]
pankajsg has quit [Ping timeout: 245 seconds]
<jasom>
I wouldn't go so far as saying I *hate* double backquote, but certainly refactoring into ,(function-that-uses-backquote) tends to be more readable
galex-713_ has quit [Ping timeout: 264 seconds]
SP41 has joined #lisp
shka_ has quit [Ping timeout: 246 seconds]
<fiddlerwoaroof>
phoe: I think it does, because the functions it calls does, but it's more of a quick hack than anything :)
orivej has joined #lisp
kam1 has joined #lisp
shifty has quit [Ping timeout: 244 seconds]
kam1 has quit [Read error: Connection reset by peer]
shifty has joined #lisp
cosimone has joined #lisp
Lycurgus has joined #lisp
mathrick has joined #lisp
galex-713 has joined #lisp
cage__ has quit [Quit: Leaving]
dbotton has quit [Quit: This computer has gone to sleep]
luni has quit [Quit: Connection closed]
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
shifty has joined #lisp
mindCrime_ has quit [Ping timeout: 246 seconds]
mindCrime_ has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
galex-713 has quit [Ping timeout: 265 seconds]
galex-713_ has joined #lisp
shifty has joined #lisp
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
frgo has joined #lisp
gaqwas has quit [Ping timeout: 260 seconds]
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
Jachy has joined #lisp
jonatack has quit [Read error: Connection reset by peer]
jonatack has joined #lisp
ficl has quit [Ping timeout: 260 seconds]
galex-713_ has quit [Ping timeout: 265 seconds]
galex-713 has joined #lisp
cchristiansen has joined #lisp
ljavorsk has joined #lisp
shifty has quit [Ping timeout: 260 seconds]
kam1 has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
<fiddlerwoaroof>
Hmm, I think pprint-logical-block might actually handle a bunch of those pritner control variables