pjb has quit [Read error: Connection reset by peer]
Bike has quit [Quit: Lost terminal]
<mrcom> Find my error. Wasn't nested enough; had "&key (bar bar)" instead of "&key ((bar bar))"
random-nick has quit [Ping timeout: 272 seconds]
taiju has quit [Ping timeout: 272 seconds]
taiju has joined #commonlisp
waleee has quit [Ping timeout: 245 seconds]
taiju has quit [Ping timeout: 268 seconds]
taiju has joined #commonlisp
yewscion has quit [Ping timeout: 264 seconds]
yitzi has quit [Quit: Leaving]
tyson2 has quit [Remote host closed the connection]
dsk has joined #commonlisp
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
srhm has quit [Ping timeout: 264 seconds]
srhm has joined #commonlisp
Oladon has quit [Quit: Leaving.]
taiju has quit [Ping timeout: 268 seconds]
karlosz has quit [Quit: karlosz]
taiju has joined #commonlisp
jealousmonk has quit [Ping timeout: 272 seconds]
jealousmonk has joined #commonlisp
bilegeek has quit [Quit: Leaving]
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
derelict has quit [Ping timeout: 272 seconds]
selwyn has joined #commonlisp
cond has joined #commonlisp
<aeth> I just wanted everyone to know that I have the nick cond (secondary nick cons) for my bot on this network now. I haven't actually connected it from Common Lisp yet, I'm working through usocket atm :-)
<aeth> I won't actually put it in here because unauthorized bot stuff in large channels is rude
<cond> I just wanted to brag about the nick that's all
cond has left #commonlisp [#commonlisp]
<aeth> I guess I could give it a passive mode where it only logs
mindCrime has quit [Ping timeout: 268 seconds]
taiju has quit [Ping timeout: 245 seconds]
taiju has joined #commonlisp
derelict has joined #commonlisp
<beach> Good morning everyone!
srhm has quit [Quit: Konversation terminated!]
selwyn has quit [Read error: Connection reset by peer]
taiju has quit [Ping timeout: 244 seconds]
taiju has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life_ is now known as Lord_of_Life
akoana has quit [Quit: leaving]
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
mindCrime has joined #commonlisp
nsrahmad has joined #commonlisp
Inline has quit [Read error: Connection reset by peer]
bilegeek has joined #commonlisp
Inline has joined #commonlisp
Inline has quit [Client Quit]
Inline has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
contrapunctus has joined #commonlisp
<fiddlerwoaroof> Hello, #commonlisp
<beach> Hey fiddlerwoaroof.
<Inline> morning
bilegeek has quit [Quit: Leaving]
<beach> Hello Inline.
<Inline> heya beach
<Inline> :) how is it going ?
<beach> Fine, thank you. This past week we made great progress on SICL. What about yoU?
<beach> *you
hirez has joined #commonlisp
<Inline> not much
<Inline> i'm just meditating
<beach> Aww! You should take on some project!
<hirez> I seem to be having a ton of trouble with asdf/quicklisp. When I :use #:cl I get a ton of name collisions for things like `defun` and `format` in the package.
<Inline> hmm
<beach> hirez: Can you show your code?
<beach> Try plaster.tymoon.eu
dsk has quit [Ping timeout: 264 seconds]
<hirez> let me copy it into a pastebin, or that yeah
<hirez> give me 2s
<hirez> aww what the hell it works from a terminal. Let me ask a more targeted question
<hirez> does slime/sbcl cache the code from a previous attempt at quickloading?
<hirez> Its the only way it could be different from the terminal and emacs I think...
<beach> ASDF does, yes.
<hirez> Ah, I see. Yeah so thats the source of my problems at the moment. I removed a bunch of code and it loads. Allow me to break it again for fun.
<hirez> Yeah thats the only explanation. Somehow my compilation order got messed up. Now its loading. Its even allowing me to load LTK and it was complaining about that too.
<hirez> Rubber duck debugging is the best.
<beach> Great!
<hirez> thanks beach
<beach> Pleasure. :)
<hirez> One more thing - why is lispworks so dang expensive?
<hirez> seems like a sweet lisp
<easye> hirez: it ain't as expensive as Franz...
<hirez> thats fair, but even HobbyDV is $1500 for a single seat/single OS
<beach> Probably because they can get away with it.
* easye agrees with beach.
<hirez> yeah I guess its rhetorical
<hirez> its like ada
<hirez> If you pay enough you can get someone to support anything forever.
<beach> Their GUI stuff is apparently quite good.
<hirez> Yeah that was my main interest. That and the IDE is incredible.
<hirez> Playing with it in their personal version is sweet.
<beach> So to a corporate customer, the price is probably affordable if production gain is taken into account.
<moon-child> commercial languages are no longer really used by hobbyists. So it doesn't really make sense for them to have an cheap/affordable product tier
<hirez> yeah like I had mentioned before ada. The commercial versions are absurdly expensive because like you guys said its probably only 0.5% of companies that need it
<hirez> and those that do need it - NEED it
<moon-child> I don't think they need it. The companies that are expending tonnes of effort to verify software written in ada don't necessarily need the support--you need quite a bit of technical expertise on-hand anyway--they pay for the support partly because it can be convenient, and mostly because it's a way to sponsor compiler development. There is oss ada
<moon-child> but the same principle applies to the other proprietary languages. Pascal, ibm stuff...
dsk has joined #commonlisp
<hirez> CAD comes to mind as well
<hirez> makes sense, really
<moon-child> (well, I guess the ibm things are tied to their mainframe offerings--there you're paying for the hardware, and the software is just along for the ride)
<hirez> Hah, I kid you not 10 years ago I was sysadmin'ing an AIX box for an ecommerce company
<hirez> that was a trip
<moon-child> ooh wow, cool
<blihp> it also doesn't help that the free Lisp implementations are more numerous and *much* better than they used to be... that was pretty much the nail in the coffin for the low end Lisp market
<beach> hirez: Great progress is being made on McCLIM though, and some components of an IDE already exist, in case you want to create FLOSS GUI applications.
<hirez> I actually tried mcclim! It's _incredible_.
<beach> Oh, OK. Good!
<hirez> It actually reminds me a lot of the way the lispworks gui stuff works
<hirez> at least from the two demos I ran
<hirez> (lispworks however is winning on the pretty factor :P)
<beach> That aspect of McCLIM is also being worked on.
derelict has quit [Ping timeout: 268 seconds]
<hirez> wooow
<hirez> you see call me fuddy duddy but I love that command interface
<hirez> I dont know why but it makes me happy
domovod has joined #commonlisp
<moon-child> beach: semi-related, I wanted to get your thoughts on something. How should an auto-indenter handle quoted (not quasi-quoted) forms? Something like '(if x \n y z). Should the y be indented past the if or not? This is obviously a decision that a human will ultimately have to make, depending on the intended meaning of the form, but what should the auto-indenter's default/assumption be?
<White_Flame> I have never been able to figure out slime's indentation rules for quoted lists, and they're always wrong to my intent :-P
<beach> moon-child: My immediate reaction is that, since it is literal data, it should not be indented as if it were code.
<moon-child> (I guess the same problem applies to quasi-quotations, actually)
<beach> But now that I think about it, that rule is different in a macro body, right?
<moon-child> and there it's murkier. Sometimes quasiquotations are used to construct data. But how can you infer that? Macro/function is the easiest distinction, but frequently a macro will call into a function to construct some chunk of code, and the latter will use quasiquotation
<beach> Yes, I don't think there is a general solution to that problem.
mindCrime has quit [Ping timeout: 245 seconds]
<hirez> beach: is there a better place to learn mcclim than the guide. It is very...terse.
<White_Flame> and sometimes code & data are interspersed in a single quoted term, especially with DSL-ish specification data
<White_Flame> I think that for quoted data, either the human-provided indentation needs to be retained, or some small meta-spec on indentation would be useful. Neither is an ultimate solution, but then again so is the provided indentation
<White_Flame> (by meta-spec, I mean data before or intermixed in, commenting to the system how you want the following data indented)
<moon-child> I think if the meta-spec--or even a reference to it--has to accompany every instance of the data, I would rather simply indent by hand
yewscion has joined #commonlisp
<White_Flame> right, it would be better for large blocks, or for macros to specify deeper indentation info about its body
shka has joined #commonlisp
<White_Flame> for manual indentation, keystrokes for increasing & decreasing indentation would be handy, and would snap to align to peer terms in the line above, as well as the +2 spaces indentation from the current open paren
<moon-child> agree
<beach> hirez: The McCLIM manual is being worked on.
<beach> hirez: The specification is the ultimate document, but it is not great to learn from for a user.
<blihp> beach: it's not terrible, but it is a slog (I'm going through it right now)
<blihp> it would be nice if there was at least a section that rapidly walked through the basics of just *using* some common functionality and then break down how it works afterwards... nearly two pages for essentially a 3-liner hello world was tedious and I didn't find it terribly clear the first time through
frgo has quit [Quit: Leaving...]
<blihp> (made more annoying by not being able to copy/paste the code... it was faster just to re-type than correct all of the problems in the paste)
Inline has quit [Remote host closed the connection]
<beach> blihp: Are you talking about the manual or the specification?
<blihp> guided-tour.pdf
<beach> Oh!
<blihp> is that not what you were referring to?
<beach> No.
<blihp> what's the manual you are referring to? (I have seen the spec which I've set aside until I'm further along)
Oladon has joined #commonlisp
<beach> The specification is here: http://bauhh.dyndns.org:8000/clim-spec/index.html
<beach> The manual is in the McCLIM repository.
hirez has quit [Ping timeout: 245 seconds]
<beach> Go to Documentation/Manual/Texinfo and type make
<blihp> ah, OK. The guided tour looked like the closest thing to a quick start I found so I've been running with it for now.
Inline has joined #commonlisp
frgo has joined #commonlisp
yewscion has quit [Ping timeout: 264 seconds]
rgherdt has joined #commonlisp
<blihp> beach: thanks... ironically at first glance, the flow of the manual seems a bit better match than the guided tour for what I'm looking for to get started.
<beach> Great!
v88m has joined #commonlisp
v88m has quit [Client Quit]
v88m has joined #commonlisp
v88m has quit [Client Quit]
v88m has joined #commonlisp
taiju has quit [Ping timeout: 244 seconds]
taiju has joined #commonlisp
srji has joined #commonlisp
dickbar__ has joined #commonlisp
hendursa1 has joined #commonlisp
hendursaga has quit [Ping timeout: 252 seconds]
ivche has joined #commonlisp
cage has joined #commonlisp
domovod has quit [Quit: WeeChat 3.1]
blihp has quit [Ping timeout: 250 seconds]
cage has quit [Remote host closed the connection]
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
silasfox has joined #commonlisp
amb007 has joined #commonlisp
selwyn has joined #commonlisp
amb007 has left #commonlisp [Leaving]
amb007 has joined #commonlisp
amb007 has left #commonlisp [Leaving]
amb007 has joined #commonlisp
amb007 has left #commonlisp [Leaving]
amb007 has joined #commonlisp
srji has quit [Remote host closed the connection]
pjb has joined #commonlisp
contrapunctus has quit [Remote host closed the connection]
cage has joined #commonlisp
Oladon has quit [Quit: Leaving.]
dickbar__ has quit []
tyson2 has joined #commonlisp
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
sixtyfour has joined #commonlisp
<sixtyfour> Hello, I'd like to study good Common Lisp source code. Are there any good projects that are recommended?
<gigo> how does a CL implementation typically implement (format t "~&")? does it keep track of whether a newline was printed by format or any other I/O function previously at all times?
susam is now known as sp
sp is now known as spal
spal is now known as susam
nsrahmad has quit [Quit: Connection closed for inactivity]
<shka> sixtyfour: any particular interest?
<sixtyfour> shka: Anything suitable for a novice, but if possible I'd like to see code that makes good use of macros
<shka> statistical-learning (which i made) is perhaps not bad, but it is OO heavy, not macro heavy https://github.com/sirherrbatka/statistical-learning/blob/master/source/decision-tree/methods.lisp
<selwyn> maybe the arrow macros thing?
<edgar-rft> sixtyfour: Paul Graham's "On Lisp" is an entire book about macros -> http://www.paulgraham.com/onlisp.html
<Inline> eheh
<shka> oh, right
<shka> arrow macros is perhaps better
<selwyn> i have never looked at that codebase but it surely is big on macros
<sixtyfour> shka: Thank you for the recommendation. I have a question, what do the "~>"s do?
<sixtyfour> edgar-rft: Thanks, I'm currently reading it (and I plan to read LoL once I'm done)
<phadthai> it's not a book recommended for lisp style, but I agree that it's good irt macros
<shka> sixtyfour: it is an arrow macro
waleee has joined #commonlisp
<shka> it happens to come from a different system then the arrow-macros but it does the same thing
<shka> (-> a b c) will expand to (c (b a))
<shka> but since i use macro from the serapeum it is (~> a b c) instead
<sixtyfour> I see, thanks
<shka> anyway, i don't even write my own macros all that much
<shka> my hot take: macros are overrated! :P
<shka> don't get me wrong, macros are cool and useful, but some people considers this to be all end all feature of CL
<selwyn> i agree and would also say that most of the very good libraries i have seen tend to favour ´clos-style´ over macros
gaqwas has joined #commonlisp
sixtyfour has quit [Ping timeout: 252 seconds]
<selwyn> would imagine that optima/trivia have a lot of macros in their codebases
amb007 has quit [Ping timeout: 245 seconds]
random-nick has joined #commonlisp
nature has joined #commonlisp
<shka> the thing with macros is that it makes other aspects of CL better
tyson2 has quit [Remote host closed the connection]
mindCrime has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
yitzi has joined #commonlisp
tyson2 has joined #commonlisp
mindCrime has quit [Ping timeout: 268 seconds]
mindCrime has joined #commonlisp
derelict has joined #commonlisp
<jcowan> Macros are Lisp's pattern language and DSL creator
mindCrime has quit [Ping timeout: 268 seconds]
<jcowan> phoe: "What part of the standard forbids it?" is not really a sensible question. The standard does not forbid an implementation from having a function LISP-USERS:SCRITCHIFCHISTED that when called makes demons out of your nose, but it's unlikely.
<jcowan> A standard is a contract that tells users what they can rely on and what implementers, consequently, must provide.
<jcowan> s/LISP-USERS/COMMON-LISP-USER
<MichaelRaskin> Well, having a lisp-users packages with such a symbol inside is also not forbidden!
<jcowan> That too.
srji has joined #commonlisp
derelict has quit [Ping timeout: 252 seconds]
<MichaelRaskin> On the other hand, UNINTERN as defined seems indeed to be obligated to allow uninterning keywords
<MichaelRaskin> But also not obligated to handle pathological cases usefully
<jcowan> Per contra, it is not forbidden to allow only two packages, or saying that the largest fixnum is 0, or many other stupid things.
<MichaelRaskin> Nope
<_death> (defadvice quit (after initiate-nasal-sequence activate) (loop (push (create-demon) (get-current-nose)))) ;; a demon-creating demon
<MichaelRaskin> fixnums must include 0…65535
<jcowan> A better example might be a system in which the only flonum is 0.0
selwyn has joined #commonlisp
<gigo> how does a CL implementation typically implement (format t "~&")? does it keep track of whether a newline was printed by format or any other I/O function previously at all times?
<pjb> Yes.
<mrcom> MichaelRaskin: On #sbcl Krystof pointed out that the standard says "The consequences are undefined if an attempt is made to alter the home package of a symbol external in the COMMON-LISP package or the KEYWORD package."
<pjb> gigo: it even keeps track of the column, to implement ~T
<pjb> (format nil "hello~20Tworld~40T!") #| --> "hello world !" |#
<MichaelRaskin> mrcom: ah, good point, thanks
<MichaelRaskin> phoe: so the standard indeed forbids uninterning keywords
<mrcom> Well, technically it says that if you do, demons are allowed to come out of your nose.
<loke> Grey Streams has a method STREAM-LINE-COLUMN that allows you to access this.
<pjb> Gray Streams, for M. Gray was not grey.
<MichaelRaskin> It forbids this in conforming programs
<MichaelRaskin> It has no power outside those anyway
<mrcom> Nope, says its undefined.
nmg has joined #commonlisp
<MichaelRaskin> > depends for its correctness only upon documented aspects of Common Lisp, and can therefore be expected to run correctly in any conforming implementation
<mrcom> I stand corrected.
<mrcom> Our noses are safe.
<dieggsy> is there a good offline documentation alternative to CLHS that's easily readable in emacs ?
<beach> You can read the Common Lisp HyperSpec in Emacs, and you are allowed to download a copy of it.
nmg has quit [Remote host closed the connection]
<dieggsy> beach: huh, where can i find this download
<beach> On the website of LispWorks.
<dieggsy> yeah, the download link is broken
<beach> Not for me.
<beach> Works for me.
<dieggsy> Bizarre, i'm getting the requested URL was not found on this server
<_death> dieggsy: beach's link is different from yours
<beach> Right, FTP.
<beach> dieggsy: How did you obtain your link?
<dieggsy> Oh, it looks like firefox is just... messing up that link
<dieggsy> works on chromium. how weird
<beach> Works in Firefox for me.
<dieggsy> What version of firefox are you no
<dieggsy> on*
<dieggsy> OR it's an addon
<dieggsy> ah, it was the https-only mode in firefox
<dieggsy> welp, turning that off
<beach> 84.0.2 Does that make sense?
<beach> I know nothing about Firefox versions.
<dieggsy> Nah, i think i had turned that setting on myself. sorry for the annoyance lol
<dieggsy> does there exist a standard body of documentation for CL with an open license?
<dieggsy> say i wanted to host my own CL documentation site, i couldn't use the lispworks one for that due to the terms of use
<beach> There is no language reference if that is what you mean.
<beach> Or do you mean more generally?
<beach> CLtL2 is the closest to a language reference.
<beach> And there are other documents that are available for free.
<beach> Like PCL, On Lisp, PAIP I think, "gentle".
<beach> And you have manual for the implementation.
<beach> You have chapters 5 and 6 of the MOP.
<beach> CLIM specification.
<dieggsy> i guess i'm specifically interested in distribution terms?
<beach> But not the contents?
<dieggsy> If someone wanted to create their own modern CL documentation website, where would they start?
<beach> You still haven't said what you mean by "CL documentation".
<loke> dieggsy: They would start by converting the TeX sources of the spec into a machine-readable form.
<dieggsy> beach: a language reference like the hyperspec, i suppose
<phoe> MichaelRaskin: oooooh
<beach> loke: That is being done.
<phoe> mrcom: thanks!
<loke> beach: by whom? Manually?
<dieggsy> loke: where can i find the tex sources of the spec?
<beach> dieggsy: The Common Lisp HyperSpec is not a language reference. It is a document meant for people creating Common Lisp implementations.
<phoe> so that is the place where CLR is wrong
<beach> loke: Automatically
<dieggsy> beach: i mean, it serves as a language reference, no?
<dieggsy> common lisp programmers use it as such
<beach> dieggsy: It's a particularly bad one in terms of pedagogy.
<loke> beach: Where is the work on the spec conversion being done?
<beach> dieggsy: At least two people I know are working on parsing the dpANS in order to create a machine-readable form of it.
<dieggsy> loke: ah, thanks. what's the license on that text though?
<beach> dieggsy: Free to use.
<beach> Public domain.
<beach> loke: I am not sure I have the right to mention one of them. But the other one was in #lisp on freenode and discussed it openly.
<beach> loke: My memory is not good enough to remember the nick. Do you want me to search the logs?
<loke> Never mind. :-)
<loke> I'm a bit surprised that there would be a reason to keep such a project secret though.
<dieggsy> Ah. and it's compliant or equivalent to the 1994 standard?
Josh_2 has joined #commonlisp
<beach> loke: I think it was a question about license and such.
<loke> dieggsy: It's equivalent, minus some style changes, I belive.
<Josh_2> Good afternoon
<beach> Hello Josh_2.
<beach> loke: I believe you are right.
<loke> beach: I see. So they are processing LW's HTML pages and not the TeX ones then I guess?
<beach> No, no. That's illegal.
<phoe> LW CLHS is copyrighted, dpANS is not
<beach> loke: That would be a derived work. The Common Lisp HyperSpec is copyright for the markup.
<loke> phoe: right. I'm just trying to think of reasons why such would would be considered sensitive in any way?
<beach> "such"?
<beach> loke: The work was started before we had confirmation from Pitman that we can use it.
<phoe> deriving stuff from copyrighted works can get you sued by the copyright owner
<phoe> in this case, LispWorks and/or ANSI
<phoe> that's the sensitive part
<edgar-rft> dieggsy: dpANS3 (from Xach's Github account) was the text where the official ANSI Spec was made from, according to Kent Pitman it differs only in a few grammar mistake corrections
<beach> loke: "it" being dpANS.
<phoe> edgar-rft: AFAIK it does not differ even in these mistake corrections, but that's insignificant
<dieggsy> edgar-rft: wonderful, i'll take a look
<loke> I was working on an automatic conversion of the document into a sexp form. The problem is that the TeX is really sloppy and doesn't even follow its own conventions, so there is a lot of hacking needed to get it to parse. I got bored and gave up quite early (it only reliably parsed one or two of the sub-documents)
<dieggsy> wonder how successful just running it through pandoc would be
<dieggsy> probably not much, but let's try it
<phoe> not very much because of lots of custom macros
<phoe> I don't know if pandoc expands tex macros
<pjb> loke: an alternative would be to patch tex to dump the internal structure document, _if it exists_.
<phoe> or work on AsTeR a little bit
<pjb> or pandoc.
<loke> pjb: I don't believe it does.
<loke> pjb: If I recall correctly, the internal structure of a TeX document is constructed line-by-line, and each line is a set of vector drawing instructions.
<phoe> that's postscript I think
<loke> DVI is similar, no?
<phoe> I think so, yes
<loke> Also, even if you were to do that, you'd lose a lot of context that is needed. For example, you have special tags to indicate variable names, function names, etc. Most of of these gets converted by TeX macros to "bold".
<loke> So you really want to analyse the high level TeX code.
<phoe> yes, that is what AsTeR does
<phoe> it both preserves the logical structure of the macros *and* expands them to get to the nitty gritty contents that they define
<loke> phoe: OK, that sounds really useful.
<phoe> so basically "remember that this is a \Foo{4} macro that expands into the following TeX forms"
<phoe> loke: take a look at the original AsTeR paper
<phoe> the story of its creation is also an amazing thing
<phoe> tvraman is incapable of seeing but he's a mathematician, so he wrote Lisp code that parses TeX sources into text-to-speech commands
<phoe> so he can listen to math papers in all their symbolic mathematic glory
<phoe> a component that might be interesting to us is the TeX parser
<loke> Oh yeah, that's the guy who works on emacsspeak no?
<phoe> I think so, yes
<loke> I see him post on emacs-devel quite a bit.
<phoe> to me, it's stuff from the "oh holy cow, is such a thing even possible? wow" category
<beach> loke: theothornhill discussed his parsing work in #lisp on freenode.
<phoe> the logs should be there in Shinmera's irclogs - the old freenode #lisp logs were ported to libera #commonlisp
<beach> Yes, look for dpans starting in May this year.
<loke> beach: Thanks.
<beach> Pleasure. :)
<SAL9000> phoe: "AsTeR"? have a link? :)
<phoe> it's a big pile of lisp code
<phoe> the main parser is in one directory, and other dirs are basically collections of macros found within some classes of papers
<phoe> so, actual descriptions of math stuff that one can expect in papers, along with descriptions of how to translate them into TTS commands
<phoe> there's this lexer thing that uses the C "lex" program that could be rewritten into Lisp, maybe via esrap or some other parser
<SAL9000> ah, so the goal of the project is TTS'ing of TeX?
<dieggsy> a bit of CSS would make CLHS way more readable IMO heh
<phoe> SAL9000: yes, with an intermediate step of creating Lisp structure of all the TeX stuff
<phoe> and I assume that is what we are interested in the most
<SAL9000> that is really interesting, I'll have to take a closer look :)
<phoe> please do
<SAL9000> also hoping to learn from their approach to "expand macros but keep context"
<phoe> I wanted to use this to parse me some dpANS, but again, other priorities froze the project
<phoe> SAL9000: their approach is basically "we know the definition of macro \Foo{4} because we read it and we can understand it"
<SAL9000> $dayjob has an insane custom C++ pre-preprocessor which has been begging for a nuke-and-pave for years
<SAL9000> I'd love to use Lisp for that :)
<phoe> "so when we encounter \Foo then we make an object of type FOO that remembers all of the metadata that it has, but *also* refers to the contents after macroexpansion"
<phoe> so basically, it refers to the original data, but also refers to its macroexpanded version
<SAL9000> hm
<SAL9000> character-level, or sexpish-level?
<phoe> so it remembers both the high-level logical structure of the macros and the low-level stuff that needs to get printed to the TTS device
<phoe> and then the two are combined to make a better logical structure that gets TTSed
<phoe> made-up example: when it gets something like \Integral{3,5}{x²+x+2} that expands into some fancy math symbol stuff then it is capable of understanding this and sending "an integral from 3 to 5 of x squared plus x plus 2"
<SAL9000> sounds awesome
<phoe> it is
<SAL9000> so the idea is to apply this infra to TeX -> HTML?
<phoe> more like grab the existing parser TeX → Lisp objects
<phoe> and then figure out a way to turn these Lisp objects into whatever format we want, e.g. HTML
<phoe> basically render them to whatever format is required
<SAL9000> right
<phoe> but I don't want to interrupt theothornhill's work at the moment
<SAL9000> maybe DocBook or similar would be a more interesting target -- that can then be rendered to HTML/TexInfo/???
<phoe> sure, whatever works
<phoe> but
<phoe> this is just an idea for now and I have no possibility to turn it into concrete work
<phoe> other priorities take up my time
<SAL9000> right
<SAL9000> cool idea, though :)
<phoe> and if someone else wants to do it, then there's duplicate work
<phoe> theothornhill's approach
<phoe> and one more effort that is supposed to stay private for now that does a very similar thing to what AsTeR does
<SAL9000> ah
<phoe> so I'm staying back for the time being, since there's little that I can contribute that wouldn't end up as a half-assed reimplementation of one of these two approaches
<SAL9000> tbh I mostly want to see LaTeX -- or a similar system -- becoming a viable means of publishing "to the web", not just books/articles
<yitzi> phoe: I had kind of half-assed dpANS parser (I assume that is what you are talking about).
<phoe> yitzi: nope
<phoe> I was talking about my hypothetical half-assed TeX parser
<phoe> that does not exist yet
<yitzi> Ah, ok. My parser is actually a TeX parser/interpretor.
<phoe> very nice!
<yitzi> It's just a very basic start though. Got distracted with real stuff. https://github.com/yitzchak/dpANS3-parser
selwyn has quit [Read error: Connection reset by peer]
<yitzi> Handles catcodes properly and allows macros to be defined in TeX or CL. Also has a kind of "protect" that prevents macros defined in CL from being redefined in TeX so you can scan something like dpANS.
derelict has joined #commonlisp
<loke> yitzi: is it worth using a base for an attempt to do the full parsing?
<yitzi> On TeX or dpANS?
<loke[m]> dpans.
<yitzi> I think it has potential. It's been a while since I worked on so there could be bugs and I don't really remember where I left off. I wanted to get it include the comments in the output, which I think it can do.
<loke[m]> Just downloaded it and loaded it.
<loke[m]> What's the entry point?
<yitzi> Let me go look... (been like 9 months)
<yitzi> loke[m]: Look the file test.lisp
<yitzi> As I recall there is some stuff that it can't handle yet in setup.tex, so that is why it just starts on chap-01
<loke[m]> yitzi: thanks.
mindCrime has joined #commonlisp
blihp has joined #commonlisp
silasfox has quit [Quit: WeeChat 3.1]
mindCrime has quit [Ping timeout: 264 seconds]
gaqwas has quit [Ping timeout: 265 seconds]
<nick3000> Is there any way to go to a source location in SLDB?
<nick3000> Okay apparently there is 'v' but it's telling me that isn't implemented.
<beach> What Common Lisp implementation are you using?
<nick3000> CLISP
<nick3000> Does it work in sbcl?
<beach> Yes.
<nick3000> Okay.
v88m has quit [Ping timeout: 268 seconds]
<yitzi> ::notify loke Pushed a small change to dpANS3-parser that cleans up the italic text groups...if you are still playing around with it.
<Colleen> yitzi: Got it. I'll let loke know as soon as possible.
hendursa1 has quit [Quit: hendursa1]
gaqwas has joined #commonlisp
hendursaga has joined #commonlisp
<loke> yitzi: thanks. I am.
<Colleen> loke: yitzi said 14 minutes, 6 seconds ago: Pushed a small change to dpANS3-parser that cleans up the italic text groups...if you are still playing around with it.
mindCrime has joined #commonlisp
srhm has joined #commonlisp
selwyn has joined #commonlisp
mindCrime has quit [Ping timeout: 252 seconds]
neirac has quit [Ping timeout: 244 seconds]
v88m has joined #commonlisp
<eta> I don't like json
<MichaelRaskin> To be fair, I do not like NIL handling in Common Lisp too much…
<MichaelRaskin> (acceptable, and an outcome of a sequence of justifiable decisions, but not one of the parts I like)
mindCrime has joined #commonlisp
mindCrime has quit [Ping timeout: 264 seconds]
mindCrime has joined #commonlisp
neirac has joined #commonlisp
akoana has joined #commonlisp
<jmercouris> Wow, a real CLISP user
<jmercouris> That’s something
hirez has joined #commonlisp
<hirez> afternoon everyone
<jmercouris> is there are a feature I can test to see if I am in SLIME session?
<jmercouris> does slime push anything to *features*?
<jmercouris> I can't seem to see anything
<jmercouris> I guess SWANK is it
<jmercouris> but that just means a swank server is running
<jmercouris> perhaps that is enough...
<phoe> in a slime session? as in, not in a terminal?
<phoe> you could possibly check the values of standard streams, if they are slime/swank gray streams
shka has quit [Ping timeout: 245 seconds]
<mfiano> Check the value of swank:*emacs-connection* if the swank package exists
<phoe> oh! that'll be the best
<mfiano> It's actually un-exported, and probably want to OR that with (swank::default-connection)
yitzi has quit [Quit: Leaving]
MichaelRaskin has quit [Ping timeout: 268 seconds]
nature has quit [Quit: Lost terminal]
Krystof has quit [Ping timeout: 264 seconds]
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
jeosol has quit [Ping timeout: 244 seconds]
casual_friday_ has quit [Quit: %bye%]
Bike has joined #commonlisp
casual_friday has joined #commonlisp
MichaelRaskin has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
Krystof has joined #commonlisp
pieguy128 has quit [Ping timeout: 272 seconds]
pieguy128 has joined #commonlisp
<SAL9000> eta: that code can be simplified to (or val (make-hash-table)) :-)
<eta> SAL9000: I realised that about a minute after posting :)
<SAL9000> :)
pieguy128_ has joined #commonlisp
pieguy128 has quit [Ping timeout: 264 seconds]
yewscion has joined #commonlisp
mindCrime has quit [Ping timeout: 264 seconds]
ivche has quit [Quit: Adios! - sent from ERC]
derelict has quit [Quit: WeeChat 3.1]
yewscion_ has joined #commonlisp
blizzard has joined #commonlisp
yewscion has quit [Ping timeout: 268 seconds]
gaqwas has quit [Ping timeout: 245 seconds]
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
yewscion_ is now known as yewscion
mindCrime has joined #commonlisp
waleee has quit [Ping timeout: 244 seconds]
<fiddlerwoaroof> jmercouris: I think it's better to test on SWANK rather than whether SLIME specifically is being used
<fiddlerwoaroof> One could also try to see whether *standard-output* is a swank stream, which might be useful in some situations
Nilby has joined #commonlisp
Oladon has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
montxero has joined #commonlisp
<montxero> Is it possible to match on multiple expressions in a typecase? I am thinking along the lines of (typecase (exp1 exp2) ((list integer) ...) ((integer integer) ...))
<phoe> the hack I can think of is
<mfiano> No. Each clause is a type specifier for the singular key form
<phoe> (typecase (cons exp1 exp2) ((cons list integer) ...) ((cons integer integer) ...))
<mfiano> You could write a macro though to expand into a hierarchy of type cases
random-nick has quit [Ping timeout: 245 seconds]
<montxero> I see... Thanks
<montxero> phoe: trying your hack now
<mfiano> With a macro, you wouldn't need to evaluate exp2 when not needed
<montxero> I am still a macro baby but I'll give it a shot.
<Nilby> or just use methods, which are basically a replacement for the old lisp style of typecase of arguments in most functions
<phoe> ^
mindCrime has quit [Ping timeout: 264 seconds]
<montxero> phoe: It works! but I see this method cannot scale.
<montxero> Nilby: Great idea!
rgherdt has quit [Ping timeout: 268 seconds]
<phoe> montxero: if you want it to scale, use methods as Nilby said
<mfiano> montxero: Bear in mind, standard CL methods cannot dispatch on arbitrary types, only classes and EQL comparisons Every class has a type of the same name, but the inverse is not true.