t58 has quit [Quit: ah well it was good while it lasted]
nicktick has joined #lisp
Christ0pher has quit [Ping timeout: 240 seconds]
Christ0pher has joined #lisp
KaiLikesLinux has left #lisp [#lisp]
Lycurgus has joined #lisp
akoana has left #lisp ["Leaving"]
axion has joined #lisp
Christ0pher has quit [Ping timeout: 244 seconds]
Christ0pher has joined #lisp
ChoHag has quit [Ping timeout: 240 seconds]
KaiLikesLinux has joined #lisp
Christ0pher has quit [Ping timeout: 256 seconds]
axion has quit [Quit: WeeChat 2.8]
mfiano has joined #lisp
Christ0pher has joined #lisp
mfiano has quit [Client Quit]
mfiano has joined #lisp
bitmapper has quit [Ping timeout: 256 seconds]
terpri_ has joined #lisp
Christ0pher has quit [Ping timeout: 246 seconds]
mfiano has quit [Client Quit]
mfiano has joined #lisp
Christ0pher has joined #lisp
ChoHag has joined #lisp
terpri has quit [Ping timeout: 244 seconds]
ahungry has joined #lisp
Christ0pher has quit [Ping timeout: 240 seconds]
Christ0pher has joined #lisp
DataLinkDroid has joined #lisp
DataLinkDroid has quit [Quit: DataLinkDroid]
Christ0pher has quit [Ping timeout: 246 seconds]
Christ0pher has joined #lisp
Oladon has joined #lisp
jason_m has joined #lisp
EvW has quit [Ping timeout: 256 seconds]
Christ0pher has quit [Ping timeout: 256 seconds]
Christ0pher has joined #lisp
_Ark_ has quit [Ping timeout: 246 seconds]
ark has joined #lisp
Christ0pher has quit [Ping timeout: 264 seconds]
Christ0pher has joined #lisp
user__ has quit [Ping timeout: 260 seconds]
Christ0pher has quit [Ping timeout: 256 seconds]
Christ0pher has joined #lisp
Christ0pher has quit [Ping timeout: 256 seconds]
Christ0pher has joined #lisp
freshpassport has joined #lisp
davsebamse has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
efm_ has quit [Quit: Konversation terminated!]
_roman_ has joined #lisp
slyrus_ has joined #lisp
slyrus has quit [Ping timeout: 260 seconds]
Bike has quit [Quit: leaving]
Lycurgus has quit [Remote host closed the connection]
<beach>
Good morning everyone!
dominic34 has joined #lisp
dominic34 has quit [Ping timeout: 244 seconds]
bhartrihari has joined #lisp
gravicappa has joined #lisp
nicktick has quit [Ping timeout: 256 seconds]
shangul has joined #lisp
cosimone_ has quit [Ping timeout: 246 seconds]
Oladon has quit [Quit: Leaving.]
<KaiLikesLinux>
Morning, beach
<minion>
KaiLikesLinux, memo from phoe: like that, for instance
<KaiLikesLinux>
minion memo phoe what?
<KaiLikesLinux>
minion: memo for phoe: Like what???
<minion>
Remembered. I'll tell phoe when he/she/it next speaks.
cosimone_ has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
cosimone_ has quit [Read error: Connection reset by peer]
cosimone_ has joined #lisp
<beach>
KaiLikesLinux: phoe was just teaching you how to make minion give you a memo. You can look at the channel logs if you like.
Christ0pher has quit [Ping timeout: 240 seconds]
Christ0pher has joined #lisp
<KaiLikesLinux>
beach: Ironic, as I figured it out without that xd
<beach>
Oh well.
mrcom has quit [Ping timeout: 265 seconds]
mrcom has joined #lisp
gravicappa has quit [Ping timeout: 256 seconds]
cosimone_ is now known as cosimone
bhartrihari has left #lisp ["Disconnected: closed"]
nikkal has joined #lisp
KaiLikesLinux has left #lisp [#lisp]
Oladon has joined #lisp
zaquest has quit [Quit: Leaving]
dominic34 has joined #lisp
gxt has quit [Ping timeout: 240 seconds]
gxt has joined #lisp
OpenZen has quit [Ping timeout: 256 seconds]
cosimone has quit [Quit: Quit.]
Bourne has quit [Ping timeout: 244 seconds]
slyrus__ has joined #lisp
slyrus_ has quit [Ping timeout: 246 seconds]
CrazyEddy has quit [Ping timeout: 260 seconds]
joels has joined #lisp
bocaneri has joined #lisp
dominic34 has quit [Ping timeout: 244 seconds]
kopiyka has quit [Remote host closed the connection]
kopiyka has joined #lisp
nicktick has joined #lisp
ak5 has joined #lisp
Oladon has quit [Quit: Leaving.]
ak5 has quit [Client Quit]
roze has joined #lisp
ak5 has joined #lisp
roze has quit [Client Quit]
roze has joined #lisp
orivej has joined #lisp
bsd4me has quit [Remote host closed the connection]
mankaev__ has joined #lisp
freshpassport has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
simendsjo has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
nikkal has quit [Ping timeout: 264 seconds]
slyrus has joined #lisp
slyrus__ has quit [Ping timeout: 246 seconds]
nicktick has quit [Ping timeout: 264 seconds]
zaquest has joined #lisp
rgherdt has joined #lisp
ahungry has quit [Remote host closed the connection]
vegai has joined #lisp
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
<phoe>
oh well
<minion>
phoe, memo from KaiLikesLinux: Like what???
<phoe>
that's good, I suppose!
<beach>
Hey phoe.
<phoe>
hey hi
liberliver has joined #lisp
Codaraxis_ has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
pve has joined #lisp
Codaraxis has quit [Ping timeout: 256 seconds]
insomnyuk has joined #lisp
bhartrihari has joined #lisp
v3ga has joined #lisp
nicktick has joined #lisp
Cymew has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
ggole has joined #lisp
rogersm has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
bhartrihari has joined #lisp
julio_ has quit [Ping timeout: 244 seconds]
shangul has quit [Ping timeout: 256 seconds]
jonatack has quit [Ping timeout: 240 seconds]
tich has joined #lisp
roze has quit [Quit: Leaving]
KaiLikesLinux has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
jonatack has joined #lisp
msk__ has quit [Ping timeout: 260 seconds]
<pve>
Morning, in the SICL repository, is the "Cleavir2" directory a rewrite of "Cleavir"? So the "Cleavir" dir can be more or less ignored?
<KaiLikesLinux>
mornin
shka_ has joined #lisp
<beach>
pve: Let's hope so. Let me explain a bit...
joels has quit [Ping timeout: 240 seconds]
<beach>
Clasp needed a better compiler, so drmeister wanted to use Cleavir for that, but Cleavir wasn't really ready at the time. Still isn't quite ready.
<beach>
So for SICL, I needed to be able to modify Cleavir to adapt it to what SICL needs, and to correct some mistakes I made in Cleavir (v1).
<beach>
But I couldn't really do that without breaking Clasp.
<beach>
So I made Cleavir version 2.
dddddd has joined #lisp
<pve>
ok, thanks, I understand now
<beach>
But now, Clasp needs better performance, so Bike and karlosz are working on Cleavir 1 to incorporate some optimizations that are not yet in Cleavir 2.
<pve>
just looking at the AST for now
<beach>
I don't want them yet in Cleavir 2 because I want to debug as little code as possible while I am working on SICL bootstrapping.
<beach>
Cleavir2 is probably better for you then.
<pve>
ok, great!
wxie has joined #lisp
ljavorsk has joined #lisp
simendsjo has quit [Ping timeout: 244 seconds]
shangul has joined #lisp
wxie1 has joined #lisp
wxie has quit [Ping timeout: 246 seconds]
wxie1 is now known as wxie
FreeBirdLjj has joined #lisp
<pve>
beach: (silly question) when you want to transform your AST into the next representation, do you walk the tree using the "children" function, or by directly recursing down each node's reader functions?
<pve>
or is "children" used only for visualization etc
<pve>
I ask because I don't have a children function, and now I'm wondering if I'm doing something the hard way
nicktick has quit [Ping timeout: 246 seconds]
karlosz has quit [Quit: karlosz]
<beach>
Usually, the transformation uses the specific accessors.
<pve>
alright
<beach>
CHILDREN is for when you don't really care what the AST is doing.
<beach>
Visualization is one such situation, yes.
KaiLikesLinux has quit [Quit: Leaving.]
orivej has joined #lisp
wxie has quit [Ping timeout: 246 seconds]
wxie has joined #lisp
fanta1 has joined #lisp
jonatack has quit [Ping timeout: 244 seconds]
wxie has quit [Remote host closed the connection]
ayuce has joined #lisp
jonatack has joined #lisp
_roman_ has quit [Quit: WeeChat 1.9.1]
orivej_ has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
jonatack has quit [Ping timeout: 244 seconds]
jonatack has joined #lisp
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
Lycurgus has joined #lisp
aap_ is now known as aap
orivej has quit [Ping timeout: 244 seconds]
gravicappa has joined #lisp
orivej has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
<jackdaniel>
(symbol-macrolet ((index `(aref array i))) (loop for i below (length vector) do (setf index (bla))))
<jmercouris>
hm, an interesting idea
<jackdaniel>
that way you have a third-class place
<mfiano>
Well you don't want the quote there but yeah
<jackdaniel>
right, thanks for the correction mfiano
<jackdaniel>
that said it is only a fun way to play with things, don't do that
<phoe>
jackdaniel: I was about to mention that your irony levels are high today
<jackdaniel>
code will be harder to read and benefits are literally 0 from using that
<jmercouris>
yeah, I didn't say I would do it
<jmercouris>
I just said it was an interesting idea
orivej has quit [Ping timeout: 264 seconds]
<jmercouris>
I could also embed an emulator within an flet and make it perform the operations :-D
<jmercouris>
an interesting idea, but I don't think I'm going to do it
<jackdaniel>
phoe: I like to think about myself as a person who is not ironic at all
<phoe>
I'd go (loop for word in dictionary for i from 0 do (setf (aref vector-form i) ...))
orivej has joined #lisp
<phoe>
or just (coerce 'dictionary 'vector) since it seems equivalent?
<phoe>
this code seems to turn (foo bar baz) info #(foo bar baz) and COERCE is good for that
<mfiano>
That would be good too, but I suspect he will be refactoring later to a specialized array since he is after performance
joels has quit [Ping timeout: 244 seconds]
<phoe>
uh I mean (coerce dictionary 'vector)
<phoe>
or (coerce dictionary '(vector element-type)) for specialization
<phoe>
where ELEMENT-TYPE is your element type
wxie has quit [Ping timeout: 244 seconds]
shangul has quit [Ping timeout: 240 seconds]
<phoe>
still, even a simple array will give a speed boost when compared to long lists
montxero has joined #lisp
orivej_ has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
<jackdaniel>
that depends on how you access them
<jackdaniel>
if you butcher arrays to append them and access them only sequentially, then array won't buy you a dim
<phoe>
yes, linear scanning over lists is going to be fast
<phoe>
but random access will be cheaper for arrays
<jackdaniel>
there are other things to consider, that's why I say that it all depends
<jackdaniel>
i.e list may hold any type of elements, while with specialized arrays you may inline some operations
<jackdaniel>
(that is, compiler may)
Xach has quit [Ping timeout: 256 seconds]
<jackdaniel>
also it is not given that sequential access to a list will be faster
<jackdaniel>
i.e for array you know its length, so you don't have to check whether the cdr is nil
<ebrasca>
Are there alternatives to multiple-value-bind ?
* jackdaniel
dives back to presentation type predicates in CLIM
<jackdaniel>
s/to/in/
cosimone has quit [Remote host closed the connection]
Xach has joined #lisp
cosimone has joined #lisp
<phoe>
ebrasca: why do you ask?
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
<White_Flame>
ebrasca: there's multiple-value-list, to grab them all into 1 vallue
<White_Flame>
*value
<ebrasca>
I have someting like this http://ix.io/2qLI , I don't like nesting multiple-value-binds .
<White_Flame>
jackdaniel: arrays need to do a check against the length every iteration, though. likely the same cost
<White_Flame>
plus an additional variable compared to the list
<mfiano>
There are times when linearly accessing an array can be faster than the same size list
<jackdaniel>
White_Flame: my point is that there are not guarantees what is faster
<phoe>
ebrasca: there's no standard way around that.
<phoe>
there are utilities like bind-star that offer different syntax for that, but they aren't standard
<White_Flame>
ebrasca: write your own multiple-multiple-value-bind ;)
<ebrasca>
White_Flame: What if I end neding multiple-multiple-multiple-value-bind ?
edgar-rft has quit [Quit: Leaving]
<jackdaniel>
I don't recommend it, but you may use uiop's nest, you won't reduce number of forms but you will reduce nesting
<ebrasca>
jackdaniel: Ok, I just focus making read-byte/sequence , write-byte/sequence for block based FSs.
<mfiano>
golden-utils and serapeum have MVLET and MVLET* for that, which allows you to use m-v-b with a LET-like syntax, which means it can be used to intersperse normal LET bindings in the mix
<phoe>
ebrasca: a hack is to do something like (destructuring-bind (a b c d e f) (multiple-value-call #'list (floor 1 2) (floor 3 4) (floor 5 6)) ...)
<jackdaniel>
and it is probably some kind of insult
<mfiano>
:)
<mfiano>
27-30 is an example of MVLET saving 4 levels of nesting btw
<mfiano>
The rest are just normal let bindings shoved into that, because 1 return value is no different :)
shangul has quit [Ping timeout: 256 seconds]
jonatack has quit [Ping timeout: 246 seconds]
Codaraxis_ has quit [Read error: Connection reset by peer]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
orivej_ has quit [Ping timeout: 244 seconds]
gxt has quit [Remote host closed the connection]
orivej has joined #lisp
gxt has joined #lisp
<ebrasca>
mfiano: I can't find documentation for golden-utils.
<mfiano>
Most functions have docstrings
cosimone has quit [Remote host closed the connection]
<ebrasca>
maybe better name is multiple-value-let
<phoe>
that's what mvlet stands for
cosimone has joined #lisp
<mfiano>
A few libraries use mvlet for concision, and so does golden-utils
<phoe>
except that I guess mfiano found the "multiple-value-" prefix too long
scymtym has quit [Remote host closed the connection]
<mfiano>
Not really. I prefer descriptive names when appropriate. This was more about convention, though I do use that a fair bit so concision helps.
<ebrasca>
Wha I don't like about lisp is its lack of consistency.
<ebrasca>
What I don't like about lisp is its lack of consistency.
gxt has quit [Remote host closed the connection]
<shka_>
yeah
<phoe>
that's the price we pay for having arbitrary syntax
<mfiano>
Well it is a language designed to bring multiple Lisps together, but fortunately, they gave us macros so it's a non-issue.
<ebrasca>
whey sometimes it is "place item" and others "item place"
<phoe>
this one is also a terrible thing
<phoe>
and I hope the Hypothetical Future Revision fixes it up in some way
<shka_>
HOPE
<phoe>
(hopefully via (place item) to make these consistent with their -F versions)
<shka_>
what a funny idea :D
jprajzne has quit [Quit: jprajzne]
<phoe>
shka_: okay, I'm going to write that revision myself and gain a whole of three users
<ebrasca>
I like "place item" like defvar .
simendsj` has joined #lisp
<phoe>
one of which is my CI environment
jprajzne has joined #lisp
<ebrasca>
of like (setf place item)
<phoe>
and the others are me and some random Internet person
simendsjo has quit [Ping timeout: 264 seconds]
<mfiano>
Well Lisp is flexible. There will always be inconsistencies in the library space.
scymtym has joined #lisp
<mfiano>
I wouldn't consider that a bad thing. After all, code is a projection of ones' own thought processes. It doesn't make sense that a language that provides the power that Lisp does produce code that will be molded for everyone.
<ebrasca>
How hard can it be to make cl consistent?
<jackdaniel>
we should teach minion a catchphrase spoken when someone talks about reforming the common lisp standard :)
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
<shka_>
well, beach has this well specified common lisp project going on
orivej has quit [Quit: No Ping reply in 180 seconds.]
<jackdaniel>
like: "it is easy, just take pen and sketch corrections"
<ebrasca>
I am going to talk about reforming cl againg.
<phoe>
ebrasca: it's easy
<shka_>
anything that goes further then this is just a pipe dream
<phoe>
the hard thing is to get everyone to use it
<mfiano>
I would rather have more choices for conforming implementations than to split the community even more.
<phoe>
and by "hard" I mean what shka_ and mfiano said
mankaev__ has quit [Remote host closed the connection]
HighMemoryDaemon has joined #lisp
HighMemoryDaemon has left #lisp [#lisp]
<jackdaniel>
phoe: you've ruined it. you should have make the second sentence: "just take the pen and sketch corrections" ;)
orivej has joined #lisp
ym has quit [Quit: Leaving]
igemnace has quit [Quit: WeeChat 2.8]
gravicappa has quit [Ping timeout: 244 seconds]
HighMemoryDaemon has joined #lisp
* ebrasca
is thinking about word conquest and forcing his cl vision on all other persons.
Christ0pher has quit [Ping timeout: 256 seconds]
<shka_>
ONE VISION, ONE STANDARD
<shka_>
no, sorry guys, i just can't take this seriously ;-)
Christ0pher has joined #lisp
montxero has joined #lisp
Bourne has joined #lisp
Christ0pher has quit [Ping timeout: 258 seconds]
Christ0pher has joined #lisp
shangul has joined #lisp
<beach>
*sigh*
jonatack has joined #lisp
gravicappa has joined #lisp
<phoe>
ebrasca: or else what
enrio has joined #lisp
gravicappa has quit [Ping timeout: 246 seconds]
orivej_ has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
<ebrasca>
phoe: No more food for you.
nikkal has quit [Ping timeout: 240 seconds]
<ebrasca>
phoe: Hoe are you going?
* ebrasca
can't write correctly today...
Blukunfando has joined #lisp
ljavorsk has quit [Ping timeout: 240 seconds]
<phoe>
I am okay, doing dayjob things
Bike has joined #lisp
<pve>
ebrasca: don't know if it was mentioned, but could you do something like this?
<ebrasca>
pve: I think mvlet is nise but using some lybrary like golden-utils in Mezzano...
<jmercouris>
how to document a defclass form?
<jmercouris>
use :documentation at tail of form??
<phoe>
jmercouris: yes
<mfiano>
That's one way
<phoe>
setf documentation too
<phoe>
documentation-utils too
orivej has quit [Quit: No Ping reply in 180 seconds.]
Christ0pher has quit [Ping timeout: 244 seconds]
orivej has joined #lisp
Christ0pher has joined #lisp
HighMemoryDaemon has quit [Remote host closed the connection]
mason has left #lisp [#lisp]
userone has joined #lisp
jason_m has quit [Remote host closed the connection]
<jmercouris>
how does time know how many processor cycles were required?
<jmercouris>
how could any process possibly know that?
<jmercouris>
I thought that the binary was just a contract, how the underlying operations are performed, and the amount of cycles is not dependent
<jmercouris>
eg mv could take 1 or 1 million cycles, up to the discretion of the CPU
<mfiano>
They are estimated, depending on the interfaces the OS provides.
<jmercouris>
I see
<mfiano>
TIME doesn't require producing that information, though.
wxie has joined #lisp
orivej has quit [Read error: Connection reset by peer]
orivej_ has joined #lisp
bsd4me has joined #lisp
rippa has joined #lisp
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
slyrus_ has joined #lisp
Christ0pher has quit [Ping timeout: 256 seconds]
slyrus has quit [Ping timeout: 244 seconds]
Christ0pher has joined #lisp
shangul has quit [Read error: Connection reset by peer]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
EvW1 has joined #lisp
enrioog has joined #lisp
enrio has quit [Ping timeout: 256 seconds]
grumble has quit [Quit: Well, would you look at the time. I've almost missed my ambiguous, non-existent appointment that I have scheduled just when I start to lose interest in my current conversation.]
grumble has joined #lisp
gravicappa has joined #lisp
orivej_ has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
ayuce has quit [Remote host closed the connection]
<jmercouris>
in any case, first sentence "The Time Stamp Counter was once an excellent high-resolution, low-overhead way for a program to get CPU timing information. With the advent of multi-core/hyper-threaded CPUs, systems with multiple CPUs, and hibernating operating systems, the TSC cannot be relied upon to provide accurate results"
<phoe>
TIME is single-threaded single-CPU'd though
<phoe>
and I guess you cannot expect good results in case of hibernation anyway
<Bike>
sbcl also empties the instruction pipeline first to deal with out of order ness
<jmercouris>
very clever
<Bike>
and "the results are per-processor and not per-process, so are unreliable on multiprocessor machines where processes can migrate between processors."
<Bike>
also re "mv could take 1 or 1 million cycles", these things tend to be pretty well documented in architecture manuals or by agner fog
<Bike>
but, indeed, trying to estimate how many cycles a given stretch of instructions would take to execute wouldn't work very well
<Bike>
plus on a more basic level you'd have to know how many times a loop is going to execute and etc, which makes it outright impossible
orivej_ has quit [Read error: Connection reset by peer]
userone has quit [Quit: Leaving]
orivej has joined #lisp
<phoe>
you'd need to have a cycle-perfect CPU emulator
Christ0pher has quit [Ping timeout: 258 seconds]
<phoe>
and that requires emulating caches and memory as well
<phoe>
and having it map 1-to-1 to the particular CPU model
<mfiano>
A cycle-perfect emulator of anything is not possible
Christ0pher has joined #lisp
<phoe>
I mean, not mapping 1-to-1 to machine cycles, but being able to count instruction cycles by either literally executing that code or doing some sort of examination on it
<phoe>
ugly stuff
<mfiano>
Take the case of DICE, the digital integrated circuit emulator. Here is an emulator that works at the transistor level for absolutely perfect recreation of the very first video games ever created. To run Pong at about 5-10fps, DICE requires a 3GHz processor, which wasn't a thing until relatively very recently ago.
ahungry has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
wxie has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
<lonjil>
anyone here happen to have a pdf of Baker's paper Lively Linear Lisp? His website seems to be down.
bitmapper has joined #lisp
gravicappa has quit [Ping timeout: 246 seconds]
<jmercouris>
anyone know of a implementation of pagerank within CL?
gravicappa has joined #lisp
<jmercouris>
well, it seems allegro graph has this...
<jmercouris>
cl graph does not seem to have this
<jmercouris>
in fact grepping for "centrality" reveals no centrality measures whatsoever
<aeth>
heh, I was about to say, "That was 2012, but in 2020, we'd probably just use Markdown"... but the blog's already talking about Markdown. I guess everyone cool was already talking about Markdown even by 2010.
orivej_ has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
<_death>
recently I reverted (for no good reason) to the intricate comment convention style mentioned in the clhs.. for some years I only used ;;;; and ;; and stopped inserting Page characters .. still don't know if it's worth it
<aeth>
pve: You can just add "### filename.lisp~%```common-lisp~%" to the top of a file and "```~%~%" to the bottom and concatenate the files together and use an existing Markdown processor, assuming the comments and docstrings don't need to be handled in a fancy way.
<aeth>
(Even a shell script could do this, with \n as the newline marker.)
random-nick has quit [Quit: quit]
Christ0pher has quit [Ping timeout: 256 seconds]
Christ0pher has joined #lisp
random-nick has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
<ebrasca>
Why?
Christ0pher has quit [Ping timeout: 240 seconds]
Christ0pher has joined #lisp
Blukunfando has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
Volt_ has joined #lisp
catern has quit [Excess Flood]
catern has joined #lisp
<Guest9274>
o/ How can I declare function's output value as a composite type? I want to say that a function returns `(or null string)`. I see it's possible to do so for variables, but was wondering if it's possible for function parameters.