<Nilby>
Guest74: I hope you mean output. If so, there's cl-pdf.
ehammarstrom has quit [Ping timeout: 244 seconds]
<Guest74>
input output, whatever.
<scymtym>
Guest74: McCLIM has a backend for writing postscript. or do you want to read and interpret postscript?
<Nilby>
Guest74: Input is very different, in a language designed for output.
<Guest74>
scymtym: thanks, thought they might.
<Guest74>
Nilby: I'm very tired of the onesidedness of most Lisp systems.
<Nilby>
Guest74: Consider the difference in difficulty of outputing s-exps compatible with CL, and writing a whole CL implementation.
ehammarstrom has joined #commonlisp
<Guest74>
welp, that could have saved me some time with afm.
<scymtym>
i think Guest74 still has the point that libraries are often designed to either read or write a given format instead of treating the different aspects of a language such as structure, semantics/interpretation, parsing, unparsing systematically
<Guest74>
most of the work is done after all. and yet trying to bolt on the missing input/output to these systems is usually hard because they weren't designed for it.
* Nilby
made a PostScript that probabaly still runs in some printers, but I gave up on making CL PostScript, since the value proposition is too small. A lot of work, with very little payoff. Also to be useful, it has to be close to perfect.
<mfiano>
Hmm, (equal local-time:+rfc3339-format+ local-time:+iso-8601-format+) ; => T. Is there any difference between these two standardized formats I should be aware of that I'm not seeing?
<Nilby>
The important part of PostScript is the 2d graphics model and rendering, which other libraries can do.
<pjb>
mfiano: actually, iso-8601 covers a lot of variants. rfc3339 defines a profile of ISO 8601 for use in Internet protocols.
<pjb>
So I would assume that they're not equal!
<mfiano>
This explains it: (defparameter +rfc3339-format+ +iso-8601-format+)
<pjb>
A shortcut.
<Nilby>
Guest74: If you want to convert typical PostScript to s-exps, it's pretty easy, since it's nearly backwards paren-less lisp. But the language runtime is quite complicated.
<weary>
let's be honest, it's not like many other languages have a good native postscript story
<Guest74>
unfortunately doesn't look like much I can use from mcclim.
<Nilby>
weary: Yes, and the only free one, is partially non-free since it's still has a high practical monetary value.
triffid has quit [Ping timeout: 240 seconds]
<weary>
ask a person what they want in a postscript library and they'll give you six different answers
<weary>
because it's more or less two and a half different languages.
<Guest74>
I'll just stick to the font then and converting paths to the cl standard.
gxt has quit [Remote host closed the connection]
gxt has joined #commonlisp
igemnace has joined #commonlisp
attila_lendvai_ has quit [Quit: Leaving]
attila_lendvai has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
Bike has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<Nilby>
I don't know any in CL, but there are a number other libraries that can read AFM font metrics, and PostScript Type 1 fonts, without implementing the whole language.
<Guest74>
just finished afm yesterday. hoping on basic type 1 today. Basic paths shouldn't be hard as its similar to svg and I already got that.
ehammarstrom has joined #commonlisp
<Nilby>
Type 1 fonts had secret "encrption" until, the industry forced Adobe to give up the secret key, which you still might need for some fonts.
<Nilby>
#x1272C
triffid has joined #commonlisp
<Guest74>
I mainly just need more font types to test with to make sure I'm not making more stupid mistakes based off what one font reader reports.
igemnace has quit [Quit: WeeChat 3.5]
fitzsim has joined #commonlisp
attila_lendvai has quit [Ping timeout: 240 seconds]
ehammarstrom has quit [Ping timeout: 244 seconds]
<Guest74>
Looking at the mcclim code and their stream interface made me wonder how things change. I remember being concerned about kb's, let alone megs, now I just slurp the whole thing up, slice and dice, and depend on apple being anal about their format. Things that used to be necessities have now become design choices(probably better design choices).
yagamisato has quit [Ping timeout: 244 seconds]
yagamisato has joined #commonlisp
yagamisato has joined #commonlisp
yagamisato has quit [Changing host]
tyson2 has joined #commonlisp
lisp123 has joined #commonlisp
ehammarstrom has joined #commonlisp
dra_ has joined #commonlisp
lisp123 has quit [Ping timeout: 246 seconds]
yewscion has joined #commonlisp
ehammarstrom has quit [Ping timeout: 240 seconds]
rotateq has quit [Remote host closed the connection]
ehammarstrom has joined #commonlisp
ehammarstrom has quit [Ping timeout: 244 seconds]
machaddr has joined #commonlisp
Bike has quit [Ping timeout: 246 seconds]
ehammarstrom has joined #commonlisp
pranavats has joined #commonlisp
dra_ has quit [Ping timeout: 260 seconds]
<Josh_2>
Latest github version for dexador fixes leaking fd's :)
ehammarstrom has quit [Ping timeout: 240 seconds]
<Josh_2>
Why would someone use cl-naive-store over bknr?
tyson2 has quit [Remote host closed the connection]
ehammarstrom has quit [Ping timeout: 240 seconds]
ehammarstrom has joined #commonlisp
ehammarstrom has quit [Ping timeout: 240 seconds]
ehammarstrom has joined #commonlisp
dra_ has quit [Ping timeout: 260 seconds]
ehammarstrom has quit [Ping timeout: 240 seconds]
ehammarstrom has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #commonlisp
ehammarstrom has joined #commonlisp
knusbaum has quit [Ping timeout: 255 seconds]
knusbaum has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
ehammarstrom has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
ryanbw has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
ryanbw has joined #commonlisp
ehammarstrom has joined #commonlisp
* contrapunctus
has begun working on their code browser project
ryanbw has quit [Client Quit]
ryanbw has joined #commonlisp
ehammarstrom has quit [Ping timeout: 260 seconds]
subpsunym has joined #commonlisp
ryanbw has quit [Client Quit]
<contrapunctus>
The aim is to 1. present any codebase as a tree, such that files and directories become parent nodes, definitions become child nodes. Source comments may be included. 2. hide/show said tree, or parts of it, manually (similar to TAB for Org headings) or based on definition name/metadata (similar to org-sparse-tree) 3. allow jumping to any definition in the project, by name.
<contrapunctus>
The tree structure and definitions can be edited, and the changes are reflected in the project structure and source code.
<contrapunctus>
What I'm not sure about is whether to use the SLIME/Swank protocol to get the definition locations, or to directly parse the source files...
<Shinmera>
parsing source files will just not work because of macros and other fun stuff.
<White_Flame>
macros don't mess up nesting/tree structure though
<Shinmera>
no, but you can't parse what you don't recognise.
<Shinmera>
how do you tell what a "definition" is from anything else
<White_Flame>
true
orestarod has joined #commonlisp
<Shinmera>
anyway, the above library implements a protocol for exactly that. it recognises standard definitions, and allows users to define their own.
ehammarstrom has joined #commonlisp
<contrapunctus>
My hack today was to read the file into a string and split the string using empty lines (\n\n) as separator.
<contrapunctus>
Shinmera: thanks, taking a look
lisp123 has joined #commonlisp
asarch has joined #commonlisp
<contrapunctus>
.o(...which would break if e.g. a string contained an empty line...)
n1to has joined #commonlisp
<Shinmera>
it'll break in many more ways than that.
asarch has quit [Client Quit]
ehammarstrom has quit [Ping timeout: 276 seconds]
lisp123 has quit [Ping timeout: 246 seconds]
szkl has quit [Quit: Connection closed for inactivity]
ehammarstrom has joined #commonlisp
ehammarstrom has quit [Ping timeout: 276 seconds]
kpoeck has joined #commonlisp
ehammarstrom has joined #commonlisp
shka has quit [Ping timeout: 258 seconds]
ehammarstrom has quit [Ping timeout: 244 seconds]
ryanbw has joined #commonlisp
ehammarstrom has joined #commonlisp
vassenn has joined #commonlisp
attila_lendvai has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
ryanbw has quit [Quit: I'll be back.]
kpoeck has quit [Quit: Client closed]
ehammarstrom has joined #commonlisp
ryanbw has joined #commonlisp
rotateq has quit [Ping timeout: 272 seconds]
ehammarstrom has quit [Ping timeout: 258 seconds]
ehammarstrom has joined #commonlisp
Oladon has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
ehammarstrom has joined #commonlisp
<contrapunctus>
Shinmera: DEFINITIONS looks good...that said, is there any reason to prefer DEFINITIONS instead of the SLIME protocol? (The former has better documentation, I suppose ^^)
ehammarstrom has quit [Ping timeout: 258 seconds]
<Shinmera>
it's standardised and user-extensible.
<Shinmera>
the con is that currently there's less implementations that are fully supported than with swank.
ehammarstrom has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
yewscion12 has joined #commonlisp
mfiano has joined #commonlisp
ehammarstrom has joined #commonlisp
treflip has quit [Quit: i slep]
ehammarstrom has quit [Ping timeout: 258 seconds]
vassenn has quit [Quit: Good bye!]
ehammarstrom has joined #commonlisp
<Guest74>
contrapunctus: If there isn't a form number -> line number/file position that's the first thing you could write.
<Guest74>
I had been silently wishing someone had written a cl->ps transpiler since everybody was doing the same as me plopping stuff in templates that ignore lots. Then I found plisp. 40 year old software is always fun to deal with.
<Guest74>
omg i didn't even notice they didn't even define a package. Just load everything in your current package. I thought they had defsystems in the 80s?
kpoeck has quit [Quit: Client closed]
dra_ has joined #commonlisp
dra_ has quit [Client Quit]
kpoeck has joined #commonlisp
<pjb>
Guest74: yes, a defsystem macro existed long ago, probably before CL, indeed. Nowadays we just use asdf:defsystem, but there was some other version before.
yewscion12 has quit [Ping timeout: 246 seconds]
ehammarstrom has quit [Ping timeout: 260 seconds]
machaddr_ has joined #commonlisp
machaddr has quit [Ping timeout: 240 seconds]
ehammarstrom has joined #commonlisp
ehammarstrom has quit [Ping timeout: 258 seconds]
aeth has quit [Ping timeout: 246 seconds]
ehammarstrom has joined #commonlisp
<Nilby>
contrapunctus: unfortunely you'll likely find need a patched/non-standard reader
<contrapunctus>
Nilby: huh, why?
aeth has joined #commonlisp
<Nilby>
unless you're restricting yourself to successfully loaded code
<Nilby>
contrapunctus: many reasons: non existent packages, broken code, *feature* differences, reader macros, etc, etc.
<contrapunctus>
Ah...right 🤔
ehammarstrom has quit [Ping timeout: 258 seconds]
<Nilby>
also you'll likely need at least a partial lisp parser, and end up writing a thing like a pretty printer
Oddity has joined #commonlisp
<Nilby>
not to mention a UI library with customizable text box / editor
pslotko has quit [Quit: Leaving]
<contrapunctus>
Aaaaaa :\
tyson2 has joined #commonlisp
<Nilby>
but when I had 100k lines of other junk the minimal proof of concept code tree thing was only 120 lines of code
<contrapunctus>
Nilby: ?
<Nilby>
contrapunctus: but I wouldn't let the ramblings of a crazy old hermit dissuade me
ehammarstrom has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
<Nilby>
Shinmera seems to be able to do things that can make many of us look like monkeys banging on rocks
<Shinmera>
It is impossible to read common lisp code without executing it
<Shinmera>
So the easiest way is to use the information provided by the implementation, which has already done that.
ehammarstrom has quit [Ping timeout: 258 seconds]
shka has quit [Ping timeout: 246 seconds]
ehammarstrom has joined #commonlisp
<Nilby>
impossible is a bit of strong word, but I mostly agree
cosimone` has quit [Remote host closed the connection]
<yitzi>
Its only possible if you are willing to ignore macros you don't know about, hidden readtable changes, etc. It may be a strong word but Shinmera is correct.
ehammarstrom has quit [Ping timeout: 240 seconds]
<Guest74>
I'm mainly happy ignoring those things.
<contrapunctus>
I _was_ hoping that one would be able to use this tool for working on all stages of a codebase...the requirement than code load without errors kind of puts a damper on the thing 🤔
<contrapunctus>
The programmer could comment out incomplete/incorrect code, but...what a hack :\
<Nilby>
with the modified reader you'll need, you can usally ignore problematic sections
<Nilby>
or present them without alteration
ehammarstrom has joined #commonlisp
<Guest74>
I find it helps to just start with something that is useful.
<yitzi>
You can do that with Eclector, but again you could have a facsimile of the true meaning of the parsed code.
<scymtym>
you can get pretty far, that is do something useful, by knowing the standard macros. for example, https://techfak.de/~jmoringe/semantic-highlighting-2.png has source locations for everything and knows the semantics (as indicated by color and font) of typical code such as that in the example (note the package change) without interning anything or changing the host environment in any other way. but sure, there are things that c
<scymtym>
handled by this approach
ehammarstrom has quit [Ping timeout: 240 seconds]
machaddr__ has joined #commonlisp
<Nilby>
yes, and if you retain the problem code verbatim, it's viable for editing. i remember scymtym's impressive demo of this. i think is reasonable to say if your reader macros aren't loaded, a tool won't be able to grok it
ehammarstrom has joined #commonlisp
machaddr_ has quit [Ping timeout: 258 seconds]
dlowe has quit [Ping timeout: 240 seconds]
ehammarstrom has quit [Ping timeout: 244 seconds]
knusbaum has quit [Ping timeout: 255 seconds]
knusbaum has joined #commonlisp
kpoeck has quit [Quit: Client closed]
machaddr__ has quit [Quit: Leaving]
Madsy has quit [Ping timeout: 246 seconds]
ehammarstrom has joined #commonlisp
jmdaemon has joined #commonlisp
<mfiano>
It's unfortunate the ERC still hasn't fixed its long line conformance issue.
<mfiano>
s/the/that/
<mfiano>
Luckily I was able to infer the rest of scymtym's message.
<Guest74>
it was c/rash when/ handled... right?
<mfiano>
Hmm?
<Guest74>
c/an explode when /handled...?
<mfiano>
I assumed 'annot be'.
<Guest74>
ugh I don't understand these old conventions. Why are some special variables muffed and others not?
<mfiano>
Many opinions. Talk to Mr. Hoyte.
ehammarstrom has quit [Ping timeout: 258 seconds]
<Guest74>
and everything is a special, no structs or classes. This crap better work.