Skip to content
This repository has been archived by the owner on Oct 6, 2020. It is now read-only.

Latest commit

 

History

History
84 lines (76 loc) · 3.17 KB

HACKING

File metadata and controls

84 lines (76 loc) · 3.17 KB

HACKING Guile-WWW -*- org -*-

This file is both a guide for newcomers and a todo list for oldstayers. It lives in the repo but is not included in the distribution.

ongoing (some of which may go into a future release)

cgi/cgi-prep: other “Protocol-Specific Meta-Variables” (RFC 3875, 4.1.18)

1 Accept-{Charset,Encoding,Language}
? Authorization
? Cookie2

added: 37f3a642c, 7f438f180; dropped: 11c96f13d need to think about it some more probably will need to add ‘cgi:init’ option ‘cookie2’ as well

1 Expect

hairy, but necessary for full asynchronous feel

1 From
? Host

covered by ‘remote-host’, ‘remote-addr’

1 If-{Match,Modified-Since,None-Match,Range,Unmodified-Since}

? translate HTTP-date (RFC 850, RFC 1123, asctime)

0 Max-Forwards

for gateways/proxies in conjunction w/ methods ‘TRACE’, ‘OPTIONS’

1 Range

list of integer pairs

1 Referer
1 User-Agent
0 “hop-by-hop” headers

Connection Keep-Alive Proxy-Authenticate Proxy-Authorization TE Trailers Transfer-Encoding Upgrade

convert all ‘error’ calls to ‘throw KEY’ and document all KEYs

doc improvements

factor body-i/o protocols
factor header name bits: ‘s2s’, “symbols are good”, philosophy

(v) round-trip POST + CGI + non-text body

incorporate selected functionality from Guile 2 (web …) modules

manual chapter “Server Utilities”

more on (www server-utils answer) facilities
templating strategies
sample servers

comment code (audience: intermediate scheme programmer)

portability (status: bootstrap - build - run)

guilestatusnotes
1.4.1.127? - Y - Yx300 FAIL
1.8.7Y - Y - Y
2.0.6? - Y - Y

bootstrap: see autogen.sh for required tools

coding standards

indent with emacs (don’t like the result? fix emacs!)

(setq indent-tabs-mode nil)

(add-hook ‘before-save-hook ‘delete-trailing-whitespace)

everything UTF-8

ChangeLog

ttn-style: TITLE LF LF {BLURB LF LF}* BODY
exclude titles suffixed “; nfc.” (no functional change)

copyright update policy

individual files only on change

individual years, except for docs (range ok there)

2008+ to ttn

repository branches

no ‘master’ – do not panic!

a – “anchor”, “asis”, “already”, “argh-just-leave-me-alone”

This branch is for what was already released. It will never be rebased. Its tip will always have a commit title starting with “Release”.

p – “perhaps”, “probably”

This branch is where largely-stable changes intended for the next release live. It’s very unlikely to undergo rebase, but not entirely impossible. Guile-WWW hackers probably want to start here.

q-TOPIC – “questionably”, “querulously”

These are experimental, exploring the particular TOPIC. They are intended to be ephemeral, undergoing rebase, amendment, and ultimately removal.

link definitions