freenode/#lisp - IRC Chatlog
Search
21:20:55
theothornhill
Well, one thing I discovered while wasting time on this was that there are two prominent lispers that uses sjl as initials
21:21:02
ebrasca
saturn2: Thanks, I think I first like to make other things! ( I only have 1 or 2 things that I thing can be better )
21:22:16
gigamonkey
dude, get back to us when you have at least 100. (I kept a list when I was writing PCL and it was probably way longer than that.)
21:23:12
theothornhill
gigamonkey: you could make a parser for the dpans spec that generates a new HyperSpec for PCL2. (I saw you requested ideas for binary formats O:-) )
21:29:47
theothornhill
Some of the "simpler" attempts: https://github.com/vseloved/rutils https://github.com/cl21/cl21
21:48:19
nij
Here's beach guessing CommonDoc could be a great start: https://irclog.tymoon.eu/freenode/%23lisp?around=1619602936#1619602936
21:49:43
ebrasca
I don't like cl21, why Regular Expression. How Running external programs is going to help OS writen in CL21?
21:51:53
theothornhill
nij: nice! I found this script buried deep in the nineties - perhaps it could be of use? I've experimented a little with recreating the whole spec as one file with all macros expanded, and it can be done with that script https://hg.sr.ht/~theo/clms/browse/tme.pl?rev=tip
21:53:31
theothornhill
nij: With tme.pl and texexpander the whole spec can easily be turned into a single document
21:55:52
nij
But if gigamonkey is right, we should beware of the copyright issue of dpANS... there's a copy but I dont know. I'm a #lisp noob and a legal noob as well.
21:55:54
theothornhill
Not yet into commondoc. Only a single latex document. Was able to parse it to html using pandoc, so should be doable
21:57:22
theothornhill
Yeah. Felt like we were onto something, but now it seems a little futile. I guess it is impossible to legally copy the dpans
21:58:12
theothornhill
I didn't see one. That just means its licensed to all the authors, if I'm not mistaken. Which makes it hard, since I guess not all are easy to get hold of
21:58:33
nij
Now there's at least a copy posted online by a non-author: https://github.com/xach/dpans
22:06:00
mfiano
Some people believe it is because of its intention to be, but with no formal notice, it cannot be.
22:06:40
White_Flame
best way to find out the legal status of something is to copy it and wait for a takedown notice
22:07:34
White_Flame
the thing is, it costs money to do that. _would_ somebody bother sinking money into a real lawsuit for something like the CL spec?
22:10:00
nij`
theothornhill: with the parsed version you have, do you think it's easy to create hyperlinks?
22:11:42
nij`
theothornhill: like.. how far do you think you can turn it into a CommonDoc version, with a great Master Index :D?
22:12:14
theothornhill
nij`: That's where I'm a little unclear as to what's the best way to link. Now the expander just expands all the way to be tex primitives, and it might be better to attach links to something a little less generic. Not sure
22:12:47
theothornhill
I think we can go pretty far. My first instinct was to go to markdown or something similar
22:13:33
theothornhill
I'm working now on some ways to do it reproducible. Right now there are some manual steps to get things right
22:13:52
nij`
theothornhill - I think there are some special macros used that are intended to create links?
22:14:34
nij`
I'd say if we can parse it in CommonDoc then it'd be awesome.. something that has a programmatic structures.
22:14:38
theothornhill
Not sure. If so, I think I need to rewrite the perlscript to account for those cases, and yuck
22:16:24
jcowan
gigamonkey: I wish you could get the derivative rights to PCL back, so that other P-books could be written.
22:16:40
theothornhill
nij`: maybe. It's a pretty gnarly script. Doable, of course, but I'd rather do it in lisp than perl
22:30:53
theothornhill
nij`: I think getting some input from phoe on whats needed from the macro expander to fit in nicely with CLUS. I think I remember him speaking about the macros being hard to deal with since they are all over the place
22:37:27
gigamonkey
I mean, I still own the copyright to PCL but have licensed most publication rights to Apress.
22:38:21
gigamonkey
And a Practical O'Caml that came out after and got thoroughly, and publicly, roasted by the tech reviewer.
22:39:18
gigamonkey
In theory if Apress ever lets PCL go "out of print" all the rights revert back to me but I'm not sure what that means in a world of Print On Demand books.
22:39:44
jcowan
It talks about the right things in the right order, and we now have enough Scheme de facto standardized to make it usable, perhaps with some chapters missing
22:41:20
gigamonkey
dieggsy: I think the thing linked in this Redddit post was it but that link is dead. https://www.reddit.com/r/programming/comments/q7kh/practical_ocaml_good_idea_bad_book_by_its_tech/
22:42:10
gigamonkey
Yeah, well, it was written before P.O.D. was a big thing. I don't think it really does.
22:42:38
gigamonkey
like in the days when they actually paid, in advance to print copies that sat in inventory somewhere, it was out of print when they stopped printing new copies.
22:42:46
jcowan
https://web.archive.org/web/20120608181620/http://blog.merjis.com/2006/11/08/practical-ocaml/
22:46:33
jcowan
https://chrome.google.com/webstore/detail/wayback-machine/fpnmgdkabkmnadcjpehmlllkndpkmiak?hl=en-US
22:49:14
jcowan
gigamonkey: If you feel like doing a favor for the non-CL Lisp communities, you can certainly ask for the rights back even if you are not legally entitled to them.
22:49:34
dieggsy
huh, it might not be working for me because my stupid internet provider tries to handle not found on its own
22:59:08
gigamonkey
jcowan: Apress loves putting out derivitive works. I'm sure if someone wants to write a Practical Scheme they could talk to Apress about it. And if they really want to start from PCL I guess they'd have to do a deal with me. But I doubt Apress is just going to let go of the rights.
23:02:15
gigamonkey
Oh, found my contract "The Work shall be deemed out-of-print if it is not available for sale in reasonable quantities in normal trade channels".
23:02:33
gigamonkey
So as long as the P.O.D. folks keep doing their thing, it will never go "out of print".
23:40:12
jcowan
I also looked a little bit into the old blog and the "forgotten ~U". Scheme's format is based on combinators rather than a stringly DSL, and it supports both 2^10 and 10^3 prefix scaling.
23:55:28
gigamonkey
jcowan: link to Scheme's format that you're talking about? All the docs I can find seem to be for something lifted from CL.
23:58:07
gigamonkey
Yeah, I get the urge. On the other hand I actually think sometimes it's better to have the format be just a bunch of maximally concise line noise.
23:59:22
jcowan
Granted, you can ram all that into your head, but once you reach the limit of what cl:format does, that's it.
0:01:41
gigamonkey
Yeah, in my dream Lisp there might be a *formatter* special variable that would get passed the format string and would return a function that generates the output. So if you wanted you could do (let ((*formatter* #'my-funky-dsl-parser)) (format t "whatever you want here" stuff more-stuff))
0:03:12
no-defun-allowed
You can use any function which acts like one returned from FORMATTER as format control.
0:06:14
gigamonkey
Or maybe a *format-table* that maps chars to functions so you can add characters that have meaning after a ~
0:06:23
pjb
So something like: (defvar *formatter* (function formatter)) (format t (funcall *formatter* "whatever you want here") stuff more-stuff)
0:07:55
gigamonkey
Where the format string was obviously processed by a different parser than the default CL format string parser.
0:08:31
pjb
gigamonkey: format control n. a format string, or a function that obeys the argument conventions for a function returned by the formatter macro. See Section 22.2.1.3 (Compiling Format Strings).
0:08:55
gigamonkey
Though I like my *format-table* idea better, now. Because then I could implement the lost ~U directive without having to rewrite everything else.
1:54:03
fiddlerwoaroof
White_Flame: yeah, and when I run with *print-case* :downcase, I find all those libraries
1:58:11
fiddlerwoaroof
Yeah, that's what I tend to do too, but it doesn't solve the *print-case* issue
1:58:32
fiddlerwoaroof
Wrapping your macro definition with WITH-STANDARD-IO-SYNTAX should, because it's defined to rebind print=case
2:00:19
fiddlerwoaroof
I know Erik Naggum was involved in the SGML standardization efforts, are there any reasonably complete lisp implementations of SGML?
3:12:47
beach
nij: With respect to CommonDoc, I see some design decisions that I would have done differently.
3:13:16
beach
nij: For parsing the dpANS, I really haven't thought about it. But I guess it's moot, since it seems to be done now.
3:19:34
dieggsy
re: my earlier question about a hunchentoot server that does block, you can just (make-instance 'hunchentoot:easy-acceptor :taskmaster (make-instance 'hunchentoot:single-threaded-taskmaster) ...)
3:20:04
no-defun-allowed
Yes, then a. it is single threaded and b. how are you supposed to stop it properly?
3:20:56
dieggsy
*no-defun-allowed*: i'm storing the acceptor in a variable and defining an easy handler that stops it, since all i need is a server that handles a single request
3:21:22
dieggsy
so the handler takes the request, does something with the info, then stops the acceptor
5:06:42
beach
Suppose we had a documentation system based on (say) "chunks", and each chunk is a standard object that can be read and written using READ and PRINT perhaps with one or two additional reader macros. Suppose further that each chunk has a unique identifier based on Common Lisp universal time plus some random number.
5:06:52
beach
In other words, chunk identifiers can be created by the person creating the chunk and we are reasonably sure it is going to be unique. Also, suppose these chunks can either be inlined into other chunks or referred to from other chunks. We could even go so far as to have each individual words be a separate chunk.
5:07:04
beach
Such word chunks could then be used in other applications such as spell checkers and grammar checkers. So far so good. However, I would like some input on the process of creating the "database" of chunks. First of all, we can't assume that every word in English (let's start with English) has been turned into a chunk. So we probably need to allow for a Common Lisp string to replace a word chunk.
5:07:12
beach
I can see an interactive (CLIM-based?) editor that would allow people to create chunks, and perhaps also taking strings and substituting word chunks in the data base. This process could be "manual" but supported by the tool. For example, a string that has a word chunk in the data base could be highlighted, and the user could examine the possible chunks and select one.
5:07:14
beach
But here is where I need a discussion: How do we maintain the "database" of chunks? Individual users will create chunks and store them locally, but how do we merge individual "databases"? Also, we might want to merge updates to a chunk from different users. Should we then create a tool that checks for conflicts and such? And who is in charge of the merge?
5:17:06
beach
Maybe I am exaggerating the problem? Maybe each chunk would belong to some "library" that would be managed just like code libraries are, i.e., there will be one or more maintainers for a GIT repository and people will submit pull requests.
5:30:02
beach
I should perhaps give some examples of chunk types, so that the idea becomes more clear. The lowest level chunks would be morpheme chunks, word chunks, phrase chunks, sentence chunks, paragraph chunks. Then there would be inline chunks, reference chunks for inserting or referring to other chunks.
5:30:03
beach
There would be bibliography chunks, figure chunks, math formula chunks, etc. And there would be specific chunks for documenting code, like chunks corresponding to the different DOCUMENTATION methods, chunks for referring to names in programs like class names, function names, etc. I don't have a complete list of chunk types yet, of course.
6:22:05
easye
Strictly speaking, RDF only has the simplest possible scaffolding for ontologies. One usually layers in something like OWL2 for any real ontological reasoning. OWL2 happens to have an RDF serialization, which might confuse things.
6:23:06
easye
One can get pretty far with abcl by using W3C RDF stacks which tend to have a JVM implementation.
6:23:37
easye
c.f. <https://github.com/alanruttenberg/lsw2> for a several decade long project that takes this approach.
6:26:26
easye
We will be having an ELS2021 dress rehearsal today sometime after 1000 UTC in which we could use people to help smoke test the participatory a/v infrastructure we have been preparing. Join #elsconf for details if you are interested.
6:35:34
fe[nl]ix
beach: "morpheme chunks, word chunks, phrase chunks, sentence chunks, paragraph chunks" <- those are ontologies
6:36:43
fe[nl]ix
beach: the problem I see there is that most people who write documentation don't want to accurately annotate what they're writing
6:37:05
fe[nl]ix
it's much more convenient to just write text and rely on the readers to figure out the context
7:22:45
splittist
beach: I'm missing the point of having a shared database of chunks. Is this for collaborating on public documentation, or ... ?
7:27:29
beach
splittist: It would be good if low-level chunks such as words, bibliography entries, etc. were shared.
7:28:43
beach
splittist: Also, for the purpose of cross references, like if the documentation for one system would like to refer to the documentation of another system.
7:33:05
beach
nij: See the logs for ideas on the kind of documentation system I might want to see. As you can see, CommonDoc is not quite it. Also, don't expect me to be present between 19:00 and 05:00. And, try to avoid private messages for subjects that are interesting to more than you and me.
7:34:26
beach
I guess I would have to create some kind of demo of the "chunk" system to see whether it is technically feasible.
7:50:54
splittist
beach: OK. I keep thinking about #<chunk "Very secret stuff" #xABCD> and #<chunk "Personally identifiable information, imposing obligations on everyone who has a copy" #xFACE> etc.
8:09:15
jdz
There's also the #<chunk "I thought this is OK to share, but then got fired. #xDEADBEEF>.