semz has quit [Quit: ZNC 1.9.0+deb2build3 - https://znc.in]
semz has joined #commonlisp
triffid has joined #commonlisp
admich1 has joined #commonlisp
brokkoli_origin has quit [Ping timeout: 260 seconds]
brokkoli_origin has joined #commonlisp
mwnaylor has quit [Remote host closed the connection]
mwnaylor has joined #commonlisp
kchanqvq has joined #commonlisp
fengshaun has quit [Quit: Ciao!]
fengshaun has joined #commonlisp
shka has quit [Read error: Connection reset by peer]
brokkoli_origin has quit [Ping timeout: 245 seconds]
brokkoli_originl has joined #commonlisp
shka has joined #commonlisp
kchanqvq has quit [Ping timeout: 250 seconds]
jon_atack has quit [Ping timeout: 252 seconds]
mange has joined #commonlisp
kchanqvq has joined #commonlisp
mhcat has quit [Server closed connection]
mhcat has joined #commonlisp
pvac has quit [Server closed connection]
pvac has joined #commonlisp
<fosskers>
Does Scott L. Burson hang around any of the usual channels?
veqq has quit [Quit: veqq]
veqq has joined #commonlisp
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
<wohonajax>
i thought i saw him somewhere, maybe on the discord, but i'm not sure
kchanqvq has quit [Ping timeout: 250 seconds]
vidak has quit [Quit: Konversation terminated!]
decweb has quit [Quit: Konversation terminated!]
Lycurgus has joined #commonlisp
King_julian has quit [Read error: Connection reset by peer]
King_julian has joined #commonlisp
wohonajax has quit [Quit: leaving]
arpunk has quit [Server closed connection]
arpunk has joined #commonlisp
vidak has joined #commonlisp
skeemer has joined #commonlisp
vidak has quit [Quit: Konversation terminated!]
<simendsjo>
Is there a way to extract docstrings in ecl, or does it always discard them? At least `documentation' and `function-lambda-expression' doesn't seem to give me any results.
<fosskers>
simendsjo: They certainly should?
pranav has quit [Remote host closed the connection]
<jackdaniel>
docstrings are not stored in a fasl
<jackdaniel>
so when they are loaded them and arglist are lost. it can be fixed with enough code of course
edgar-rft` has joined #commonlisp
Kyuvi has joined #commonlisp
edgar-rft has quit [Ping timeout: 252 seconds]
Farooq has joined #commonlisp
pve has joined #commonlisp
Farooq has quit [Client Quit]
Lycurgus has quit [Quit: alsoknownas.renjuan.org ( juan@acm.org )]
<fosskers>
Ah I guess I've been spoiled and always `describe`ing from my editor.
istewart has quit [Quit: Konversation terminated!]
Farooq has joined #commonlisp
ingeniot has joined #commonlisp
treflip has joined #commonlisp
treflip has quit [Ping timeout: 245 seconds]
admich1 has quit [Ping timeout: 260 seconds]
admich1 has joined #commonlisp
rgherdt has joined #commonlisp
attila_lendvai has joined #commonlisp
treflip has joined #commonlisp
tsujp has quit [Server closed connection]
tsujp has joined #commonlisp
Gleefre has quit [Read error: Connection reset by peer]
Gleefre1 has joined #commonlisp
Gleefre1 is now known as Gleefre
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
lcn_ has joined #commonlisp
ingeniot has quit [Ping timeout: 260 seconds]
Gleefre has quit [Quit: Gleefre]
Gleefre1 has joined #commonlisp
Gleefre1 is now known as Gleefre
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
<simendsjo>
fosskers: jackdaniel: it's for my sijo-doctest library which have tests embedded in docstrings. I found out my test setup is wrong so it doesn't abort when there are failing tests, and ecl doesn't give me the docstrings. But this is only when loading from fasl? I should be able to structure things so it works somehow then?
<ixelp>
feat(CHANGELOG): add entry for 0.4.1 · simendsjo/sijo-doctest@265106a
treflip has quit [Ping timeout: 252 seconds]
attila_lendvai has quit [Ping timeout: 252 seconds]
olivial has quit [Read error: Connection reset by peer]
olivial has joined #commonlisp
bpanthi977 has quit [Ping timeout: 260 seconds]
Farooq has quit [Remote host closed the connection]
Farooq has joined #commonlisp
Farooq has quit [Remote host closed the connection]
Farooq has joined #commonlisp
<fosskers>
simendsjo: is that repo ready overall? If so I'll add support for it to `vend test`.
treflip has joined #commonlisp
brokkoli_originl is now known as brokkoli_origin
bpanthi977 has joined #commonlisp
bpanthi977 has quit [Ping timeout: 248 seconds]
<simendsjo>
fosskers: It's public on ultralisp, but it only works on sbcl it seems. I had it "working" for ccl, abcl and ecl too, but they all apparently have similar issues fetching the docstring, so it doesn't work in practice. I'm doing a new release for a bugfix which is why I found out about this.
Gleefre has quit [Read error: Connection reset by peer]
<fosskers>
I can enforce SBCL usage if your doctests are detected.
Gleefre has joined #commonlisp
<edgar-rft`>
simendsjo: The main problem is that your library depends on unreliable behaviour because Common Lisp implementations are free to discard docstrings at any time.
<edgar-rft`>
In the ECL case you need to write code that adds the docstrings at runtime.
<ixelp>
CLHS: Standard Generic Function DOCUMENTATION...
<jackdaniel>
there is an interface to save such metadata, but it is not documented
King_julian has quit [Read error: Connection reset by peer]
<simendsjo>
edgar-rft`: Yeah, but it's nice when it works ;) Setting the docstring at runtime doesn't add it either though. `(setf (documentation 'f 'function) "docstring")) (documentation 'f 'function))` returns NIL
<jackdaniel>
something like (dump-documentation "result-file.doc") and (push "result-file.doc" *documentation-pool*)
<jackdaniel>
but these parts should be revised, I don't think that we should keep that data separate from actual objects
<jackdaniel>
that said I don't expect to have time for that anywhere soon
<jackdaniel>
dump-documentation takes the most recent documentation pool from the collection, so you may make it more local with new-documentation-pool (or something named in a similar manner)
King_julian has joined #commonlisp
<edgar-rft`>
jackdaniel knows the ECL internals better than me (so in case of doubt listen to him) but it's highly likely that the code will run into problems with other implementation, too
<pl>
jackdaniel: just out of curiosity, don't bother if it would take much to explain, but is there a list of "minimal set" of functions/services/syscalls needed to provide ECL to get it working on a platform?
<pl>
I mean, I always looked to the old "if you can compile ANSI C" (or one of the later standards) it should work
<pl>
but was wondering if recent web adventures pointed towards one of such :)
fosskers has quit [Remote host closed the connection]
sirufer has quit [Server closed connection]
sirufer has joined #commonlisp
<jackdaniel>
pl: actually you may look into a branch nucleus to see how I'm exploring that area
<jackdaniel>
generally ecl depends on gmp for bignums, and bdwgc for gc
<jackdaniel>
and memory allocation
<jackdaniel>
then, stream implementation has dependences beyond ANSI C streams -- posix streams and windows streams -- conditionally compiled
<pl>
I think the area I would like to explore has it a little bit easier because I should be able to actually use mprotect() equivalent
<jackdaniel>
then there is tcp (ditto)
<jackdaniel>
for multithreading also you have mprotect and pthreads / windows threads
<pl>
and I have I/O services including system provided IPv4/6, TCP, UDP, HTTP
<pl>
and I should be able to hook into system SSL
<pl>
but probably no threads :V
mrcom has quit [Read error: Connection reset by peer]
<jackdaniel>
what I'm saying is that there are some non-trivial dependencies in the system and skipping them would require some work
mrcom has joined #commonlisp
<jackdaniel>
in the branch nucleus I've made a minimal runtime that features a forth compiler and bytecodes vm and no gc for example, with very small hand-crafted i/o for streams
<jackdaniel>
that's an experiment of course, but it prompted recent refactors for runtime stacks code and stream implementation
<jackdaniel>
and the bytecodes vm of course
<pl>
honestly things like I/O are for various reasons easier to port over. Lots of code already written including to support things like Python
<pl>
it's usually the parts like bdwgc that trip when you would like anything other than dumbest possible malloc()
<jackdaniel>
I think that you assume some knowledge I do not have :3 generally I/O is easy on one hand, and it is fundamental on another
<jackdaniel>
so either you have a big bag with stuff, or implementing I/O with streams and other goodies is a hore
<pl>
hah, it's more that I speak from having some knowledge of the target environment (UEFI)
<jackdaniel>
chore *
<jackdaniel>
having such env with reduced requirements is one of goals of nucleus work, but my projects move slowly
<jackdaniel>
turtleware - slow and steady ,p
<pl>
The funny thing with UEFI is that it's literally easier to figure out how to make a portable GUI application with multilanguage interface than sometimes figure how to port a language runtime :D
<jackdaniel>
of course fasl loader and such relies on dlopen
<jackdaniel>
but in general ECL runtime is very self-contained despite some dependencies on syscalls
<jackdaniel>
I will know more and separate more things after I finish WASI phase of the recent web works
<jackdaniel>
it will rely on porting ECL to a new garbage collector for example
yitzi has joined #commonlisp
Gleefre has quit [Read error: Connection reset by peer]
notzmv has joined #commonlisp
Kyuvi has quit [Quit: Client closed]
lusciouslover has quit [Read error: Connection reset by peer]
admich1 has quit [Ping timeout: 260 seconds]
lusciouslover has joined #commonlisp
yitzi has quit [Quit: yitzi]
attila_lendvai has joined #commonlisp
<jackdaniel>
pl: n.b you may be interested in using newlibc for porting
Gleefre has joined #commonlisp
<jackdaniel>
it is basically a front with default implementations (where feasible) where you can supply host-specific syscalls
<skeemer>
when i open slime i get some warning messages but i don't know how i can read that buffer
<skeemer>
i try to scroll up but it does not work
<skeemer>
is there any logs i can get anywhere?
<beach>
It could be in the *inferior-lisp* buffer.
admich1 has joined #commonlisp
zyd has quit [Server closed connection]
zyd has joined #commonlisp
<edgar-rft`>
usual supects are the *inferior-lisp* and the *lime-events* buffer, or the Emacs Lisp *Messages* buffer
<jackdaniel>
it is funny, because I do have *lime-events* buffer opened (not *slime-events*) -- the websockets thing
<edgar-rft`>
yeah, someone from the internet stole the s :-)
<jackdaniel>
lime is just not as superior
<jackdaniel>
for slime/swank I have adapters called lime/wank
<beach>
skeemer: Did you see the remarks to your issue?
random-nick has joined #commonlisp
<skeemer>
is sly a better more modern version of slime?
admich1 has quit [Read error: Connection reset by peer]
admich1 has joined #commonlisp
<skeemer>
beach: apparently there are no warnings but i have a slime-events buffer anyway
<jackdaniel>
skeemer: both are maintained and have corresponding userbases
<skeemer>
shortcuts and commands are similar?
<skeemer>
C-c C-c etc...
<jackdaniel>
yes
admich1 has quit [Ping timeout: 260 seconds]
admich1 has joined #commonlisp
admich1 has quit [Read error: Connection reset by peer]
decweb has joined #commonlisp
admich1 has joined #commonlisp
lusciouslover has quit [Remote host closed the connection]
lusciouslover has joined #commonlisp
<attila_lendvai>
any hints why this doesn't parse? (esrap:parse '(and "{" (* (not "{")) "}") "{ foo }")
* attila_lendvai
kindly pings scymtym
Gleefre has quit [Quit: Gleefre]
lusciouslover has quit [Remote host closed the connection]
<attila_lendvai>
the error message smells like a bug: it points to the end of the input and says it's expecting ... or <end of input>
lusciouslover has joined #commonlisp
<attila_lendvai>
hrm, maybe * is greedy and eats up the closing braces
dlowe has quit [Server closed connection]
dlowe has joined #commonlisp
lusciouslover has quit [Excess Flood]
lusciouslover has joined #commonlisp
<jackdaniel>
attila_lendvai: should be (not "}")
<jackdaniel>
or something else -- yes, it can greedily eat until the end with * not {
<attila_lendvai>
jackdaniel, yeah, that works, but then i need to deal with nesting...
<attila_lendvai>
i'd need a util to invert a (character-ranges ...), or some not-insane way to define a character-rage that contains only { and }
* attila_lendvai
is making progress
bpanthi977 has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 252 seconds]
bpanthi977 has quit [Ping timeout: 260 seconds]
phantomics has quit [Server closed connection]
phantomics has joined #commonlisp
greenfork has quit [Server closed connection]
greenfork has joined #commonlisp
Lord_of_Life has joined #commonlisp
<edgar-rft`>
(make-progress) => NIL
bpanthi977 has joined #commonlisp
<attila_lendvai>
scymtym, could it be that tracing rules changes the parser's behavior? i think i'm seeing that...
bpanthi977 has quit [Ping timeout: 255 seconds]
admich1 has quit [Ping timeout: 276 seconds]
admich1 has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
zxcvz has joined #commonlisp
admich1 has quit [Ping timeout: 248 seconds]
admich1 has joined #commonlisp
admich1 has quit [Read error: Connection reset by peer]
admich1 has joined #commonlisp
shawnw has quit [Ping timeout: 252 seconds]
Farooq has quit [Ping timeout: 255 seconds]
Lycurgus has joined #commonlisp
zxcvz has quit [Quit: zxcvz]
<scymtym>
attila_lendvai: i think tracing could force the (otherwise lazy) result computation, similar to semantic predicates. do you have a concrete example?
<attila_lendvai>
scymtym, oh, that explains what i'm seeing (break's popping up). thanks!
<scymtym>
did you already solve the issue with character-ranges? i hope it didn't make you character-rage
<attila_lendvai>
scymtym, :D i'm half lost in a forest i don't know... i'm parsing sleigh files. they are descriptions of machine instructions in ghidra.
<attila_lendvai>
scymtym, i solved that character-range obstacle in some other way
<attila_lendvai>
it has a preprocessing stage that i'm trying to parse also using esrap.
<scymtym>
i see
priime has joined #commonlisp
<skeemer>
i was wondering how can an OS be developed in CL like Mezzano-OS i mean the lower level stuff for botting and prepare the stack and an envinronment to run common lisp, how is that done? i cannot find it in the codeb base
<dlowe>
It's just bytes on a disk.
rendar has joined #commonlisp
rendar has quit [Changing host]
rendar has joined #commonlisp
<dlowe>
You put the right bytes down and there's an OS
<skeemer>
dlowe: ohhh
<dlowe>
You want to know about the Mezzano bootloader I think
<attila_lendvai>
scymtym, i keep coming back to needing smarter ways to instantiate character ranges. given the fact that they are not present, it probably means that i'm doing something wrong... i need an everything else rule that stops at a few chars. i.e. something like (+ (not "@")), but for a few other cars, and it should not comsume
<dlowe>
attila_lendvai: if you want to deal with nesting you need to define a recursive pattern
<attila_lendvai>
scymtym, oh! "A range can be either a list of the form (#\start_char #\stop_char) or a single character." -- your form is not in the docs...
* attila_lendvai
looks at the code
<semz>
Is this legal behavior? ,(subtypep '(values T integer) '(values T T))
<ixelp>
(subtypep '(values T integer) '(values T T)) ERROR: VALUES type illegal in this context: ↩ (VALUES T INTEGER)
<scymtym>
the documentation says (character-ranges range ...) and later that a range can be a single character which is probably easy to miss. there should be a few examples
<semz>
SBCL does the same thing (type system stuff in SBCL and CCL is derived from CMUCL), ECL and ABCL return NIL, NIL
<attila_lendvai>
the character-ranges constructor is confusing. seems like if it's two arguments, then it's a range. in any other number of arguments it'll be a list of chars that it will match. is that right?
<attila_lendvai>
scymtym, it would help a lot if the parameter wasn't called a 'range'
<semz>
The definition of SUBTYPEP explicitly mentions that for type specifiers involving VALUES, SUBTYPEP may return NIL, NIL, so I'm surprised to see this error out
<semz>
well, not that surprised because VALUES is tricky and obscure, but you get the idea
<scymtym>
attila_lendvai: the constructor accepts one or more ranges each of which can be a proper range or a single character. like (esrap:character-ranges #\a #\b #\c (#\e #\z))
<attila_lendvai>
scymtym, i finally understood, thanks! i didn't notice the extra parens in the examples
yitzi has joined #commonlisp
<scymtym>
attila_lendvai: still, the documentation should give examples with explanations, i think
* attila_lendvai
has opened the esrap.texinfo already
<scymtym>
making the change is easier than getting github to deploy it in this case
dieggsy has quit [Ping timeout: 260 seconds]
dieggsy has joined #commonlisp
jonatack has joined #commonlisp
bpanthi977 has joined #commonlisp
jon_atack has joined #commonlisp
<beach>
skeemer: You can't write a reasonable operating system using only standard Common Lisp operators, but then you probably can't write a reasonable operating system using only standard C operator either. But there is very little additional stuff you need in Common Lisp to do it.
jonatack has quit [Ping timeout: 252 seconds]
yitzi has quit [Quit: yitzi]
<dlowe>
Mostly writing to raw pointers and triggering interrupts
<beach>
skeemer: dlowe is right of course, but if the bytes you generate are machine code only, then your system is not really written in Common Lisp the way you would typically use the term.
<beach>
dlowe: Exactly.
jonatack has joined #commonlisp
admich1 has quit [Ping timeout: 260 seconds]
jon_atack has quit [Ping timeout: 255 seconds]
<beach>
Shinmera: Congratulations to the progress!
<Shinmera>
thanks!
<phantomics>
attila_lendvai are you using esrap to write a sleigh parser?
<attila_lendvai>
phantomics, yes
<phantomics>
Cool, are you releasing the source? A while back I wrote a parsing engine from scratch especially for vector languages
<attila_lendvai>
phantomics, more effort than i anticipated... most of it is struggling with PEG and esrap
<attila_lendvai>
phantomics, it'll be opensource, but for now it's still vapourware
admich1 has joined #commonlisp
* contrapunctus
wishes vindarel would move cl-cookbook and awesome-cl to Codeberg too 🥲
yitzi has joined #commonlisp
PuercoPop has quit [Server closed connection]
PuercoPop has joined #commonlisp
<jackdaniel>
Shinmera: looks and sounds good. I hope that protagonist voices start to cheer for them at some point ;p
yitzi has quit [Quit: yitzi]
admich1 has quit [Ping timeout: 255 seconds]
admich1 has joined #commonlisp
zwr has quit [Quit: leaving]
zwr has joined #commonlisp
shawnw has joined #commonlisp
<treflip>
Shinmera: looks great!
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 248 seconds]
admich1 has quit [Read error: Connection reset by peer]
admich1 has quit [Read error: Connection reset by peer]
admich1 has joined #commonlisp
greenonions has joined #commonlisp
attila_lendvai has joined #commonlisp
kvik has quit [Server closed connection]
kvik has joined #commonlisp
jon_atack has joined #commonlisp
lcn_ has quit [Ping timeout: 255 seconds]
jonatack has quit [Ping timeout: 255 seconds]
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 252 seconds]
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 252 seconds]
srhm has quit [Server closed connection]
srhm has joined #commonlisp
nani has quit [Read error: Connection reset by peer]
Pixel_Outlaw has joined #commonlisp
nani has joined #commonlisp
kingcons has quit [Server closed connection]
kingcons has joined #commonlisp
cage has joined #commonlisp
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
akoana has joined #commonlisp
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 252 seconds]
<skeemer>
beach ok but then what is the minimum amount of C we need to boot a lisp repl?
<skeemer>
insn't it like first implementing a lisp and then starting to work on top of that?
<dlowe>
skeemer: The minimum amount is zero if you use a modern compiler. You can write the bootloader in lisp, compile it, write the compiled object to disk, write the lisp image to disk. The bootloader loads the lisp image and transfers execution to it.
<skeemer>
dlowe: is there anything already like that as a project that i can give a look at?
<skeemer>
like bootloaders in lisp
<dlowe>
Not that I know of. Mezzano uses Kboot
<skeemer>
i don't understand how the stack is set and those primordial things are setup, probably a bit of assembly
<dlowe>
The same way as they would be in a regular program
<bike>
You compile Lisp to machine code that is then run. It sets up the stack/whatever primordiality.
jon_atack has joined #commonlisp
<dlowe>
OSes aren't fundamentally different from other programs except that they regularly interface directly with hardware
<aeth>
the hard part of the OS is the drivers, especially for graphics
<froggey>
mezzano uses kboot because I was too lazy to write another bootloader. I had better things to do than deal with the minutiae of booting a pc. like dlowe said, the minimum amount is zero, but the practical amount might be slightly more
jonatack has quit [Ping timeout: 255 seconds]
<dlowe>
there are a lot of hard parts but my point is that they're still doing the same sorts of operations and using the same structures
<dlowe>
for the same reason, sbcl has a C part because it's so impractical to get various system calls and values any other way
<dlowe>
but now I kinda sorta want to write a CL bootloader :D
<aeth>
If I had to do low level things, I'd just use the CL-derived language I wrote for shaders, and give it a native x86 C ABI backend to compile to. And then CFFI into it.
<aeth>
(x86-64 probably)
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 252 seconds]
<Pixel_Outlaw>
Coffee and lemon cookies are being served.
<Pixel_Outlaw>
Wrong channel, sorry.
<acdw>
>.>
<acdw>
i'm suddenly concerned for the passengers of an ancient starliner that have been in stasis for a very long time
<acdw>
tho i think those were lemon-scented wipes i think they were missing
attila_lendvai has quit [Ping timeout: 255 seconds]
jonatack has quit [Ping timeout: 252 seconds]
jonatack has joined #commonlisp
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 276 seconds]
rkazak has quit [Ping timeout: 272 seconds]
attila_lendvai has joined #commonlisp
okflo has quit [Server closed connection]
okflo has joined #commonlisp
attila_lendvai has quit [Ping timeout: 276 seconds]
rkazak has joined #commonlisp
psilord has quit [Server closed connection]
psilord has joined #commonlisp
<contrapunctus>
acdw: There is a theory which states that if ever anyone discovers exactly what the Universe is for and why it is here, it will instantly disappear and be replaced by something even more bizarre and inexplicable.
<contrapunctus>
acdw: There is another theory which states that this has already happened.
<acdw>
lol
<acdw>
multiple times probably
<aeth>
the universe makes sense, though, it's just written in a lazy language like Haskell
<acdw>
lmao
<aeth>
it clearly only does things when required to
jonatack has joined #commonlisp
<acdw>
perl
<Pixel_Outlaw>
The universe isn't running Lisp, there is too much garbage that's not been collected. ;)
jon_atack has quit [Ping timeout: 255 seconds]
joast has quit [Quit: Leaving.]
cage has quit [Remote host closed the connection]
nani has quit [Ping timeout: 260 seconds]
nani has joined #commonlisp
rkazak has quit [Ping timeout: 260 seconds]
shka has quit [Read error: Connection reset by peer]
shka has joined #commonlisp
dra has joined #commonlisp
fgarcia has quit [Quit: Remote host closed the connection]
fgarcia has joined #commonlisp
<skeemer>
froggey: so in the case of mezzano, is it kboot that sets up the stack and so on? i would like to start writing a cl OS, very basic but don't know where to star
<skeemer>
*start
<|3b|>
boot loader just gets the computer running enough to load things from arbitrary locations on storage, then runs "os" code from one of said locations
<|3b|>
"stack" is mostly a language construct, and doesn't even have to exists if you don't want one
<aeth>
notably, Schemes often don't have stacks
<aeth>
at least afaik
* |3b|
would have expected them to mostly have them, but that is the example i was thinking of, since continuations are easier if you just allocate them directly to the heap
pve has quit [Quit: leaving]
<aeth>
|3b|: the ones people use probably tend to have stacks because they're usually aiming for efficient native code
<aeth>
but the majority of Schemes probably don't because the straightforward implementation of a first-class-continuation language wouldn't do that
<aeth>
so I think it depends on if your "mostly" is weighted by users or not
<|3b|>
yeah, depends on how you measure "most" i guess
Lycurgus has quit [Quit: alsoknownas.renjuan.org ( juan@acm.org )]
<aeth>
although CL has no place to complain because of e.g. CL:LOOP
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 252 seconds]
yaneko has joined #commonlisp
rkazak has quit [Ping timeout: 245 seconds]
larme has quit [Server closed connection]
larme has joined #commonlisp
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 260 seconds]
<Pixel_Outlaw>
aeth, It's Clojuremun's Disease stuff most likely too. They have to undo ever s-expression and write it backwards. With a threading macro.
<aeth>
foo-to-bar in conversion-heavy code isn't very ergonomic.
<aeth>
Although I've found myself using bar<-foo (i.e. a more compact "bar-from-foo") rather than trying fancy arrow macros
<aeth>
because now (baz<-bar (bar<-foo x)) looks somewhat more natural than CL-style-following (bar-to-baz (foo-to-bar x)) would
<aeth>
(or Scheme's foo->bar direction)
<aeth>
Although it looks like Coalton uses return type polymorphism, so they wouldn't have that sort of thing come up.