Email list hosting service & mailing list manager

GraphQL client in Chicken: next steps Lassi Kortela (25 Jul 2019 17:00 UTC)
(missing)
Re: GraphQL client in Chicken: next steps Lassi Kortela (31 Jul 2019 19:34 UTC)
Re: GraphQL client in Chicken: next steps David Krentzlin (10 Aug 2019 07:16 UTC)
Re: GraphQL client in Chicken: next steps John Cowan (25 Jul 2019 18:42 UTC)
Re: GraphQL client in Chicken: next steps Lassi Kortela (25 Jul 2019 18:46 UTC)
Re: GraphQL client in Chicken: next steps Lassi Kortela (26 Jul 2019 09:06 UTC)

GraphQL client in Chicken: next steps Lassi Kortela 25 Jul 2019 17:00 UTC

- The GraphQL client is already working for basic tasks. Probably some
advanced features need to be added later. Query variables need to be
added ASAP.

- I have started writing a parser for GraphQL documents. (A document can
contain both schema and operation (query/mutation/subscription)
definitions, as well as any supporting stuff like fragments and
directives, so this is the whole GraphQL grammar.)

- The current fledgling parser is a hand-rolled recursive-descent
parser. This approach is doable but a bit unwieldy. There's a Scheme
"packrat" parsing library by Tony Garnock-Jones with ports for Chicken,
Racket and R6RS. I'll learn it and finish the parser using it. A packrat
parser is an optimized version of a Parsing Expression Grammar (PEG)
that runs in linear time at the cost of using more memory than a PEG.
PEGs are the default framework for writing most parsers these days.

- I have no idea how to best design the "engine" part of the GraphQL
server (I just took on the job because nobody else was doing it). Mark
and David have a lot of combined expertise in it, so they should direct
the effort.

- I've been designing a S-expression skin for GraphQL and have asked
John Cowan for comments now and then. The GraphQL grammar is not very
big so we can finish this soon. I'll post a semi-formal Schema ASAP. All
comments and suggestions are welcome.