A portable implementation for srfi-159 Duy Nguyen (14 Feb 2020 12:39 UTC)
Re: A portable implementation for srfi-159 Lassi Kortela (14 Feb 2020 13:08 UTC)
Re: A portable implementation for srfi-159 Duy Nguyen (14 Feb 2020 13:13 UTC)
Re: A portable implementation for srfi-159 Lassi Kortela (14 Feb 2020 13:23 UTC)
Re: A portable implementation for srfi-159 Duy Nguyen (14 Feb 2020 13:26 UTC)
Standardizing some feature identifiers Lassi Kortela (14 Feb 2020 13:36 UTC)
Re: Standardizing some feature identifiers Lassi Kortela (14 Feb 2020 13:38 UTC)
Re: Standardizing some feature identifiers John Cowan (14 Feb 2020 13:40 UTC)
Re: Standardizing some feature identifiers Duy Nguyen (14 Feb 2020 13:43 UTC)
Re: Standardizing some feature identifiers Lassi Kortela (14 Feb 2020 13:51 UTC)
cond-expand portability Lassi Kortela (14 Feb 2020 13:45 UTC)
Re: cond-expand portability John Cowan (14 Feb 2020 14:29 UTC)
Re: cond-expand portability Lassi Kortela (14 Feb 2020 14:54 UTC)
Re: A portable implementation for srfi-159 Marc Nieper-Wißkirchen (14 Feb 2020 13:24 UTC)
Re: A portable implementation for srfi-159 Duy Nguyen (14 Feb 2020 13:28 UTC)
Re: A portable implementation for srfi-159 Marc Nieper-Wißkirchen (14 Feb 2020 13:33 UTC)
Pretty-printing and auto-formatting Scheme code Lassi Kortela (14 Feb 2020 13:34 UTC)
Re: Pretty-printing and auto-formatting Scheme code Duy Nguyen (14 Feb 2020 13:41 UTC)
Re: Pretty-printing and auto-formatting Scheme code Marc Feeley (14 Feb 2020 13:51 UTC)
Re: Pretty-printing and auto-formatting Scheme code Lassi Kortela (14 Feb 2020 14:02 UTC)
Re: Pretty-printing and auto-formatting Scheme code John Cowan (14 Feb 2020 14:07 UTC)
Re: Pretty-printing and auto-formatting Scheme code Lassi Kortela (14 Feb 2020 14:19 UTC)
Re: Pretty-printing and auto-formatting Scheme code Arthur A. Gleckler (14 Feb 2020 16:28 UTC)
Re: Pretty-printing and auto-formatting Scheme code Lassi Kortela (14 Feb 2020 17:05 UTC)
Re: Pretty-printing and auto-formatting Scheme code Arthur A. Gleckler (14 Feb 2020 20:02 UTC)
Re: Pretty-printing and auto-formatting Scheme code John Cowan (14 Feb 2020 21:59 UTC)
Re: Pretty-printing and auto-formatting Scheme code Lassi Kortela (14 Feb 2020 22:37 UTC)
Re: Pretty-printing and auto-formatting Scheme code John Cowan (15 Feb 2020 07:44 UTC)
Re: Pretty-printing and auto-formatting Scheme code Vladimir Nikishkin (15 Feb 2020 10:15 UTC)
More conventional syntax Lassi Kortela (15 Feb 2020 20:05 UTC)
Re: More conventional syntax John Cowan (15 Feb 2020 20:12 UTC)
Re: Pretty-printing and auto-formatting Scheme code Arthur A. Gleckler (15 Feb 2020 17:44 UTC)
Re: Pretty-printing and auto-formatting Scheme code John Cowan (15 Feb 2020 18:33 UTC)
Re: Pretty-printing and auto-formatting Scheme code Arthur A. Gleckler (15 Feb 2020 18:58 UTC)
Re: Pretty-printing and auto-formatting Scheme code Lassi Kortela (15 Feb 2020 19:47 UTC)
Re: A portable implementation for srfi-159 Arthur A. Gleckler (14 Feb 2020 16:20 UTC)
Re: A portable implementation for srfi-159 Duy Nguyen (15 Feb 2020 00:59 UTC)
Re: A portable implementation for srfi-159 Arthur A. Gleckler (15 Feb 2020 02:26 UTC)
Re: A portable implementation for srfi-159 Duy Nguyen (22 Feb 2020 12:50 UTC)
Re: A portable implementation for srfi-159 Arthur A. Gleckler (23 Feb 2020 07:52 UTC)

Re: Pretty-printing and auto-formatting Scheme code Lassi Kortela 14 Feb 2020 14:01 UTC

> I wrote a Scheme pretty-printer many years ago and it is currently used by many Scheme systems (Guile, Bigloo, slib, …):
>
> https://github.com/skangas/guile/blob/master/module/ice-9/pretty-print.scm
>
> That code could certainly be improved upon, but it already behaves well for general use and it is very portable Scheme code.

Very nice, thanks!

Maybe we should put all the pretty-printers into one Git repo, compare
their features and merge them into a library that can do everything.

I gather from comments around the 'net that figuring out where to put
line breaks is by far the hardest problem in pretty-printing. I think
clang-format (advanced C/C++ auto-formatter) even has some kind of
penalty-points system for figuring it out:
<https://clang.llvm.org/docs/ClangFormatStyleOptions.html>. Are there
some classic papers solving this problem?

(Historical anecdote: Guy Steele and RMS once spent 10 hours hacking on
a pretty printer.
<http://cycle-gap.blogspot.com/2007/09/extreme-pair-programming-guy-steele-and.html>)