commit d560e1b926b9e93b66f9f853f0cb0ef362e7c0db Spenser Truex <truex@equwal.com> 2026-09-20 21:06:29 -0700 Add stagit-style git mirror of public repos and generator
git.html | 1 + .../19cbb6dcc701ef4714ddcd2e83f5aaaa7d34f13f.html | 37 + .../2130c21d376f5032246677667f456b1ac43018b1.html | 20 + .../2838a2e296e94912acb9ec834a3373fa1aa7ea38.html | 20 + .../374842de191e56f2f0f5e14100f093846068aaca.html | 42 + .../4ab4cab04918986b3453b7e8c95999cfcf68134f.html | 82 + .../6deca0d81e38d24fe7cd0bc062a53c1ff4d6818c.html | 97 + .../73c0ec1dfe5de713b99378928b361edc89c59ada.html | 21 + .../8b3dae44e341aeb4e3840914f35608c1e5c1c2de.html | 697 +++ .../ac0bf7108272763fa16a318d8cf7bb8f53c727cc.html | 199 + .../bdaa1297fd38f0ad8dfab76377739f1bc08d47dd.html | 29 + .../f122dd6eeb0eb3a971ae7b02bb3c9abc9c073c51.html | 29 + git/CSV/file/.gitignore.html | 28 + git/CSV/file/LICENSE.html | 684 +++ git/CSV/file/README.md.html | 12 + git/CSV/file/csv.asd.html | 19 + git/CSV/file/csv.lisp.html | 80 + git/CSV/file/example.csv.html | 11 + git/CSV/file/package.lisp.html | 14 + git/CSV/file/utils.lisp.html | 30 + git/CSV/files.html | 11 + git/CSV/index.html | 11 + git/CSV/refs.html | 11 + .../0404a89d7d4038d12413b67b47aababbd69fbd55.html | 31 + .../0880bcfa3576c3a8cc2670bc6c0b0c3834c5ec7c.html | 47 + .../09f4aaaedc5a22cb1a9b74ffc67cc90cad21f473.html | 47 + .../12860a6217ad7bcc00fdf69e4d90b3592f8d96dd.html | 31 + .../238411ca22768e51528942867fe6ea73351fe264.html | 47 + .../2af5cc9aa160b85bcb45106fdf2e01b10010d99f.html | 244 + .../3506f89f505ccbc3867fb6a41f9044a8af98d66b.html | 176 + .../4660cfbea38ef909abd2074af84b32bda8a9a0d8.html | 88 + .../574c183ffde0cbbbc8e94116315e8bd61356868a.html | 30 + .../670cc87c19b74a4d5b0c955e7f8c28c94043bb5e.html | 279 + .../89bf2b968cd774cde433fdacc1850d5baf20082f.html | 51 + .../9a9eef29928431347cecb19eef84cbd840ea7ffd.html | 55 + .../9bd275f7aaed925608d727cd9781825a89551b48.html | 85 + .../9c7443d01202ac7b38a75f00b073cdbeb0f77821.html | 114 + .../a576400ba980a182fcc44ee23182c8fa1d08b961.html | 110 + .../ac28ec84a64960c8904afa45c50a3d27f4e9de88.html | 42 + .../b076a4347cb57a7131a771dd24f318fe7c3e01fb.html | 39 + .../c246bcdce5d8b5d741230e8cd2be5de48bd44c1a.html | 56 + .../c92ee8daf51a5eed6f3c4ece81dda5d979af74f7.html | 112 + .../e0c334a413d72bcdb32c0c1dbbdbbfe84e41d8ed.html | 329 ++ .../eaaa7061144f21e1be9ad735051ac9240e100734.html | 47 + .../fba3d8e1d627d6fb53b0212961ddb3d6fe017290.html | 28 + .../fc9f405991c4c20c1e5f4b3c3ddffe7690aafcff.html | 54 + .../ff25e9ab3f22c00225e6d185575fdcec2c49f7eb.html | 171 + git/Forthe/file/.gitignore.html | 14 + git/Forthe/file/README.org.html | 106 + git/Forthe/file/forthe.el.html | 60 + git/Forthe/files.html | 11 + git/Forthe/index.html | 11 + git/Forthe/refs.html | 11 + .../043908646560a1cc22f73b7ff4424ecc4d8123cd.html | 31 + .../054f6fc16a0c919cf53a3885f12cf06c3fe9ce65.html | 29 + .../11cba1ab4351e6bfb4e371c4ac45266fd7e81a36.html | 29 + .../11ebf18ae048458f5b8c2f782823eccf2c4e428e.html | 55 + .../12f7b40586302af16f2b3f5cbbab95e637c07527.html | 27 + .../1a296b982b0de78768560524e8a97e0bf3b2642c.html | 30 + .../258fd81a3e8a4fa7d4f04d984b7f3b5990743e26.html | 36 + .../295e0f12a2cf796572494e7f0911696ef20ebb48.html | 89 + .../2a7dca0129237967fe8a5d3343e90c01e8970499.html | 66 + .../2d5e43f81c69b0fee234fe2133e6e378734ea269.html | 20 + .../3201e41ee1948be15dcf947a85cc468b8c271ced.html | 187 + .../3329fc2f581e6c4da61a402533fa16638da01448.html | 21 + .../33dd6237ff12a1cf1c8986040350a8d773caad18.html | 21 + .../347390165df32ced4f0b18d3e99000fd70d99252.html | 28 + .../35d0281bd34d528dbdbb01e4d35559966150a964.html | 19 + .../3d60efc736a164ded0905c41baded5b2e6609e4c.html | 22 + .../3eb5ab4988298d2b59d6cc356819a77c40fd870e.html | 31 + .../43de3b13434a9049041fb8240b1588195ef0c025.html | 32 + .../444239c52c9c5bd5fe200865798310b44811eb16.html | 51 + .../461bce052b85220d10217e0934dc20e4fae15e1d.html | 102 + .../4773df4bba8ff92dd8fd35de708cd7cf3f92c896.html | 26 + .../4881de8e4513e6f867d24b46a9c95c89ef6c64f0.html | 154 + .../49b1a6bfae6c44af203194562aecd01ec4262437.html | 19 + .../4a3740d71087904ca6c6b27d41051d22bf7fd859.html | 29 + .../4e5f558115d2efca76bb29704e9198201edb3498.html | 55 + .../4fb0f92f5666de0e698ac6739e5f6aea0e3ceccf.html | 41 + .../50485d7bee8db521c4d55d99c18e7ce62ac6fd11.html | 32 + .../51c7b845168bc921396aa5f88435e09710fb924b.html | 35 + .../5a1740dbc13f98e5012b57f6f9110d061a87ffd3.html | 230 + .../5c78995e6ddbdfc94444f6b76b1631b7cf7b3754.html | 30 + .../5cc7a2bcf31e3ea28d09bd6533e92655f5f73d81.html | 29 + .../623946db11383d2179f6f19171c7674e5a6a668c.html | 123 + .../659695d85fc7fd858c19ee5a1ba334b0fa69344b.html | 20 + .../665e9c86d22e9f84464835228f827a2446c03e93.html | 37 + .../6663fc8e352fe33bbac130150d9b579a58b9988a.html | 87 + .../6b9687c3ea2bf2d795e7743ad85bc0a88e21a58b.html | 89 + .../6da02567815cf2b6b68531e7df321515103c9d44.html | 45 + .../6dab1d4592084d8ab8447b658c7ed74ec55e05b3.html | 29 + .../6fddff2c1a6e7ed6923c687249c01887bfe224fa.html | 34 + .../7365c2b01cdc1e156fc09d836d355d26b5ca579c.html | 30 + .../75492a1107063b545c771844e77c34a852554350.html | 48 + .../79f83887c8ab9f0c14f8d4325a33274f10fff0b6.html | 21 + .../7a05a1c2f040033a8497cc09b31ce7982b102e7a.html | 100 + .../7a430084567c2d9d7bf53a7f9f60031dbc973bd2.html | 30 + .../7c0dbe168a03e080a718afc37985150486b6d017.html | 62 + .../7da9cb012d9bac29766bffa28acb2ffc50861577.html | 67 + .../7e62e4719850f4b5597f23f965e7d33c1094420a.html | 174 + .../7e6e12b652c9c559b66504dbaf4e82f44632daaf.html | 32 + .../7fe22444e2a44d641e3f88c283c986e3d29ede4d.html | 39 + .../894c8bca7724ecd65287612b74ef3c9c0eb84533.html | 30 + .../8addd8c171bf76d6a660d132754822267519da33.html | 94 + .../8c640e4f3372be731b7dbbc6ee2dd4d001c4b625.html | 65 + .../8e4ba3c5dbcada75f28fe2b3f019be3965661da5.html | 93 + .../8f5cb1d37043e202b2b5d95948112ff38c6fa8bd.html | 34 + .../90e683377cb009b53c4d4dc7ef147659c99b0b1c.html | 35 + .../91a289065cca5a480468c6b34fa24a793a1df2ca.html | 51 + .../937b57802ef6d2c4497543d7737b595758646eb6.html | 25 + .../9621c8bcf872f0d7bd918964ec50dfc5de8f9511.html | 35 + .../978b6f1430d4d267bd4995d5de1a6e288cbb0830.html | 29 + .../983406b2e62d5107320992b60f1146728c39d6ab.html | 29 + .../9a7cf255edadfabbac14a971596db6962a1c627b.html | 20 + .../9ce7f4988d4ff6359c72bb6698c6758bd242c89c.html | 19 + .../9fb42893e3a9aebfcd1507996e316526b3f270f7.html | 56 + .../a06e80cda38383f81ca2f9e437000ab39953fc13.html | 41 + .../a7c5914fd12d652c5eca4f9f149e4e8d1b344864.html | 27 + .../aa08f059c149293fa07f1b19292a429f33fda9fa.html | 19 + .../af146cfccd9215d2a0467e0c5342709f3aaae33f.html | 37 + .../b071daa26dd795a2d10af64a7ee62afe5eec1236.html | 70 + .../b404dfe85ad1b28c467888600ae5ebc5bcedeb25.html | 19 + .../b537f999762522eae7528b8783d9b4abf36f179f.html | 19 + .../b750ece5bb684f0bb90bf4eccfdda2fe6eb1065f.html | 30 + .../b82bbb5f1d75f135a65e72fc014223ab89762f34.html | 34 + .../b92b7cec39a5fe5314e27bf8e08d9c9d897341b3.html | 68 + .../baa61105ae0f20655ed463a22377418cdf742767.html | 103 + .../c3a46532b754ff5bc325313b04199f9db5b1febf.html | 19 + .../c5014bf030dc9e309ca2c75c26c2f321a05086e7.html | 45 + .../c634737c6ae29a8113b753f88177e732c922480e.html | 29 + .../c9441131467ba02e70e8cc466bfd2b769d09d985.html | 40 + .../c95d70c0939ee1e7ddcbc5451d69a01464813150.html | 30 + .../caf97a1dd549f87a5adbad0355f01bc50fddbf26.html | 27 + .../cd4673be44e580091958d2c1fc7d894efc13d787.html | 78 + .../cecddfa6396707ab94ada6098f3668145df39511.html | 74 + .../cf06ab6ea2011481016de2faae0bd5bda3ee88ac.html | 30 + .../d12ab753a2da0af67302a613ff7fa66f14e1b716.html | 29 + .../d5266062236f2a84ce31150831811b2c8fedbd13.html | 45 + .../d80521443b7ef0473d34f98752b3b236b94fd924.html | 30 + .../d83b3200e654c0a0aeb12b805e087074d2a959af.html | 19 + .../dd3f52419551b828aa212021cf6ee6d11d880b94.html | 31 + .../e8a5ca7704ca8770bc77ecce19f427a1cda0fec2.html | 30 + .../ee9ba8a19d38f319e99030cccd2b52f7096e5e04.html | 40 + .../f17d1edeebe84c559b89ba6a362b7bf4b888f1f0.html | 30 + .../f366ff11008deb5596c8c69e265ba7ca7fac9230.html | 35 + .../f3d174752dda70690cf073701c79901755cfc192.html | 36 + .../f3d75c84649e33d908b68ff62673dd65b2039d59.html | 29 + .../f4117b178152d88fb003b98968049dce2a58d7c4.html | 273 + .../f46cff18567c34ae52d79e4a6f2ebbc03defc861.html | 39 + .../f595d9a6d7a8cc8bea7606e01233a4aa88b77f56.html | 32 + .../f911bcef016ee01b9b40e39c2efec2007a8b66fb.html | 32 + .../fbb2d3eba18d928cc2cce56d206c3ac1da172972.html | 30 + .../fcbc54eb417e51b1733e02c4405aa557ab8a5e6a.html | 30 + git/LispBrain/file/.gitignore.html | 13 + git/LispBrain/file/LICENSE.html | 17 + git/LispBrain/file/README.md.html | 145 + git/LispBrain/file/code/brain.asd.html | 30 + git/LispBrain/file/code/interpreter.lisp.html | 234 + git/LispBrain/file/code/packages.lisp.html | 41 + git/LispBrain/file/code/utils.lisp.html | 43 + git/LispBrain/files.html | 11 + git/LispBrain/index.html | 11 + git/LispBrain/refs.html | 11 + .../04aea2e69186cbd8d0371d92d30bf851adcd071a.html | 36 + .../096ab91b92198a27b3b4a5a5ceffe7ca57a44009.html | 218 + .../09e104747a15c44356bf80d09b5b8e090641b108.html | 157 + .../2b752fb12d50b9662a2211a64d10c375845c1055.html | 27 + .../2ef7da977eec04f4c9dab41074d8b26a18235564.html | 177 + .../3af3bfec4756cae6d46fec7fe72af6b6c003f586.html | 28 + .../423ee8d7f5073caf378b80dc7353732e842da50e.html | 29 + .../4f98a1a559c108865ce86c4b5ed3f19ae500631a.html | 22 + .../759cc124441d057ea6790de5816b6758d520e636.html | 28 + .../997ae396c437b5651468ac95f730a02ff8f80c65.html | 28 + .../a9f0ebf66a38bde08af9550d694226d1e8159454.html | 25 + .../ab24fd421f09de6867b4472a24794b034c878906.html | 36 + .../ab5e0cc428f235cedd2afc35c19bdfe49a8cce1d.html | 30 + .../aef0727f84b7bcc281a58d075b3891102651f650.html | 28 + .../d7dc00df51879fb9cb5232fce44e89c2d75c3fa1.html | 39 + .../dd001e236ee7fdc4c52ea057776c7679267bcbdc.html | 32 + .../ef4ba9dc6a10cf11ff2085a95248b847f48bb1b9.html | 34 + git/alt-hack0/file/.gitignore.html | 11 + git/alt-hack0/file/README.md.html | 32 + git/alt-hack0/file/generator.ros.html | 168 + git/alt-hack0/file/glyphs.html | 11 + git/alt-hack0/file/hack.html | 11 + git/alt-hack0/file/source.html | 11 + git/alt-hack0/file/tt-hinting.html | 11 + git/alt-hack0/files.html | 11 + git/alt-hack0/index.html | 11 + git/alt-hack0/refs.html | 11 + .../0fb7ebbaf4a8ab737a160e23c7e6406479f14738.html | 31 + .../6b6015f48708922827272e81a7dccffdac249308.html | 120 + .../7e2962991152919804a9c3a0b083bc3f2419370b.html | 31 + .../8bfe5a01782a502412204fa0553da7c2f1a7d98e.html | 29 + .../bd2943dfb83934848009948b42eaaa3df70005f4.html | 80 + .../f75074218498e15bead7b7bbbf9d94fcff12e761.html | 30 + git/asdf-registration/file/README.org.html | 32 + .../file/asdf-registration.asd.html | 18 + .../file/asdf-registration.lisp.html | 20 + git/asdf-registration/file/initfile.lisp.html | 20 + git/asdf-registration/file/install.sh.html | 25 + git/asdf-registration/file/package.lisp.html | 14 + git/asdf-registration/files.html | 11 + git/asdf-registration/index.html | 11 + git/asdf-registration/refs.html | 11 + .../24a6a0b09ec2c5412bb13b2df1d25b1d08d3e856.html | 122 + .../890ea7f6c2894ae370964aff70f3a1549fe5e87b.html | 87 + .../8e4877fdd0a7f514c1f56313142e25299f713cf3.html | 79 + .../9657f40a54eaecb486be7e257d99065c6e15b516.html | 46 + .../fe3e6953704a0ac5d8a0e9c871aa08050422e5c5.html | 139 + git/blaher/file/README.md.html | 45 + git/blaher/file/blah.lisp.html | 57 + git/blaher/files.html | 11 + git/blaher/index.html | 11 + git/blaher/refs.html | 11 + .../013ada82f339f61de56f426824c1c3c1a88bf9b1.html | 165 + .../029ead38e438f920e8d0a841e7522ff8b54d1a58.html | 608 ++ .../02cff6f3b85fa92ac00b5404a71ba08b9b2568d3.html | 428 ++ .../0428f39713dfcadd7d1ba413e6ebd47430d92cf2.html | 1130 ++++ .../044d807bb0a6deabd6c24d0797efb4d2e8b78bb6.html | 31 + .../07b437d4dc56d22165a7023a3767e0026d199784.html | 419 ++ .../0beb1a03cf6a8f8aa14c515b74938bddc7b33fbe.html | 59 + .../0c82b15a09fb5f63c3a59f69e87d9b279b6eba2d.html | 40 + .../0f51443cc603fc89d582b24d1c13fd49b1c89ea7.html | 69 + .../0fca39ff59ab40b71219168da182be4ea9aca12f.html | 55 + .../0ffdf3f28a508269546f0ce394cdc3f21254199f.html | 428 ++ .../10812b6e84c471e0b76cdb6ea4f5df420365eb36.html | 35 + .../1181d71528f9fe834fe23cde1000034cd1f92e8d.html | 34 + .../13d46e0deeb1d5fbd7ef5911a23d48529fbfd074.html | 111 + .../142b84ab78cb64423e2781a3e520bbd1e9cb40cd.html | 267 + .../15ebe730f3ec1a2869290b5c8072edd665f295d1.html | 81 + .../1c586b79e894959621e9c618a18974c2f34fa5d5.html | 215 + .../1e46417916771c10ed235899b94e333866d11042.html | 29 + .../20254fa11b441ca074130089703daa6f9b45282d.html | 2505 ++++++++ .../23d6c036c8e4304b22492eaa231e68b509a5bedf.html | 161 + .../25582ad800216c04f8f575ccb0e0a099a7897535.html | 60 + .../25c83f1ce1ad0e39f746364c88ce45fda78e4630.html | 274 + .../28c93e93f76c5274805158f8b513493f6aa39d04.html | 124 + .../2a146ce064617e43c80f9c41ceef007843bea20d.html | 50 + .../3343e6ee5c94e72efdf49a1ebf6490529ee00bd8.html | 32 + .../375431f30c1c9a6c14bd4c838908d10efa5a9121.html | 113 + .../40b30b3245704582341dfbb51a85d555182b3d9f.html | 54 + .../41116326c51ea827b8049ab873ea266756ba5653.html | 63 + .../42cb7c35c6213148261bb9f7d44efa0e51e4f160.html | 64 + .../4626d24c105c4b71ab70b7d3f7aa7025034d1974.html | 242 + .../4888622d74a70911bb975204306929b11559be07.html | 30 + .../4a5228a3803cf285d220aedb5caa92b731375b62.html | 53 + .../4d6a22dcec3fc6754b817c6f01a4271bf9a93118.html | 2507 ++++++++ .../4ef4f5a4e82381039878f615749ad4de40f29c30.html | 211 + .../4fd8a06766051afce42b6eeec8f182ccb36b87f3.html | 40 + .../5024296da286dd15e183886cd4110e05a6049078.html | 82 + .../5224dea43a91267d621f6ed78fcea25ed5c67243.html | 31 + .../52bd9a828bdd422d4c4ec8fbd30ba8f5ef253e76.html | 330 ++ .../561ae0469c01b746c84590685e649873d3e65728.html | 741 +++ .../5c2a1c9632b5d0b6b0f21fb330dc5b19bcc6b244.html | 31 + .../5c6b061bb6f819e9e5a3bd028c5683e3b6227815.html | 37 + .../5e3abb608d7259d1c4acdd5be13a711fe4b49160.html | 50 + .../6b77098cb11f735b256fa522cbec30495000749a.html | 51 + .../6d3f6f665dc9ad801d57ffb7716d9fda78661bd7.html | 38 + .../6d422b40904e9e0037a38117b45f9323de45ff70.html | 31 + .../707f5e747aa837657993f852439c99063a416cf6.html | 659 +++ .../7258c13e573503fb6d019a46e9dfc52bb54e63b6.html | 28 + .../76baf068a53ee155aa4850c0beac0ecfeb51b59d.html | 68 + .../76cfe4f9da795b24680eba4e8c940e042b1d6e11.html | 205 + .../77529a763d4d7f92c4ad27db73d676009afb0654.html | 41 + .../7ec0da9492c2971cdeaebdbdc9fad9367e4d1e7f.html | 32 + .../8d6b5bf244f382c1bda11d4f05d1b5a0fcc77d43.html | 49 + .../8f68de9add9b35be4694980db5826a91e286cf7b.html | 42 + .../929692a3001141f9e9350b888565c51b92851e10.html | 43 + .../92d2e99d94388a41c1fc5f0e0af15ee8e68e7e6e.html | 31 + .../93abe73f502660ada5aeb21bd6eaffec14f8fef3.html | 31 + .../994f2224eb625f71b68cb00a77edc37068f0f059.html | 89 + .../9f06b3331dbd17c1be1c8cfcb255d62202cf8b2a.html | 216 + .../a3604d3bebc920469566de468423e5e8b8284932.html | 58 + .../a386ddb2979cd75bf9a4b7501830209de9e248d5.html | 97 + .../a3ed2d0347fa40a4598ddee005faeb1fd0f7438f.html | 553 ++ .../a6018524bb0bf1cb850a252249a52e86efa421bb.html | 31 + .../a651b504887429c23aed643787dc55d10f1d501d.html | 43 + .../a8dfa314e9911295a3c52318d4702e4761093e2f.html | 81 + .../a9cc963e39455b4f75af129ca00d635a02fc1702.html | 234 + .../aa1264695d482881b8ddbfe78e13cc7300d899bd.html | 5137 ++++++++++++++++ .../b0fb013bac0ad806bc90e487b552d3affa7f7413.html | 43 + .../b107516c1e1125ada8b96260e7681bcf5d1b21b7.html | 41 + .../b70cc28e578b4ce432d7e81dab33b60eb118ccaf.html | 306 + .../b8e92c61d9ff8d0a7e7fd65c33b0fd26c9741e68.html | 34 + .../bbf0687d3956613d10973d651dd4154337a34880.html | 168 + .../bd44af1d082f947760dff8f1bb65f614c5516b58.html | 20 + .../bff6ca9e3a4f11ebbd196c972f74612dfbff6b26.html | 71 + .../c50345cdbd29f5e9c0a91ca3666e4ff93590aba6.html | 114 + .../c8a13b65aae06b43fa193df726c14f2afa2d1794.html | 47 + .../c91cb403a8bdc1efd8e38450aaaec4192d287674.html | 44 + .../cac6b1e0980f2284552f3bc13c7653b1db35e5a8.html | 29 + .../cbb88896996e3df01b181dacf26607856b14054c.html | 5220 +++++++++++++++++ .../d122eed76a9fcb1e083e428c159834cb18c936cd.html | 55 + .../d126c1f37a5427cf4173b0385c3c31e84619aa8c.html | 66 + .../d4170d2472d54844ce90cf4e2e68eb816f8d8bab.html | 59 + .../d5537d30940cbeef0a60808bd835835a11ef4beb.html | 82 + .../d69df0f848a3779e778330fe558bd60abcd832a7.html | 119 + .../dcbc55ff7e26410c8c8d7f06f68e1c0a246bcdd1.html | 36 + .../e01b405e3258de8b4331abf84ec791d40bda805d.html | 143 + .../e187e771f1bad099c9f9ac8d98085aefa8998af9.html | 124 + .../e2d4f830fa5c7fa15180caa3f3bd58ed8c4c9dfc.html | 59 + .../e763198dd927d89f6eb08566bd88693aca39e435.html | 34 + .../e9fb727d69131de4b7b2662825bc130e2bf0020d.html | 66 + .../ebec8662dd38b3c46ad2eeaa82c5fbde192c4515.html | 47 + .../ec61ee60dcbbe37b43d7cb6fb7a87bdfc847d990.html | 82 + .../eeb8131035ae98f04288c319848f23acb16c35cd.html | 79 + .../f02082e674c3fa47cca6bd199631e561e0415375.html | 335 ++ .../f074e943bcf03b62ddee3273b075dc25dbe69904.html | 31 + .../f28ae44a217cb53b2b38ebbbbe53c65779383802.html | 34 + .../f586103e1a32e6e2b5b3891275218c0e7400bc0a.html | 740 +++ .../f74fe5f96516ad07e66b118d01fee022baa43d56.html | 39 + .../f9394f295129ed69babc3a11e99d0364458dc95b.html | 30 + .../fc0d8912469f5ce1e210ded72b2f52f49d307352.html | 44 + .../fd137db849f0b058408e668af45d3f74bb656779.html | 17 + git/cl-yag/file/LICENSE.html | 23 + git/cl-yag/file/Makefile.html | 48 + git/cl-yag/file/README.md.html | 337 ++ git/cl-yag/file/cl-yag.asd.html | 27 + git/cl-yag/file/data/1.md.html | 13 + git/cl-yag/file/data/README.md.html | 299 + git/cl-yag/file/data/articles.lisp.html | 86 + git/cl-yag/file/data/css.md.html | 133 + git/cl-yag/file/data/t.org.html | 15 + git/cl-yag/file/generator-aux-pre.lisp.html | 84 + git/cl-yag/file/generator-aux.lisp.html | 155 + git/cl-yag/file/generator.lisp.html | 13 + git/cl-yag/file/generators-util.lisp.html | 56 + git/cl-yag/file/generators/gemini.lisp.html | 86 + git/cl-yag/file/generators/gopher.lisp.html | 109 + git/cl-yag/file/generators/html.lisp.html | 147 + git/cl-yag/file/packages.lisp.html | 13 + git/cl-yag/file/static/css/clym.css.html | 224 + git/cl-yag/file/static/css/custom.css.html | 26 + .../file/static/css/pure_r1.0.0/LICENSE.md.html | 62 + .../file/static/css/pure_r1.0.0/pure.css.html | 1518 +++++ git/cl-yag/file/static/css/style.css.html | 27 + git/cl-yag/file/templates/article.tpl.html | 21 + git/cl-yag/file/templates/gemini_head.tpl.html | 16 + git/cl-yag/file/templates/gopher_head.tpl.html | 19 + git/cl-yag/file/templates/layout.tpl.html | 45 + git/cl-yag/file/templates/layout.tpl_original.html | 44 + git/cl-yag/file/templates/one-tag.tpl.html | 13 + git/cl-yag/file/templates/rss-item.tpl.html | 21 + git/cl-yag/file/templates/rss.tpl.html | 20 + git/cl-yag/files.html | 11 + git/cl-yag/index.html | 11 + git/cl-yag/refs.html | 11 + .../003032395e10b0b07ecdf40d7c7d6989bc342b14.html | 96 + .../0d91b24e8d4a7d8060b8affd59a3ab688c4a5e7f.html | 29 + .../3888a0b923c6cec1976ee42a265b355c63fbf697.html | 114 + .../3a5be54b9a6985b98b776fa1a36655dc8ce6220e.html | 47 + .../43e88f6019d18e2dcc8048dd9420bceae4583166.html | 42 + .../46fc13a5e3d6b0c1602765dd0927cd4764a9c098.html | 111 + .../4d318c00657169aa03a6084a6b11d6c06c584263.html | 170 + .../770a5c4a2b3b74eac046c5ce0263d39e748418c4.html | 69 + .../862151acf12781a5830cdb8eaeb46ea6d5010216.html | 25 + .../ac9e13b1831b6b9fe5185054c06307129af3463a.html | 442 ++ .../b70e4453246832e1fa5927857ac41717456a4e2b.html | 183 + .../bbe01ccfd33a9ff1c9832109a016d83cced97ef8.html | 190 + .../c334441bc5d8f29d5388aba6dbdd6a36cca6d180.html | 31 + .../c4d704df3b8ff36bd1e1a1910c955471b32ddc2f.html | 149 + .../cad96c467d7e7915ef3595b38baa23806abda530.html | 71 + .../d04f58983720b389f271d56c2785aebb8a979e74.html | 91 + .../db0dd0bec578b1fa62a1c9c7cf17fc4b02a769ea.html | 244 + .../f40e98a6f138b3e31fbb14e03d67191e485d0f6a.html | 33 + .../f4dfcfc0b2f8c40d036158cc10faa4a4d8e8fb29.html | 21 + .../f651cf1eb8a8a7f9edf9c70720b5cbf267d94f43.html | 21 + git/clapt/file/.gitattributes.html | 12 + git/clapt/file/README.org.html | 73 + git/clapt/file/TODO.org.html | 27 + git/clapt/file/clapt.asd.html | 23 + git/clapt/file/code/add.lisp.html | 40 + git/clapt/file/code/conditions.lisp.html | 16 + git/clapt/file/code/defaults.lisp.html | 17 + git/clapt/file/code/install.lisp.html | 131 + git/clapt/file/code/save.lisp.html | 45 + git/clapt/file/code/util.lisp.html | 17 + git/clapt/file/package.lisp.html | 14 + git/clapt/file/tests/cp.lisp.html | 13 + git/clapt/files.html | 11 + git/clapt/index.html | 11 + git/clapt/refs.html | 11 + .../02fda5b5bc6564db46dde5a1a2e2f5e71a75321d.html | 60 + .../04aea88d00b8330bdbde6e6fca0b926821d9f1f1.html | 99 + .../04f5a2a34e4dcd4f26e89de3dc0dd81032eeda10.html | 210 + .../089a33517b1df4a4b15882240d18b7955c25e5ea.html | 35 + .../1272da9d52dd55f3de944489c2314728f99099ee.html | 261 + .../165bb9a2db7f522d83e612c35b24a19d5b673517.html | 39 + .../1a794d72260ef81d5053b8708dd06ebc65c209b8.html | 93 + .../1f6eeef4e3b769c19b558f9218d618b59383a54d.html | 84 + .../207b9dfd4a861e92479c21cda6fd228f9185d300.html | 44 + .../22248dc9ab2895d7bcf8b3bcfcf76eb48ecc075f.html | 67 + .../22dc86d0df968a36cd567bb54c6cdb923523ca0f.html | 31 + .../25487c3c561873fda304042df02ed8c68575ce20.html | 455 ++ .../25c184b296767f9f65ca7d63490d9718bf8ab06a.html | 44 + .../26a0eee532a51e2d82d31e7b8e791c34b1cc7cde.html | 53 + .../27321d7d6a66be5fd4f18a8acc515387e5bb1564.html | 34 + .../2a3a83010562a967a3b62029b4321184ce346254.html | 124 + .../2f63cd38c68eee0baa1493d432a295f4009136af.html | 81 + .../2ffc75b43816fd423573b8dd718ba07d96efbc27.html | 81 + .../3028c011e0cdfa70a7adbfaa120f04bce79e563f.html | 31 + .../351cdba6f1b01fe686a8e30cd3fbc745266c3766.html | 155 + .../38eb1e4a49bd594bd6108c0beec5fb3afa09e8fd.html | 45 + .../3ac40e688ab155925394b223cb1daa934debb72a.html | 96 + .../3cf6014aab1eadb344f1a3c2271caa995cb43554.html | 177 + .../3f8100a6e7505d2f879512461b392c83d934a444.html | 53 + .../40244f6eac457069e60611709cda1851aae1eb08.html | 48 + .../451e378cbe7ff338f129b24b8f9b476fcbf553d3.html | 31 + .../4878ed433802ca7d743d3976987c94be4561b6a6.html | 39 + .../50d172f78c56c2153f7e964798c6bbbe5ff56dc8.html | 550 ++ .../51042c0ec23857aeb755971ba8cd3a8c230ed40c.html | 113 + .../52f1c9d1f1e4e2748ab80436e668238d41918077.html | 77 + .../57ee48248441d6a164067c9652f20721a284757a.html | 41 + .../5a43753f349cbbc42557ef65234da612245eeb01.html | 31 + .../610a464b61bb4cec0c22bbf71f667443aa7cfbf4.html | 19 + .../619033d3300bd57172112602725b3c1ddd540e8e.html | 162 + .../63402005caf705a0707b910c66ed0f531d7b3d64.html | 183 + .../638e894fcacbdc975eac7b6d6f90b7a1b894106a.html | 43 + .../6627ba66d54439c777242d9811cc82efc06970c8.html | 44 + .../69ab9eb1f725de700f5a1b740c488a9692fd10e2.html | 5839 +++++++++++++++++++ .../6faa6c27c313af26ce74ba3f3df5f599ee08ed0e.html | 47 + .../707f6f043149cc6454bf18e4fc8d38078b64f58b.html | 34 + .../7142516af61d7faba20cc3dadb373eebb05ea8f6.html | 30 + .../7177f07c0261e877fcc1d027b7c9d0b5581142cc.html | 33 + .../76bab87e5cb9401fcc55750cb1f720acc5123339.html | 144 + .../76ff5f0a91d9fbf3b2c0ef87d437c7243ecff59a.html | 96 + .../7ced408e5481c25f6e613d639c599aa89d84d5c9.html | 48 + .../7d77950b670a06876d1c715ff5d1fc3efbddd5ae.html | 86 + .../8082edf6c70c5873c19f92730e8e0db5bceb1dee.html | 70 + .../80f0989facc729b1b9aa9ae9a0a6d6a58ebbf3b8.html | 68 + .../8605ef1699e170afed26d4266f2bf3db53225e73.html | 41 + .../86fd49cff30911ecdd2b5eca124561d9384726e7.html | 156 + .../8728b1f94663cfc4f8c6eb664263e8b216f8b3e5.html | 141 + .../8ac8cdfbdce8d9159b195f1d1a15d9988033f29f.html | 91 + .../8e4fb9b8579b02bd71c70cc83492ce2a39f18f54.html | 91 + .../90c19265b9f782d0106bae0e2172a4e7d6f65477.html | 140 + .../9357d1d69981d44f740188cb9ef80d5097b0074a.html | 132 + .../97537fd28ac1ae938791dcacb09bb51180aaf9b8.html | 480 ++ .../a14e99ad9030bfb5141e762542098fe8ea902363.html | 159 + .../a331d51d084fea91b64c85500a458999fbab23a6.html | 86 + .../a387aad5e141816a78258799fc9ec691b74fd726.html | 38 + .../a7fb4e4758b562ca2c69e370619794b421263528.html | 47 + .../ac6d1f1b2dd50c93364c5905a6bba4364d4344ea.html | 33 + .../b41d900f10543e9f71d91c1e2a27f3561a66b02b.html | 28 + .../b6628df1755cc349aeff1650b87e563776989305.html | 21 + .../b76072a5f201bed263c85b2776dff7ed10b6aac1.html | 31 + .../b85e60f64e3237b419930169d7fcbee5a0a3c2d7.html | 43 + .../ba86c5e114249375116d7d40a5b66bc2e2baa4ce.html | 51 + .../bacab58344ef85a2b667fec54405a5472b35e495.html | 66 + .../bb2be59d780c8ba98921bdd20ea3383a1c87fb93.html | 93 + .../be4bf91b222d03b0de1c9c83ab2afccbfa41dc28.html | 51 + .../c2c3178142a5fec87b71d7e4f4b8b2d8fc5446c0.html | 144 + .../c32b721b6e25fdc9c881d37735431966f6c7b530.html | 51 + .../c5ad93bd84b0e56df44e063c6871c587e98ef9c0.html | 31 + .../c6ebdeef05fc755afb9f9506445026dded37a077.html | 31 + .../cb7a05e3d9dc9bb1f7c4f894282857ca75efabd0.html | 453 ++ .../ce069ce71e3dfd569110f0596f74d2693afb7c74.html | 21 + .../ce56b40eb8ee913c000bdb5287d03227cca10a61.html | 70 + .../ce97c575a3ee47a5507862d0c3bf8f353da35897.html | 54 + .../d07922a2554fc78ba5efe7e9818e4cb7fbfd6938.html | 73 + .../e0ce3c254b17217ace031bd6db0ea9e32ef56beb.html | 46 + .../e3f090118a9958ca3951826d2aab1e20e607872e.html | 6141 ++++++++++++++++++++ .../e44d7e9bf83b9f4f33612a9aa178cb05625c41a4.html | 40 + .../e621aa67e792e7fa10c602cdf2820d652b3afe3e.html | 38 + .../e64d93cd6c81fafb1c229a6b06d5aef6e100a834.html | 31 + .../e6a64ef4fa75dc63de79fd12c0fa147f43e4a026.html | 17 + .../e7d951c066681af5934f30a8912079cf34ad3eb2.html | 5704 ++++++++++++++++++ .../e929b6fefdd73d15839c62d579d04b6a15e7fb1f.html | 312 + .../eaf1d765d6db7ab9cd6d5214953d07a277497594.html | 31 + .../eb591640cb4b2dcebdfbff3baa83facaefeccb66.html | 26 + .../ef65411c4409cf0a4bff5a7356cea82ad571acc8.html | 60 + .../efe07395e09bc6d6495dd651671c5d48e4a502ee.html | 120 + .../f2fe151427976dd0fa6135c5d313333b31732a47.html | 40 + .../f5b0833db47c8cb4507cc83104f63698dd92f810.html | 41 + .../f79c520e1489d0c5a69ec274057e562db47d8369.html | 140 + .../f7e9f10ff74b617b12c066771b8637a9abfdc2be.html | 219 + .../f8678efc9938f34c2d873fe85c9d41015b1c7c4f.html | 108 + .../f9fe11c63b03b836ef82800909faa56786e25e5a.html | 19 + .../fb5155bf84450fec31f6b69a49fbdc07aee5aa70.html | 567 ++ .../fd42b4e1718565c5bc2f411e3fd4e120ca2dbd97.html | 38 + .../fdffd2e4d1c02050fcf6f441b6e0029d560c1449.html | 140 + .../ff02e48463d32a5173dcc55327a4adc9435ee3d5.html | 31 + git/clic/file/3rdparties/bundle-info.sexp.html | 20 + git/clic/file/3rdparties/bundle.lisp.html | 171 + .../file/3rdparties/local-projects/.empty.html | 11 + .../software/alexandria-20200427-git/.boring.html | 23 + .../alexandria-20200427-git/.gitignore.html | 14 + .../software/alexandria-20200427-git/AUTHORS.html | 19 + .../software/alexandria-20200427-git/LICENCE.html | 47 + .../software/alexandria-20200427-git/README.html | 72 + .../alexandria-1/arrays.lisp.html | 28 + .../alexandria-1/binding.lisp.html | 100 + .../alexandria-1/conditions.lisp.html | 101 + .../alexandria-1/control-flow.lisp.html | 121 + .../alexandria-1/definitions.lisp.html | 47 + .../alexandria-1/features.lisp.html | 24 + .../alexandria-1/functions.lisp.html | 171 + .../alexandria-1/hash-tables.lisp.html | 111 + .../alexandria-1/io.lisp.html | 182 + .../alexandria-1/lists.lisp.html | 379 ++ .../alexandria-1/macros.lisp.html | 380 ++ .../alexandria-1/numbers.lisp.html | 305 + .../alexandria-1/package.lisp.html | 253 + .../alexandria-1/sequences.lisp.html | 565 ++ .../alexandria-1/strings.lisp.html | 16 + .../alexandria-1/symbols.lisp.html | 75 + .../alexandria-1/tests.lisp.html | 2066 +++++++ .../alexandria-1/types.lisp.html | 147 + .../alexandria-2/control-flow.lisp.html | 62 + .../alexandria-2/lists.lisp.html | 34 + .../alexandria-2/package.lisp.html | 21 + .../alexandria-2/tests.lisp.html | 136 + .../alexandria-tests.asd.html | 22 + .../alexandria-20200427-git/alexandria.asd.html | 78 + .../alexandria-20200427-git/doc/.gitignore.html | 20 + .../alexandria-20200427-git/doc/Makefile.html | 41 + .../doc/alexandria.texinfo.html | 298 + .../doc/docstrings.lisp.html | 913 +++ .../software/babel-20200218-git/.travis.yml.html | 41 + .../software/babel-20200218-git/COPYRIGHT.html | 30 + .../software/babel-20200218-git/HEADER.html | 37 + .../software/babel-20200218-git/NOTES.html | 44 + .../software/babel-20200218-git/README.md.html | 29 + .../babel-20200218-git/babel-streams.asd.html | 48 + .../babel-20200218-git/babel-tests.asd.html | 52 + .../software/babel-20200218-git/babel.asd.html | 69 + .../software/babel-20200218-git/doc/Makefile.html | 41 + .../babel-20200218-git/doc/babel.texinfo.html | 115 + .../babel-20200218-git/doc/license.texinfo.html | 30 + .../babel-20200218-git/doc/macros.texinfo.html | 37 + .../babel-20200218-git/scripts/release.lisp.html | 260 + .../babel-20200218-git/src/enc-ascii.lisp.html | 53 + .../babel-20200218-git/src/enc-cp1251.lisp.html | 129 + .../babel-20200218-git/src/enc-cp1252.lisp.html | 91 + .../src/enc-ebcdic-int.lisp.html | 59 + .../babel-20200218-git/src/enc-ebcdic.lisp.html | 81 + .../babel-20200218-git/src/enc-gbk.lisp.html | 194 + .../babel-20200218-git/src/enc-iso-8859.lisp.html | 1097 ++++ .../babel-20200218-git/src/enc-jpn.lisp.html | 777 +++ .../babel-20200218-git/src/enc-koi8.lisp.html | 587 ++ .../babel-20200218-git/src/enc-unicode.lisp.html | 891 +++ .../babel-20200218-git/src/encodings.lisp.html | 513 ++ .../src/external-format.lisp.html | 98 + .../babel-20200218-git/src/packages.lisp.html | 125 + .../src/sharp-backslash.lisp.html | 92 + .../babel-20200218-git/src/streams.lisp.html | 447 ++ .../babel-20200218-git/src/strings.lisp.html | 363 ++ .../babel-20200218-git/tests/ascii.txt-utf8.html | 222 + .../babel-20200218-git/tests/ascii.txt.html | 222 + .../babel-20200218-git/tests/benchmarks.lisp.html | 53 + .../tests/ebcdic-us.txt-utf8.html | 222 + .../babel-20200218-git/tests/ebcdic-us.txt.html | 11 + .../tests/gen-test-files.sh.html | 47 + .../babel-20200218-git/tests/streams.lisp.html | 55 + .../babel-20200218-git/tests/tests.lisp.html | 922 +++ .../babel-20200218-git/tests/utf-16.txt-utf8.html | 222 + .../babel-20200218-git/tests/utf-32.txt-utf8.html | 222 + .../babel-20200218-git/tests/utf-8.txt-utf8.html | 222 + .../babel-20200218-git/tests/utf-8.txt.html | 222 + .../bordeaux-threads-v0.8.7/.travis.yml.html | 56 + .../bordeaux-threads-v0.8.7/CONTRIBUTORS.html | 29 + .../software/bordeaux-threads-v0.8.7/LICENSE.html | 30 + .../software/bordeaux-threads-v0.8.7/README.html | 12 + .../bordeaux-threads.asd.html | 86 + .../bordeaux-threads-v0.8.7/site/index.html.html | 65 + .../bordeaux-threads-v0.8.7/site/style.css.html | 96 + .../src/bordeaux-threads.lisp.html | 180 + .../src/condition-variables.lisp.html | 48 + .../src/default-implementations.lisp.html | 371 ++ .../src/impl-abcl.lisp.html | 160 + .../src/impl-allegro.lisp.html | 153 + .../src/impl-clasp.lisp.html | 121 + .../src/impl-clisp.lisp.html | 115 + .../src/impl-clozure.lisp.html | 140 + .../src/impl-cmucl.lisp.html | 171 + .../src/impl-corman.lisp.html | 36 + .../bordeaux-threads-v0.8.7/src/impl-ecl.lisp.html | 121 + .../src/impl-genera.lisp.html | 146 + .../impl-lispworks-condition-variables.lisp.html | 154 + .../src/impl-lispworks.lisp.html | 153 + .../bordeaux-threads-v0.8.7/src/impl-mcl.lisp.html | 78 + .../src/impl-mkcl.lisp.html | 119 + .../src/impl-null.lisp.html | 13 + .../src/impl-sbcl.lisp.html | 140 + .../bordeaux-threads-v0.8.7/src/impl-scl.lisp.html | 113 + .../bordeaux-threads-v0.8.7/src/pkgdcl.lisp.html | 76 + .../test/bordeaux-threads-test.lisp.html | 261 + .../bordeaux-threads-v0.8.7/version.sexp.html | 12 + .../software/cffi_0.21.0/.gitignore.html | 38 + .../software/cffi_0.21.0/.travis.yml.html | 49 + .../3rdparties/software/cffi_0.21.0/COPYRIGHT.html | 31 + .../3rdparties/software/cffi_0.21.0/HEADER.html | 38 + .../3rdparties/software/cffi_0.21.0/Makefile.html | 82 + .../3rdparties/software/cffi_0.21.0/README.md.html | 29 + .../file/3rdparties/software/cffi_0.21.0/TODO.html | 125 + .../software/cffi_0.21.0/cffi-examples.asd.html | 47 + .../software/cffi_0.21.0/cffi-grovel.asd.html | 51 + .../software/cffi_0.21.0/cffi-libffi.asd.html | 58 + .../software/cffi_0.21.0/cffi-tests.asd.html | 101 + .../software/cffi_0.21.0/cffi-toolchain.asd.html | 58 + .../software/cffi_0.21.0/cffi-uffi-compat.asd.html | 51 + .../3rdparties/software/cffi_0.21.0/cffi.asd.html | 111 + .../software/cffi_0.21.0/doc/Makefile.html | 56 + .../cffi_0.21.0/doc/allegro-internals.txt.html | 142 + .../cffi_0.21.0/doc/cffi-sys-spec.texinfo.html | 344 ++ .../doc/colorize-lisp-examples.lisp.html | 1068 ++++ .../software/cffi_0.21.0/doc/gendocs.sh.html | 323 + .../software/cffi_0.21.0/doc/gendocs_template.html | 269 + .../software/cffi_0.21.0/doc/mem-vector.txt.html | 85 + .../cffi_0.21.0/doc/shareable-vectors.txt.html | 54 + .../software/cffi_0.21.0/doc/style.css.html | 58 + .../cffi_0.21.0/examples/examples.lisp.html | 88 + .../cffi_0.21.0/examples/gethostname.lisp.html | 61 + .../cffi_0.21.0/examples/gettimeofday.lisp.html | 103 + .../cffi_0.21.0/examples/grovel-example.lisp.html | 30 + .../cffi_0.21.0/examples/main-example.lisp.html | 27 + .../cffi_0.21.0/examples/mapping.lisp.html | 86 + .../cffi_0.21.0/examples/package.lisp.html | 40 + .../cffi_0.21.0/examples/run-examples.lisp.html | 49 + .../cffi_0.21.0/examples/translator-test.lisp.html | 98 + .../cffi_0.21.0/examples/wrapper-example.lisp.html | 30 + .../software/cffi_0.21.0/grovel/asdf.lisp.html | 162 + .../software/cffi_0.21.0/grovel/common.h.html | 67 + .../software/cffi_0.21.0/grovel/grovel.lisp.html | 925 +++ .../software/cffi_0.21.0/grovel/package.lisp.html | 46 + .../software/cffi_0.21.0/libffi/funcall.lisp.html | 142 + .../cffi_0.21.0/libffi/libffi-functions.lisp.html | 53 + .../cffi_0.21.0/libffi/libffi-types.lisp.html | 120 + .../software/cffi_0.21.0/libffi/libffi.lisp.html | 48 + .../cffi_0.21.0/libffi/type-descriptors.lisp.html | 116 + .../software/cffi_0.21.0/scripts/release.lisp.html | 258 + .../software/cffi_0.21.0/src/c2ffi/asdf.lisp.html | 221 + .../software/cffi_0.21.0/src/c2ffi/c2ffi.lisp.html | 204 + .../cffi_0.21.0/src/c2ffi/generator.lisp.html | 848 +++ .../cffi_0.21.0/src/c2ffi/package.lisp.html | 64 + .../software/cffi_0.21.0/src/cffi-abcl.lisp.html | 674 +++ .../cffi_0.21.0/src/cffi-allegro.lisp.html | 456 ++ .../software/cffi_0.21.0/src/cffi-clasp.lisp.html | 211 + .../software/cffi_0.21.0/src/cffi-clisp.lisp.html | 442 ++ .../software/cffi_0.21.0/src/cffi-cmucl.lisp.html | 394 ++ .../software/cffi_0.21.0/src/cffi-corman.lisp.html | 341 ++ .../software/cffi_0.21.0/src/cffi-ecl.lisp.html | 464 ++ .../software/cffi_0.21.0/src/cffi-gcl.lisp.html | 323 + .../cffi_0.21.0/src/cffi-lispworks.lisp.html | 427 ++ .../software/cffi_0.21.0/src/cffi-mcl.lisp.html | 406 ++ .../software/cffi_0.21.0/src/cffi-mkcl.lisp.html | 352 ++ .../cffi_0.21.0/src/cffi-openmcl.lisp.html | 324 ++ .../software/cffi_0.21.0/src/cffi-sbcl.lisp.html | 418 ++ .../software/cffi_0.21.0/src/cffi-scl.lisp.html | 332 ++ .../software/cffi_0.21.0/src/early-types.lisp.html | 723 +++ .../software/cffi_0.21.0/src/enum.lisp.html | 379 ++ .../software/cffi_0.21.0/src/features.lisp.html | 121 + .../cffi_0.21.0/src/foreign-vars.lisp.html | 100 + .../software/cffi_0.21.0/src/functions.lisp.html | 451 ++ .../software/cffi_0.21.0/src/libraries.lisp.html | 468 ++ .../software/cffi_0.21.0/src/package.lisp.html | 191 + .../software/cffi_0.21.0/src/strings.lisp.html | 315 + .../software/cffi_0.21.0/src/structures.lisp.html | 143 + .../software/cffi_0.21.0/src/types.lisp.html | 1067 ++++ .../software/cffi_0.21.0/src/utils.lisp.html | 94 + .../software/cffi_0.21.0/tests/GNUmakefile.html | 108 + .../software/cffi_0.21.0/tests/Makefile.html | 12 + .../software/cffi_0.21.0/tests/arrays.lisp.html | 81 + .../software/cffi_0.21.0/tests/bindings.lisp.html | 158 + .../software/cffi_0.21.0/tests/callbacks.lisp.html | 536 ++ .../software/cffi_0.21.0/tests/compile.bat.html | 19 + .../software/cffi_0.21.0/tests/defcfun.lisp.html | 546 ++ .../software/cffi_0.21.0/tests/enum.lisp.html | 241 + .../cffi_0.21.0/tests/foreign-globals.lisp.html | 319 + .../software/cffi_0.21.0/tests/fsbv.lisp.html | 209 + .../software/cffi_0.21.0/tests/funcall.lisp.html | 255 + .../software/cffi_0.21.0/tests/grovel.lisp.html | 106 + .../software/cffi_0.21.0/tests/libfsbv.c.html | 189 + .../software/cffi_0.21.0/tests/libtest.c.html | 995 ++++ .../software/cffi_0.21.0/tests/libtest2.c.html | 60 + .../software/cffi_0.21.0/tests/memory.lisp.html | 667 +++ .../cffi_0.21.0/tests/misc-types.lisp.html | 306 + .../software/cffi_0.21.0/tests/misc.lisp.html | 142 + .../software/cffi_0.21.0/tests/package.lisp.html | 43 + .../cffi_0.21.0/tests/random-tester.lisp.html | 256 + .../software/cffi_0.21.0/tests/run-tests.lisp.html | 54 + .../software/cffi_0.21.0/tests/strings.lisp.html | 160 + .../software/cffi_0.21.0/tests/struct.lisp.html | 715 +++ .../software/cffi_0.21.0/tests/test-asdf.lisp.html | 52 + .../cffi_0.21.0/tests/test-static-link.sh.html | 19 + .../software/cffi_0.21.0/tests/union.lisp.html | 62 + .../cffi_0.21.0/toolchain/bundle.lisp.html | 575 ++ .../cffi_0.21.0/toolchain/c-toolchain.lisp.html | 403 ++ .../cffi_0.21.0/toolchain/package.lisp.html | 56 + .../cffi_0.21.0/toolchain/static-link.lisp.html | 105 + .../cffi_0.21.0/uffi-compat/uffi-compat.lisp.html | 674 +++ .../software/cffi_0.21.0/uffi-compat/uffi.asd.html | 13 + .../cl+ssl-20200427-git/.gitattributes.html | 21 + .../software/cl+ssl-20200427-git/.gitignore.html | 13 + .../software/cl+ssl-20200427-git/.travis.yml.html | 156 + .../software/cl+ssl-20200427-git/LICENSE.html | 41 + .../software/cl+ssl-20200427-git/Makefile.html | 13 + .../software/cl+ssl-20200427-git/README.md.html | 14 + .../software/cl+ssl-20200427-git/build.xcvb.html | 36 + .../software/cl+ssl-20200427-git/cl+ssl.asd.html | 48 + .../cl+ssl-20200427-git/cl+ssl.test.asd.html | 41 + .../software/cl+ssl-20200427-git/example.lisp.html | 120 + .../software/cl+ssl-20200427-git/index.css.html | 82 + .../software/cl+ssl-20200427-git/index.html.html | 490 ++ .../software/cl+ssl-20200427-git/src/bio.lisp.html | 150 + .../cl+ssl-20200427-git/src/conditions.lisp.html | 331 ++ .../cl+ssl-20200427-git/src/context.lisp.html | 144 + .../src/ffi-buffer-all.lisp.html | 26 + .../src/ffi-buffer-clisp.lisp.html | 93 + .../cl+ssl-20200427-git/src/ffi-buffer.lisp.html | 36 + .../software/cl+ssl-20200427-git/src/ffi.lisp.html | 1042 ++++ .../cl+ssl-20200427-git/src/package.lisp.html | 77 + .../cl+ssl-20200427-git/src/random.lisp.html | 43 + .../cl+ssl-20200427-git/src/reload.lisp.html | 107 + .../cl+ssl-20200427-git/src/streams.lisp.html | 498 ++ .../src/verify-hostname.lisp.html | 119 + .../cl+ssl-20200427-git/src/x509.lisp.html | 243 + .../cl+ssl-20200427-git/ssl-verify-test.lisp.html | 176 + .../software/cl+ssl-20200427-git/test.lisp.html | 419 ++ .../cl+ssl-20200427-git/test/badssl-com.lisp.html | 50 + .../cl+ssl-20200427-git/test/dummy.lisp.html | 21 + .../cl+ssl-20200427-git/test/package.lisp.html | 22 + .../openssl-releases/build.sh.html | 67 + .../openssl-releases/fetch.sh.html | 41 + .../run-home.lisp.html | 54 + .../run-home.sh.html | 13 + .../run-on-many-lisps-and-openssls.lisp.html | 99 + .../run-on-server.lisp.html | 110 + .../run-on-server.sh.html | 13 + .../cl+ssl-20200427-git/test/sni.lisp.html | 52 + .../test/verify-hostname.lisp.html | 99 + .../cl+ssl-20200427-git/test/version.lisp.html | 18 + .../software/cl+ssl-20200427-git/todo.txt.html | 41 + .../flexi-streams-20200427-git/CHANGELOG.html | 307 + .../flexi-streams-20200427-git/README.md.html | 22 + .../flexi-streams-20200427-git/ascii.lisp.html | 46 + .../code-pages.lisp.html | 72 + .../conditions.lisp.html | 118 + .../flexi-streams-20200427-git/decode.lisp.html | 478 ++ .../docs/index.html.html | 1129 ++++ .../flexi-streams-20200427-git/encode.lisp.html | 292 + .../external-format.lisp.html | 399 ++ .../flexi-streams.asd.html | 89 + .../flexi-streams-20200427-git/in-memory.lisp.html | 461 ++ .../flexi-streams-20200427-git/input.lisp.html | 305 + .../flexi-streams-20200427-git/io.lisp.html | 120 + .../flexi-streams-20200427-git/iso-8859.lisp.html | 63 + .../flexi-streams-20200427-git/koi8-r.lisp.html | 46 + .../flexi-streams-20200427-git/length.lisp.html | 478 ++ .../lw-char-stream.lisp.html | 87 + .../flexi-streams-20200427-git/mapping.lisp.html | 91 + .../flexi-streams-20200427-git/output.lisp.html | 172 + .../flexi-streams-20200427-git/packages.lisp.html | 100 + .../flexi-streams-20200427-git/specials.lisp.html | 209 + .../flexi-streams-20200427-git/stream.lisp.html | 251 + .../flexi-streams-20200427-git/strings.lisp.html | 92 + .../flexi-streams-20200427-git/test/README.html | 14 + .../test/hebrew_latin8_cr.txt.html | 78 + .../test/hebrew_latin8_crlf.txt.html | 78 + .../test/hebrew_latin8_lf.txt.html | 78 + .../test/hebrew_utf8_cr.txt.html | 78 + .../test/hebrew_utf8_crlf.txt.html | 78 + .../test/hebrew_utf8_lf.txt.html | 78 + .../test/kafka_cp1252_cr.txt.html | 21 + .../test/kafka_cp1252_crlf.txt.html | 21 + .../test/kafka_cp1252_lf.txt.html | 21 + .../test/kafka_latin1_cr.txt.html | 21 + .../test/kafka_latin1_crlf.txt.html | 21 + .../test/kafka_latin1_lf.txt.html | 21 + .../test/kafka_utf8_cr.txt.html | 21 + .../test/kafka_utf8_crlf.txt.html | 21 + .../test/kafka_utf8_lf.txt.html | 21 + .../test/packages.lisp.html | 51 + .../test/russian_koi8r_cr.txt.html | 16 + .../test/russian_koi8r_crlf.txt.html | 16 + .../test/russian_koi8r_lf.txt.html | 16 + .../test/russian_utf8_cr.txt.html | 16 + .../test/russian_utf8_crlf.txt.html | 16 + .../test/russian_utf8_lf.txt.html | 16 + .../flexi-streams-20200427-git/test/test.lisp.html | 759 +++ .../test/tilton_ascii_cr.txt.html | 106 + .../test/tilton_ascii_crlf.txt.html | 106 + .../test/tilton_ascii_lf.txt.html | 106 + .../test/tilton_utf8_cr.txt.html | 106 + .../test/tilton_utf8_crlf.txt.html | 106 + .../test/tilton_utf8_lf.txt.html | 106 + .../test/unicode_demo_utf8_cr.txt.html | 222 + .../test/unicode_demo_utf8_crlf.txt.html | 222 + .../test/unicode_demo_utf8_lf.txt.html | 222 + .../flexi-streams-20200427-git/util.lisp.html | 216 + .../software/split-sequence-v2.0.0/LICENSE.html | 31 + .../software/split-sequence-v2.0.0/README.md.html | 119 + .../software/split-sequence-v2.0.0/api.lisp.html | 89 + .../split-sequence-v2.0.0/documentation.lisp.html | 51 + .../extended-sequence.lisp.html | 110 + .../software/split-sequence-v2.0.0/list.lisp.html | 126 + .../original-message.txt.html | 160 + .../split-sequence-v2.0.0/package.lisp.html | 47 + .../split-sequence-v2.0.0/split-sequence.asd.html | 38 + .../software/split-sequence-v2.0.0/tests.lisp.html | 278 + .../split-sequence-v2.0.0/vector.lisp.html | 104 + .../split-sequence-v2.0.0/version.sexp.html | 12 + .../trivial-features-20200427-git/.travis.yml.html | 40 + .../trivial-features-20200427-git/COPYRIGHT.html | 31 + .../trivial-features-20200427-git/README.md.html | 42 + .../trivial-features-20200427-git/SPEC.md.html | 102 + .../release.lisp.html | 257 + .../src/tf-abcl.lisp.html | 59 + .../src/tf-allegro.lisp.html | 62 + .../src/tf-clasp.lisp.html | 46 + .../src/tf-clisp.lisp.html | 85 + .../src/tf-cmucl.lisp.html | 57 + .../src/tf-corman.lisp.html | 51 + .../src/tf-ecl.lisp.html | 68 + .../src/tf-lispworks.lisp.html | 70 + .../src/tf-mcl.lisp.html | 54 + .../src/tf-mezzano.lisp.html | 50 + .../src/tf-mkcl.lisp.html | 61 + .../src/tf-mocl.lisp.html | 53 + .../src/tf-openmcl.lisp.html | 60 + .../src/tf-sbcl.lisp.html | 61 + .../src/tf-scl.lisp.html | 59 + .../src/tf-xcl.lisp.html | 52 + .../tests/package.lisp.html | 44 + .../tests/sysinfo.lisp.html | 59 + .../tests/tests.lisp.html | 146 + .../tests/utsname.lisp.html | 46 + .../trivial-features-tests.asd.html | 62 + .../trivial-features.asd.html | 69 + .../trivial-garbage-20200325-git/.gitignore.html | 14 + .../trivial-garbage-20200325-git/.travis.yml.html | 36 + .../trivial-garbage-20200325-git/README.md.html | 22 + .../trivial-garbage-20200325-git/build.xcvb.html | 11 + .../doc/index.css.html | 188 + .../trivial-garbage-20200325-git/gendocs.lisp.html | 25 + .../trivial-garbage-20200325-git/release.lisp.html | 260 + .../trivial-garbage-20200325-git/tests.lisp.html | 151 + .../trivial-garbage.asd.html | 36 + .../trivial-garbage.lisp.html | 430 ++ .../trivial-gray-streams-20181018-git/COPYING.html | 32 + .../Makefile.html | 13 + .../trivial-gray-streams-20181018-git/README.html | 50 + .../build.xcvb.html | 17 + .../package.lisp.html | 87 + .../streams.lisp.html | 302 + .../test/package.lisp.html | 16 + .../test/run-on-many-lisps.lisp.html | 76 + .../test/test-framework.lisp.html | 70 + .../test/test.lisp.html | 223 + .../trivial-gray-streams-test.asd.html | 20 + .../trivial-gray-streams.asd.html | 20 + .../3rdparties/software/uiop-3.3.4/README.md.html | 233 + .../software/uiop-3.3.4/asdf-driver.asd.html | 12 + .../software/uiop-3.3.4/backward-driver.lisp.html | 79 + .../software/uiop-3.3.4/common-lisp.lisp.html | 229 + .../software/uiop-3.3.4/configuration.lisp.html | 445 ++ .../3rdparties/software/uiop-3.3.4/debug.lisp.html | 128 + .../software/uiop-3.3.4/driver.lisp.html | 29 + .../software/uiop-3.3.4/filesystem.lisp.html | 699 +++ .../3rdparties/software/uiop-3.3.4/image.lisp.html | 492 ++ .../software/uiop-3.3.4/launch-program.lisp.html | 692 +++ .../software/uiop-3.3.4/lisp-build.lisp.html | 851 +++ .../3rdparties/software/uiop-3.3.4/os.lisp.html | 415 ++ .../software/uiop-3.3.4/package.lisp.html | 752 +++ .../software/uiop-3.3.4/pathname.lisp.html | 758 +++ .../software/uiop-3.3.4/run-program.lisp.html | 588 ++ .../software/uiop-3.3.4/stream.lisp.html | 730 +++ .../3rdparties/software/uiop-3.3.4/uiop.asd.html | 62 + .../software/uiop-3.3.4/utility.lisp.html | 676 +++ .../software/uiop-3.3.4/version.lisp.html | 191 + .../software/usocket-0.8.3/.gitignore.html | 11 + .../3rdparties/software/usocket-0.8.3/CHANGES.html | 221 + .../software/usocket-0.8.3/CONTRIBUTORS.html | 57 + .../3rdparties/software/usocket-0.8.3/LICENSE.html | 35 + .../software/usocket-0.8.3/README.md.html | 158 + .../3rdparties/software/usocket-0.8.3/TODO.html | 15 + .../software/usocket-0.8.3/backend/.gitignore.html | 11 + .../software/usocket-0.8.3/backend/abcl.lisp.html | 446 ++ .../usocket-0.8.3/backend/allegro.lisp.html | 238 + .../software/usocket-0.8.3/backend/clasp.lisp.html | 168 + .../software/usocket-0.8.3/backend/clisp.lisp.html | 725 +++ .../usocket-0.8.3/backend/clozure.lisp.html | 83 + git/clic/files.html | 11 + git/clic/index.html | 11 + git/clic/refs.html | 11 + .../13a6e6e074d1f0090e4304630e6b16f8230e1268.html | 178 + .../453e006a2adb2902c7b73831be2d003db1553a31.html | 59 + .../8088053341f23c0e9fd541a6cd0433b8f7ec2e6a.html | 99 + .../a45e65d1b7f7e493f576ee53546b8f15740cb75a.html | 30 + .../c1fdcf4b24972b5812d83321cebb76097fdb65c8.html | 136 + .../c96ce79d90bdbf934b0ca2bdb3d85cfff155db76.html | 166 + .../dfbd4cb1bd3bf9fcfdd8c35bcc1b4596006db31b.html | 150 + git/coleslaw-mode-docs/file/.gitignore.html | 13 + git/coleslaw-mode-docs/file/README.org.html | 15 + .../file/coleslaw-mode.post.html | 95 + git/coleslaw-mode-docs/files.html | 11 + git/coleslaw-mode-docs/index.html | 11 + git/coleslaw-mode-docs/refs.html | 11 + .../6f5a2b71e9bbd7de33a8e7346c4433744536d641.html | 183 + git/coleslaw-snippets/file/.gitignore.html | 15 + git/coleslaw-snippets/file/README.org.html | 41 + .../file/coleslaw-snippets.el.html | 118 + git/coleslaw-snippets/files.html | 11 + git/coleslaw-snippets/index.html | 11 + git/coleslaw-snippets/refs.html | 11 + .../017225300229fc2f549d656a815b933c6a7ffaf0.html | 34 + .../03415834c683d881cee2164b03fd782fe5bb0a82.html | 20 + .../0b9f027a36ea00ca2e4b6f8d9fd7a135127cc2da.html | 21 + .../0de6478caf7105c07963a97a8a04dc5d05274b0c.html | 54 + .../0e325ee56ea3ab449dcd3fad485303abe2c442cd.html | 81 + .../0e35b72fc29ecd8f716027506d16a7c875b5575d.html | 34 + .../0e4b8d81b0615bb194b29ab9ab2949dad593bec8.html | 30 + .../105d3a5df0a751930fbb4d4a078402695cc11da4.html | 20 + .../11e234f9e9d5da60594d2fd425222a1f33beb716.html | 45 + .../12f174533fab60669069bd92ca5261fb4f275f1b.html | 79 + .../17e526317c59911051aac2564319b7d82c814153.html | 39 + .../1aefd3e52075f28af9bc90e50126f9810b159846.html | 31 + .../1dea80365184128069ba4eeca0842d57efe13842.html | 33 + .../21411d37d9b40f48e59aa55d26c1621aa5ff9de2.html | 56 + .../35c09f45bd0734fcc8350fa2afcb5340a33c4d5d.html | 99 + .../3695fd875b2f5cf94ab293a1f4236c225c280282.html | 31 + .../38a6c2d475b572e54a6435e0ec6df2c183fdc6d3.html | 46 + .../390af72d445196f2e488e386af3de069fc3d0e65.html | 24 + .../3e803e7f039a0aade2074a3a65f8265100731886.html | 40 + .../47e643a9ee6fa1c0bc31465ea15cadf1c267b7c0.html | 50 + .../48099d55ceab0e32d9cd6a40fb25673531df805e.html | 31 + .../48b11224197410e612ce99abdf85120b391ea0b8.html | 20 + .../49288bc1350e905f4dfc9405aca27d02adfc389e.html | 122 + .../4978458966701f828a317247c5f60fa773388bc0.html | 58 + .../4ab837508bd1f84340f657174b49bcda0bdca723.html | 22 + .../5304158c0ad8188d936c4f7584a15d3819eaae7c.html | 73 + .../559171a34fe1f42d05fa33cc2e05c40163d3d118.html | 37 + .../5681f5724cfb9e508eb82f37eb59118db28a1182.html | 48 + .../58cf3eebcc39e175e69335981fcc3b3b502f87fd.html | 20 + .../5dd66dcf6216f8f9cbd3c541434ad575ae80dda2.html | 328 ++ .../5f32be57f76d157c637e0a0b6da97e6b46683588.html | 31 + .../5fd748be8b1b90d7d9a4201442f942d0d0414661.html | 36 + .../647bb1ddf152c256c09228224eb47a0aeb1987a2.html | 29 + .../656401df71c005d30ae591a717e486aa9197d26f.html | 104 + .../6902af29eff9d273810bc7d220156912d25ba1ac.html | 153 + .../6e0684b128403bf86d99717d796f053c583004ec.html | 31 + .../6fdeb58f63d377adeff12bfcd516b6778c41e923.html | 30 + .../774a29a37271d28e1c961a17dbeca86c1f9d0ad9.html | 78 + .../7aa2c1f904ed01dd0e4cc19985eb8d5664ff92d5.html | 45 + .../7acd0eb951777f36566cf2a69dacc79a8236234a.html | 46 + .../7b8c5bb2aeff720087f8fc41a37550e43095ef37.html | 29 + .../7ba1e0d16ab1f5a3d8898503b57034ef734d4600.html | 134 + .../7d87d483a0fabf7d9ac4baf2564e419547609c72.html | 21 + .../806c003f98de3bd1cfd059d206c40f0ef5fb8e08.html | 41 + .../82702d25d3ba8869d1138a339088a85863871557.html | 23 + .../82f7a7f30965bfca990d1423b60e8a377fd87bfe.html | 20 + .../86fefef6feaff1e833663c67a92a646e919e5ab5.html | 34 + .../878edba3df14ff5a3c7f2015ab38a5683a6b0ab3.html | 22 + .../891bfd52ded9b4a56df78eea7cd7798a45c77fa2.html | 21 + .../89db40a55275b2086e873d322013c98c14b68cfe.html | 166 + .../8a3b05d2af1bc29322a7b3be151676e3fcadca46.html | 92 + .../8b399b964a1fb99e98cefd7be6002778e18b734a.html | 31 + .../919d047349d72934e02a4c07c8ee920864490bf8.html | 38 + .../95e24bbc2db6dd6a87a0fdb5a8cfdb473146753e.html | 36 + .../96ae19b146afa3af506630983e5113d072ba561e.html | 34 + .../992f3aba7b489dc9b4420463ebaa6f357edcf80c.html | 20 + .../9a3cd70d4cf9eea933551f74bb27e335567b6337.html | 41 + .../9ff2aa094407b68ab0c26e3d744665c12b153ad2.html | 22 + .../a0457666a5d5f54c2439fab4683b530251a8acc9.html | 52 + .../a447df807b5bfea3b49dff6575b7993acb226f1e.html | 40 + .../a6164f0bc0b2003b757f83455e79ef08fe8d7f7e.html | 52 + .../a63c168e8627fba791136bf001409b0640d24a16.html | 43 + .../a91dcc8075e1dd1d4b48a6c2f7d07e409dced64e.html | 31 + .../b4ed7bdb4916ab3a6738947954ebde26b8ee1dde.html | 33 + .../b5d5076aa88649baa2ce88cef825cb16e01a53bd.html | 46 + .../b6c35f03310aba47223e89ac64486094e11e50ad.html | 25 + .../b70b6d8c1169032f17c14c2e1df5a2d156823e9a.html | 20 + .../bcc2a5ececee5a216c0614c1bbe58e2a4797ec62.html | 45 + .../bcc81664e5d2630d68769fea81117194867362a1.html | 33 + .../be933edf284f0510b8e9b8de7c0f2e456e9388e7.html | 42 + .../bea699ebebbc7ecb750fbf433360d464611e639c.html | 22 + .../beb627c482128c4604ae4c9906d4fbadf12f9296.html | 123 + .../c2a107cb3e81fa7d45fda4f7e00d8ea23a132f82.html | 64 + .../c2cf64a027f1e110c23e98d0ca91e32f59e9b0e2.html | 22 + .../c5b368aa8af7f63ba592e17445a84c8328670063.html | 21 + .../ca4aae8f664431af576d7561152b914a6850ced3.html | 20 + .../ca6527445635196c83338fb8243c16df944a17d6.html | 56 + .../cc0271b319b6df7b3d09653ec0cf0773600cd19c.html | 23 + .../cc54e8031e8293ee19e0e8774cdce23b3ebb4f62.html | 56 + .../ce1c4f30543e40a089f33dc33faee1742a80c73d.html | 32 + .../d0178a7b0b6eb54b902bd17ca64236790ab5cd49.html | 78 + .../d1e30f150d694f53c5ba267e3a55694d60541099.html | 35 + .../d397b32328a60f818749a31d6636302df045714b.html | 89 + .../d56429a7f87a388b0f88fcb363ee9cbb0de84550.html | 31 + .../d61a3a2adc74adf611b7f00c0c24dbed56bc30c4.html | 21 + .../d7a4433523ce3ccc5650eada0bd1b9ef17d680f4.html | 28 + .../d9fa597d791215307f3a92928cc77e1b976f068f.html | 31 + .../daab8d63fd50642feb1c79df57780038a20b0f0d.html | 23 + .../dd53a77595d9a25601c949c511a67dc9675ec57b.html | 45 + .../dee99e91b500bdb88a819daed22d9cd36d174d5c.html | 20 + .../e7e68ce6020d13b14bf212890a7d8973d7af3b40.html | 23 + .../e7f0d111fc28d4029f815ea6efcbf6c29d335ae1.html | 29 + .../ea423d72e1be267b479dd71aec36979443f346f9.html | 131 + .../eacc598930fd0a8fdf4147bda497cced4dbd025d.html | 44 + .../ee74b1a3231772fd71410759e80d8ebc6bf23b1a.html | 31 + .../efc0bfb738a435689497914407b3f49a297b41a4.html | 57 + .../f4a66dc5233013d6ac5477970dac0e42cf053118.html | 21 + .../f9c62cfc53278a1c921626a62c34883e7835f7de.html | 82 + .../fbb9c034ebfa95eb09d5734b8b4902dbecaaceb1.html | 45 + .../fbf7bb3c5c746d732ff66578cd57851c48a6a801.html | 37 + git/coleslaw/file/.gitignore.html | 21 + git/coleslaw/file/.travis.yml.html | 34 + git/coleslaw/file/LICENSE.html | 19 + git/coleslaw/file/NEWS.md.html | 173 + git/coleslaw/file/README.md.html | 140 + git/coleslaw/file/cli-tests/basic.sh.html | 55 + git/coleslaw/file/cli/cli.lisp.html | 331 ++ git/coleslaw/file/coleslaw-cli.asd.html | 24 + git/coleslaw/file/coleslaw-test.asd.html | 24 + git/coleslaw/file/coleslaw.asd.html | 43 + git/coleslaw/file/docs/config.md.html | 47 + git/coleslaw/file/docs/content-format.md.html | 36 + git/coleslaw/file/docs/deploy.md.html | 23 + git/coleslaw/file/docs/hacking.md.html | 414 ++ git/coleslaw/file/docs/plugin-api.md.html | 65 + git/coleslaw/file/docs/plugin-use.md.html | 293 + git/coleslaw/file/docs/themes.md.html | 229 + git/coleslaw/file/examples/dump-db.lisp.html | 27 + git/coleslaw/file/examples/dump_db.sh.html | 28 + git/coleslaw/file/examples/example.coleslawrc.html | 39 + .../file/examples/example.post-receive.html | 51 + git/coleslaw/file/plugins/3bmd-youtube.lisp.html | 22 + git/coleslaw/file/plugins/analytics.lisp.html | 35 + git/coleslaw/file/plugins/cl-who.lisp.html | 33 + git/coleslaw/file/plugins/disqus.lisp.html | 40 + git/coleslaw/file/plugins/gfycat.lisp.html | 35 + git/coleslaw/file/plugins/gh-pages.lisp.html | 48 + git/coleslaw/file/plugins/git-versioned.lisp.html | 56 + git/coleslaw/file/plugins/gtag.lisp.html | 31 + git/coleslaw/file/plugins/heroku.lisp.html | 30 + git/coleslaw/file/plugins/import.lisp.html | 78 + git/coleslaw/file/plugins/incremental.lisp.html | 92 + git/coleslaw/file/plugins/isso.lisp.html | 30 + git/coleslaw/file/plugins/markless.lisp.html | 22 + git/coleslaw/file/plugins/mathjax.lisp.html | 40 + git/coleslaw/file/plugins/piwik.lisp.html | 35 + git/coleslaw/file/plugins/publish-gh-pages.sh.html | 65 + git/coleslaw/file/plugins/pygments.lisp.html | 18 + git/coleslaw/file/plugins/robocopy.lisp.html | 31 + git/coleslaw/file/plugins/rst.lisp.html | 42 + git/coleslaw/file/plugins/rsync.lisp.html | 29 + git/coleslaw/file/plugins/s3.lisp.html | 64 + git/coleslaw/file/plugins/sitemap.lisp.html | 40 + git/coleslaw/file/plugins/static-pages.lisp.html | 50 + .../file/plugins/twitter-summary-card.lisp.html | 35 + git/coleslaw/file/plugins/twitter.lisp.html | 98 + git/coleslaw/file/plugins/versioned.lisp.html | 34 + git/coleslaw/file/roswell/coleslaw.ros.html | 20 + git/coleslaw/file/src/coleslaw-conf.lisp.html | 20 + git/coleslaw/file/src/coleslaw.lisp.html | 90 + git/coleslaw/file/src/config.lisp.html | 103 + git/coleslaw/file/src/content.lisp.html | 129 + git/coleslaw/file/src/documents.lisp.html | 94 + git/coleslaw/file/src/feeds.lisp.html | 47 + git/coleslaw/file/src/indexes.lisp.html | 119 + git/coleslaw/file/src/packages.lisp.html | 62 + git/coleslaw/file/src/posts.lisp.html | 41 + git/coleslaw/file/src/themes.lisp.html | 55 + git/coleslaw/file/src/util.lisp.html | 145 + git/coleslaw/file/tests/cli.lisp.html | 33 + git/coleslaw/file/tests/files/.coleslawrc.html | 12 + git/coleslaw/file/tests/files/127.txt.html | 17 + .../file/tests/for-fixture-generation.lisp.html | 25 + .../tests/plugins/twitter-summary-card.lisp.html | 71 + git/coleslaw/file/tests/tests.lisp.html | 34 + git/coleslaw/file/themes/atom.tmpl.html | 40 + git/coleslaw/file/themes/hyde/base.tmpl.html | 67 + git/coleslaw/file/themes/hyde/css/style.css.html | 110 + git/coleslaw/file/themes/hyde/index.tmpl.html | 44 + git/coleslaw/file/themes/hyde/post.tmpl.html | 37 + git/coleslaw/file/themes/readable/base.tmpl.html | 86 + .../file/themes/readable/css/custom.css.html | 52 + git/coleslaw/file/themes/readable/index.tmpl.html | 48 + .../file/themes/readable/js/bootstrap.min.js.html | 16 + git/coleslaw/file/themes/readable/post.tmpl.html | 37 + git/coleslaw/file/themes/rss.tmpl.html | 39 + git/coleslaw/file/themes/sitemap.tmpl.html | 23 + git/coleslaw/files.html | 11 + git/coleslaw/index.html | 11 + git/coleslaw/refs.html | 11 + .../085cbe08c3b02f817819267644494ff5fced224d.html | 102 + .../0a46cf9435cb116ce79847d9812ea2ef079e6ccb.html | 129 + .../19658baec83707d26c5372e127a8dfa8e359add9.html | 255 + .../29e002d6b36810d14edcb57abb280141198d38bc.html | 32 + .../2b09e2fe9f7e2b1b72b4b570d4ab65d66d2dab39.html | 52 + .../2e30e4b831c18e5606799d520775e8212042c14c.html | 31 + .../31391565450f3791870e7e8e1ab575fae44b8c83.html | 112 + .../3c8dd303ea008ae2f411b42367bb6cc56ea75a57.html | 32 + .../3ccbeb392820876ec3112ed82f372e8c0ddbf6e4.html | 26 + .../43a9035dca553dd09778836994056e0bdb786b2f.html | 68 + .../450539b491a32dce876c734ffeb2a1834334e468.html | 151 + .../4d60c8d74e4ff4bbdc83a81a4effbc8be78f7f91.html | 709 +++ .../55f1a2b63ee85d679b69436991f40ad9b501cf45.html | 68 + .../6030298e1c26ba3e148a5a41e4ebf174e6bd54ab.html | 72 + .../6b2635eb9322ddd78d3d1c89ac0679f227c9242e.html | 51 + .../715e79497b94b5f734fc093d54da1d2a6cb61941.html | 26 + .../7602899893fa86733a1134fc26b7cc92d1867c51.html | 40 + .../7fc11758e6ab9cf92155732af9382b121ce6f354.html | 64 + .../84697ba2b48ff927e55017f6f90a23558f0791bf.html | 41 + .../84960ac730a959cde8cb4ad73c35109544910580.html | 89 + .../a15e2d2c8bd96b948e4a9a09f2ea5162d142182e.html | 44 + .../a70a8b0d3b24132e1773a5d570ca786cef6bd84a.html | 26 + .../a7aed0d0d8f5f83eda99f57f873e3371d428d17e.html | 73 + .../aad040c208b8f02f7308d58cd5c832d5ac69a673.html | 84 + .../bf30571fdd286f423b6f0a29197524894f2d3cfc.html | 133 + .../c5304a3725fbdcb1e917f3b48ac5e8603fcb793e.html | 62 + .../c677de1b9fd0164fd10abb73f510d8a1f94e733b.html | 106 + .../cc52b1ee38f54888dfdb18fc8812eaaeae5b9f56.html | 243 + .../ce0fffb15093138a3c9051ec77804dd2e054ef9d.html | 44 + .../d2e5aec3233002c1434f8c6a8ae62811b9401988.html | 25 + .../d54a55ff7c251efc3f6b4401d90ac8b5c4951d26.html | 114 + .../da9f35af8a154c558b7db011bc416250ed2ee185.html | 47 + .../dd7a2b6dc42d77d27877ccf108dc04a221aac346.html | 28 + .../e0f1c9ee37f5c90c10b5d14e5037522b18005b1c.html | 542 ++ .../ee6b528563737e487b94ba16ac9e8519b103674e.html | 80 + .../f2c771222e10eaac567569cd470082b423b577d8.html | 30 + .../f728787c0491d44265692a4a3fe82f3658022fca.html | 26 + git/common-lisp-utils/file/.gitignore.html | 12 + git/common-lisp-utils/file/.gitmodules.html | 13 + git/common-lisp-utils/file/README.md.html | 13 + git/common-lisp-utils/file/estimator.lisp.html | 37 + git/common-lisp-utils/file/utils.asd.html | 17 + git/common-lisp-utils/file/utils.lisp.html | 687 +++ git/common-lisp-utils/files.html | 11 + git/common-lisp-utils/index.html | 11 + git/common-lisp-utils/refs.html | 11 + .../55a4c976f897e79f56a462664792081b7ad97068.html | 30 + .../622fbd58cd8df36c2423759e19c2ea0631912426.html | 126 + .../c51addd3d8cc28b0ad27be8b7256462dfa61c7f7.html | 119 + .../f5830362ad9be1c6d546249ba4428524956fa745.html | 38 + git/cores/file/README.md.html | 51 + git/cores/file/config.lisp.html | 43 + git/cores/file/make.lisp.html | 24 + git/cores/file/post-config.lisp.html | 15 + git/cores/file/sbcl-install.html | 11 + git/cores/file/sbcl-rc.lisp.html | 17 + git/cores/files.html | 11 + git/cores/index.html | 11 + git/cores/refs.html | 11 + .../6987cef70accd674733ab3a7f8a5a4e0a62c32dc.html | 109 + .../6c343301828dada7965fa86ac6a8d6bc55f3e7b5.html | 1013 ++++ .../6e74eb7c5f00794c15896a20b13df984f838ac69.html | 225 + .../cab5a51ab89a84d6c1a7cf860aa09099db7f1430.html | 31 + .../cf61feb32ade3afb2b6f0a94f06ebcee03f8de23.html | 122 + .../ea88023fadb06e416cc8b74344b114af95fb41be.html | 28 + git/defsl/file/LICENSE.html | 684 +++ git/defsl/file/README.org.html | 132 + git/defsl/file/macrolayer.lisp.html | 86 + git/defsl/file/package.lisp.html | 13 + git/defsl/file/sl.asd.html | 25 + git/defsl/file/sl.lisp.html | 15 + git/defsl/file/utils.lisp.html | 71 + git/defsl/files.html | 11 + git/defsl/index.html | 11 + git/defsl/refs.html | 11 + .../503b41a38f1df97f78c4182243aaf85ec347300e.html | 250 + .../542f27364d5ad0bc458514d1c965f43ae214915f.html | 473 ++ .../5d555b7bfd9c419d5eb11e99e8457dbd79c5f6ce.html | 171 + .../6c3d670330304621893615ce76603038effc01dc.html | 854 +++ .../6fee0622c08a60e3c6f90085ff76e7acc8a65103.html | 36 + .../902287ac6f2c3bf6000c113600ae03de91a518c9.html | 1501 +++++ .../9f8898667f6a95057bf21f130d51f73b0d11d420.html | 2100 +++++++ .../c0e9deddc82ccf23d36b9f9d4e8308ddafe4c58c.html | 137 + .../ca1a576e27c7e45fe5ff5a5c4b14552923c1fa6c.html | 180 + .../d6ce9c9e61990039a2863ed2394c64e3b8b6b424.html | 683 +++ .../e4c47a25354bda546c6b1facb8a1dc26c129143d.html | 413 ++ .../file/.gitattributes.html | 13 + .../file/.github/workflows/ci.yml.html | 50 + git/desktop-subtitle-replay/file/.gitignore.html | 34 + git/desktop-subtitle-replay/file/LICENSE.html | 31 + git/desktop-subtitle-replay/file/README.md.html | 100 + git/desktop-subtitle-replay/file/bench.py.html | 121 + git/desktop-subtitle-replay/file/control.html.html | 250 + .../file/docs/reference.md.html | 388 ++ .../file/get-finnish-model.ps1.html | 117 + git/desktop-subtitle-replay/file/livecap.py.html | 1213 ++++ git/desktop-subtitle-replay/file/overlay.html.html | 164 + git/desktop-subtitle-replay/file/reader.html.html | 287 + .../file/requirements.txt.html | 16 + git/desktop-subtitle-replay/file/run.ps1.html | 19 + git/desktop-subtitle-replay/file/setup.ps1.html | 40 + git/desktop-subtitle-replay/file/start.ps1.html | 61 + git/desktop-subtitle-replay/file/subtitle.py.html | 958 +++ .../file/tests/test_smoke.py.html | 350 ++ .../file/tests/test_subtitle.py.html | 308 + git/desktop-subtitle-replay/files.html | 11 + git/desktop-subtitle-replay/index.html | 11 + git/desktop-subtitle-replay/refs.html | 11 + .../d3be40f037d8d1b7bed3b9567e2ad3bcdfd348b0.html | 675 +++ git/dickt.store/file/index.html.html | 661 +++ git/dickt.store/files.html | 11 + git/dickt.store/index.html | 11 + git/dickt.store/refs.html | 11 + .../014dfc2c21a86773b9d3bfc4ec4d4a66e7fa75a6.html | 193 + .../01d45ebb6aa9e8c9e3d838df154639449f5cfbd9.html | 40 + .../076fbb2794cdb8f1c5917a4d8f41d7f59c37d52a.html | 39 + .../0993504b10adb4309143ef7247b6f5b3ae27618f.html | 37 + .../0ae54e97144ea0f857ea31be8975eb6989a02128.html | 62 + .../0b2fbaa0f9c6a1d3e42e2bb147ec160700136278.html | 43 + .../1ebcc06dab61babcc13f82cd8046dbe9e68b6577.html | 46 + .../2e32e0cbb1402dc963769c9021a0607c84333cc3.html | 42 + .../5af7085bb791506559e0c30c3336825b4e1ad6c6.html | 31 + .../61c2a031f51433c42f580be4bcccfa7e80d9e450.html | 31 + .../7643b11a6548cd50a13eb5ead3f237f3c2b94972.html | 121 + .../799f719299ef5eb276ba48d5bc2a97e7f54d9742.html | 71 + .../7daa9c918587fca4ef8b46d6f2d2522862d667e4.html | 72 + .../7f711b616a18581f20e275fa69cbfc9159d4048c.html | 39 + .../8954c818991a0b585440f9f6436c4777a5a3146f.html | 93 + .../8c513f43348f33e16b5ccbe67c098800efab864a.html | 29 + .../8d1fffb4e2998018b8d7f0a8d19775b607bcde46.html | 45 + .../9b5bc128a99dcf853e6bbcea98cdb1dfc12e5af1.html | 44 + .../9e808b93bb557cd32117915fb0e4cbf79ed3c234.html | 29 + .../a60bbc5d5c623fd13aff0039350d513d98690d72.html | 72 + .../afde01cb5955c85846187e0524b1328fccc292c9.html | 51 + .../cfa503792266705fd253b121e7e11130ea3c6d68.html | 25 + .../e0e9ccc8192f815227b8450deb5062e2e823ded3.html | 186 + .../e145d4f34d6726776e405180ee12c98a0bd89909.html | 30 + .../e18fa3383c204e8f42969eed8dc272929ffdcf7e.html | 51 + .../e2e2afb79cb0ba6160de68c800a32c8fdee76318.html | 37 + .../e8355e17a052c45704240be637ecb1c1a017a6b0.html | 35 + git/dmenu-scripts/file/.gitmodules.html | 28 + git/dmenu-scripts/file/README.md.html | 61 + git/dmenu-scripts/file/dbc.html | 15 + git/dmenu-scripts/file/dbrowsel.html | 40 + git/dmenu-scripts/file/dcpupower.html | 18 + git/dmenu-scripts/file/ddmenu.html | 15 + git/dmenu-scripts/file/dgivepass.html | 15 + git/dmenu-scripts/file/dintel-backlight.html | 37 + git/dmenu-scripts/file/dkeymap.html | 15 + git/dmenu-scripts/file/dmenu_path.html | 23 + git/dmenu-scripts/file/dmenu_run.html | 12 + git/dmenu-scripts/file/dmenupass.html | 16 + git/dmenu-scripts/file/dmount.html | 124 + git/dmenu-scripts/file/dopenrc-runlevel.html | 17 + git/dmenu-scripts/file/drssadd.html | 45 + git/dmenu-scripts/file/dshow.html | 16 + git/dmenu-scripts/file/dsudo.html | 13 + git/dmenu-scripts/file/dsysact.html | 36 + git/dmenu-scripts/file/dtimer.html | 49 + git/dmenu-scripts/file/dtmpl.html | 13 + git/dmenu-scripts/file/dunmount.html | 38 + git/dmenu-scripts/file/intel-backlight.html | 58 + git/dmenu-scripts/file/passmenu-otp.html | 35 + git/dmenu-scripts/file/passmenu.html | 35 + git/dmenu-scripts/file/y-or-n.html | 15 + git/dmenu-scripts/files.html | 11 + git/dmenu-scripts/index.html | 11 + git/dmenu-scripts/refs.html | 11 + .../46485b181caa009512b4c3a508dc0a137acc839d.html | 28 + .../6c61e22dd2ed40f242b0133ec407d55932faea50.html | 129 + .../8f574713d2584d476a59f51d9ec3b1aead6e5836.html | 26 + git/dmodurl/file/README.md.html | 14 + git/dmodurl/file/dbrowsel.html | 11 + git/dmodurl/file/dmodurl.html | 34 + git/dmodurl/file/dmodurl.sed.html | 22 + git/dmodurl/file/drss.sed.html | 21 + git/dmodurl/file/drssurl.html | 27 + git/dmodurl/file/modurl.html | 13 + git/dmodurl/file/rssurl.html | 13 + git/dmodurl/files.html | 11 + git/dmodurl/index.html | 11 + git/dmodurl/refs.html | 11 + .../8be09ae7f67cc4fec6843f826916fba891d45cbc.html | 85 + git/dpatchmail/file/format-patch-clang.html | 35 + git/dpatchmail/file/format-patch-suckless.html | 12 + git/dpatchmail/file/format-patch.html | 30 + git/dpatchmail/files.html | 11 + git/dpatchmail/index.html | 11 + git/dpatchmail/refs.html | 11 + .../119e7b2298610b6772ce4a2344838477e0f7dc77.html | 85 + .../20a9328e13d5f6231bac3fea0f02ae7e2731f7b6.html | 27 + .../3e2e426d39e6cf6b201cbb1406c2c46897da5fdb.html | 86 + .../4bc47fb4c35ea9bf65fde3b711d01aea13302df9.html | 52 + .../59d5ec592ce6a9b00ebf619fabc5ccfb35f1c387.html | 81 + .../5e1581d8bc590208cbff725d54bcbd7c3ab86d6a.html | 35 + .../68e0dbcf3c62cfe4c4936f9fc44a5fab2cf657d8.html | 38 + .../7575552f38d12c2bdd4e36d42ba1d1a91f95998d.html | 26 + .../80abc897764176c824ddc114482ac5d7c6f4c65f.html | 181 + .../835290e395165ef931ee0fa05f18284cbdcb0afb.html | 38 + .../927f24e6e35aa6db7c2be612a5e9275ef7c17e0c.html | 49 + .../9969032448e87270455293b1f461311e19b16c93.html | 77 + .../a5438ed2fccd642c5105ba7765350ccdef55788c.html | 132 + .../cdfda438b8cb1163bb68cfb3f71372b3a91348c5.html | 39 + .../f107927a1425db2d08d89ec092589d0297c96eb8.html | 49 + .../f4bc34fb6fe642277a812e4eeea05506a2672fcb.html | 25 + git/dsad/file/Makefile.html | 39 + git/dsad/file/README.html | 11 + git/dsad/file/config.mk.html | 15 + git/dsad/file/dsad.html | 61 + git/dsad/file/sad-add-playlist.html | 12 + git/dsad/file/sad-add.html | 92 + git/dsad/file/sad-cmd.html | 20 + git/dsad/file/sad-menu.html | 19 + git/dsad/file/sad-start.html | 18 + git/dsad/file/sad-toggle-play.html | 25 + git/dsad/file/sadc.html | 11 + git/dsad/file/sadd.html | 11 + git/dsad/file/sadp.html | 11 + git/dsad/file/sads.html | 11 + git/dsad/files.html | 11 + git/dsad/index.html | 11 + git/dsad/refs.html | 11 + .../235056b647c5ebff3c42181f69da634642472bbb.html | 157 + .../e3744d4b31c40feadfab6f6043143d13c7d6b12b.html | 76 + git/ediff-spacemacs/file/README.org.html | 40 + git/ediff-spacemacs/file/keybindings.el.html | 37 + git/ediff-spacemacs/file/packages.el.html | 72 + git/ediff-spacemacs/files.html | 11 + git/ediff-spacemacs/index.html | 11 + git/ediff-spacemacs/refs.html | 11 + .../1c3fd6faa8e514b505950700c374127085c508d6.html | 26 + .../297a45c5f9d297af8b60af84130ab1b5c5c34828.html | 48 + .../3cff04aca4ec553f949d67dc530c7e40306ec1d9.html | 40 + .../4a30dc785db0cc0680975a0ae746ee3ac89b885c.html | 51 + .../78a0a92586d65c30657c36ab215f359cd625d61d.html | 136 + .../7c171848cb4d360aebcc5fb4ba344229285a341a.html | 32 + .../8b3c88dace83c38d49faa2dd2bdde3e9e76af50a.html | 54 + .../d1cd9230c42d4e297aee5517d22fe2751f23889c.html | 77 + git/encrypted-home-backups/file/README.md.html | 49 + git/encrypted-home-backups/file/backup.html | 12 + git/encrypted-home-backups/file/backup.pl.html | 43 + git/encrypted-home-backups/file/install.html | 16 + git/encrypted-home-backups/files.html | 11 + git/encrypted-home-backups/index.html | 11 + git/encrypted-home-backups/refs.html | 11 + .../67d1499a3898d6f79d6b1ee321d5c8758d5bd138.html | 40 + .../9828e13313be9cac94b7bf1c8d85ff419c3ea099.html | 358 ++ .../ca585af48dd30e7317771494edbfee970167d126.html | 284 + git/esperanto/file/.gitignore.html | 11 + git/esperanto/file/README.md.html | 26 + git/esperanto/file/defterminals.lisp.html | 88 + git/esperanto/file/esperanto.asd.html | 19 + git/esperanto/file/esperanto.lisp.html | 230 + git/esperanto/files.html | 11 + git/esperanto/index.html | 11 + git/esperanto/refs.html | 11 + .../7da41887996e9cad70bfa6b2dac509ca3ba194be.html | 117 + .../c941375b67503a44bab2e9760b087ac5159a7414.html | 67 + git/gendocs/file/gendocs.asd.html | 18 + git/gendocs/file/gendocs.lisp.html | 54 + git/gendocs/files.html | 11 + git/gendocs/index.html | 11 + git/gendocs/refs.html | 11 + .../094bba496716bf0c92b030fb62fbb31633227f15.html | 51 + .../098d0475077bb17a8c6f815bb25ebe590d3ac984.html | 185 + .../14038ae69244d2d47cff2c0c4dab5f5f0d0cb39b.html | 50 + .../af69d3d9369c6e03f401e5ac84d9488e99621f49.html | 77 + .../bded3e20c003074942c9a66b72c0b8880b3e4681.html | 95 + .../f261c3b7bac2cced2eeaeb8b3ccf874496d477ba.html | 48 + .../f43ffa172a1b997d63018c373bca0d76746f5ce1.html | 109 + .../ff02628cf2820885cca5b674047da589f00d7b2f.html | 770 +++ git/goldfish/file/.bashrc.html | 53 + git/goldfish/file/.gitignore.html | 11 + git/goldfish/file/abbreviations.fish.html | 58 + git/goldfish/file/aliases.fish.html | 12 + git/goldfish/file/compatibility.fish.html | 25 + git/goldfish/file/conf.d/omf.fish.html | 17 + git/goldfish/file/config.fish.html | 16 + git/goldfish/file/errorlog.html | 279 + git/goldfish/file/functions/breakit.fish.html | 15 + git/goldfish/file/functions/calc.fish.html | 13 + git/goldfish/file/functions/f.fish.html | 14 + git/goldfish/file/functions/fd.fish.html | 14 + git/goldfish/file/functions/fed.fish.html | 14 + git/goldfish/file/functions/feds.fish.html | 17 + git/goldfish/file/functions/ff.fish.html | 14 + .../file/functions/fish_greeting.fish.html | 27 + .../functions/fish_prompt.1573187721.copy.html | 24 + git/goldfish/file/functions/fish_prompt.fish.html | 11 + git/goldfish/file/functions/fn.fish.html | 15 + git/goldfish/file/functions/fr.fish.html | 14 + git/goldfish/file/functions/ft.fish.html | 14 + git/goldfish/file/functions/ghe.fish.html | 14 + git/goldfish/file/functions/lc.fish.html | 13 + git/goldfish/file/functions/piss.fish.html | 15 + git/goldfish/file/functions/pp.fish.html | 14 + git/goldfish/file/functions/psr.fish.html | 22 + git/goldfish/file/functions/rgg.fish.html | 14 + git/goldfish/file/functions/rgl.fish.html | 14 + git/goldfish/file/functions/rgp.fish.html | 14 + git/goldfish/file/functions/rgs.fish.html | 14 + git/goldfish/file/functions/sand.fish.html | 13 + git/goldfish/file/functions/sandmacs.fish.html | 14 + git/goldfish/file/functions/ungron.fish.html | 14 + git/goldfish/file/functions/wifi.fish.html | 14 + git/goldfish/file/variables.fish.html | 46 + git/goldfish/files.html | 11 + git/goldfish/index.html | 11 + git/goldfish/refs.html | 11 + .../18cd9fb4ea4922dfc736db4b6e7f1f14d2898ea1.html | 31 + .../25bcc22c2b5acec3033e73e2eca58a08232bb955.html | 52 + .../2cccbab03400a50bde0b28cc5fbed6d60aa0780e.html | 39 + .../41d8263e2d3ef66db8416adad13561ada175786f.html | 41 + .../4d2dea5cc44c7b249cc822f7536bb5a0b0d8e6dc.html | 31 + .../6244a743a17bb5e92f68c9783d59ec9222198534.html | 52 + .../631b4f545b28980aa593fa2d42e538283d7139e0.html | 108 + .../6cc67dac732bbb8f5f40267d0a90f4369ac50de8.html | 40 + .../6f61f2ee55cb1b8f7f705f789fa7a4b8b2095709.html | 26 + .../6fd9223e338ea1e756bdd160bd298a164a767ed7.html | 28 + .../7322a9c1297e19009691fbe47d096f0a70ddbbcd.html | 41 + .../817f17d2efcf9a9b307bcfbe304379e3bb366f13.html | 42 + .../9127c276bca6585f8be60b1d7619e2584bd3e148.html | 113 + .../a0fabf73b6f92cb526dce57789468339de53de3d.html | 33 + .../a3c9477b68cb886bacde87f27de0cb57f8faf750.html | 208 + .../ca5d6bdb5176debd7da34d6630426898abc88793.html | 41 + .../d8ab98b077cbe9c3a3aa9e8f7e57dce9f25f4855.html | 49 + .../e0a1cc73c7ce3625a5fe99ced08dfdb9c40dcb78.html | 31 + .../e35df86d9a55a39039dedab13922d758beabb2b6.html | 81 + .../eb62b0afc207f187b960c86f52a4d712396a8dbc.html | 70 + .../f6101bc662eced29762d85d9ae4342e01bff47c6.html | 42 + git/ii-lchat-metapackage/file/README.md.html | 51 + git/ii-lchat-metapackage/file/irc-connect.html | 88 + git/ii-lchat-metapackage/file/irc-tail-f.html | 35 + git/ii-lchat-metapackage/file/lc.html | 26 + git/ii-lchat-metapackage/file/lchat-connect.html | 23 + ...bera-chat-no-system-messages-and-indent.sh.html | 12 + .../file/libera-chat-no-system-messages.sh.html | 12 + .../file/services/lispirc.html | 50 + git/ii-lchat-metapackage/files.html | 11 + git/ii-lchat-metapackage/index.html | 11 + git/ii-lchat-metapackage/refs.html | 11 + git/index.html | 11 + .../022da9e1584028f438ee3207a748fa46b49c78e5.html | 55 + .../1c8c10eca82da26575fc6efb246522adf55ffcb5.html | 31 + .../22ffeb0cc463a3ee937be409680841bc65655c8d.html | 34 + .../3ffc75060a15d60e2fa9f458e30b8685af2642c5.html | 63 + .../5107e55598f391d1aa2e48aba066280bb9daf984.html | 34 + .../56c0c8c31df44702fb2013c9eae410b2c7f53386.html | 60 + .../7bc7f0a1a3ef856cc42cc0d65a6dd7a7b3cd922b.html | 45 + .../997d7898507831f802473c058c776973016370d9.html | 66 + .../a40cf17871f4c87969f37bf4a9da1672098561a9.html | 30 + .../d4940c7317e7e9183f488bba123114fd70175cee.html | 30 + .../f0c5548cd6f248e9834050a525b2875317a16005.html | 33 + .../fd57f0ae0e03c544ccb066befbe44a76a818e8cc.html | 34 + git/len-cmp/file/.gitignore.html | 11 + git/len-cmp/file/README.org.html | 28 + git/len-cmp/file/len-cmp.asd.html | 19 + git/len-cmp/file/length.lisp.html | 55 + git/len-cmp/files.html | 11 + git/len-cmp/index.html | 11 + git/len-cmp/refs.html | 11 + .../00ae577c5fd0983ef797dcace4156971c7e371ee.html | 309 + .../126a6fb65b52e2bb95aee94f42f6b740776cbd63.html | 208 + .../146f233cb773aca9b7ee4d7cfc0661d88a393f26.html | 33 + .../1dcdb15681bbea38b4e3cfe1d580189111018904.html | 59 + .../2c087586d523a0d200e1c9226511a08d1ec2b65a.html | 27 + .../56313c4385f87b494b52b9744b511953b0da3d8d.html | 84 + .../5798c461c2468ae27b1c5cefe49e7c1be00cf222.html | 87 + .../5977a81a50c2d6280cdbe376f8609a0bec523926.html | 698 +++ .../61ddc40eff416fe620557bc828f4000c58c31dca.html | 314 + .../74b44d6644277fc5b0c68f89c376bdd22c3fcd3a.html | 338 ++ .../77829e1ec93e3ca1f3e4cb3be19848b5c1699777.html | 57 + .../7bd5fbd76478f0c27c76f9d0aaa262ce305619d2.html | 35 + .../854fb170d04fef5a4fdddc61d2dc6a42b6c75077.html | 72 + .../88dd6a09719ae369b3c219e9fb416f5048ca7e22.html | 41 + .../a5437562c8da571a85040555ef0462ac4a4db7f3.html | 155 + .../a8a38f64dc0d1c55e53a655e97274f952175277a.html | 32 + .../ae9de51ded25f0d4b0b1cadd21267dd07573324a.html | 424 ++ .../b482833078e61e4278b0615f6f2587096aae87c8.html | 30 + .../c101cd6e33438517a5e5ecb93ef1c451b87db8d1.html | 266 + .../daac8512608fc35aca4eb8b5bf82f89572d99b04.html | 84 + .../ef40c7852fe06374c3642efe4f9645814da85973.html | 102 + .../ef5c476415b5181fad174572ac874718546549c6.html | 239 + .../f00cf8e1e2eed0fad67e72fa449e415b20a0f5e9.html | 181 + .../f14f23e8553b293cb69a6adcbd51e49dd7f8313f.html | 112 + git/librivox/file/.gitignore.html | 22 + git/librivox/file/README.md.html | 25 + git/librivox/file/librivox.asd.html | 26 + git/librivox/file/packages.lisp.html | 45 + git/librivox/file/src/bash.lisp.html | 11 + git/librivox/file/src/client_secrets.json.html | 19 + git/librivox/file/src/descriptions.lisp.html | 11 + git/librivox/file/src/ffmpeg.lisp.html | 80 + git/librivox/file/src/librivox.lisp.html | 23 + git/librivox/file/src/search.lisp.html | 11 + git/librivox/file/src/uploader.lisp.html | 58 + git/librivox/file/src/uploader.py.html | 190 + git/librivox/file/src/utils.lisp.html | 65 + git/librivox/file/src/workaround.lisp.html | 14 + git/librivox/files.html | 11 + git/librivox/index.html | 11 + git/librivox/refs.html | 11 + .../0247e90cb0f3c7f44f90e9d315b2b4c2706ea936.html | 167 + .../07dffddd773fe091ed852929ae9f0416bcb69b9b.html | 36 + .../1a5c41cb8e1c870eedf8a69c98e5ff2316dff40d.html | 37 + .../3de0e6f461fdc7e4ec08599c13559fe212f8f143.html | 30 + .../47b388bd05763b0a51a9894fde04861477d1effe.html | 139 + .../4a848d32bf3fec890ef89d8a6bc95f0ebcebda0a.html | 21 + .../52ca9c12361899f56ef2ab353eff882d4e05f2b9.html | 30 + .../6eb33116e12527849b1f4a3fedf397c97f4d36e2.html | 697 +++ .../7a4d8443beaa12a6c1f787877cd6f0b3c61d75e8.html | 53 + .../82ab907ac9a40378f0f55d4e388befd6f402f968.html | 30 + .../8be3b5de7e7e949777dfb5cedabf91cefd6914ae.html | 31 + .../953117b575f8bf72c79899a8d59e3af4e4be9d18.html | 44 + .../a900db342760713de7f85f4085568ab90a870f89.html | 49 + .../bbc9fb8bc9da6b7872e3a283024db4bdbf0ba196.html | 44 + .../bfae1bdea09eed0d999d136b3e8d451c40f95526.html | 60 + .../e3e77384c51606ea88915f871f967c875fbba8e2.html | 185 + .../e5e0ea90c2f082b1a4c3601615690287985d6f0c.html | 47 + .../e7364382a8ab42be2b8344b8bb47149c240facb4.html | 20 + .../fce4192d2b23fed740fa4c0e1b97ebfd3f0c2d7b.html | 37 + .../file/.gitignore.html | 11 + git/lisp-multithreaded-internet/file/LICENSE.html | 684 +++ .../file/README.org.html | 47 + .../file/code/multithreading.lisp.html | 46 + .../file/code/packages.lisp.html | 18 + .../file/multi.asd.html | 19 + git/lisp-multithreaded-internet/files.html | 11 + git/lisp-multithreaded-internet/index.html | 11 + git/lisp-multithreaded-internet/refs.html | 11 + .../3726312f428aa4dee73579cb57c39ede0f13ab34.html | 5808 ++++++++++++++++++ git/minimak-tty-xkb/file/.gitignore.html | 11 + git/minimak-tty-xkb/file/README.html | 46 + .../file/ru-xkb/ru-phon-minimak12.xkb.html | 97 + .../file/ru-xkb/ru-phon-minimak4.xkb.html | 97 + .../file/ru-xkb/ru-phon-minimak8.xkb.html | 97 + git/minimak-tty-xkb/file/ru-xkb/ru-phon.xkb.html | 97 + .../us-minimak12-paren-swap-flipping-esc.map.html | 75 + ...n-swap-flipping-rctrl-compose-esc-caps.xkb.html | 1931 ++++++ .../file/us-minimak12-paren-swap-flipping.map.html | 75 + .../file/us-minimak12-paren-swap-flipping.xkb.html | 1940 +++++++ .../file/us-minimak12-paren-swap.xkb.html | 1940 +++++++ git/minimak-tty-xkb/file/us-minimak12.map.html | 75 + git/minimak-tty-xkb/file/us-minimak12.xkb.html | 1940 +++++++ .../file/us-minimak4-paren-swap-flipping.xkb.html | 1940 +++++++ .../file/us-minimak4-paren-swap.xkb.html | 1940 +++++++ git/minimak-tty-xkb/file/us-minimak4.map.html | 68 + git/minimak-tty-xkb/file/us-minimak4.xkb.html | 1940 +++++++ .../file/us-minimak8-paren-swap-flipping.xkb.html | 1940 +++++++ .../file/us-minimak8-paren-swap.xkb.html | 1940 +++++++ git/minimak-tty-xkb/file/us-minimak8.map.html | 72 + git/minimak-tty-xkb/file/us-minimak8.xkb.html | 1940 +++++++ git/minimak-tty-xkb/files.html | 11 + git/minimak-tty-xkb/index.html | 11 + git/minimak-tty-xkb/refs.html | 11 + .../3af2f05f73b211ca5f089c5f3b52746ba54711c0.html | 105 + .../717b253f288f3314a7246eec0ab790b4e5f7b7e0.html | 33 + .../916b24be472821f0c5d90d2376656393145ea50f.html | 30 + .../c5e611920b282de8f43daf480dd44b5bae3ad0a3.html | 46 + git/minimalist-template/file/LICENSE.html | 31 + git/minimalist-template/file/README.md.html | 21 + .../file/template/README.md.html | 22 + .../file/template/application.lisp.html | 16 + .../file/template/package.lisp.html | 17 + .../file/template/system.asd.html | 23 + git/minimalist-template/files.html | 11 + git/minimalist-template/index.html | 11 + git/minimalist-template/refs.html | 11 + .../820e425e4258c4c27fae27fabf5e009ed4bdc93c.html | 35 + .../a27a8ea29b2b66b5bd422259264c20e7c1cc2dd2.html | 121 + .../affa470a45eb030e643b9e71e614779cb303e2ca.html | 34 + git/nixtoo-genux/file/INSTALL.sh.html | 15 + git/nixtoo-genux/file/README.md.html | 33 + git/nixtoo-genux/file/aliasrc-additions.zsh.html | 18 + git/nixtoo-genux/file/flake.nix.html | 51 + git/nixtoo-genux/files.html | 11 + git/nixtoo-genux/index.html | 11 + git/nixtoo-genux/refs.html | 11 + .../08805fb06c71d0025a1f0fcf3443540cf52152ae.html | 639 ++ .../7ac8303c17f9aa1e28c1baedf67e579f4b91f91f.html | 934 +++ git/pass-simple/file/LICENSE.html | 23 + git/pass-simple/file/Makefile.html | 44 + git/pass-simple/file/README.md.html | 73 + git/pass-simple/file/config.mk.html | 20 + git/pass-simple/file/log.c.html | 164 + git/pass-simple/file/pass.1.html | 11 + git/pass-simple/file/pass.c.html | 331 ++ git/pass-simple/file/pass.h.html | 24 + git/pass-simple/file/readpassphrase.c.html | 197 + git/pass-simple/file/readpassphrase.h.html | 41 + git/pass-simple/files.html | 11 + git/pass-simple/index.html | 11 + git/pass-simple/refs.html | 11 + .../1cc50481b2153b0a9d67f54079a1f13dbfa2f12f.html | 32 + .../902e7a7af8ecdf38678c1f781a4d9edb2297ec63.html | 56 + .../965efecb2ca41ee7c0117f166ace022acbc3abc6.html | 36 + .../a6507c8fc42a64df3a0d32400032c4fc5c0e7c8d.html | 38 + .../cc55a57fe27b84f906225b56125880a64591e3d7.html | 29 + .../cd63086485ea142360b04f34e17628b2fe5fabee.html | 45 + .../ce85fc55584c1bd99e1b6a232f9482e88cd650af.html | 55 + .../cf8b6af6a757ac2d737e0dc06b91e1bd13e37b37.html | 57 + .../e6bccf940b0f6b37062622e94416ae54282b57e2.html | 38 + .../f876164baffcb9161d1e75659146b4e7df971927.html | 123 + git/posix-pipes/file/README.md.html | 49 + git/posix-pipes/file/package.lisp.html | 18 + git/posix-pipes/file/posix-pipes.asd.html | 20 + git/posix-pipes/file/posix-pipes.lisp.html | 77 + git/posix-pipes/files.html | 11 + git/posix-pipes/index.html | 11 + git/posix-pipes/refs.html | 11 + .../3e6b9ea1074482685413ead03ac9e05168e42831.html | 31 + .../44746683ca69f7db560caac38ca7ff5270bc5275.html | 41 + .../54986b8f5d8851f663f89ae33d1de0b0978f654f.html | 87 + .../55d6ab9013c7469924cd05c2a24d66aa413a19ac.html | 88 + .../78b2ef84c03e8d871aaaa4c93bbeab25add65432.html | 29 + .../9d7bccc6b373f94ebfd6f758a628bf233e57e8d9.html | 113 + .../a8858b7d3cd912662ea860e4fb73e678992ec2a8.html | 31 + .../ae54b9ae3e96c0658963e3a92241ba61034def37.html | 30 + .../b734dce254b62af63f475b2a4abbf2b2410a5814.html | 121 + .../bd36763ee1e3358f3808f8fe659b6d1330a62b8e.html | 52 + .../bfc89f01740b3e440260ede5b11a0b6b372353e0.html | 30 + .../d5a37b7088f8bdcaf109768a2fd02c677a579a6f.html | 109 + .../fce001c8700f4a7794ed3f18f614d22e1e735390.html | 47 + git/prompt-mail/file/Makefile.html | 36 + git/prompt-mail/file/README.html | 30 + git/prompt-mail/file/example/git-send-email.html | 15 + git/prompt-mail/file/example/mail-alias.html | 29 + git/prompt-mail/file/mail-xclip.html | 75 + git/prompt-mail/file/prompt-mail.html | 33 + git/prompt-mail/files.html | 11 + git/prompt-mail/index.html | 11 + git/prompt-mail/refs.html | 11 + .../3b6743029c53808f659ab2ba2019daa590d7fb38.html | 63 + .../b032edf86841b3629b4ecd2546c4f4f6bd4e6e00.html | 39 + .../e33723476e1ff2951038cdb429f295184de7cbed.html | 25 + .../e4ea00e926928825bc2b9690fc63c8e4a01fe065.html | 88 + git/proxyverif/file/.gitignore.html | 12 + git/proxyverif/file/README.md.html | 47 + git/proxyverif/file/checker.html | 43 + git/proxyverif/file/example.txt.html | 25 + git/proxyverif/files.html | 11 + git/proxyverif/index.html | 11 + git/proxyverif/refs.html | 11 + .../05571932273275aa894252e7cbad9f6080fa8bb6.html | 156 + .../1566c4a665139cd9c4952964446851f405f283ef.html | 30 + .../5557b8a2ddf016bac39664e9e9ca94aa4d5dab54.html | 75 + .../985a379c19faf46a848d5b07a132b2bf7c5a8679.html | 39 + git/quickurl/file/README.org.html | 46 + git/quickurl/file/keybindings.el.html | 32 + git/quickurl/files.html | 11 + git/quickurl/index.html | 11 + git/quickurl/refs.html | 11 + .../b50284cb5e1665449fb3368e0188898fc77a782c.html | 2402 ++++++++ git/r6rs-complete/file/README.md.html | 18 + git/r6rs-complete/files.html | 11 + git/r6rs-complete/index.html | 11 + git/r6rs-complete/refs.html | 11 + .../d6b347a51f5bf2522c28e990028bce6a55546c6f.html | 688 +++ git/recentlywritten/file/build.sh.html | 104 + git/recentlywritten/file/index.html.html | 43 + git/recentlywritten/file/posts/lisprant.md.html | 23 + git/recentlywritten/file/site/index.html.html | 43 + git/recentlywritten/file/site/lisprant.html.html | 60 + git/recentlywritten/file/site/style.css.html | 209 + git/recentlywritten/file/style.css.html | 209 + git/recentlywritten/files.html | 11 + git/recentlywritten/index.html | 11 + git/recentlywritten/refs.html | 11 + .../11d048e20e18aefd400631ea3b433f0b5ad317c1.html | 26 + .../5555875018ad375d87bacb5449919b53651ad010.html | 99 + .../6c7afe3984766795e5230a904be78e67f11dbb35.html | 39 + .../e74f04c90a31246c135ee841d9bad4d9d85e09bd.html | 59 + .../eebaeb728ca65efea34dffe5736d7ae917b6af4f.html | 58 + .../fde133221b8cdeea8a96647cff09b9c67f8b661f.html | 169 + git/rectangle/file/README.org.html | 55 + git/rectangle/file/keybindings.el.html | 30 + git/rectangle/file/packages.el.html | 72 + git/rectangle/files.html | 11 + git/rectangle/index.html | 11 + git/rectangle/refs.html | 11 + .../140f852164fe465471af071c97ff5a17b7c82ac1.html | 30 + .../2ee897d7b1bae686c20bcf23ad5bbef591430418.html | 37 + .../3728b09e677f477af2afef27c334be083193a748.html | 29 + .../4402ba54e183ecad43f092add760207d8fc5be32.html | 698 +++ .../b091886121ede7e765857ecb879c737b048babe4.html | 32 + .../d541decd8987ea7037eb8bd083a679b0adeb9d0e.html | 100 + .../dd2d5425d053474bb00d5d9b79197b77b50e77ab.html | 45 + .../f5efeb3707fb48128374900e097f8d075505a849.html | 30 + git/resume-template/file/.gitignore.html | 15 + git/resume-template/file/LICENSE.html | 684 +++ git/resume-template/file/README.md.html | 22 + git/resume-template/file/author.tex.html | 13 + git/resume-template/file/formatting.tex.html | 51 + git/resume-template/file/resume.tex.html | 29 + git/resume-template/files.html | 11 + git/resume-template/index.html | 11 + git/resume-template/refs.html | 11 + .../bd5aad67f3115ba4f277fa136a75334a247c1618.html | 104 + git/sacc-ebuild/file/README.md.html | 47 + git/sacc-ebuild/file/sacc-1.01.ebuild.html | 42 + git/sacc-ebuild/files.html | 11 + git/sacc-ebuild/index.html | 11 + git/sacc-ebuild/refs.html | 11 + .../20dcf6104b65502609ddd5de50e595764c30bbc6.html | 126 + .../35e13666096ac3d48031222e663c868c835f1209.html | 34 + .../48da2ae40401b3e1c91cc044f03f1fcb2eb46856.html | 141 + .../4ec93f33bfb00c01530c4aeafcf7cf8d3efe5ab9.html | 54 + .../527ba89a9c50cf8ed41030628858f8e08d1fca0b.html | 20 + .../53b04640ebaf5ce0bc85ee04df91637078e82482.html | 35 + .../54eff69143e540758de47ff5762dd89a8f391a8d.html | 134 + .../65906dd853842c8b739b45c0f54f3f07783a4f95.html | 2659 +++++++++ .../73a2cfb70e9595ff30364c46be96b8cfbcd90a9e.html | 51 + .../7c0b4c022cb883227066ce4342633a975f47b57c.html | 34 + .../805d1e939219754e77114aeb9bddb75144e941b3.html | 34 + .../84d1f87d0807097581665554d770a6bf7f437662.html | 32 + .../85303225927cb04a2d20ab64374cda69f3a71aa6.html | 20 + .../a2a5d76a0cc524589a272390055c2ebc1e5800bd.html | 71 + .../a6f35d3f02f3acea880d51d70e2b5adfddd53878.html | 1946 +++++++ .../ab1adc5c042505f9bed2d89eea81760bbf91bd50.html | 65 + .../b0a9b7e0022a3038de42a18fa35d2ca221493be3.html | 233 + .../b39612b0f1cb79ca0d8d9add091b673d19fe0460.html | 146 + .../c76d7c0a5266afc747192fa55f565c32d68cad43.html | 34 + .../e19bf8c1cbd0b6e0a4dc5b393ebae8b12c997b87.html | 39 + .../e40ade36f579e1b404880014868c91569f374f39.html | 31 + .../ecdecef7bea290b3642e1ba2f84322a8e2d12a68.html | 30 + git/sbm/file/.gitignore.html | 13 + git/sbm/file/Makefile.html | 48 + git/sbm/file/README.html | 230 + git/sbm/file/TODO.html | 29 + git/sbm/file/bm-check.html | 80 + git/sbm/file/bm-commit.html | 46 + git/sbm/file/bm-html.html | 115 + git/sbm/file/bm-import.html | 119 + git/sbm/file/bm-migrate.html | 130 + git/sbm/file/bm-title.html | 43 + git/sbm/file/bm.html | 657 +++ git/sbm/file/config.mk.html | 24 + git/sbm/file/engines.html | 15 + git/sbm/file/test/fakefzf.html | 71 + git/sbm/file/test/fakemenu.html | 66 + git/sbm/file/test/fixtures/chromium.json.html | 53 + git/sbm/file/test/fixtures/netscape.html.html | 28 + git/sbm/file/test/run.sh.html | 900 +++ git/sbm/file/usertags.html | 21 + git/sbm/files.html | 11 + git/sbm/index.html | 11 + git/sbm/refs.html | 11 + .../11c122b820f0f6443655fa0a2cafe8e71aefd323.html | 51 + .../3a30a1e0ce8e5435aaaf629b8a123edccc5e7290.html | 86 + .../3f12bfdb6b4e8a4ced4d5a2ff23ad464c78bfa9f.html | 39 + .../897b751c305c893d815639e650552497e30587ad.html | 40 + .../91e76d06486a51608e72425cececb518acfb3c43.html | 22 + .../ba93108433926e4202f388b8268f5d04b03cb4dd.html | 39 + .../c801a7522403541bde2f7bc309a82355ab377345.html | 187 + .../d1c633ea631b5dfc19d1726c19f6ae85a0a02963.html | 33 + .../d93a7fcf37285c1d4318278b30568017c1e4ebf4.html | 43 + .../dff4eb5870bcda92bb5ac928ef765c2c62437b89.html | 80 + .../ecec501b18986cf0244b86bc1792361cef192679.html | 697 +++ git/sigil/file/.gitignore.html | 27 + git/sigil/file/LICENSE.html | 684 +++ git/sigil/file/README.md.html | 67 + git/sigil/file/package.lisp.html | 13 + git/sigil/file/sigil.asd.html | 21 + git/sigil/file/sigil.lisp.html | 113 + git/sigil/files.html | 11 + git/sigil/index.html | 11 + git/sigil/refs.html | 11 + .../03e63201ff64f98520f9f1fe426afab035c73bed.html | 40 + .../28029c7ba17daf02e1e05584217b785db1728824.html | 87 + .../35af9bdabf8c0975ffeeaf7103fccf73329c7824.html | 48 + .../373125798010d6f8751a26ce41f314cb7ff6aac3.html | 256 + .../60c5f34193899399bcefe2e55312f38f2c2d5976.html | 122 + .../74961668a6f1eb46e17611ebec7ec41c205ee26e.html | 697 +++ .../7dff6b3da6c9df411d050c24dfaaae1eeaa54252.html | 39 + .../8f028f45becd7c0e3e962604e381e80845decb3d.html | 39 + .../be359b7b6eecf541487567d600e3242508c3a033.html | 26 + .../bf839329bc91dd02347b27ec996599be0d9a9e9d.html | 50 + .../c76c10ee26c25a09c553fe6ccba2c29062f510c3.html | 20 + .../c9c9f7046856eaca3b9cbfa882f8fb11391397b5.html | 31 + .../eb93cfed3441f27ca89975811a63dd998b350a68.html | 236 + git/sl/file/.gitignore.html | 13 + git/sl/file/LICENSE.html | 684 +++ git/sl/file/README.org.html | 106 + git/sl/file/macrolayer.lisp.html | 118 + git/sl/file/package.lisp.html | 13 + git/sl/file/sl.asd.html | 22 + git/sl/file/sl.lisp.html | 15 + git/sl/file/utils.lisp.html | 46 + git/sl/files.html | 11 + git/sl/index.html | 11 + git/sl/refs.html | 11 + .../176ecb35ff6bf43a73251ad28e12a7a89dfd6dba.html | 76 + .../b24b84027ebe678d253efecffad432c18200a932.html | 137 + git/slurp/file/README.org.html | 40 + git/slurp/file/keybindings.el.html | 17 + git/slurp/file/packages.el.html | 72 + git/slurp/files.html | 11 + git/slurp/index.html | 11 + git/slurp/refs.html | 11 + git/stagit.css | 6 + .../0094500c6fc8d0b6d3a655b36defbaaa163699f4.html | 30 + .../169350de961fea626edf55a782cffe9c0efc5366.html | 36 + .../1db6602ff50dc42b1583c5668d38dc3934098911.html | 57 + .../220f9be8dd6566457ab7e53190d794d174e77724.html | 68 + .../498ca514a7a17a6d6f854226e1b21f502c9ed4de.html | 302 + .../4c12f0ac85feb48919a87965090b1edf15c3ce12.html | 21 + .../4e7185732ad7464116f27ecced5b270160c772a8.html | 46 + .../5efa5313b329dbe93e6ad713055a7c8ead8c546a.html | 28 + .../6d92d850ae89ea8ecc681b9adcbf9ce57cbc2d7b.html | 45 + .../94f90959015ae333a5638032ed46b68d48942610.html | 18 + .../9f7b94d4cce9af3036ff38fc67932e495454cc15.html | 30 + .../a1632c10539e3282d82705069a5eb4d40c7355a5.html | 31 + .../b7998e412e5c31aab2e8ea2168b5e4584e08afb7.html | 59 + .../d0772549c1aaf49e22300da7decc7d708eaad377.html | 30 + .../d213887743c8c90f8e0a3520095cd518f3bbe99b.html | 95 + .../e00359c5b129b85f73117a37ab1a8c907df62bbd.html | 102 + .../e22c3f7e7706948391940f7f5c6b3e8d6a79eee2.html | 57 + .../f7d7b7d13d72ca88b6184237bf9caea76fdaf5c7.html | 115 + git/stumpwm-init/file/README.org.html | 65 + git/stumpwm-init/file/commands.lisp.html | 28 + git/stumpwm-init/file/config.lisp.html | 44 + git/stumpwm-init/file/finalize.lisp.html | 18 + git/stumpwm-init/file/init.lisp.html | 11 + git/stumpwm-init/file/keybindings.lisp.html | 70 + git/stumpwm-init/file/package.lisp.html | 41 + git/stumpwm-init/file/stumpwm-init.asd.html | 42 + git/stumpwm-init/file/util.lisp.html | 19 + git/stumpwm-init/files.html | 11 + git/stumpwm-init/index.html | 11 + git/stumpwm-init/refs.html | 11 + .../575d2f60e1af7a79355fd22857801b54255e3d3b.html | 29 + .../b9460bd833e87e3e5d1ac87c67f05bf2c2cfd657.html | 347 ++ .../e280bb4298b990fc1b935cd4a112ead8329ed824.html | 56 + git/subread.space/file/README.md.html | 42 + git/subread.space/file/index.html.html | 333 ++ git/subread.space/files.html | 11 + git/subread.space/index.html | 11 + git/subread.space/refs.html | 11 + .../0ab3fbcd66d5316ae09cd95b00bb7ccdaa9818f7.html | 104 + .../2dd3084c14ebf30b8623321b8f276b4054a19ad2.html | 55 + .../3e721abc6965d576c996c8d35de0249c7a12320c.html | 39 + .../444854680bf6900c615d25591b563fe9a5886163.html | 39 + .../453bf2f9827b9604302fedd0091d422496c0322e.html | 71 + .../47191e5200a01ded9420f13f2835867413ec6b13.html | 190 + .../6111f99b28b6c9a20d2e847be55d770bf07ad729.html | 89 + .../7e861de90689d16c791f8b6c65dcdf45087835f3.html | 96 + .../827c81118410e702d5cb0bb13055d8d89642e2bc.html | 73 + .../98f237ca7cfeea9c4cfbd6d1db4a124c2c765c4e.html | 70 + .../f83ea9ba2a005b7906964a2a8fcd6d49fbdfca4d.html | 46 + .../fb6fa52fab4c8ca54138c41cdc84f5dd4e633c01.html | 39 + git/tag-gen/file/README.md.html | 61 + git/tag-gen/file/config/local.conf.html | 20 + git/tag-gen/file/config/root.conf.html | 12 + git/tag-gen/file/tag-gen-root.sh.html | 14 + git/tag-gen/file/tag-gen.lisp.html | 65 + git/tag-gen/file/tag-gen.sh.html | 14 + git/tag-gen/files.html | 11 + git/tag-gen/index.html | 11 + git/tag-gen/refs.html | 11 + .../034470a4d99281923bb34d59b840da71880bbf82.html | 72 + .../1635b23d2bdd1fe32ee3dd3e4a0ee183a4522c20.html | 62 + .../17ba03dcb05aa976dae461fd1cd0ef6cc239c27c.html | 78 + .../1c75aa6bee376cb44f0d4b3111d104e914fd872d.html | 62 + .../495c57898bc37d37cee87ab0db7862459bd9639f.html | 30 + .../5334be4b0dd71e44e91a6ab3d8070cb640cac1d0.html | 47 + .../5359956dab853d31c8aa6d733b49385e29596af3.html | 154 + .../5ea5a454993dad0f0e37363e480bc1d576202fd8.html | 60 + .../864a74286c18754c638c828291f6e28ef818fabd.html | 21 + .../be6d4e14b214bff3b5339d0330c3f86501b7af93.html | 76 + .../c28555fcfc2aed88250fb002c6853aacfc5453d6.html | 60 + .../c37a490dce149632946f6c82f434f277d6abffb5.html | 21 + .../f2e3c53ac9f89a2f1e43e2acf7cd07fb3bdbab19.html | 59 + git/timeclock/file/README.org.html | 52 + git/timeclock/file/keybindings.el.html | 23 + git/timeclock/file/packages.el.html | 72 + git/timeclock/files.html | 11 + git/timeclock/index.html | 11 + git/timeclock/refs.html | 11 + .../1744efddc76bb8df27c989b047ef819ec42aac4c.html | 29 + .../2e3715ee8bffc95f39383510e9b5374be1ad3280.html | 736 +++ .../398d21fdb2979ce5eceea56d39b02045c5354831.html | 31 + .../b8dcc58c3d96df4665cddd7d293237e5eabbe1a2.html | 31 + .../c88be9ea938af8243c9e7eec1cb9d6bcc15d9288.html | 25 + git/tiny-runlevels/file/.aim/memory.jsonl.html | 11 + git/tiny-runlevels/file/.mcp.json.html | 576 ++ git/tiny-runlevels/file/README.md.html | 110 + git/tiny-runlevels/file/restart-runlevel.html | 15 + .../file/services/irc/libera_onechannel.html | 11 + .../file/services/quark/quark_onefolder.html | 11 + git/tiny-runlevels/files.html | 11 + git/tiny-runlevels/index.html | 11 + git/tiny-runlevels/refs.html | 11 + .../069897491c14d27a9cfe936a6ac8daaa251c6b0a.html | 34 + .../0e461a05a816ff6dd567d491a9a8078e23294d0f.html | 4453 ++++++++++++++ .../2a3408c5a669963d46b677228280aeba8cc234e0.html | 126 + .../35607bffb05b9a95d29b82ae8ef91d4a99c564c1.html | 69 + .../37733cdaafd1e9d51a30a52a69955b84b39998e3.html | 31 + .../3cb50f98dbaad4ebedc44e8a08469ab6c53b4313.html | 68 + .../46f1cd9e03892bf00874d1e379fc47fe137949d8.html | 45 + .../4709604baade468c4ffad776142e77a50b425fc9.html | 25 + .../574105da68b8c6fab8da0e70ed0ee68dbba95053.html | 31 + .../5c48d08989210b00799e690b896ae243d8180459.html | 28 + .../9e1ccd8d4959b42449ccee1fcdd6592d89c724cf.html | 57 + .../a41d13f8df6e96b42b5d26e5a6c5ccd6dc68c5ea.html | 25 + .../b14705b5ad0a43a62c80177a9f498573905e247f.html | 39 + .../e3a219385b4bfd463c60c6b7c6d41cb8e82bd289.html | 25 + .../f6b1fd4bfcffa966b143e3061ac30c19ac94479b.html | 28 + git/tmpl/file/README.md.html | 59 + git/tmpl/file/awk/col.html | 11 + git/tmpl/file/c/main.c.html | 16 + git/tmpl/file/c/mqueues.c.html | 125 + git/tmpl/file/cl/block-return-from.html | 12 + git/tmpl/file/cl/class.html | 14 + git/tmpl/file/cl/defmethod-specialized.html | 13 + git/tmpl/file/cl/defpackage.html | 18 + git/tmpl/file/cl/defstruct.html | 14 + git/tmpl/file/cl/defsystem.html | 26 + git/tmpl/file/cl/do.html | 15 + git/tmpl/file/cl/dolist.html | 12 + git/tmpl/file/cl/dotimes.html | 12 + git/tmpl/file/cl/handler-case.html | 16 + git/tmpl/file/cl/hash-table-loop.html | 21 + git/tmpl/file/cl/lambda-list.html | 12 + git/tmpl/file/cl/mapping.html | 17 + git/tmpl/file/cl/plists-hint.html | 16 + git/tmpl/file/cl/quicklisp-in-file.html | 13 + git/tmpl/file/cl/quickproject-make-project.html | 11 + git/tmpl/file/cl/quickproject.html | 16 + git/tmpl/file/cl/read-time-eval.html | 13 + git/tmpl/file/cl/restart-case.html | 15 + git/tmpl/file/cl/slot.html | 18 + git/tmpl/file/cl/string-adjustable-array.html | 11 + git/tmpl/file/cl/tagbody-go.html | 16 + git/tmpl/file/cl/with-open-file.html | 15 + git/tmpl/file/cl/with-simple-restart.html | 12 + git/tmpl/file/epub.css.html | 88 + git/tmpl/file/git-config-branch.html | 13 + git/tmpl/file/html/template.html.html | 23 + .../make/conditionals/conditional-variable.html | 11 + git/tmpl/file/make/conditionals/ifeq-endif.html | 13 + .../make/expansions/substitute-wordending.html | 15 + git/tmpl/file/make/functions/call-fn.html | 21 + git/tmpl/file/make/functions/conditionals.html | 17 + git/tmpl/file/make/functions/file-fn.html | 14 + git/tmpl/file/make/functions/filenames.html | 21 + git/tmpl/file/make/functions/foreach-complex.html | 22 + git/tmpl/file/make/functions/foreach-simple.html | 12 + git/tmpl/file/make/functions/text.html | 23 + git/tmpl/file/make/golf/if-pkgconfig-exists.html | 17 + git/tmpl/file/make/macros/macros.html | 12 + git/tmpl/file/make/mapping/map-fn.html | 15 + git/tmpl/file/make/mapping/origins.html | 12 + git/tmpl/file/make/mapping/wildcards.html | 12 + git/tmpl/file/make/origin-values.html | 21 + git/tmpl/file/make/output/error.html | 13 + git/tmpl/file/make/output/info.html | 12 + git/tmpl/file/make/output/wanring.html | 13 + git/tmpl/file/make/pedanitc-phony.html | 11 + git/tmpl/file/make/pedanitc-posix.html | 12 + git/tmpl/file/make/pointer-array.html | 15 + git/tmpl/file/make/pointer.html | 19 + git/tmpl/file/make/rules/ordered-mkdir.html | 24 + git/tmpl/file/make/rules/ordered-prereqs.html | 15 + git/tmpl/file/make/rules/var-globbed.html | 23 + git/tmpl/file/make/shell.html | 11 + git/tmpl/file/make/templates/config.mk.html | 16 + git/tmpl/file/make/templates/dist.html | 23 + git/tmpl/file/make/templates/scripts.html | 39 + git/tmpl/file/make/utils/mapping.html | 11 + git/tmpl/file/make/variables/globbing.html | 15 + git/tmpl/file/openrc.init.html | 46 + git/tmpl/file/sed/TLDR.html | 48 + git/tmpl/file/sed/append-after-match.html | 11 + git/tmpl/file/sed/bin-sh.html | 14 + git/tmpl/file/sed/d.html | 17 + git/tmpl/file/sh/.aim/memory.jsonl.html | 11 + git/tmpl/file/sh/.mcp.json.html | 168 + git/tmpl/file/sh/CLAUDE.md.html | 13 + git/tmpl/file/sh/README.html | 25 + git/tmpl/file/sh/absolute-path.html | 14 + git/tmpl/file/sh/alias-function-args.html | 12 + git/tmpl/file/sh/charcount.html | 12 + git/tmpl/file/sh/dirname.html | 12 + git/tmpl/file/sh/dotglob.html | 12 + git/tmpl/file/sh/echo-arg.html | 26 + git/tmpl/file/sh/echo-noarg.html | 12 + git/tmpl/file/sh/epochsec.html | 14 + git/tmpl/file/sh/find-big-files.html | 12 + git/tmpl/file/sh/find-exec-fn.html | 12 + git/tmpl/file/sh/find-print.html | 15 + git/tmpl/file/sh/find-xargs.html | 21 + git/tmpl/file/sh/for-array.html | 24 + git/tmpl/file/sh/for-find.html | 28 + git/tmpl/file/sh/globber.html | 13 + git/tmpl/file/sh/here-string.html | 16 + git/tmpl/file/sh/isempty.html | 20 + git/tmpl/file/sh/join-lines.html | 17 + git/tmpl/file/sh/newlocale.html | 11 + git/tmpl/file/sh/path.html | 27 + git/tmpl/file/sh/pushd-popd-directory-switch.html | 23 + git/tmpl/file/sh/pwd.html | 12 + git/tmpl/file/sh/quote.html | 14 + git/tmpl/file/sh/random.html | 15 + git/tmpl/file/sh/readbyte.html | 14 + git/tmpl/file/sh/readline.html | 20 + git/tmpl/file/sh/redirection.html | 41 + git/tmpl/file/sh/remove-duplicates.html | 24 + git/tmpl/file/sh/str-fn.html | 15 + git/tmpl/file/sh/trap/background-jobs.html | 25 + git/tmpl/file/sh/trap/cleanup-multiple.html | 22 + git/tmpl/file/sh/trap/cleanup-temp.html | 16 + git/tmpl/file/sh/trap/debug-trace.html | 22 + git/tmpl/file/sh/trap/error-handler.html | 24 + git/tmpl/file/sh/trap/lock-file.html | 27 + git/tmpl/file/sh/trap/progress-cleanup.html | 31 + git/tmpl/file/sh/trap/restore-settings.html | 24 + git/tmpl/file/sh/trap/signal-handler.html | 21 + git/tmpl/file/sh/trap/timeout-handler.html | 27 + git/tmpl/file/sh/tree-exec.html | 23 + git/tmpl/file/sh/unexport.html | 17 + git/tmpl/file/sh/userhome.html | 16 + git/tmpl/file/sh/varprint.html | 12 + git/tmpl/file/sh/whiletruessh.html | 11 + git/tmpl/file/sh/writebyte.html | 18 + git/tmpl/file/uad.json.html | 19 + git/tmpl/file/vim/sh-into-buffer.html | 19 + git/tmpl/file/vim/sh-quiet.html | 19 + git/tmpl/file/vim/use-g-v.html | 18 + .../file/wpa_supplicant-verbose-example.conf.html | 2064 +++++++ git/tmpl/files.html | 11 + git/tmpl/index.html | 11 + git/tmpl/refs.html | 11 + .../e1cbfd382829381885064db4488db0cde07a8fda.html | 54 + git/tnot/file/README.html | 13 + git/tnot/file/dabduco-select.html | 17 + git/tnot/file/tnot.html | 16 + git/tnot/files.html | 11 + git/tnot/index.html | 11 + git/tnot/refs.html | 11 + .../1456dac2871d2e25d8b427d01d64beb4de7e37dd.html | 28 + .../2cfdb23faeea991ed48d358eb4f2db69d9eb3af8.html | 319 + git/vibeslop-dickt/file/README.md.html | 15 + git/vibeslop-dickt/file/dickt_convert.py.html | 305 + git/vibeslop-dickt/files.html | 11 + git/vibeslop-dickt/index.html | 11 + git/vibeslop-dickt/refs.html | 11 + .../09a64361858bcfcb238c9a9c06651ada28bffe41.html | 96 + .../2343d727a621643b950caeb7d433739d3c6d3082.html | 26 + .../2be1a471e0bbbb073771acd1a4bdffa2facce698.html | 26 + .../444fb3c1904c832a82daa85372feb9e8c2f4f798.html | 30 + .../4a0fd88a443d9b3baeda31f564b96d457b706183.html | 58 + .../5b2b76ad7e470518e9bdc5d0cf7b9b2650ad672e.html | 78 + .../694274379fa966854afcba45c7cc1c899d7b4229.html | 76 + .../7b872c5368c20491fa75a11f8097fe8831050c87.html | 41 + .../7e7634ff619b02015b4f8b8f70f19b47dec0fdb2.html | 51 + .../990d6c3c01d4bebd1100997daf16e58ea06c1a6e.html | 33 + .../9a7b21fc4c2a3056f73816d67425e02c00bc81f5.html | 35 + .../ae6c106ff1ea44672b905862c69a25d90d5f0415.html | 161 + .../bf08affb05e3fb11f528161b488ddc8fdb628bd7.html | 33 + .../c953b221c1b862b6eb099a67dd9e512ca2750218.html | 42 + .../e32574555065fe9e3a96da6886e4f67cf0def264.html | 67 + .../f6387778128fd896be943ec42c7aaa805d038df5.html | 43 + .../fae2d783aaad74f280da9be823499e9f07056edd.html | 63 + git/xinput-persistence/file/README.org.html | 66 + git/xinput-persistence/file/commands.conf.html | 13 + git/xinput-persistence/file/forking.pl.html | 31 + git/xinput-persistence/file/install.pl.html | 20 + git/xinput-persistence/file/monitor.html | 13 + git/xinput-persistence/file/monitor.pl.html | 52 + git/xinput-persistence/files.html | 11 + git/xinput-persistence/index.html | 11 + git/xinput-persistence/refs.html | 11 + stagit-gen.py | 191 + 2059 files changed, 268766 insertions(+)
diff --git a/git.html b/git.html new file mode 100644 index 0000000..fdb7744 --- /dev/null +++ b/git.html @@ -0,0 +1 @@ +<!DOCTYPE html><meta http-equiv="refresh" content="0; url=git/index.html"><a href="git/index.html">git</a> diff --git a/git/CSV/commit/19cbb6dcc701ef4714ddcd2e83f5aaaa7d34f13f.html b/git/CSV/commit/19cbb6dcc701ef4714ddcd2e83f5aaaa7d34f13f.html new file mode 100644 index 0000000..5d9ee7a --- /dev/null +++ b/git/CSV/commit/19cbb6dcc701ef4714ddcd2e83f5aaaa7d34f13f.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 19cbb6dc - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 19cbb6dcc701ef4714ddcd2e83f5aaaa7d34f13f +Spenser Truex <spensertruexonline@gmail.com> +2019-01-07 12:07:12 -0800 + +Homepage + +</pre><pre> README.md | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) +</pre><pre>diff --git a/README.md b/README.md +index 236e1bb..9394c1d 100644 +--- a/README.md ++++ b/README.md +<span class="h">@@ -1,3 +1,5 @@</span> +<span class="a">+[homepage](http://spensertruex.com/CSV.html)</span> +<span class="a">+</span> + # CSV + Defines a lisp reader to read is CSV: + +<span class="h">@@ -18,7 +20,7 @@ This program invokes the lisp reader, making it:</span> + 1) Potentially risky to use if the input it not trusted. + 2) Resource intensive for medium to large files (>5MB). + +<span class="d">-use with care.</span> +<span class="a">+Use with care.</span> + + # Features: + Supports escaping quotes the CSV way, with quad quotes:</pre> +</div></body></html> diff --git a/git/CSV/commit/2130c21d376f5032246677667f456b1ac43018b1.html b/git/CSV/commit/2130c21d376f5032246677667f456b1ac43018b1.html new file mode 100644 index 0000000..2174077 --- /dev/null +++ b/git/CSV/commit/2130c21d376f5032246677667f456b1ac43018b1.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 2130c21d - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 2130c21d376f5032246677667f456b1ac43018b1 +Spenser Truex <myself@spensertruex.com> +2019-01-07 12:14:23 -0800 + +Merge pull request #1 from equwal/testing + +Testing +</pre><pre> README.md | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) +</pre><pre></pre> +</div></body></html> diff --git a/git/CSV/commit/2838a2e296e94912acb9ec834a3373fa1aa7ea38.html b/git/CSV/commit/2838a2e296e94912acb9ec834a3373fa1aa7ea38.html new file mode 100644 index 0000000..5fe6b8d --- /dev/null +++ b/git/CSV/commit/2838a2e296e94912acb9ec834a3373fa1aa7ea38.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 2838a2e2 - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 2838a2e296e94912acb9ec834a3373fa1aa7ea38 +Spenser Truex <web@spensertruex.com> +2019-01-07 13:58:08 -0800 + +Merge pull request #3 from equwal/add-license-1 + +Create LICENSE +</pre><pre> LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 674 insertions(+) +</pre><pre></pre> +</div></body></html> diff --git a/git/CSV/commit/374842de191e56f2f0f5e14100f093846068aaca.html b/git/CSV/commit/374842de191e56f2f0f5e14100f093846068aaca.html new file mode 100644 index 0000000..941db5f --- /dev/null +++ b/git/CSV/commit/374842de191e56f2f0f5e14100f093846068aaca.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 374842de - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 374842de191e56f2f0f5e14100f093846068aaca +Spenser Truex <spensertruexonline@gmail.com> +2019-01-07 11:55:07 -0800 + +Fix quoting bug + +</pre><pre> csv.lisp | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) +</pre><pre>diff --git a/csv.lisp b/csv.lisp +index 244b6e3..7665baf 100644 +--- a/csv.lisp ++++ b/csv.lisp +<span class="h">@@ -45,13 +45,12 @@</span> + (inner (subseq str (1+ res)) (push (subseq str 0 res) acc!)))))) + (inner str nil))) + (make-reader my-csv (stream #\# #\!) +<span class="d">- (macrolet ((once (&body body) ``',,@body))</span> +<span class="d">- (do ((prev #1= (read-char stream nil nil) curr)</span> +<span class="d">- (curr #1# #1#)</span> +<span class="d">- (str (make-array 0 :adjustable t :element-type 'character)</span> +<span class="d">- (switches prev curr str)))</span> +<span class="d">- ((and (char= curr #\#)</span> +<span class="d">- (char= prev #\!)) (once (splice (switches nil nil str)))))))</span> +<span class="a">+ (do ((prev #1= (read-char stream nil nil) curr)</span> +<span class="a">+ (curr #1# #1#)</span> +<span class="a">+ (str (make-array 0 :adjustable t :element-type 'character)</span> +<span class="a">+ (switches prev curr str)))</span> +<span class="a">+ ((and (char= curr #\#)</span> +<span class="a">+ (char= prev #\!)) (splice (switches nil nil str)))))</span> + (defun read-to-string (stream) + (with-output-to-string (s) + (dolines (line stream)</pre> +</div></body></html> diff --git a/git/CSV/commit/4ab4cab04918986b3453b7e8c95999cfcf68134f.html b/git/CSV/commit/4ab4cab04918986b3453b7e8c95999cfcf68134f.html new file mode 100644 index 0000000..f7d1930 --- /dev/null +++ b/git/CSV/commit/4ab4cab04918986b3453b7e8c95999cfcf68134f.html @@ -0,0 +1,82 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 4ab4cab0 - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 4ab4cab04918986b3453b7e8c95999cfcf68134f +Spenser Truex <spensertruexonline@gmail.com> +2019-01-07 11:52:53 -0800 + +Include example.csv + +</pre><pre> README.md | 2 +- + csv.lisp | 21 ++++++++++++++++----- + example.csv | 1 + + 3 files changed, 18 insertions(+), 6 deletions(-) +</pre><pre>diff --git a/README.md b/README.md +index 2fd1c77..236e1bb 100644 +--- a/README.md ++++ b/README.md +<span class="h">@@ -30,5 +30,5 @@ Use ASDF:</span> + + ``` common-lisp + CL-USER> (asdf:load-system :csv) +<span class="d">-T</span> +<span class="a">+pT</span> + ``` +diff --git a/csv.lisp b/csv.lisp +index 6d5bbb0..244b6e3 100644 +--- a/csv.lisp ++++ b/csv.lisp +<span class="h">@@ -7,15 +7,23 @@</span> + (defun openp (prev curr) + (declare (ignore curr)) + (char= #\" prev)) +<span class="a">+(defun str->list (str)</span> +<span class="a">+ (labels ((inner (str acc len)</span> +<span class="a">+ (if (= 0 len)</span> +<span class="a">+ (nreverse acc)</span> +<span class="a">+ (inner (subseq str 1) (cons (elt str 0) acc) (1- len)))))</span> +<span class="a">+ (inner str nil (length str))))</span> + (let ((in nil) + (escape nil)) + (setf (fdefinition 'switches) + (lambda (prev curr str) + (let ((str (if (array-has-fill-pointer-p str) + str +<span class="d">- (make-array 1 :fill-pointer 0</span> +<span class="d">- :adjustable t</span> +<span class="d">- :element-type 'character))))</span> +<span class="a">+ (make-array (length str)</span> +<span class="a">+ :fill-pointer 0</span> +<span class="a">+ :adjustable t</span> +<span class="a">+ :element-type 'character</span> +<span class="a">+ :initial-contents (str->list str)))))</span> + (if (null curr) + (progn (setf in nil escape nil) str) + (if in +<span class="h">@@ -49,7 +57,10 @@</span> + (dolines (line stream) + (princ line s) + (format s "~%")))) +<span class="d">-(defun slurp (path)</span> +<span class="d">- "Read in a CSV file. Resource intensive, invokes the lisp reader."</span> +<span class="a">+(defun slurp-csv (path)</span> +<span class="a">+ "Read in a CSV file to string. Resource intensive."</span> + (with-open-file (s path) + (concatenate 'string "#!" (read-to-string s) "!#"))) +<span class="a">+(defun slurp (path)</span> +<span class="a">+ "Read in a CSV file to list. Resource intensive."</span> +<span class="a">+ (read-from-string (slurp-csv path)))</span> +diff --git a/example.csv b/example.csv +new file mode 100644 +index 0000000..a3f7ccd +--- /dev/null ++++ b/example.csv +<span class="h">@@ -0,0 +1 @@</span> +<span class="a">+"example","csv","list","result","like","this"</span></pre> +</div></body></html> diff --git a/git/CSV/commit/6deca0d81e38d24fe7cd0bc062a53c1ff4d6818c.html b/git/CSV/commit/6deca0d81e38d24fe7cd0bc062a53c1ff4d6818c.html new file mode 100644 index 0000000..bd8fa5b --- /dev/null +++ b/git/CSV/commit/6deca0d81e38d24fe7cd0bc062a53c1ff4d6818c.html @@ -0,0 +1,97 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 6deca0d8 - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 6deca0d81e38d24fe7cd0bc062a53c1ff4d6818c +Spenser Truex <spensertruexonline@gmail.com> +2019-01-07 12:21:23 -0800 + +Fix quoting bug and homepage on README. + +</pre><pre> README.md | 36 +----------------------------------- + csv.lisp | 19 ++++++++++++------- + 2 files changed, 13 insertions(+), 42 deletions(-) +</pre><pre>diff --git a/README.md b/README.md +index 14d6964..0b725e0 100644 +--- a/README.md ++++ b/README.md +<span class="h">@@ -1,36 +1,2 @@</span> +<span class="d">-[homepage](http://spensertruex.com/CSV.html)</span> +<span class="a">+[Go to the homepage.](http://spensertruex.com/CSV.html)</span> + +<span class="d">-# CSV</span> +<span class="d">-Defines a lisp reader to read is CSV:</span> +<span class="d">-</span> +<span class="d">-`#!field,field,field!#`</span> +<span class="d">-</span> +<span class="d">-which is used to read in CSV files with `slurp`:</span> +<span class="d">-</span> +<span class="d">-`(slurp #p"example.csv")`</span> +<span class="d">-</span> +<span class="d">-and the result is a list:</span> +<span class="d">-</span> +<span class="d">-``` common-lisp</span> +<span class="d">-CL-USER> (csv:slurp #p"example.csv")</span> +<span class="d">-("example" "csv" "list" "result" "like" " this")</span> +<span class="d">-```</span> +<span class="d">-</span> +<span class="d">-This program invokes the lisp reader, making it:</span> +<span class="d">-1) Potentially risky to use if the input it not trusted.</span> +<span class="d">-2) Resource intensive for medium to large files (>5MB).</span> +<span class="d">-</span> +<span class="d">-Use with care.</span> +<span class="d">-</span> +<span class="d">-# Features:</span> +<span class="d">-Supports escaping quotes the CSV way, with quad quotes:</span> +<span class="d">-csv -> lisp</span> +<span class="d">-`""""`->`"\""`</span> +<span class="d">-</span> +<span class="d">-# Installation</span> +<span class="d">-Use ASDF:</span> +<span class="d">-</span> +<span class="d">-``` common-lisp</span> +<span class="d">-CL-USER> (asdf:load-system :csv)</span> +<span class="d">-T</span> +<span class="d">-```</span> +diff --git a/csv.lisp b/csv.lisp +index 7665baf..4e610d7 100644 +--- a/csv.lisp ++++ b/csv.lisp +<span class="h">@@ -45,12 +45,13 @@</span> + (inner (subseq str (1+ res)) (push (subseq str 0 res) acc!)))))) + (inner str nil))) + (make-reader my-csv (stream #\# #\!) +<span class="d">- (do ((prev #1= (read-char stream nil nil) curr)</span> +<span class="d">- (curr #1# #1#)</span> +<span class="d">- (str (make-array 0 :adjustable t :element-type 'character)</span> +<span class="d">- (switches prev curr str)))</span> +<span class="d">- ((and (char= curr #\#)</span> +<span class="d">- (char= prev #\!)) (splice (switches nil nil str)))))</span> +<span class="a">+ (macrolet ((once (&body body) ``',,@body))</span> +<span class="a">+ (do ((prev #1= (read-char stream nil nil) curr)</span> +<span class="a">+ (curr #1# #1#)</span> +<span class="a">+ (str (make-array 0 :adjustable t :element-type 'character)</span> +<span class="a">+ (switches prev curr str)))</span> +<span class="a">+ ((and (char= curr #\#)</span> +<span class="a">+ (char= prev #\!)) (once (splice (switches nil nil str)))))))</span> + (defun read-to-string (stream) + (with-output-to-string (s) + (dolines (line stream) +<span class="h">@@ -60,6 +61,10 @@</span> + "Read in a CSV file to string. Resource intensive." + (with-open-file (s path) + (concatenate 'string "#!" (read-to-string s) "!#"))) +<span class="a">+(defun dequote (list)</span> +<span class="a">+ (if (eql 'quote (car list))</span> +<span class="a">+ (cadr list)</span> +<span class="a">+ list))</span> + (defun slurp (path) + "Read in a CSV file to list. Resource intensive." +<span class="d">- (read-from-string (slurp-csv path)))</span> +<span class="a">+ (dequote (read-from-string (slurp-csv path))))</span></pre> +</div></body></html> diff --git a/git/CSV/commit/73c0ec1dfe5de713b99378928b361edc89c59ada.html b/git/CSV/commit/73c0ec1dfe5de713b99378928b361edc89c59ada.html new file mode 100644 index 0000000..facc36e --- /dev/null +++ b/git/CSV/commit/73c0ec1dfe5de713b99378928b361edc89c59ada.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 73c0ec1d - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 73c0ec1dfe5de713b99378928b361edc89c59ada +Spenser Truex <myself@spensertruex.com> +2019-01-07 12:22:33 -0800 + +Merge pull request #2 from equwal/testing + +Fix quoting bug and homepage on README. +</pre><pre> README.md | 36 +----------------------------------- + csv.lisp | 19 ++++++++++++------- + 2 files changed, 13 insertions(+), 42 deletions(-) +</pre><pre></pre> +</div></body></html> diff --git a/git/CSV/commit/8b3dae44e341aeb4e3840914f35608c1e5c1c2de.html b/git/CSV/commit/8b3dae44e341aeb4e3840914f35608c1e5c1c2de.html new file mode 100644 index 0000000..287044b --- /dev/null +++ b/git/CSV/commit/8b3dae44e341aeb4e3840914f35608c1e5c1c2de.html @@ -0,0 +1,697 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV 8b3dae44 - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 8b3dae44e341aeb4e3840914f35608c1e5c1c2de +Spenser Truex <myself@spensertruex.com> +2019-01-07 13:54:00 -0800 + +Create LICENSE +</pre><pre> LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 674 insertions(+) +</pre><pre>diff --git a/LICENSE b/LICENSE +new file mode 100644 +index 0000000..f288702 +--- /dev/null ++++ b/LICENSE +<span class="h">@@ -0,0 +1,674 @@</span> +<span class="a">+ GNU GENERAL PUBLIC LICENSE</span> +<span class="a">+ Version 3, 29 June 2007</span> +<span class="a">+</span> +<span class="a">+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/></span> +<span class="a">+ Everyone is permitted to copy and distribute verbatim copies</span> +<span class="a">+ of this license document, but changing it is not allowed.</span> +<span class="a">+</span> +<span class="a">+ Preamble</span> +<span class="a">+</span> +<span class="a">+ The GNU General Public License is a free, copyleft license for</span> +<span class="a">+software and other kinds of works.</span> +<span class="a">+</span> +<span class="a">+ The licenses for most software and other practical works are designed</span> +<span class="a">+to take away your freedom to share and change the works. By contrast,</span> +<span class="a">+the GNU General Public License is intended to guarantee your freedom to</span> +<span class="a">+share and change all versions of a program--to make sure it remains free</span> +<span class="a">+software for all its users. We, the Free Software Foundation, use the</span> +<span class="a">+GNU General Public License for most of our software; it applies also to</span> +<span class="a">+any other work released this way by its authors. You can apply it to</span> +<span class="a">+your programs, too.</span> +<span class="a">+</span> +<span class="a">+ When we speak of free software, we are referring to freedom, not</span> +<span class="a">+price. Our General Public Licenses are designed to make sure that you</span> +<span class="a">+have the freedom to distribute copies of free software (and charge for</span> +<span class="a">+them if you wish), that you receive source code or can get it if you</span> +<span class="a">+want it, that you can change the software or use pieces of it in new</span> +<span class="a">+free programs, and that you know you can do these things.</span> +<span class="a">+</span> +<span class="a">+ To protect your rights, we need to prevent others from denying you</span> +<span class="a">+these rights or asking you to surrender the rights. Therefore, you have</span> +<span class="a">+certain responsibilities if you distribute copies of the software, or if</span> +<span class="a">+you modify it: responsibilities to respect the freedom of others.</span> +<span class="a">+</span> +<span class="a">+ For example, if you distribute copies of such a program, whether</span> +<span class="a">+gratis or for a fee, you must pass on to the recipients the same</span> +<span class="a">+freedoms that you received. You must make sure that they, too, receive</span> +<span class="a">+or can get the source code. And you must show them these terms so they</span> +<span class="a">+know their rights.</span> +<span class="a">+</span> +<span class="a">+ Developers that use the GNU GPL protect your rights with two steps:</span> +<span class="a">+(1) assert copyright on the software, and (2) offer you this License</span> +<span class="a">+giving you legal permission to copy, distribute and/or modify it.</span> +<span class="a">+</span> +<span class="a">+ For the developers' and authors' protection, the GPL clearly explains</span> +<span class="a">+that there is no warranty for this free software. For both users' and</span> +<span class="a">+authors' sake, the GPL requires that modified versions be marked as</span> +<span class="a">+changed, so that their problems will not be attributed erroneously to</span> +<span class="a">+authors of previous versions.</span> +<span class="a">+</span> +<span class="a">+ Some devices are designed to deny users access to install or run</span> +<span class="a">+modified versions of the software inside them, although the manufacturer</span> +<span class="a">+can do so. This is fundamentally incompatible with the aim of</span> +<span class="a">+protecting users' freedom to change the software. The systematic</span> +<span class="a">+pattern of such abuse occurs in the area of products for individuals to</span> +<span class="a">+use, which is precisely where it is most unacceptable. Therefore, we</span> +<span class="a">+have designed this version of the GPL to prohibit the practice for those</span> +<span class="a">+products. If such problems arise substantially in other domains, we</span> +<span class="a">+stand ready to extend this provision to those domains in future versions</span> +<span class="a">+of the GPL, as needed to protect the freedom of users.</span> +<span class="a">+</span> +<span class="a">+ Finally, every program is threatened constantly by software patents.</span> +<span class="a">+States should not allow patents to restrict development and use of</span> +<span class="a">+software on general-purpose computers, but in those that do, we wish to</span> +<span class="a">+avoid the special danger that patents applied to a free program could</span> +<span class="a">+make it effectively proprietary. To prevent this, the GPL assures that</span> +<span class="a">+patents cannot be used to render the program non-free.</span> +<span class="a">+</span> +<span class="a">+ The precise terms and conditions for copying, distribution and</span> +<span class="a">+modification follow.</span> +<span class="a">+</span> +<span class="a">+ TERMS AND CONDITIONS</span> +<span class="a">+</span> +<span class="a">+ 0. Definitions.</span> +<span class="a">+</span> +<span class="a">+ "This License" refers to version 3 of the GNU General Public License.</span> +<span class="a">+</span> +<span class="a">+ "Copyright" also means copyright-like laws that apply to other kinds of</span> +<span class="a">+works, such as semiconductor masks.</span> +<span class="a">+</span> +<span class="a">+ "The Program" refers to any copyrightable work licensed under this</span> +<span class="a">+License. Each licensee is addressed as "you". "Licensees" and</span> +<span class="a">+"recipients" may be individuals or organizations.</span> +<span class="a">+</span> +<span class="a">+ To "modify" a work means to copy from or adapt all or part of the work</span> +<span class="a">+in a fashion requiring copyright permission, other than the making of an</span> +<span class="a">+exact copy. The resulting work is called a "modified version" of the</span> +<span class="a">+earlier work or a work "based on" the earlier work.</span> +<span class="a">+</span> +<span class="a">+ A "covered work" means either the unmodified Program or a work based</span> +<span class="a">+on the Program.</span> +<span class="a">+</span> +<span class="a">+ To "propagate" a work means to do anything with it that, without</span> +<span class="a">+permission, would make you directly or secondarily liable for</span> +<span class="a">+infringement under applicable copyright law, except executing it on a</span> +<span class="a">+computer or modifying a private copy. Propagation includes copying,</span> +<span class="a">+distribution (with or without modification), making available to the</span> +<span class="a">+public, and in some countries other activities as well.</span> +<span class="a">+</span> +<span class="a">+ To "convey" a work means any kind of propagation that enables other</span> +<span class="a">+parties to make or receive copies. Mere interaction with a user through</span> +<span class="a">+a computer network, with no transfer of a copy, is not conveying.</span> +<span class="a">+</span> +<span class="a">+ An interactive user interface displays "Appropriate Legal Notices"</span> +<span class="a">+to the extent that it includes a convenient and prominently visible</span> +<span class="a">+feature that (1) displays an appropriate copyright notice, and (2)</span> +<span class="a">+tells the user that there is no warranty for the work (except to the</span> +<span class="a">+extent that warranties are provided), that licensees may convey the</span> +<span class="a">+work under this License, and how to view a copy of this License. If</span> +<span class="a">+the interface presents a list of user commands or options, such as a</span> +<span class="a">+menu, a prominent item in the list meets this criterion.</span> +<span class="a">+</span> +<span class="a">+ 1. Source Code.</span> +<span class="a">+</span> +<span class="a">+ The "source code" for a work means the preferred form of the work</span> +<span class="a">+for making modifications to it. "Object code" means any non-source</span> +<span class="a">+form of a work.</span> +<span class="a">+</span> +<span class="a">+ A "Standard Interface" means an interface that either is an official</span> +<span class="a">+standard defined by a recognized standards body, or, in the case of</span> +<span class="a">+interfaces specified for a particular programming language, one that</span> +<span class="a">+is widely used among developers working in that language.</span> +<span class="a">+</span> +<span class="a">+ The "System Libraries" of an executable work include anything, other</span> +<span class="a">+than the work as a whole, that (a) is included in the normal form of</span> +<span class="a">+packaging a Major Component, but which is not part of that Major</span> +<span class="a">+Component, and (b) serves only to enable use of the work with that</span> +<span class="a">+Major Component, or to implement a Standard Interface for which an</span> +<span class="a">+implementation is available to the public in source code form. A</span> +<span class="a">+"Major Component", in this context, means a major essential component</span> +<span class="a">+(kernel, window system, and so on) of the specific operating system</span> +<span class="a">+(if any) on which the executable work runs, or a compiler used to</span> +<span class="a">+produce the work, or an object code interpreter used to run it.</span> +<span class="a">+</span> +<span class="a">+ The "Corresponding Source" for a work in object code form means all</span> +<span class="a">+the source code needed to generate, install, and (for an executable</span> +<span class="a">+work) run the object code and to modify the work, including scripts to</span> +<span class="a">+control those activities. However, it does not include the work's</span> +<span class="a">+System Libraries, or general-purpose tools or generally available free</span> +<span class="a">+programs which are used unmodified in performing those activities but</span> +<span class="a">+which are not part of the work. For example, Corresponding Source</span> +<span class="a">+includes interface definition files associated with source files for</span> +<span class="a">+the work, and the source code for shared libraries and dynamically</span> +<span class="a">+linked subprograms that the work is specifically designed to require,</span> +<span class="a">+such as by intimate data communication or control flow between those</span> +<span class="a">+subprograms and other parts of the work.</span> +<span class="a">+</span> +<span class="a">+ The Corresponding Source need not include anything that users</span> +<span class="a">+can regenerate automatically from other parts of the Corresponding</span> +<span class="a">+Source.</span> +<span class="a">+</span> +<span class="a">+ The Corresponding Source for a work in source code form is that</span> +<span class="a">+same work.</span> +<span class="a">+</span> +<span class="a">+ 2. Basic Permissions.</span> +<span class="a">+</span> +<span class="a">+ All rights granted under this License are granted for the term of</span> +<span class="a">+copyright on the Program, and are irrevocable provided the stated</span> +<span class="a">+conditions are met. This License explicitly affirms your unlimited</span> +<span class="a">+permission to run the unmodified Program. The output from running a</span> +<span class="a">+covered work is covered by this License only if the output, given its</span> +<span class="a">+content, constitutes a covered work. This License acknowledges your</span> +<span class="a">+rights of fair use or other equivalent, as provided by copyright law.</span> +<span class="a">+</span> +<span class="a">+ You may make, run and propagate covered works that you do not</span> +<span class="a">+convey, without conditions so long as your license otherwise remains</span> +<span class="a">+in force. You may convey covered works to others for the sole purpose</span> +<span class="a">+of having them make modifications exclusively for you, or provide you</span> +<span class="a">+with facilities for running those works, provided that you comply with</span> +<span class="a">+the terms of this License in conveying all material for which you do</span> +<span class="a">+not control copyright. Those thus making or running the covered works</span> +<span class="a">+for you must do so exclusively on your behalf, under your direction</span> +<span class="a">+and control, on terms that prohibit them from making any copies of</span> +<span class="a">+your copyrighted material outside their relationship with you.</span> +<span class="a">+</span> +<span class="a">+ Conveying under any other circumstances is permitted solely under</span> +<span class="a">+the conditions stated below. Sublicensing is not allowed; section 10</span> +<span class="a">+makes it unnecessary.</span> +<span class="a">+</span> +<span class="a">+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.</span> +<span class="a">+</span> +<span class="a">+ No covered work shall be deemed part of an effective technological</span> +<span class="a">+measure under any applicable law fulfilling obligations under article</span> +<span class="a">+11 of the WIPO copyright treaty adopted on 20 December 1996, or</span> +<span class="a">+similar laws prohibiting or restricting circumvention of such</span> +<span class="a">+measures.</span> +<span class="a">+</span> +<span class="a">+ When you convey a covered work, you waive any legal power to forbid</span> +<span class="a">+circumvention of technological measures to the extent such circumvention</span> +<span class="a">+is effected by exercising rights under this License with respect to</span> +<span class="a">+the covered work, and you disclaim any intention to limit operation or</span> +<span class="a">+modification of the work as a means of enforcing, against the work's</span> +<span class="a">+users, your or third parties' legal rights to forbid circumvention of</span> +<span class="a">+technological measures.</span> +<span class="a">+</span> +<span class="a">+ 4. Conveying Verbatim Copies.</span> +<span class="a">+</span> +<span class="a">+ You may convey verbatim copies of the Program's source code as you</span> +<span class="a">+receive it, in any medium, provided that you conspicuously and</span> +<span class="a">+appropriately publish on each copy an appropriate copyright notice;</span> +<span class="a">+keep intact all notices stating that this License and any</span> +<span class="a">+non-permissive terms added in accord with section 7 apply to the code;</span> +<span class="a">+keep intact all notices of the absence of any warranty; and give all</span> +<span class="a">+recipients a copy of this License along with the Program.</span> +<span class="a">+</span> +<span class="a">+ You may charge any price or no price for each copy that you convey,</span> +<span class="a">+and you may offer support or warranty protection for a fee.</span> +<span class="a">+</span> +<span class="a">+ 5. Conveying Modified Source Versions.</span> +<span class="a">+</span> +<span class="a">+ You may convey a work based on the Program, or the modifications to</span> +<span class="a">+produce it from the Program, in the form of source code under the</span> +<span class="a">+terms of section 4, provided that you also meet all of these conditions:</span> +<span class="a">+</span> +<span class="a">+ a) The work must carry prominent notices stating that you modified</span> +<span class="a">+ it, and giving a relevant date.</span> +<span class="a">+</span> +<span class="a">+ b) The work must carry prominent notices stating that it is</span> +<span class="a">+ released under this License and any conditions added under section</span> +<span class="a">+ 7. This requirement modifies the requirement in section 4 to</span> +<span class="a">+ "keep intact all notices".</span> +<span class="a">+</span> +<span class="a">+ c) You must license the entire work, as a whole, under this</span> +<span class="a">+ License to anyone who comes into possession of a copy. This</span> +<span class="a">+ License will therefore apply, along with any applicable section 7</span> +<span class="a">+ additional terms, to the whole of the work, and all its parts,</span> +<span class="a">+ regardless of how they are packaged. This License gives no</span> +<span class="a">+ permission to license the work in any other way, but it does not</span> +<span class="a">+ invalidate such permission if you have separately received it.</span> +<span class="a">+</span> +<span class="a">+ d) If the work has interactive user interfaces, each must display</span> +<span class="a">+ Appropriate Legal Notices; however, if the Program has interactive</span> +<span class="a">+ interfaces that do not display Appropriate Legal Notices, your</span> +<span class="a">+ work need not make them do so.</span> +<span class="a">+</span> +<span class="a">+ A compilation of a covered work with other separate and independent</span> +<span class="a">+works, which are not by their nature extensions of the covered work,</span> +<span class="a">+and which are not combined with it such as to form a larger program,</span> +<span class="a">+in or on a volume of a storage or distribution medium, is called an</span> +<span class="a">+"aggregate" if the compilation and its resulting copyright are not</span> +<span class="a">+used to limit the access or legal rights of the compilation's users</span> +<span class="a">+beyond what the individual works permit. Inclusion of a covered work</span> +<span class="a">+in an aggregate does not cause this License to apply to the other</span> +<span class="a">+parts of the aggregate.</span> +<span class="a">+</span> +<span class="a">+ 6. Conveying Non-Source Forms.</span> +<span class="a">+</span> +<span class="a">+ You may convey a covered work in object code form under the terms</span> +<span class="a">+of sections 4 and 5, provided that you also convey the</span> +<span class="a">+machine-readable Corresponding Source under the terms of this License,</span> +<span class="a">+in one of these ways:</span> +<span class="a">+</span> +<span class="a">+ a) Convey the object code in, or embodied in, a physical product</span> +<span class="a">+ (including a physical distribution medium), accompanied by the</span> +<span class="a">+ Corresponding Source fixed on a durable physical medium</span> +<span class="a">+ customarily used for software interchange.</span> +<span class="a">+</span> +<span class="a">+ b) Convey the object code in, or embodied in, a physical product</span> +<span class="a">+ (including a physical distribution medium), accompanied by a</span> +<span class="a">+ written offer, valid for at least three years and valid for as</span> +<span class="a">+ long as you offer spare parts or customer support for that product</span> +<span class="a">+ model, to give anyone who possesses the object code either (1) a</span> +<span class="a">+ copy of the Corresponding Source for all the software in the</span> +<span class="a">+ product that is covered by this License, on a durable physical</span> +<span class="a">+ medium customarily used for software interchange, for a price no</span> +<span class="a">+ more than your reasonable cost of physically performing this</span> +<span class="a">+ conveying of source, or (2) access to copy the</span> +<span class="a">+ Corresponding Source from a network server at no charge.</span> +<span class="a">+</span> +<span class="a">+ c) Convey individual copies of the object code with a copy of the</span> +<span class="a">+ written offer to provide the Corresponding Source. This</span> +<span class="a">+ alternative is allowed only occasionally and noncommercially, and</span> +<span class="a">+ only if you received the object code with such an offer, in accord</span> +<span class="a">+ with subsection 6b.</span> +<span class="a">+</span> +<span class="a">+ d) Convey the object code by offering access from a designated</span> +<span class="a">+ place (gratis or for a charge), and offer equivalent access to the</span> +<span class="a">+ Corresponding Source in the same way through the same place at no</span> +<span class="a">+ further charge. You need not require recipients to copy the</span> +<span class="a">+ Corresponding Source along with the object code. If the place to</span> +<span class="a">+ copy the object code is a network server, the Corresponding Source</span> +<span class="a">+ may be on a different server (operated by you or a third party)</span> +<span class="a">+ that supports equivalent copying facilities, provided you maintain</span> +<span class="a">+ clear directions next to the object code saying where to find the</span> +<span class="a">+ Corresponding Source. Regardless of what server hosts the</span> +<span class="a">+ Corresponding Source, you remain obligated to ensure that it is</span> +<span class="a">+ available for as long as needed to satisfy these requirements.</span> +<span class="a">+</span> +<span class="a">+ e) Convey the object code using peer-to-peer transmission, provided</span> +<span class="a">+ you inform other peers where the object code and Corresponding</span> +<span class="a">+ Source of the work are being offered to the general public at no</span> +<span class="a">+ charge under subsection 6d.</span> +<span class="a">+</span> +<span class="a">+ A separable portion of the object code, whose source code is excluded</span> +<span class="a">+from the Corresponding Source as a System Library, need not be</span> +<span class="a">+included in conveying the object code work.</span> +<span class="a">+</span> +<span class="a">+ A "User Product" is either (1) a "consumer product", which means any</span> +<span class="a">+tangible personal property which is normally used for personal, family,</span> +<span class="a">+or household purposes, or (2) anything designed or sold for incorporation</span> +<span class="a">+into a dwelling. In determining whether a product is a consumer product,</span> +<span class="a">+doubtful cases shall be resolved in favor of coverage. For a particular</span> +<span class="a">+product received by a particular user, "normally used" refers to a</span> +<span class="a">+typical or common use of that class of product, regardless of the status</span> +<span class="a">+of the particular user or of the way in which the particular user</span> +<span class="a">+actually uses, or expects or is expected to use, the product. A product</span> +<span class="a">+is a consumer product regardless of whether the product has substantial</span> +<span class="a">+commercial, industrial or non-consumer uses, unless such uses represent</span> +<span class="a">+the only significant mode of use of the product.</span> +<span class="a">+</span> +<span class="a">+ "Installation Information" for a User Product means any methods,</span> +<span class="a">+procedures, authorization keys, or other information required to install</span> +<span class="a">+and execute modified versions of a covered work in that User Product from</span> +<span class="a">+a modified version of its Corresponding Source. The information must</span> +<span class="a">+suffice to ensure that the continued functioning of the modified object</span> +<span class="a">+code is in no case prevented or interfered with solely because</span> +<span class="a">+modification has been made.</span> +<span class="a">+</span> +<span class="a">+ If you convey an object code work under this section in, or with, or</span> +<span class="a">+specifically for use in, a User Product, and the conveying occurs as</span> +<span class="a">+part of a transaction in which the right of possession and use of the</span> +<span class="a">+User Product is transferred to the recipient in perpetuity or for a</span> +<span class="a">+fixed term (regardless of how the transaction is characterized), the</span> +<span class="a">+Corresponding Source conveyed under this section must be accompanied</span> +<span class="a">+by the Installation Information. But this requirement does not apply</span> +<span class="a">+if neither you nor any third party retains the ability to install</span> +<span class="a">+modified object code on the User Product (for example, the work has</span> +<span class="a">+been installed in ROM).</span> +<span class="a">+</span> +<span class="a">+ The requirement to provide Installation Information does not include a</span> +<span class="a">+requirement to continue to provide support service, warranty, or updates</span> +<span class="a">+for a work that has been modified or installed by the recipient, or for</span> +<span class="a">+the User Product in which it has been modified or installed. Access to a</span> +<span class="a">+network may be denied when the modification itself materially and</span> +<span class="a">+adversely affects the operation of the network or violates the rules and</span> +<span class="a">+protocols for communication across the network.</span> +<span class="a">+</span> +<span class="a">+ Corresponding Source conveyed, and Installation Information provided,</span> +<span class="a">+in accord with this section must be in a format that is publicly</span> +<span class="a">+documented (and with an implementation available to the public in</span> +<span class="a">+source code form), and must require no special password or key for</span> +<span class="a">+unpacking, reading or copying.</span> +<span class="a">+</span> +<span class="a">+ 7. Additional Terms.</span> +<span class="a">+</span> +<span class="a">+ "Additional permissions" are terms that supplement the terms of this</span> +<span class="a">+License by making exceptions from one or more of its conditions.</span> +<span class="a">+Additional permissions that are applicable to the entire Program shall</span> +<span class="a">+be treated as though they were included in this License, to the extent</span> +<span class="a">+that they are valid under applicable law. If additional permissions</span> +<span class="a">+apply only to part of the Program, that part may be used separately</span> +<span class="a">+under those permissions, but the entire Program remains governed by</span> +<span class="a">+this License without regard to the additional permissions.</span> +<span class="a">+</span> +<span class="a">+ When you convey a copy of a covered work, you may at your option</span> +<span class="a">+remove any additional permissions from that copy, or from any part of</span> +<span class="a">+it. (Additional permissions may be written to require their own</span> +<span class="a">+removal in certain cases when you modify the work.) You may place</span> +<span class="a">+additional permissions on material, added by you to a covered work,</span> +<span class="a">+for which you have or can give appropriate copyright permission.</span> +<span class="a">+</span> +<span class="a">+ Notwithstanding any other provision of this License, for material you</span> +<span class="a">+add to a covered work, you may (if authorized by the copyright holders of</span> +<span class="a">+that material) supplement the terms of this License with terms:</span> +<span class="a">+</span> +<span class="a">+ a) Disclaiming warranty or limiting liability differently from the</span> +<span class="a">+ terms of sections 15 and 16 of this License; or</span> +<span class="a">+</span> +<span class="a">+ b) Requiring preservation of specified reasonable legal notices or</span> +<span class="a">+ author attributions in that material or in the Appropriate Legal</span> +<span class="a">+ Notices displayed by works containing it; or</span> +<span class="a">+</span> +<span class="a">+ c) Prohibiting misrepresentation of the origin of that material, or</span> +<span class="a">+ requiring that modified versions of such material be marked in</span> +<span class="a">+ reasonable ways as different from the original version; or</span> +<span class="a">+</span> +<span class="a">+ d) Limiting the use for publicity purposes of names of licensors or</span> +<span class="a">+ authors of the material; or</span> +<span class="a">+</span> +<span class="a">+ e) Declining to grant rights under trademark law for use of some</span> +<span class="a">+ trade names, trademarks, or service marks; or</span> +<span class="a">+</span> +<span class="a">+ f) Requiring indemnification of licensors and authors of that</span> +<span class="a">+ material by anyone who conveys the material (or modified versions of</span> +<span class="a">+ it) with contractual assumptions of liability to the recipient, for</span> +<span class="a">+ any liability that these contractual assumptions directly impose on</span> +<span class="a">+ those licensors and authors.</span> +<span class="a">+</span> +<span class="a">+ All other non-permissive additional terms are considered "further</span> +<span class="a">+restrictions" within the meaning of section 10. If the Program as you</span> +<span class="a">+received it, or any part of it, contains a notice stating that it is</span> +<span class="a">+governed by this License along with a term that is a further</span> +<span class="a">+restriction, you may remove that term. If a license document contains</span> +<span class="a">+a further restriction but permits relicensing or conveying under this</span> +<span class="a">+License, you may add to a covered work material governed by the terms</span> +<span class="a">+of that license document, provided that the further restriction does</span> +<span class="a">+not survive such relicensing or conveying.</span> +<span class="a">+</span> +<span class="a">+ If you add terms to a covered work in accord with this section, you</span> +<span class="a">+must place, in the relevant source files, a statement of the</span> +<span class="a">+additional terms that apply to those files, or a notice indicating</span> +<span class="a">+where to find the applicable terms.</span> +<span class="a">+</span> +<span class="a">+ Additional terms, permissive or non-permissive, may be stated in the</span> +<span class="a">+form of a separately written license, or stated as exceptions;</span> +<span class="a">+the above requirements apply either way.</span> +<span class="a">+</span> +<span class="a">+ 8. Termination.</span> +<span class="a">+</span> +<span class="a">+ You may not propagate or modify a covered work except as expressly</span> +<span class="a">+provided under this License. Any attempt otherwise to propagate or</span> +<span class="a">+modify it is void, and will automatically terminate your rights under</span> +<span class="a">+this License (including any patent licenses granted under the third</span> +<span class="a">+paragraph of section 11).</span> +<span class="a">+</span> +<span class="a">+ However, if you cease all violation of this License, then your</span> +<span class="a">+license from a particular copyright holder is reinstated (a)</span> +<span class="a">+provisionally, unless and until the copyright holder explicitly and</span> +<span class="a">+finally terminates your license, and (b) permanently, if the copyright</span> +<span class="a">+holder fails to notify you of the violation by some reasonable means</span> +<span class="a">+prior to 60 days after the cessation.</span> +<span class="a">+</span> +<span class="a">+ Moreover, your license from a particular copyright holder is</span> +<span class="a">+reinstated permanently if the copyright holder notifies you of the</span> +<span class="a">+violation by some reasonable means, this is the first time you have</span> +<span class="a">+received notice of violation of this License (for any work) from that</span> +<span class="a">+copyright holder, and you cure the violation prior to 30 days after</span> +<span class="a">+your receipt of the notice.</span> +<span class="a">+</span> +<span class="a">+ Termination of your rights under this section does not terminate the</span> +<span class="a">+licenses of parties who have received copies or rights from you under</span> +<span class="a">+this License. If your rights have been terminated and not permanently</span> +<span class="a">+reinstated, you do not qualify to receive new licenses for the same</span> +<span class="a">+material under section 10.</span> +<span class="a">+</span> +<span class="a">+ 9. Acceptance Not Required for Having Copies.</span> +<span class="a">+</span> +<span class="a">+ You are not required to accept this License in order to receive or</span> +<span class="a">+run a copy of the Program. Ancillary propagation of a covered work</span> +<span class="a">+occurring solely as a consequence of using peer-to-peer transmission</span> +<span class="a">+to receive a copy likewise does not require acceptance. However,</span> +<span class="a">+nothing other than this License grants you permission to propagate or</span> +<span class="a">+modify any covered work. These actions infringe copyright if you do</span> +<span class="a">+not accept this License. Therefore, by modifying or propagating a</span> +<span class="a">+covered work, you indicate your acceptance of this License to do so.</span> +<span class="a">+</span> +<span class="a">+ 10. Automatic Licensing of Downstream Recipients.</span> +<span class="a">+</span> +<span class="a">+ Each time you convey a covered work, the recipient automatically</span> +<span class="a">+receives a license from the original licensors, to run, modify and</span> +<span class="a">+propagate that work, subject to this License. You are not responsible</span> +<span class="a">+for enforcing compliance by third parties with this License.</span> +<span class="a">+</span> +<span class="a">+ An "entity transaction" is a transaction transferring control of an</span> +<span class="a">+organization, or substantially all assets of one, or subdividing an</span> +<span class="a">+organization, or merging organizations. If propagation of a covered</span> +<span class="a">+work results from an entity transaction, each party to that</span> +<span class="a">+transaction who receives a copy of the work also receives whatever</span> +<span class="a">+licenses to the work the party's predecessor in interest had or could</span> +<span class="a">+give under the previous paragraph, plus a right to possession of the</span> +<span class="a">+Corresponding Source of the work from the predecessor in interest, if</span> +<span class="a">+the predecessor has it or can get it with reasonable efforts.</span> +<span class="a">+</span> +<span class="a">+ You may not impose any further restrictions on the exercise of the</span> +<span class="a">+rights granted or affirmed under this License. For example, you may</span> +<span class="a">+not impose a license fee, royalty, or other charge for exercise of</span> +<span class="a">+rights granted under this License, and you may not initiate litigation</span> +<span class="a">+(including a cross-claim or counterclaim in a lawsuit) alleging that</span> +<span class="a">+any patent claim is infringed by making, using, selling, offering for</span> +<span class="a">+sale, or importing the Program or any portion of it.</span> +<span class="a">+</span> +<span class="a">+ 11. Patents.</span> +<span class="a">+</span> +<span class="a">+ A "contributor" is a copyright holder who authorizes use under this</span> +<span class="a">+License of the Program or a work on which the Program is based. The</span> +<span class="a">+work thus licensed is called the contributor's "contributor version".</span> +<span class="a">+</span> +<span class="a">+ A contributor's "essential patent claims" are all patent claims</span> +<span class="a">+owned or controlled by the contributor, whether already acquired or</span> +<span class="a">+hereafter acquired, that would be infringed by some manner, permitted</span> +<span class="a">+by this License, of making, using, or selling its contributor version,</span> +<span class="a">+but do not include claims that would be infringed only as a</span> +<span class="a">+consequence of further modification of the contributor version. For</span> +<span class="a">+purposes of this definition, "control" includes the right to grant</span> +<span class="a">+patent sublicenses in a manner consistent with the requirements of</span> +<span class="a">+this License.</span> +<span class="a">+</span> +<span class="a">+ Each contributor grants you a non-exclusive, worldwide, royalty-free</span> +<span class="a">+patent license under the contributor's essential patent claims, to</span> +<span class="a">+make, use, sell, offer for sale, import and otherwise run, modify and</span> +<span class="a">+propagate the contents of its contributor version.</span> +<span class="a">+</span> +<span class="a">+ In the following three paragraphs, a "patent license" is any express</span> +<span class="a">+agreement or commitment, however denominated, not to enforce a patent</span> +<span class="a">+(such as an express permission to practice a patent or covenant not to</span> +<span class="a">+sue for patent infringement). To "grant" such a patent license to a</span> +<span class="a">+party means to make such an agreement or commitment not to enforce a</span> +<span class="a">+patent against the party.</span> +<span class="a">+</span> +<span class="a">+ If you convey a covered work, knowingly relying on a patent license,</span> +<span class="a">+and the Corresponding Source of the work is not available for anyone</span> +<span class="a">+to copy, free of charge and under the terms of this License, through a</span> +<span class="a">+publicly available network server or other readily accessible means,</span> +<span class="a">+then you must either (1) cause the Corresponding Source to be so</span> +<span class="a">+available, or (2) arrange to deprive yourself of the benefit of the</span> +<span class="a">+patent license for this particular work, or (3) arrange, in a manner</span> +<span class="a">+consistent with the requirements of this License, to extend the patent</span> +<span class="a">+license to downstream recipients. "Knowingly relying" means you have</span> +<span class="a">+actual knowledge that, but for the patent license, your conveying the</span> +<span class="a">+covered work in a country, or your recipient's use of the covered work</span> +<span class="a">+in a country, would infringe one or more identifiable patents in that</span> +<span class="a">+country that you have reason to believe are valid.</span> +<span class="a">+</span> +<span class="a">+ If, pursuant to or in connection with a single transaction or</span> +<span class="a">+arrangement, you convey, or propagate by procuring conveyance of, a</span> +<span class="a">+covered work, and grant a patent license to some of the parties</span> +<span class="a">+receiving the covered work authorizing them to use, propagate, modify</span> +<span class="a">+or convey a specific copy of the covered work, then the patent license</span> +<span class="a">+you grant is automatically extended to all recipients of the covered</span> +<span class="a">+work and works based on it.</span> +<span class="a">+</span> +<span class="a">+ A patent license is "discriminatory" if it does not include within</span> +<span class="a">+the scope of its coverage, prohibits the exercise of, or is</span> +<span class="a">+conditioned on the non-exercise of one or more of the rights that are</span> +<span class="a">+specifically granted under this License. You may not convey a covered</span> +<span class="a">+work if you are a party to an arrangement with a third party that is</span> +<span class="a">+in the business of distributing software, under which you make payment</span> +<span class="a">+to the third party based on the extent of your activity of conveying</span> +<span class="a">+the work, and under which the third party grants, to any of the</span> +<span class="a">+parties who would receive the covered work from you, a discriminatory</span> +<span class="a">+patent license (a) in connection with copies of the covered work</span> +<span class="a">+conveyed by you (or copies made from those copies), or (b) primarily</span> +<span class="a">+for and in connection with specific products or compilations that</span> +<span class="a">+contain the covered work, unless you entered into that arrangement,</span> +<span class="a">+or that patent license was granted, prior to 28 March 2007.</span> +<span class="a">+</span> +<span class="a">+ Nothing in this License shall be construed as excluding or limiting</span> +<span class="a">+any implied license or other defenses to infringement that may</span> +<span class="a">+otherwise be available to you under applicable patent law.</span> +<span class="a">+</span> +<span class="a">+ 12. No Surrender of Others' Freedom.</span> +<span class="a">+</span> +<span class="a">+ If conditions are imposed on you (whether by court order, agreement or</span> +<span class="a">+otherwise) that contradict the conditions of this License, they do not</span> +<span class="a">+excuse you from the conditions of this License. If you cannot convey a</span> +<span class="a">+covered work so as to satisfy simultaneously your obligations under this</span> +<span class="a">+License and any other pertinent obligations, then as a consequence you may</span> +<span class="a">+not convey it at all. For example, if you agree to terms that obligate you</span> +<span class="a">+to collect a royalty for further conveying from those to whom you convey</span> +<span class="a">+the Program, the only way you could satisfy both those terms and this</span> +<span class="a">+License would be to refrain entirely from conveying the Program.</span> +<span class="a">+</span> +<span class="a">+ 13. Use with the GNU Affero General Public License.</span> +<span class="a">+</span> +<span class="a">+ Notwithstanding any other provision of this License, you have</span> +<span class="a">+permission to link or combine any covered work with a work licensed</span> +<span class="a">+under version 3 of the GNU Affero General Public License into a single</span> +<span class="a">+combined work, and to convey the resulting work. The terms of this</span> +<span class="a">+License will continue to apply to the part which is the covered work,</span> +<span class="a">+but the special requirements of the GNU Affero General Public License,</span> +<span class="a">+section 13, concerning interaction through a network will apply to the</span> +<span class="a">+combination as such.</span> +<span class="a">+</span> +<span class="a">+ 14. Revised Versions of this License.</span> +<span class="a">+</span> +<span class="a">+ The Free Software Foundation may publish revised and/or new versions of</span> +<span class="a">+the GNU General Public License from time to time. Such new versions will</span> +<span class="a">+be similar in spirit to the present version, but may differ in detail to</span> +<span class="a">+address new problems or concerns.</span> +<span class="a">+</span> +<span class="a">+ Each version is given a distinguishing version number. If the</span> +<span class="a">+Program specifies that a certain numbered version of the GNU General</span> +<span class="a">+Public License "or any later version" applies to it, you have the</span> +<span class="a">+option of following the terms and conditions either of that numbered</span> +<span class="a">+version or of any later version published by the Free Software</span> +<span class="a">+Foundation. If the Program does not specify a version number of the</span> +<span class="a">+GNU General Public License, you may choose any version ever published</span> +<span class="a">+by the Free Software Foundation.</span> +<span class="a">+</span> +<span class="a">+ If the Program specifies that a proxy can decide which future</span> +<span class="a">+versions of the GNU General Public License can be used, that proxy's</span> +<span class="a">+public statement of acceptance of a version permanently authorizes you</span> +<span class="a">+to choose that version for the Program.</span> +<span class="a">+</span> +<span class="a">+ Later license versions may give you additional or different</span> +<span class="a">+permissions. However, no additional obligations are imposed on any</span> +<span class="a">+author or copyright holder as a result of your choosing to follow a</span> +<span class="a">+later version.</span> +<span class="a">+</span> +<span class="a">+ 15. Disclaimer of Warranty.</span> +<span class="a">+</span> +<span class="a">+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY</span> +<span class="a">+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT</span> +<span class="a">+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY</span> +<span class="a">+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,</span> +<span class="a">+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR</span> +<span class="a">+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM</span> +<span class="a">+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF</span> +<span class="a">+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</span> +<span class="a">+</span> +<span class="a">+ 16. Limitation of Liability.</span> +<span class="a">+</span> +<span class="a">+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</span> +<span class="a">+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS</span> +<span class="a">+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY</span> +<span class="a">+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE</span> +<span class="a">+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF</span> +<span class="a">+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD</span> +<span class="a">+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),</span> +<span class="a">+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF</span> +<span class="a">+SUCH DAMAGES.</span> +<span class="a">+</span> +<span class="a">+ 17. Interpretation of Sections 15 and 16.</span> +<span class="a">+</span> +<span class="a">+ If the disclaimer of warranty and limitation of liability provided</span> +<span class="a">+above cannot be given local legal effect according to their terms,</span> +<span class="a">+reviewing courts shall apply local law that most closely approximates</span> +<span class="a">+an absolute waiver of all civil liability in connection with the</span> +<span class="a">+Program, unless a warranty or assumption of liability accompanies a</span> +<span class="a">+copy of the Program in return for a fee.</span> +<span class="a">+</span> +<span class="a">+ END OF TERMS AND CONDITIONS</span> +<span class="a">+</span> +<span class="a">+ How to Apply These Terms to Your New Programs</span> +<span class="a">+</span> +<span class="a">+ If you develop a new program, and you want it to be of the greatest</span> +<span class="a">+possible use to the public, the best way to achieve this is to make it</span> +<span class="a">+free software which everyone can redistribute and change under these terms.</span> +<span class="a">+</span> +<span class="a">+ To do so, attach the following notices to the program. It is safest</span> +<span class="a">+to attach them to the start of each source file to most effectively</span> +<span class="a">+state the exclusion of warranty; and each file should have at least</span> +<span class="a">+the "copyright" line and a pointer to where the full notice is found.</span> +<span class="a">+</span> +<span class="a">+ <one line to give the program's name and a brief idea of what it does.></span> +<span class="a">+ Copyright (C) <year> <name of author></span> +<span class="a">+</span> +<span class="a">+ This program is free software: you can redistribute it and/or modify</span> +<span class="a">+ it under the terms of the GNU General Public License as published by</span> +<span class="a">+ the Free Software Foundation, either version 3 of the License, or</span> +<span class="a">+ (at your option) any later version.</span> +<span class="a">+</span> +<span class="a">+ This program is distributed in the hope that it will be useful,</span> +<span class="a">+ but WITHOUT ANY WARRANTY; without even the implied warranty of</span> +<span class="a">+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> +<span class="a">+ GNU General Public License for more details.</span> +<span class="a">+</span> +<span class="a">+ You should have received a copy of the GNU General Public License</span> +<span class="a">+ along with this program. If not, see <https://www.gnu.org/licenses/>.</span> +<span class="a">+</span> +<span class="a">+Also add information on how to contact you by electronic and paper mail.</span> +<span class="a">+</span> +<span class="a">+ If the program does terminal interaction, make it output a short</span> +<span class="a">+notice like this when it starts in an interactive mode:</span> +<span class="a">+</span> +<span class="a">+ <program> Copyright (C) <year> <name of author></span> +<span class="a">+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</span> +<span class="a">+ This is free software, and you are welcome to redistribute it</span> +<span class="a">+ under certain conditions; type `show c' for details.</span> +<span class="a">+</span> +<span class="a">+The hypothetical commands `show w' and `show c' should show the appropriate</span> +<span class="a">+parts of the General Public License. Of course, your program's commands</span> +<span class="a">+might be different; for a GUI interface, you would use an "about box".</span> +<span class="a">+</span> +<span class="a">+ You should also get your employer (if you work as a programmer) or school,</span> +<span class="a">+if any, to sign a "copyright disclaimer" for the program, if necessary.</span> +<span class="a">+For more information on this, and how to apply and follow the GNU GPL, see</span> +<span class="a">+<https://www.gnu.org/licenses/>.</span> +<span class="a">+</span> +<span class="a">+ The GNU General Public License does not permit incorporating your program</span> +<span class="a">+into proprietary programs. If your program is a subroutine library, you</span> +<span class="a">+may consider it more useful to permit linking proprietary applications with</span> +<span class="a">+the library. If this is what you want to do, use the GNU Lesser General</span> +<span class="a">+Public License instead of this License. But first, please read</span> +<span class="a">+<https://www.gnu.org/licenses/why-not-lgpl.html>.</span></pre> +</div></body></html> diff --git a/git/CSV/commit/ac0bf7108272763fa16a318d8cf7bb8f53c727cc.html b/git/CSV/commit/ac0bf7108272763fa16a318d8cf7bb8f53c727cc.html new file mode 100644 index 0000000..bfce719 --- /dev/null +++ b/git/CSV/commit/ac0bf7108272763fa16a318d8cf7bb8f53c727cc.html @@ -0,0 +1,199 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV ac0bf710 - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit ac0bf7108272763fa16a318d8cf7bb8f53c727cc +Spenser Truex <spensertruexonline@gmail.com> +2019-01-07 11:38:47 -0800 + +Initial + +</pre><pre> .gitignore | 18 ++++++++++++++++++ + README.md | 34 ++++++++++++++++++++++++++++++++++ + csv.asd | 9 +++++++++ + csv.lisp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + package.lisp | 4 ++++ + utils.lisp | 20 ++++++++++++++++++++ + 6 files changed, 140 insertions(+) +</pre><pre>diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..25a2bf4 +--- /dev/null ++++ b/.gitignore +<span class="h">@@ -0,0 +1,18 @@</span> +<span class="a">+*.FASL</span> +<span class="a">+*.fasl</span> +<span class="a">+*.lisp-temp</span> +<span class="a">+*.dfsl</span> +<span class="a">+*.pfsl</span> +<span class="a">+*.d64fsl</span> +<span class="a">+*.p64fsl</span> +<span class="a">+*.lx64fsl</span> +<span class="a">+*.lx32fsl</span> +<span class="a">+*.dx64fsl</span> +<span class="a">+*.dx32fsl</span> +<span class="a">+*.fx64fsl</span> +<span class="a">+*.fx32fsl</span> +<span class="a">+*.sx64fsl</span> +<span class="a">+*.sx32fsl</span> +<span class="a">+*.wx64fsl</span> +<span class="a">+*.wx32fsl</span> +<span class="a">+README.html</span> +diff --git a/README.md b/README.md +new file mode 100644 +index 0000000..2fd1c77 +--- /dev/null ++++ b/README.md +<span class="h">@@ -0,0 +1,34 @@</span> +<span class="a">+# CSV</span> +<span class="a">+Defines a lisp reader to read is CSV:</span> +<span class="a">+</span> +<span class="a">+`#!field,field,field!#`</span> +<span class="a">+</span> +<span class="a">+which is used to read in CSV files with `slurp`:</span> +<span class="a">+</span> +<span class="a">+`(slurp #p"example.csv")`</span> +<span class="a">+</span> +<span class="a">+and the result is a list:</span> +<span class="a">+</span> +<span class="a">+``` common-lisp</span> +<span class="a">+CL-USER> (csv:slurp #p"example.csv")</span> +<span class="a">+("example" "csv" "list" "result" "like" " this")</span> +<span class="a">+```</span> +<span class="a">+</span> +<span class="a">+This program invokes the lisp reader, making it:</span> +<span class="a">+1) Potentially risky to use if the input it not trusted.</span> +<span class="a">+2) Resource intensive for medium to large files (>5MB).</span> +<span class="a">+</span> +<span class="a">+use with care.</span> +<span class="a">+</span> +<span class="a">+# Features:</span> +<span class="a">+Supports escaping quotes the CSV way, with quad quotes:</span> +<span class="a">+csv -> lisp</span> +<span class="a">+`""""`->`"\""`</span> +<span class="a">+</span> +<span class="a">+# Installation</span> +<span class="a">+Use ASDF:</span> +<span class="a">+</span> +<span class="a">+``` common-lisp</span> +<span class="a">+CL-USER> (asdf:load-system :csv)</span> +<span class="a">+T</span> +<span class="a">+```</span> +diff --git a/csv.asd b/csv.asd +new file mode 100644 +index 0000000..35b1887 +--- /dev/null ++++ b/csv.asd +<span class="h">@@ -0,0 +1,9 @@</span> +<span class="a">+(asdf:defsystem :csv</span> +<span class="a">+ :version "0.1.0"</span> +<span class="a">+ :description "Read CSV files into lists."</span> +<span class="a">+ :author "Spenser Truex spensertruex.com"</span> +<span class="a">+ :serial t</span> +<span class="a">+ :license "GNU GPL, version 3"</span> +<span class="a">+ :components ((:file "package")</span> +<span class="a">+ (:file "utils")</span> +<span class="a">+ (:file "csv")))</span> +diff --git a/csv.lisp b/csv.lisp +new file mode 100644 +index 0000000..6d5bbb0 +--- /dev/null ++++ b/csv.lisp +<span class="h">@@ -0,0 +1,55 @@</span> +<span class="a">+(in-package :csv)</span> +<span class="a">+(defun make-escapep (prev curr)</span> +<span class="a">+ (char= #\" prev curr))</span> +<span class="a">+(defun end-tokenp (prev curr)</span> +<span class="a">+ (declare (ignore curr))</span> +<span class="a">+ (char= #\" prev))</span> +<span class="a">+(defun openp (prev curr)</span> +<span class="a">+ (declare (ignore curr))</span> +<span class="a">+ (char= #\" prev))</span> +<span class="a">+(let ((in nil)</span> +<span class="a">+ (escape nil))</span> +<span class="a">+ (setf (fdefinition 'switches)</span> +<span class="a">+ (lambda (prev curr str)</span> +<span class="a">+ (let ((str (if (array-has-fill-pointer-p str)</span> +<span class="a">+ str</span> +<span class="a">+ (make-array 1 :fill-pointer 0</span> +<span class="a">+ :adjustable t</span> +<span class="a">+ :element-type 'character))))</span> +<span class="a">+ (if (null curr)</span> +<span class="a">+ (progn (setf in nil escape nil) str)</span> +<span class="a">+ (if in</span> +<span class="a">+ (if escape</span> +<span class="a">+ (progn (toggle escape) (push-on prev str))</span> +<span class="a">+ (if (make-escapep prev curr)</span> +<span class="a">+ (progn (toggle escape) str)</span> +<span class="a">+ (if (end-tokenp prev curr)</span> +<span class="a">+ (progn (toggle in) (push-on #\Nul str))</span> +<span class="a">+ (push-on prev str))))</span> +<span class="a">+ (if (openp prev curr)</span> +<span class="a">+ (progn (toggle in) str)</span> +<span class="a">+ str)))))))</span> +<span class="a">+(defun splice (str)</span> +<span class="a">+ (labels ((inner (str acc!)</span> +<span class="a">+ (if (string= "" str)</span> +<span class="a">+ (nreverse acc!)</span> +<span class="a">+ (let ((res (search (string #\Nul) str)))</span> +<span class="a">+ (inner (subseq str (1+ res)) (push (subseq str 0 res) acc!))))))</span> +<span class="a">+ (inner str nil)))</span> +<span class="a">+(make-reader my-csv (stream #\# #\!)</span> +<span class="a">+ (macrolet ((once (&body body) ``',,@body))</span> +<span class="a">+ (do ((prev #1= (read-char stream nil nil) curr)</span> +<span class="a">+ (curr #1# #1#)</span> +<span class="a">+ (str (make-array 0 :adjustable t :element-type 'character)</span> +<span class="a">+ (switches prev curr str)))</span> +<span class="a">+ ((and (char= curr #\#)</span> +<span class="a">+ (char= prev #\!)) (once (splice (switches nil nil str)))))))</span> +<span class="a">+(defun read-to-string (stream)</span> +<span class="a">+ (with-output-to-string (s)</span> +<span class="a">+ (dolines (line stream)</span> +<span class="a">+ (princ line s)</span> +<span class="a">+ (format s "~%"))))</span> +<span class="a">+(defun slurp (path)</span> +<span class="a">+ "Read in a CSV file. Resource intensive, invokes the lisp reader."</span> +<span class="a">+ (with-open-file (s path)</span> +<span class="a">+ (concatenate 'string "#!" (read-to-string s) "!#")))</span> +diff --git a/package.lisp b/package.lisp +new file mode 100644 +index 0000000..c0b5a5c +--- /dev/null ++++ b/package.lisp +<span class="h">@@ -0,0 +1,4 @@</span> +<span class="a">+(in-package :cl-user)</span> +<span class="a">+(defpackage #:csv</span> +<span class="a">+ (:use #:cl)</span> +<span class="a">+ (:export :slurp))</span> +diff --git a/utils.lisp b/utils.lisp +new file mode 100644 +index 0000000..e26831a +--- /dev/null ++++ b/utils.lisp +<span class="h">@@ -0,0 +1,20 @@</span> +<span class="a">+(in-package :csv)</span> +<span class="a">+(defmacro dolines ((var stream) &body body)</span> +<span class="a">+ `(do ((,var #1=(read-line ,stream nil nil) #1#))</span> +<span class="a">+ ((null ,var))</span> +<span class="a">+ ,@body))</span> +<span class="a">+(defmacro with-gensyms (symbols &body body)</span> +<span class="a">+ "Create gensyms for those symbols."</span> +<span class="a">+ `(let (,@(mapcar #'(lambda (sym)</span> +<span class="a">+ `(,sym ',(gensym))) symbols))</span> +<span class="a">+ ,@body))</span> +<span class="a">+(defmacro make-reader (name (stream-var dispatch-1 dispatch-2) &body body)</span> +<span class="a">+ "Simplify the reader macro creation process in most cases."</span> +<span class="a">+ (with-gensyms (sub-char numarg)</span> +<span class="a">+ `(progn (defun ,name (,stream-var ,sub-char ,numarg)</span> +<span class="a">+ (declare (ignore ,sub-char ,numarg))</span> +<span class="a">+ ,@body)</span> +<span class="a">+ (set-dispatch-macro-character ,dispatch-1 ,dispatch-2 #',name))))</span> +<span class="a">+(defun push-on (elt stack)</span> +<span class="a">+ (vector-push-extend elt stack) stack)</span> +<span class="a">+(define-modify-macro toggle () not "Flipping vars.")</span></pre> +</div></body></html> diff --git a/git/CSV/commit/bdaa1297fd38f0ad8dfab76377739f1bc08d47dd.html b/git/CSV/commit/bdaa1297fd38f0ad8dfab76377739f1bc08d47dd.html new file mode 100644 index 0000000..8447adf --- /dev/null +++ b/git/CSV/commit/bdaa1297fd38f0ad8dfab76377739f1bc08d47dd.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV bdaa1297 - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit bdaa1297fd38f0ad8dfab76377739f1bc08d47dd +Spenser Truex <spensertruexonline@gmail.com> +2019-01-07 12:07:45 -0800 + +typo + +</pre><pre> README.md | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +</pre><pre>diff --git a/README.md b/README.md +index 9394c1d..14d6964 100644 +--- a/README.md ++++ b/README.md +<span class="h">@@ -32,5 +32,5 @@ Use ASDF:</span> + + ``` common-lisp + CL-USER> (asdf:load-system :csv) +<span class="d">-pT</span> +<span class="a">+T</span> + ```</pre> +</div></body></html> diff --git a/git/CSV/commit/f122dd6eeb0eb3a971ae7b02bb3c9abc9c073c51.html b/git/CSV/commit/f122dd6eeb0eb3a971ae7b02bb3c9abc9c073c51.html new file mode 100644 index 0000000..fa58b99 --- /dev/null +++ b/git/CSV/commit/f122dd6eeb0eb3a971ae7b02bb3c9abc9c073c51.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV f122dd6e - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit f122dd6eeb0eb3a971ae7b02bb3c9abc9c073c51 +Spenser Truex <web@spensertruex.com> +2019-01-07 14:05:58 -0800 + +Update csv.asd +</pre><pre> csv.asd | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +</pre><pre>diff --git a/csv.asd b/csv.asd +index 35b1887..755db08 100644 +--- a/csv.asd ++++ b/csv.asd +<span class="h">@@ -1,6 +1,6 @@</span> + (asdf:defsystem :csv + :version "0.1.0" +<span class="d">- :description "Read CSV files into lists."</span> +<span class="a">+ :description "Read CSV into lists natively. Convert CSV into lists dangerously."</span> + :author "Spenser Truex spensertruex.com" + :serial t + :license "GNU GPL, version 3"</pre> +</div></body></html> diff --git a/git/CSV/file/.gitignore.html b/git/CSV/file/.gitignore.html new file mode 100644 index 0000000..cced425 --- /dev/null +++ b/git/CSV/file/.gitignore.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/.gitignore - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>.gitignore (170 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> *.FASL +<a id="l2" href="#l2">2</a> *.fasl +<a id="l3" href="#l3">3</a> *.lisp-temp +<a id="l4" href="#l4">4</a> *.dfsl +<a id="l5" href="#l5">5</a> *.pfsl +<a id="l6" href="#l6">6</a> *.d64fsl +<a id="l7" href="#l7">7</a> *.p64fsl +<a id="l8" href="#l8">8</a> *.lx64fsl +<a id="l9" href="#l9">9</a> *.lx32fsl +<a id="l10" href="#l10">10</a> *.dx64fsl +<a id="l11" href="#l11">11</a> *.dx32fsl +<a id="l12" href="#l12">12</a> *.fx64fsl +<a id="l13" href="#l13">13</a> *.fx32fsl +<a id="l14" href="#l14">14</a> *.sx64fsl +<a id="l15" href="#l15">15</a> *.sx32fsl +<a id="l16" href="#l16">16</a> *.wx64fsl +<a id="l17" href="#l17">17</a> *.wx32fsl +<a id="l18" href="#l18">18</a> README.html</pre> +</div></body></html> diff --git a/git/CSV/file/LICENSE.html b/git/CSV/file/LICENSE.html new file mode 100644 index 0000000..cf8d870 --- /dev/null +++ b/git/CSV/file/LICENSE.html @@ -0,0 +1,684 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/LICENSE - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>LICENSE (35149 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> GNU GENERAL PUBLIC LICENSE +<a id="l2" href="#l2">2</a> Version 3, 29 June 2007 +<a id="l3" href="#l3">3</a> +<a id="l4" href="#l4">4</a> Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> +<a id="l5" href="#l5">5</a> Everyone is permitted to copy and distribute verbatim copies +<a id="l6" href="#l6">6</a> of this license document, but changing it is not allowed. +<a id="l7" href="#l7">7</a> +<a id="l8" href="#l8">8</a> Preamble +<a id="l9" href="#l9">9</a> +<a id="l10" href="#l10">10</a> The GNU General Public License is a free, copyleft license for +<a id="l11" href="#l11">11</a> software and other kinds of works. +<a id="l12" href="#l12">12</a> +<a id="l13" href="#l13">13</a> The licenses for most software and other practical works are designed +<a id="l14" href="#l14">14</a> to take away your freedom to share and change the works. By contrast, +<a id="l15" href="#l15">15</a> the GNU General Public License is intended to guarantee your freedom to +<a id="l16" href="#l16">16</a> share and change all versions of a program--to make sure it remains free +<a id="l17" href="#l17">17</a> software for all its users. We, the Free Software Foundation, use the +<a id="l18" href="#l18">18</a> GNU General Public License for most of our software; it applies also to +<a id="l19" href="#l19">19</a> any other work released this way by its authors. You can apply it to +<a id="l20" href="#l20">20</a> your programs, too. +<a id="l21" href="#l21">21</a> +<a id="l22" href="#l22">22</a> When we speak of free software, we are referring to freedom, not +<a id="l23" href="#l23">23</a> price. Our General Public Licenses are designed to make sure that you +<a id="l24" href="#l24">24</a> have the freedom to distribute copies of free software (and charge for +<a id="l25" href="#l25">25</a> them if you wish), that you receive source code or can get it if you +<a id="l26" href="#l26">26</a> want it, that you can change the software or use pieces of it in new +<a id="l27" href="#l27">27</a> free programs, and that you know you can do these things. +<a id="l28" href="#l28">28</a> +<a id="l29" href="#l29">29</a> To protect your rights, we need to prevent others from denying you +<a id="l30" href="#l30">30</a> these rights or asking you to surrender the rights. Therefore, you have +<a id="l31" href="#l31">31</a> certain responsibilities if you distribute copies of the software, or if +<a id="l32" href="#l32">32</a> you modify it: responsibilities to respect the freedom of others. +<a id="l33" href="#l33">33</a> +<a id="l34" href="#l34">34</a> For example, if you distribute copies of such a program, whether +<a id="l35" href="#l35">35</a> gratis or for a fee, you must pass on to the recipients the same +<a id="l36" href="#l36">36</a> freedoms that you received. You must make sure that they, too, receive +<a id="l37" href="#l37">37</a> or can get the source code. And you must show them these terms so they +<a id="l38" href="#l38">38</a> know their rights. +<a id="l39" href="#l39">39</a> +<a id="l40" href="#l40">40</a> Developers that use the GNU GPL protect your rights with two steps: +<a id="l41" href="#l41">41</a> (1) assert copyright on the software, and (2) offer you this License +<a id="l42" href="#l42">42</a> giving you legal permission to copy, distribute and/or modify it. +<a id="l43" href="#l43">43</a> +<a id="l44" href="#l44">44</a> For the developers' and authors' protection, the GPL clearly explains +<a id="l45" href="#l45">45</a> that there is no warranty for this free software. For both users' and +<a id="l46" href="#l46">46</a> authors' sake, the GPL requires that modified versions be marked as +<a id="l47" href="#l47">47</a> changed, so that their problems will not be attributed erroneously to +<a id="l48" href="#l48">48</a> authors of previous versions. +<a id="l49" href="#l49">49</a> +<a id="l50" href="#l50">50</a> Some devices are designed to deny users access to install or run +<a id="l51" href="#l51">51</a> modified versions of the software inside them, although the manufacturer +<a id="l52" href="#l52">52</a> can do so. This is fundamentally incompatible with the aim of +<a id="l53" href="#l53">53</a> protecting users' freedom to change the software. The systematic +<a id="l54" href="#l54">54</a> pattern of such abuse occurs in the area of products for individuals to +<a id="l55" href="#l55">55</a> use, which is precisely where it is most unacceptable. Therefore, we +<a id="l56" href="#l56">56</a> have designed this version of the GPL to prohibit the practice for those +<a id="l57" href="#l57">57</a> products. If such problems arise substantially in other domains, we +<a id="l58" href="#l58">58</a> stand ready to extend this provision to those domains in future versions +<a id="l59" href="#l59">59</a> of the GPL, as needed to protect the freedom of users. +<a id="l60" href="#l60">60</a> +<a id="l61" href="#l61">61</a> Finally, every program is threatened constantly by software patents. +<a id="l62" href="#l62">62</a> States should not allow patents to restrict development and use of +<a id="l63" href="#l63">63</a> software on general-purpose computers, but in those that do, we wish to +<a id="l64" href="#l64">64</a> avoid the special danger that patents applied to a free program could +<a id="l65" href="#l65">65</a> make it effectively proprietary. To prevent this, the GPL assures that +<a id="l66" href="#l66">66</a> patents cannot be used to render the program non-free. +<a id="l67" href="#l67">67</a> +<a id="l68" href="#l68">68</a> The precise terms and conditions for copying, distribution and +<a id="l69" href="#l69">69</a> modification follow. +<a id="l70" href="#l70">70</a> +<a id="l71" href="#l71">71</a> TERMS AND CONDITIONS +<a id="l72" href="#l72">72</a> +<a id="l73" href="#l73">73</a> 0. Definitions. +<a id="l74" href="#l74">74</a> +<a id="l75" href="#l75">75</a> "This License" refers to version 3 of the GNU General Public License. +<a id="l76" href="#l76">76</a> +<a id="l77" href="#l77">77</a> "Copyright" also means copyright-like laws that apply to other kinds of +<a id="l78" href="#l78">78</a> works, such as semiconductor masks. +<a id="l79" href="#l79">79</a> +<a id="l80" href="#l80">80</a> "The Program" refers to any copyrightable work licensed under this +<a id="l81" href="#l81">81</a> License. Each licensee is addressed as "you". "Licensees" and +<a id="l82" href="#l82">82</a> "recipients" may be individuals or organizations. +<a id="l83" href="#l83">83</a> +<a id="l84" href="#l84">84</a> To "modify" a work means to copy from or adapt all or part of the work +<a id="l85" href="#l85">85</a> in a fashion requiring copyright permission, other than the making of an +<a id="l86" href="#l86">86</a> exact copy. The resulting work is called a "modified version" of the +<a id="l87" href="#l87">87</a> earlier work or a work "based on" the earlier work. +<a id="l88" href="#l88">88</a> +<a id="l89" href="#l89">89</a> A "covered work" means either the unmodified Program or a work based +<a id="l90" href="#l90">90</a> on the Program. +<a id="l91" href="#l91">91</a> +<a id="l92" href="#l92">92</a> To "propagate" a work means to do anything with it that, without +<a id="l93" href="#l93">93</a> permission, would make you directly or secondarily liable for +<a id="l94" href="#l94">94</a> infringement under applicable copyright law, except executing it on a +<a id="l95" href="#l95">95</a> computer or modifying a private copy. Propagation includes copying, +<a id="l96" href="#l96">96</a> distribution (with or without modification), making available to the +<a id="l97" href="#l97">97</a> public, and in some countries other activities as well. +<a id="l98" href="#l98">98</a> +<a id="l99" href="#l99">99</a> To "convey" a work means any kind of propagation that enables other +<a id="l100" href="#l100">100</a> parties to make or receive copies. Mere interaction with a user through +<a id="l101" href="#l101">101</a> a computer network, with no transfer of a copy, is not conveying. +<a id="l102" href="#l102">102</a> +<a id="l103" href="#l103">103</a> An interactive user interface displays "Appropriate Legal Notices" +<a id="l104" href="#l104">104</a> to the extent that it includes a convenient and prominently visible +<a id="l105" href="#l105">105</a> feature that (1) displays an appropriate copyright notice, and (2) +<a id="l106" href="#l106">106</a> tells the user that there is no warranty for the work (except to the +<a id="l107" href="#l107">107</a> extent that warranties are provided), that licensees may convey the +<a id="l108" href="#l108">108</a> work under this License, and how to view a copy of this License. If +<a id="l109" href="#l109">109</a> the interface presents a list of user commands or options, such as a +<a id="l110" href="#l110">110</a> menu, a prominent item in the list meets this criterion. +<a id="l111" href="#l111">111</a> +<a id="l112" href="#l112">112</a> 1. Source Code. +<a id="l113" href="#l113">113</a> +<a id="l114" href="#l114">114</a> The "source code" for a work means the preferred form of the work +<a id="l115" href="#l115">115</a> for making modifications to it. "Object code" means any non-source +<a id="l116" href="#l116">116</a> form of a work. +<a id="l117" href="#l117">117</a> +<a id="l118" href="#l118">118</a> A "Standard Interface" means an interface that either is an official +<a id="l119" href="#l119">119</a> standard defined by a recognized standards body, or, in the case of +<a id="l120" href="#l120">120</a> interfaces specified for a particular programming language, one that +<a id="l121" href="#l121">121</a> is widely used among developers working in that language. +<a id="l122" href="#l122">122</a> +<a id="l123" href="#l123">123</a> The "System Libraries" of an executable work include anything, other +<a id="l124" href="#l124">124</a> than the work as a whole, that (a) is included in the normal form of +<a id="l125" href="#l125">125</a> packaging a Major Component, but which is not part of that Major +<a id="l126" href="#l126">126</a> Component, and (b) serves only to enable use of the work with that +<a id="l127" href="#l127">127</a> Major Component, or to implement a Standard Interface for which an +<a id="l128" href="#l128">128</a> implementation is available to the public in source code form. A +<a id="l129" href="#l129">129</a> "Major Component", in this context, means a major essential component +<a id="l130" href="#l130">130</a> (kernel, window system, and so on) of the specific operating system +<a id="l131" href="#l131">131</a> (if any) on which the executable work runs, or a compiler used to +<a id="l132" href="#l132">132</a> produce the work, or an object code interpreter used to run it. +<a id="l133" href="#l133">133</a> +<a id="l134" href="#l134">134</a> The "Corresponding Source" for a work in object code form means all +<a id="l135" href="#l135">135</a> the source code needed to generate, install, and (for an executable +<a id="l136" href="#l136">136</a> work) run the object code and to modify the work, including scripts to +<a id="l137" href="#l137">137</a> control those activities. However, it does not include the work's +<a id="l138" href="#l138">138</a> System Libraries, or general-purpose tools or generally available free +<a id="l139" href="#l139">139</a> programs which are used unmodified in performing those activities but +<a id="l140" href="#l140">140</a> which are not part of the work. For example, Corresponding Source +<a id="l141" href="#l141">141</a> includes interface definition files associated with source files for +<a id="l142" href="#l142">142</a> the work, and the source code for shared libraries and dynamically +<a id="l143" href="#l143">143</a> linked subprograms that the work is specifically designed to require, +<a id="l144" href="#l144">144</a> such as by intimate data communication or control flow between those +<a id="l145" href="#l145">145</a> subprograms and other parts of the work. +<a id="l146" href="#l146">146</a> +<a id="l147" href="#l147">147</a> The Corresponding Source need not include anything that users +<a id="l148" href="#l148">148</a> can regenerate automatically from other parts of the Corresponding +<a id="l149" href="#l149">149</a> Source. +<a id="l150" href="#l150">150</a> +<a id="l151" href="#l151">151</a> The Corresponding Source for a work in source code form is that +<a id="l152" href="#l152">152</a> same work. +<a id="l153" href="#l153">153</a> +<a id="l154" href="#l154">154</a> 2. Basic Permissions. +<a id="l155" href="#l155">155</a> +<a id="l156" href="#l156">156</a> All rights granted under this License are granted for the term of +<a id="l157" href="#l157">157</a> copyright on the Program, and are irrevocable provided the stated +<a id="l158" href="#l158">158</a> conditions are met. This License explicitly affirms your unlimited +<a id="l159" href="#l159">159</a> permission to run the unmodified Program. The output from running a +<a id="l160" href="#l160">160</a> covered work is covered by this License only if the output, given its +<a id="l161" href="#l161">161</a> content, constitutes a covered work. This License acknowledges your +<a id="l162" href="#l162">162</a> rights of fair use or other equivalent, as provided by copyright law. +<a id="l163" href="#l163">163</a> +<a id="l164" href="#l164">164</a> You may make, run and propagate covered works that you do not +<a id="l165" href="#l165">165</a> convey, without conditions so long as your license otherwise remains +<a id="l166" href="#l166">166</a> in force. You may convey covered works to others for the sole purpose +<a id="l167" href="#l167">167</a> of having them make modifications exclusively for you, or provide you +<a id="l168" href="#l168">168</a> with facilities for running those works, provided that you comply with +<a id="l169" href="#l169">169</a> the terms of this License in conveying all material for which you do +<a id="l170" href="#l170">170</a> not control copyright. Those thus making or running the covered works +<a id="l171" href="#l171">171</a> for you must do so exclusively on your behalf, under your direction +<a id="l172" href="#l172">172</a> and control, on terms that prohibit them from making any copies of +<a id="l173" href="#l173">173</a> your copyrighted material outside their relationship with you. +<a id="l174" href="#l174">174</a> +<a id="l175" href="#l175">175</a> Conveying under any other circumstances is permitted solely under +<a id="l176" href="#l176">176</a> the conditions stated below. Sublicensing is not allowed; section 10 +<a id="l177" href="#l177">177</a> makes it unnecessary. +<a id="l178" href="#l178">178</a> +<a id="l179" href="#l179">179</a> 3. Protecting Users' Legal Rights From Anti-Circumvention Law. +<a id="l180" href="#l180">180</a> +<a id="l181" href="#l181">181</a> No covered work shall be deemed part of an effective technological +<a id="l182" href="#l182">182</a> measure under any applicable law fulfilling obligations under article +<a id="l183" href="#l183">183</a> 11 of the WIPO copyright treaty adopted on 20 December 1996, or +<a id="l184" href="#l184">184</a> similar laws prohibiting or restricting circumvention of such +<a id="l185" href="#l185">185</a> measures. +<a id="l186" href="#l186">186</a> +<a id="l187" href="#l187">187</a> When you convey a covered work, you waive any legal power to forbid +<a id="l188" href="#l188">188</a> circumvention of technological measures to the extent such circumvention +<a id="l189" href="#l189">189</a> is effected by exercising rights under this License with respect to +<a id="l190" href="#l190">190</a> the covered work, and you disclaim any intention to limit operation or +<a id="l191" href="#l191">191</a> modification of the work as a means of enforcing, against the work's +<a id="l192" href="#l192">192</a> users, your or third parties' legal rights to forbid circumvention of +<a id="l193" href="#l193">193</a> technological measures. +<a id="l194" href="#l194">194</a> +<a id="l195" href="#l195">195</a> 4. Conveying Verbatim Copies. +<a id="l196" href="#l196">196</a> +<a id="l197" href="#l197">197</a> You may convey verbatim copies of the Program's source code as you +<a id="l198" href="#l198">198</a> receive it, in any medium, provided that you conspicuously and +<a id="l199" href="#l199">199</a> appropriately publish on each copy an appropriate copyright notice; +<a id="l200" href="#l200">200</a> keep intact all notices stating that this License and any +<a id="l201" href="#l201">201</a> non-permissive terms added in accord with section 7 apply to the code; +<a id="l202" href="#l202">202</a> keep intact all notices of the absence of any warranty; and give all +<a id="l203" href="#l203">203</a> recipients a copy of this License along with the Program. +<a id="l204" href="#l204">204</a> +<a id="l205" href="#l205">205</a> You may charge any price or no price for each copy that you convey, +<a id="l206" href="#l206">206</a> and you may offer support or warranty protection for a fee. +<a id="l207" href="#l207">207</a> +<a id="l208" href="#l208">208</a> 5. Conveying Modified Source Versions. +<a id="l209" href="#l209">209</a> +<a id="l210" href="#l210">210</a> You may convey a work based on the Program, or the modifications to +<a id="l211" href="#l211">211</a> produce it from the Program, in the form of source code under the +<a id="l212" href="#l212">212</a> terms of section 4, provided that you also meet all of these conditions: +<a id="l213" href="#l213">213</a> +<a id="l214" href="#l214">214</a> a) The work must carry prominent notices stating that you modified +<a id="l215" href="#l215">215</a> it, and giving a relevant date. +<a id="l216" href="#l216">216</a> +<a id="l217" href="#l217">217</a> b) The work must carry prominent notices stating that it is +<a id="l218" href="#l218">218</a> released under this License and any conditions added under section +<a id="l219" href="#l219">219</a> 7. This requirement modifies the requirement in section 4 to +<a id="l220" href="#l220">220</a> "keep intact all notices". +<a id="l221" href="#l221">221</a> +<a id="l222" href="#l222">222</a> c) You must license the entire work, as a whole, under this +<a id="l223" href="#l223">223</a> License to anyone who comes into possession of a copy. This +<a id="l224" href="#l224">224</a> License will therefore apply, along with any applicable section 7 +<a id="l225" href="#l225">225</a> additional terms, to the whole of the work, and all its parts, +<a id="l226" href="#l226">226</a> regardless of how they are packaged. This License gives no +<a id="l227" href="#l227">227</a> permission to license the work in any other way, but it does not +<a id="l228" href="#l228">228</a> invalidate such permission if you have separately received it. +<a id="l229" href="#l229">229</a> +<a id="l230" href="#l230">230</a> d) If the work has interactive user interfaces, each must display +<a id="l231" href="#l231">231</a> Appropriate Legal Notices; however, if the Program has interactive +<a id="l232" href="#l232">232</a> interfaces that do not display Appropriate Legal Notices, your +<a id="l233" href="#l233">233</a> work need not make them do so. +<a id="l234" href="#l234">234</a> +<a id="l235" href="#l235">235</a> A compilation of a covered work with other separate and independent +<a id="l236" href="#l236">236</a> works, which are not by their nature extensions of the covered work, +<a id="l237" href="#l237">237</a> and which are not combined with it such as to form a larger program, +<a id="l238" href="#l238">238</a> in or on a volume of a storage or distribution medium, is called an +<a id="l239" href="#l239">239</a> "aggregate" if the compilation and its resulting copyright are not +<a id="l240" href="#l240">240</a> used to limit the access or legal rights of the compilation's users +<a id="l241" href="#l241">241</a> beyond what the individual works permit. Inclusion of a covered work +<a id="l242" href="#l242">242</a> in an aggregate does not cause this License to apply to the other +<a id="l243" href="#l243">243</a> parts of the aggregate. +<a id="l244" href="#l244">244</a> +<a id="l245" href="#l245">245</a> 6. Conveying Non-Source Forms. +<a id="l246" href="#l246">246</a> +<a id="l247" href="#l247">247</a> You may convey a covered work in object code form under the terms +<a id="l248" href="#l248">248</a> of sections 4 and 5, provided that you also convey the +<a id="l249" href="#l249">249</a> machine-readable Corresponding Source under the terms of this License, +<a id="l250" href="#l250">250</a> in one of these ways: +<a id="l251" href="#l251">251</a> +<a id="l252" href="#l252">252</a> a) Convey the object code in, or embodied in, a physical product +<a id="l253" href="#l253">253</a> (including a physical distribution medium), accompanied by the +<a id="l254" href="#l254">254</a> Corresponding Source fixed on a durable physical medium +<a id="l255" href="#l255">255</a> customarily used for software interchange. +<a id="l256" href="#l256">256</a> +<a id="l257" href="#l257">257</a> b) Convey the object code in, or embodied in, a physical product +<a id="l258" href="#l258">258</a> (including a physical distribution medium), accompanied by a +<a id="l259" href="#l259">259</a> written offer, valid for at least three years and valid for as +<a id="l260" href="#l260">260</a> long as you offer spare parts or customer support for that product +<a id="l261" href="#l261">261</a> model, to give anyone who possesses the object code either (1) a +<a id="l262" href="#l262">262</a> copy of the Corresponding Source for all the software in the +<a id="l263" href="#l263">263</a> product that is covered by this License, on a durable physical +<a id="l264" href="#l264">264</a> medium customarily used for software interchange, for a price no +<a id="l265" href="#l265">265</a> more than your reasonable cost of physically performing this +<a id="l266" href="#l266">266</a> conveying of source, or (2) access to copy the +<a id="l267" href="#l267">267</a> Corresponding Source from a network server at no charge. +<a id="l268" href="#l268">268</a> +<a id="l269" href="#l269">269</a> c) Convey individual copies of the object code with a copy of the +<a id="l270" href="#l270">270</a> written offer to provide the Corresponding Source. This +<a id="l271" href="#l271">271</a> alternative is allowed only occasionally and noncommercially, and +<a id="l272" href="#l272">272</a> only if you received the object code with such an offer, in accord +<a id="l273" href="#l273">273</a> with subsection 6b. +<a id="l274" href="#l274">274</a> +<a id="l275" href="#l275">275</a> d) Convey the object code by offering access from a designated +<a id="l276" href="#l276">276</a> place (gratis or for a charge), and offer equivalent access to the +<a id="l277" href="#l277">277</a> Corresponding Source in the same way through the same place at no +<a id="l278" href="#l278">278</a> further charge. You need not require recipients to copy the +<a id="l279" href="#l279">279</a> Corresponding Source along with the object code. If the place to +<a id="l280" href="#l280">280</a> copy the object code is a network server, the Corresponding Source +<a id="l281" href="#l281">281</a> may be on a different server (operated by you or a third party) +<a id="l282" href="#l282">282</a> that supports equivalent copying facilities, provided you maintain +<a id="l283" href="#l283">283</a> clear directions next to the object code saying where to find the +<a id="l284" href="#l284">284</a> Corresponding Source. Regardless of what server hosts the +<a id="l285" href="#l285">285</a> Corresponding Source, you remain obligated to ensure that it is +<a id="l286" href="#l286">286</a> available for as long as needed to satisfy these requirements. +<a id="l287" href="#l287">287</a> +<a id="l288" href="#l288">288</a> e) Convey the object code using peer-to-peer transmission, provided +<a id="l289" href="#l289">289</a> you inform other peers where the object code and Corresponding +<a id="l290" href="#l290">290</a> Source of the work are being offered to the general public at no +<a id="l291" href="#l291">291</a> charge under subsection 6d. +<a id="l292" href="#l292">292</a> +<a id="l293" href="#l293">293</a> A separable portion of the object code, whose source code is excluded +<a id="l294" href="#l294">294</a> from the Corresponding Source as a System Library, need not be +<a id="l295" href="#l295">295</a> included in conveying the object code work. +<a id="l296" href="#l296">296</a> +<a id="l297" href="#l297">297</a> A "User Product" is either (1) a "consumer product", which means any +<a id="l298" href="#l298">298</a> tangible personal property which is normally used for personal, family, +<a id="l299" href="#l299">299</a> or household purposes, or (2) anything designed or sold for incorporation +<a id="l300" href="#l300">300</a> into a dwelling. In determining whether a product is a consumer product, +<a id="l301" href="#l301">301</a> doubtful cases shall be resolved in favor of coverage. For a particular +<a id="l302" href="#l302">302</a> product received by a particular user, "normally used" refers to a +<a id="l303" href="#l303">303</a> typical or common use of that class of product, regardless of the status +<a id="l304" href="#l304">304</a> of the particular user or of the way in which the particular user +<a id="l305" href="#l305">305</a> actually uses, or expects or is expected to use, the product. A product +<a id="l306" href="#l306">306</a> is a consumer product regardless of whether the product has substantial +<a id="l307" href="#l307">307</a> commercial, industrial or non-consumer uses, unless such uses represent +<a id="l308" href="#l308">308</a> the only significant mode of use of the product. +<a id="l309" href="#l309">309</a> +<a id="l310" href="#l310">310</a> "Installation Information" for a User Product means any methods, +<a id="l311" href="#l311">311</a> procedures, authorization keys, or other information required to install +<a id="l312" href="#l312">312</a> and execute modified versions of a covered work in that User Product from +<a id="l313" href="#l313">313</a> a modified version of its Corresponding Source. The information must +<a id="l314" href="#l314">314</a> suffice to ensure that the continued functioning of the modified object +<a id="l315" href="#l315">315</a> code is in no case prevented or interfered with solely because +<a id="l316" href="#l316">316</a> modification has been made. +<a id="l317" href="#l317">317</a> +<a id="l318" href="#l318">318</a> If you convey an object code work under this section in, or with, or +<a id="l319" href="#l319">319</a> specifically for use in, a User Product, and the conveying occurs as +<a id="l320" href="#l320">320</a> part of a transaction in which the right of possession and use of the +<a id="l321" href="#l321">321</a> User Product is transferred to the recipient in perpetuity or for a +<a id="l322" href="#l322">322</a> fixed term (regardless of how the transaction is characterized), the +<a id="l323" href="#l323">323</a> Corresponding Source conveyed under this section must be accompanied +<a id="l324" href="#l324">324</a> by the Installation Information. But this requirement does not apply +<a id="l325" href="#l325">325</a> if neither you nor any third party retains the ability to install +<a id="l326" href="#l326">326</a> modified object code on the User Product (for example, the work has +<a id="l327" href="#l327">327</a> been installed in ROM). +<a id="l328" href="#l328">328</a> +<a id="l329" href="#l329">329</a> The requirement to provide Installation Information does not include a +<a id="l330" href="#l330">330</a> requirement to continue to provide support service, warranty, or updates +<a id="l331" href="#l331">331</a> for a work that has been modified or installed by the recipient, or for +<a id="l332" href="#l332">332</a> the User Product in which it has been modified or installed. Access to a +<a id="l333" href="#l333">333</a> network may be denied when the modification itself materially and +<a id="l334" href="#l334">334</a> adversely affects the operation of the network or violates the rules and +<a id="l335" href="#l335">335</a> protocols for communication across the network. +<a id="l336" href="#l336">336</a> +<a id="l337" href="#l337">337</a> Corresponding Source conveyed, and Installation Information provided, +<a id="l338" href="#l338">338</a> in accord with this section must be in a format that is publicly +<a id="l339" href="#l339">339</a> documented (and with an implementation available to the public in +<a id="l340" href="#l340">340</a> source code form), and must require no special password or key for +<a id="l341" href="#l341">341</a> unpacking, reading or copying. +<a id="l342" href="#l342">342</a> +<a id="l343" href="#l343">343</a> 7. Additional Terms. +<a id="l344" href="#l344">344</a> +<a id="l345" href="#l345">345</a> "Additional permissions" are terms that supplement the terms of this +<a id="l346" href="#l346">346</a> License by making exceptions from one or more of its conditions. +<a id="l347" href="#l347">347</a> Additional permissions that are applicable to the entire Program shall +<a id="l348" href="#l348">348</a> be treated as though they were included in this License, to the extent +<a id="l349" href="#l349">349</a> that they are valid under applicable law. If additional permissions +<a id="l350" href="#l350">350</a> apply only to part of the Program, that part may be used separately +<a id="l351" href="#l351">351</a> under those permissions, but the entire Program remains governed by +<a id="l352" href="#l352">352</a> this License without regard to the additional permissions. +<a id="l353" href="#l353">353</a> +<a id="l354" href="#l354">354</a> When you convey a copy of a covered work, you may at your option +<a id="l355" href="#l355">355</a> remove any additional permissions from that copy, or from any part of +<a id="l356" href="#l356">356</a> it. (Additional permissions may be written to require their own +<a id="l357" href="#l357">357</a> removal in certain cases when you modify the work.) You may place +<a id="l358" href="#l358">358</a> additional permissions on material, added by you to a covered work, +<a id="l359" href="#l359">359</a> for which you have or can give appropriate copyright permission. +<a id="l360" href="#l360">360</a> +<a id="l361" href="#l361">361</a> Notwithstanding any other provision of this License, for material you +<a id="l362" href="#l362">362</a> add to a covered work, you may (if authorized by the copyright holders of +<a id="l363" href="#l363">363</a> that material) supplement the terms of this License with terms: +<a id="l364" href="#l364">364</a> +<a id="l365" href="#l365">365</a> a) Disclaiming warranty or limiting liability differently from the +<a id="l366" href="#l366">366</a> terms of sections 15 and 16 of this License; or +<a id="l367" href="#l367">367</a> +<a id="l368" href="#l368">368</a> b) Requiring preservation of specified reasonable legal notices or +<a id="l369" href="#l369">369</a> author attributions in that material or in the Appropriate Legal +<a id="l370" href="#l370">370</a> Notices displayed by works containing it; or +<a id="l371" href="#l371">371</a> +<a id="l372" href="#l372">372</a> c) Prohibiting misrepresentation of the origin of that material, or +<a id="l373" href="#l373">373</a> requiring that modified versions of such material be marked in +<a id="l374" href="#l374">374</a> reasonable ways as different from the original version; or +<a id="l375" href="#l375">375</a> +<a id="l376" href="#l376">376</a> d) Limiting the use for publicity purposes of names of licensors or +<a id="l377" href="#l377">377</a> authors of the material; or +<a id="l378" href="#l378">378</a> +<a id="l379" href="#l379">379</a> e) Declining to grant rights under trademark law for use of some +<a id="l380" href="#l380">380</a> trade names, trademarks, or service marks; or +<a id="l381" href="#l381">381</a> +<a id="l382" href="#l382">382</a> f) Requiring indemnification of licensors and authors of that +<a id="l383" href="#l383">383</a> material by anyone who conveys the material (or modified versions of +<a id="l384" href="#l384">384</a> it) with contractual assumptions of liability to the recipient, for +<a id="l385" href="#l385">385</a> any liability that these contractual assumptions directly impose on +<a id="l386" href="#l386">386</a> those licensors and authors. +<a id="l387" href="#l387">387</a> +<a id="l388" href="#l388">388</a> All other non-permissive additional terms are considered "further +<a id="l389" href="#l389">389</a> restrictions" within the meaning of section 10. If the Program as you +<a id="l390" href="#l390">390</a> received it, or any part of it, contains a notice stating that it is +<a id="l391" href="#l391">391</a> governed by this License along with a term that is a further +<a id="l392" href="#l392">392</a> restriction, you may remove that term. If a license document contains +<a id="l393" href="#l393">393</a> a further restriction but permits relicensing or conveying under this +<a id="l394" href="#l394">394</a> License, you may add to a covered work material governed by the terms +<a id="l395" href="#l395">395</a> of that license document, provided that the further restriction does +<a id="l396" href="#l396">396</a> not survive such relicensing or conveying. +<a id="l397" href="#l397">397</a> +<a id="l398" href="#l398">398</a> If you add terms to a covered work in accord with this section, you +<a id="l399" href="#l399">399</a> must place, in the relevant source files, a statement of the +<a id="l400" href="#l400">400</a> additional terms that apply to those files, or a notice indicating +<a id="l401" href="#l401">401</a> where to find the applicable terms. +<a id="l402" href="#l402">402</a> +<a id="l403" href="#l403">403</a> Additional terms, permissive or non-permissive, may be stated in the +<a id="l404" href="#l404">404</a> form of a separately written license, or stated as exceptions; +<a id="l405" href="#l405">405</a> the above requirements apply either way. +<a id="l406" href="#l406">406</a> +<a id="l407" href="#l407">407</a> 8. Termination. +<a id="l408" href="#l408">408</a> +<a id="l409" href="#l409">409</a> You may not propagate or modify a covered work except as expressly +<a id="l410" href="#l410">410</a> provided under this License. Any attempt otherwise to propagate or +<a id="l411" href="#l411">411</a> modify it is void, and will automatically terminate your rights under +<a id="l412" href="#l412">412</a> this License (including any patent licenses granted under the third +<a id="l413" href="#l413">413</a> paragraph of section 11). +<a id="l414" href="#l414">414</a> +<a id="l415" href="#l415">415</a> However, if you cease all violation of this License, then your +<a id="l416" href="#l416">416</a> license from a particular copyright holder is reinstated (a) +<a id="l417" href="#l417">417</a> provisionally, unless and until the copyright holder explicitly and +<a id="l418" href="#l418">418</a> finally terminates your license, and (b) permanently, if the copyright +<a id="l419" href="#l419">419</a> holder fails to notify you of the violation by some reasonable means +<a id="l420" href="#l420">420</a> prior to 60 days after the cessation. +<a id="l421" href="#l421">421</a> +<a id="l422" href="#l422">422</a> Moreover, your license from a particular copyright holder is +<a id="l423" href="#l423">423</a> reinstated permanently if the copyright holder notifies you of the +<a id="l424" href="#l424">424</a> violation by some reasonable means, this is the first time you have +<a id="l425" href="#l425">425</a> received notice of violation of this License (for any work) from that +<a id="l426" href="#l426">426</a> copyright holder, and you cure the violation prior to 30 days after +<a id="l427" href="#l427">427</a> your receipt of the notice. +<a id="l428" href="#l428">428</a> +<a id="l429" href="#l429">429</a> Termination of your rights under this section does not terminate the +<a id="l430" href="#l430">430</a> licenses of parties who have received copies or rights from you under +<a id="l431" href="#l431">431</a> this License. If your rights have been terminated and not permanently +<a id="l432" href="#l432">432</a> reinstated, you do not qualify to receive new licenses for the same +<a id="l433" href="#l433">433</a> material under section 10. +<a id="l434" href="#l434">434</a> +<a id="l435" href="#l435">435</a> 9. Acceptance Not Required for Having Copies. +<a id="l436" href="#l436">436</a> +<a id="l437" href="#l437">437</a> You are not required to accept this License in order to receive or +<a id="l438" href="#l438">438</a> run a copy of the Program. Ancillary propagation of a covered work +<a id="l439" href="#l439">439</a> occurring solely as a consequence of using peer-to-peer transmission +<a id="l440" href="#l440">440</a> to receive a copy likewise does not require acceptance. However, +<a id="l441" href="#l441">441</a> nothing other than this License grants you permission to propagate or +<a id="l442" href="#l442">442</a> modify any covered work. These actions infringe copyright if you do +<a id="l443" href="#l443">443</a> not accept this License. Therefore, by modifying or propagating a +<a id="l444" href="#l444">444</a> covered work, you indicate your acceptance of this License to do so. +<a id="l445" href="#l445">445</a> +<a id="l446" href="#l446">446</a> 10. Automatic Licensing of Downstream Recipients. +<a id="l447" href="#l447">447</a> +<a id="l448" href="#l448">448</a> Each time you convey a covered work, the recipient automatically +<a id="l449" href="#l449">449</a> receives a license from the original licensors, to run, modify and +<a id="l450" href="#l450">450</a> propagate that work, subject to this License. You are not responsible +<a id="l451" href="#l451">451</a> for enforcing compliance by third parties with this License. +<a id="l452" href="#l452">452</a> +<a id="l453" href="#l453">453</a> An "entity transaction" is a transaction transferring control of an +<a id="l454" href="#l454">454</a> organization, or substantially all assets of one, or subdividing an +<a id="l455" href="#l455">455</a> organization, or merging organizations. If propagation of a covered +<a id="l456" href="#l456">456</a> work results from an entity transaction, each party to that +<a id="l457" href="#l457">457</a> transaction who receives a copy of the work also receives whatever +<a id="l458" href="#l458">458</a> licenses to the work the party's predecessor in interest had or could +<a id="l459" href="#l459">459</a> give under the previous paragraph, plus a right to possession of the +<a id="l460" href="#l460">460</a> Corresponding Source of the work from the predecessor in interest, if +<a id="l461" href="#l461">461</a> the predecessor has it or can get it with reasonable efforts. +<a id="l462" href="#l462">462</a> +<a id="l463" href="#l463">463</a> You may not impose any further restrictions on the exercise of the +<a id="l464" href="#l464">464</a> rights granted or affirmed under this License. For example, you may +<a id="l465" href="#l465">465</a> not impose a license fee, royalty, or other charge for exercise of +<a id="l466" href="#l466">466</a> rights granted under this License, and you may not initiate litigation +<a id="l467" href="#l467">467</a> (including a cross-claim or counterclaim in a lawsuit) alleging that +<a id="l468" href="#l468">468</a> any patent claim is infringed by making, using, selling, offering for +<a id="l469" href="#l469">469</a> sale, or importing the Program or any portion of it. +<a id="l470" href="#l470">470</a> +<a id="l471" href="#l471">471</a> 11. Patents. +<a id="l472" href="#l472">472</a> +<a id="l473" href="#l473">473</a> A "contributor" is a copyright holder who authorizes use under this +<a id="l474" href="#l474">474</a> License of the Program or a work on which the Program is based. The +<a id="l475" href="#l475">475</a> work thus licensed is called the contributor's "contributor version". +<a id="l476" href="#l476">476</a> +<a id="l477" href="#l477">477</a> A contributor's "essential patent claims" are all patent claims +<a id="l478" href="#l478">478</a> owned or controlled by the contributor, whether already acquired or +<a id="l479" href="#l479">479</a> hereafter acquired, that would be infringed by some manner, permitted +<a id="l480" href="#l480">480</a> by this License, of making, using, or selling its contributor version, +<a id="l481" href="#l481">481</a> but do not include claims that would be infringed only as a +<a id="l482" href="#l482">482</a> consequence of further modification of the contributor version. For +<a id="l483" href="#l483">483</a> purposes of this definition, "control" includes the right to grant +<a id="l484" href="#l484">484</a> patent sublicenses in a manner consistent with the requirements of +<a id="l485" href="#l485">485</a> this License. +<a id="l486" href="#l486">486</a> +<a id="l487" href="#l487">487</a> Each contributor grants you a non-exclusive, worldwide, royalty-free +<a id="l488" href="#l488">488</a> patent license under the contributor's essential patent claims, to +<a id="l489" href="#l489">489</a> make, use, sell, offer for sale, import and otherwise run, modify and +<a id="l490" href="#l490">490</a> propagate the contents of its contributor version. +<a id="l491" href="#l491">491</a> +<a id="l492" href="#l492">492</a> In the following three paragraphs, a "patent license" is any express +<a id="l493" href="#l493">493</a> agreement or commitment, however denominated, not to enforce a patent +<a id="l494" href="#l494">494</a> (such as an express permission to practice a patent or covenant not to +<a id="l495" href="#l495">495</a> sue for patent infringement). To "grant" such a patent license to a +<a id="l496" href="#l496">496</a> party means to make such an agreement or commitment not to enforce a +<a id="l497" href="#l497">497</a> patent against the party. +<a id="l498" href="#l498">498</a> +<a id="l499" href="#l499">499</a> If you convey a covered work, knowingly relying on a patent license, +<a id="l500" href="#l500">500</a> and the Corresponding Source of the work is not available for anyone +<a id="l501" href="#l501">501</a> to copy, free of charge and under the terms of this License, through a +<a id="l502" href="#l502">502</a> publicly available network server or other readily accessible means, +<a id="l503" href="#l503">503</a> then you must either (1) cause the Corresponding Source to be so +<a id="l504" href="#l504">504</a> available, or (2) arrange to deprive yourself of the benefit of the +<a id="l505" href="#l505">505</a> patent license for this particular work, or (3) arrange, in a manner +<a id="l506" href="#l506">506</a> consistent with the requirements of this License, to extend the patent +<a id="l507" href="#l507">507</a> license to downstream recipients. "Knowingly relying" means you have +<a id="l508" href="#l508">508</a> actual knowledge that, but for the patent license, your conveying the +<a id="l509" href="#l509">509</a> covered work in a country, or your recipient's use of the covered work +<a id="l510" href="#l510">510</a> in a country, would infringe one or more identifiable patents in that +<a id="l511" href="#l511">511</a> country that you have reason to believe are valid. +<a id="l512" href="#l512">512</a> +<a id="l513" href="#l513">513</a> If, pursuant to or in connection with a single transaction or +<a id="l514" href="#l514">514</a> arrangement, you convey, or propagate by procuring conveyance of, a +<a id="l515" href="#l515">515</a> covered work, and grant a patent license to some of the parties +<a id="l516" href="#l516">516</a> receiving the covered work authorizing them to use, propagate, modify +<a id="l517" href="#l517">517</a> or convey a specific copy of the covered work, then the patent license +<a id="l518" href="#l518">518</a> you grant is automatically extended to all recipients of the covered +<a id="l519" href="#l519">519</a> work and works based on it. +<a id="l520" href="#l520">520</a> +<a id="l521" href="#l521">521</a> A patent license is "discriminatory" if it does not include within +<a id="l522" href="#l522">522</a> the scope of its coverage, prohibits the exercise of, or is +<a id="l523" href="#l523">523</a> conditioned on the non-exercise of one or more of the rights that are +<a id="l524" href="#l524">524</a> specifically granted under this License. You may not convey a covered +<a id="l525" href="#l525">525</a> work if you are a party to an arrangement with a third party that is +<a id="l526" href="#l526">526</a> in the business of distributing software, under which you make payment +<a id="l527" href="#l527">527</a> to the third party based on the extent of your activity of conveying +<a id="l528" href="#l528">528</a> the work, and under which the third party grants, to any of the +<a id="l529" href="#l529">529</a> parties who would receive the covered work from you, a discriminatory +<a id="l530" href="#l530">530</a> patent license (a) in connection with copies of the covered work +<a id="l531" href="#l531">531</a> conveyed by you (or copies made from those copies), or (b) primarily +<a id="l532" href="#l532">532</a> for and in connection with specific products or compilations that +<a id="l533" href="#l533">533</a> contain the covered work, unless you entered into that arrangement, +<a id="l534" href="#l534">534</a> or that patent license was granted, prior to 28 March 2007. +<a id="l535" href="#l535">535</a> +<a id="l536" href="#l536">536</a> Nothing in this License shall be construed as excluding or limiting +<a id="l537" href="#l537">537</a> any implied license or other defenses to infringement that may +<a id="l538" href="#l538">538</a> otherwise be available to you under applicable patent law. +<a id="l539" href="#l539">539</a> +<a id="l540" href="#l540">540</a> 12. No Surrender of Others' Freedom. +<a id="l541" href="#l541">541</a> +<a id="l542" href="#l542">542</a> If conditions are imposed on you (whether by court order, agreement or +<a id="l543" href="#l543">543</a> otherwise) that contradict the conditions of this License, they do not +<a id="l544" href="#l544">544</a> excuse you from the conditions of this License. If you cannot convey a +<a id="l545" href="#l545">545</a> covered work so as to satisfy simultaneously your obligations under this +<a id="l546" href="#l546">546</a> License and any other pertinent obligations, then as a consequence you may +<a id="l547" href="#l547">547</a> not convey it at all. For example, if you agree to terms that obligate you +<a id="l548" href="#l548">548</a> to collect a royalty for further conveying from those to whom you convey +<a id="l549" href="#l549">549</a> the Program, the only way you could satisfy both those terms and this +<a id="l550" href="#l550">550</a> License would be to refrain entirely from conveying the Program. +<a id="l551" href="#l551">551</a> +<a id="l552" href="#l552">552</a> 13. Use with the GNU Affero General Public License. +<a id="l553" href="#l553">553</a> +<a id="l554" href="#l554">554</a> Notwithstanding any other provision of this License, you have +<a id="l555" href="#l555">555</a> permission to link or combine any covered work with a work licensed +<a id="l556" href="#l556">556</a> under version 3 of the GNU Affero General Public License into a single +<a id="l557" href="#l557">557</a> combined work, and to convey the resulting work. The terms of this +<a id="l558" href="#l558">558</a> License will continue to apply to the part which is the covered work, +<a id="l559" href="#l559">559</a> but the special requirements of the GNU Affero General Public License, +<a id="l560" href="#l560">560</a> section 13, concerning interaction through a network will apply to the +<a id="l561" href="#l561">561</a> combination as such. +<a id="l562" href="#l562">562</a> +<a id="l563" href="#l563">563</a> 14. Revised Versions of this License. +<a id="l564" href="#l564">564</a> +<a id="l565" href="#l565">565</a> The Free Software Foundation may publish revised and/or new versions of +<a id="l566" href="#l566">566</a> the GNU General Public License from time to time. Such new versions will +<a id="l567" href="#l567">567</a> be similar in spirit to the present version, but may differ in detail to +<a id="l568" href="#l568">568</a> address new problems or concerns. +<a id="l569" href="#l569">569</a> +<a id="l570" href="#l570">570</a> Each version is given a distinguishing version number. If the +<a id="l571" href="#l571">571</a> Program specifies that a certain numbered version of the GNU General +<a id="l572" href="#l572">572</a> Public License "or any later version" applies to it, you have the +<a id="l573" href="#l573">573</a> option of following the terms and conditions either of that numbered +<a id="l574" href="#l574">574</a> version or of any later version published by the Free Software +<a id="l575" href="#l575">575</a> Foundation. If the Program does not specify a version number of the +<a id="l576" href="#l576">576</a> GNU General Public License, you may choose any version ever published +<a id="l577" href="#l577">577</a> by the Free Software Foundation. +<a id="l578" href="#l578">578</a> +<a id="l579" href="#l579">579</a> If the Program specifies that a proxy can decide which future +<a id="l580" href="#l580">580</a> versions of the GNU General Public License can be used, that proxy's +<a id="l581" href="#l581">581</a> public statement of acceptance of a version permanently authorizes you +<a id="l582" href="#l582">582</a> to choose that version for the Program. +<a id="l583" href="#l583">583</a> +<a id="l584" href="#l584">584</a> Later license versions may give you additional or different +<a id="l585" href="#l585">585</a> permissions. However, no additional obligations are imposed on any +<a id="l586" href="#l586">586</a> author or copyright holder as a result of your choosing to follow a +<a id="l587" href="#l587">587</a> later version. +<a id="l588" href="#l588">588</a> +<a id="l589" href="#l589">589</a> 15. Disclaimer of Warranty. +<a id="l590" href="#l590">590</a> +<a id="l591" href="#l591">591</a> THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +<a id="l592" href="#l592">592</a> APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +<a id="l593" href="#l593">593</a> HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +<a id="l594" href="#l594">594</a> OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +<a id="l595" href="#l595">595</a> THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +<a id="l596" href="#l596">596</a> PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +<a id="l597" href="#l597">597</a> IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +<a id="l598" href="#l598">598</a> ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +<a id="l599" href="#l599">599</a> +<a id="l600" href="#l600">600</a> 16. Limitation of Liability. +<a id="l601" href="#l601">601</a> +<a id="l602" href="#l602">602</a> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +<a id="l603" href="#l603">603</a> WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +<a id="l604" href="#l604">604</a> THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +<a id="l605" href="#l605">605</a> GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +<a id="l606" href="#l606">606</a> USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +<a id="l607" href="#l607">607</a> DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +<a id="l608" href="#l608">608</a> PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +<a id="l609" href="#l609">609</a> EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +<a id="l610" href="#l610">610</a> SUCH DAMAGES. +<a id="l611" href="#l611">611</a> +<a id="l612" href="#l612">612</a> 17. Interpretation of Sections 15 and 16. +<a id="l613" href="#l613">613</a> +<a id="l614" href="#l614">614</a> If the disclaimer of warranty and limitation of liability provided +<a id="l615" href="#l615">615</a> above cannot be given local legal effect according to their terms, +<a id="l616" href="#l616">616</a> reviewing courts shall apply local law that most closely approximates +<a id="l617" href="#l617">617</a> an absolute waiver of all civil liability in connection with the +<a id="l618" href="#l618">618</a> Program, unless a warranty or assumption of liability accompanies a +<a id="l619" href="#l619">619</a> copy of the Program in return for a fee. +<a id="l620" href="#l620">620</a> +<a id="l621" href="#l621">621</a> END OF TERMS AND CONDITIONS +<a id="l622" href="#l622">622</a> +<a id="l623" href="#l623">623</a> How to Apply These Terms to Your New Programs +<a id="l624" href="#l624">624</a> +<a id="l625" href="#l625">625</a> If you develop a new program, and you want it to be of the greatest +<a id="l626" href="#l626">626</a> possible use to the public, the best way to achieve this is to make it +<a id="l627" href="#l627">627</a> free software which everyone can redistribute and change under these terms. +<a id="l628" href="#l628">628</a> +<a id="l629" href="#l629">629</a> To do so, attach the following notices to the program. It is safest +<a id="l630" href="#l630">630</a> to attach them to the start of each source file to most effectively +<a id="l631" href="#l631">631</a> state the exclusion of warranty; and each file should have at least +<a id="l632" href="#l632">632</a> the "copyright" line and a pointer to where the full notice is found. +<a id="l633" href="#l633">633</a> +<a id="l634" href="#l634">634</a> <one line to give the program's name and a brief idea of what it does.> +<a id="l635" href="#l635">635</a> Copyright (C) <year> <name of author> +<a id="l636" href="#l636">636</a> +<a id="l637" href="#l637">637</a> This program is free software: you can redistribute it and/or modify +<a id="l638" href="#l638">638</a> it under the terms of the GNU General Public License as published by +<a id="l639" href="#l639">639</a> the Free Software Foundation, either version 3 of the License, or +<a id="l640" href="#l640">640</a> (at your option) any later version. +<a id="l641" href="#l641">641</a> +<a id="l642" href="#l642">642</a> This program is distributed in the hope that it will be useful, +<a id="l643" href="#l643">643</a> but WITHOUT ANY WARRANTY; without even the implied warranty of +<a id="l644" href="#l644">644</a> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +<a id="l645" href="#l645">645</a> GNU General Public License for more details. +<a id="l646" href="#l646">646</a> +<a id="l647" href="#l647">647</a> You should have received a copy of the GNU General Public License +<a id="l648" href="#l648">648</a> along with this program. If not, see <https://www.gnu.org/licenses/>. +<a id="l649" href="#l649">649</a> +<a id="l650" href="#l650">650</a> Also add information on how to contact you by electronic and paper mail. +<a id="l651" href="#l651">651</a> +<a id="l652" href="#l652">652</a> If the program does terminal interaction, make it output a short +<a id="l653" href="#l653">653</a> notice like this when it starts in an interactive mode: +<a id="l654" href="#l654">654</a> +<a id="l655" href="#l655">655</a> <program> Copyright (C) <year> <name of author> +<a id="l656" href="#l656">656</a> This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +<a id="l657" href="#l657">657</a> This is free software, and you are welcome to redistribute it +<a id="l658" href="#l658">658</a> under certain conditions; type `show c' for details. +<a id="l659" href="#l659">659</a> +<a id="l660" href="#l660">660</a> The hypothetical commands `show w' and `show c' should show the appropriate +<a id="l661" href="#l661">661</a> parts of the General Public License. Of course, your program's commands +<a id="l662" href="#l662">662</a> might be different; for a GUI interface, you would use an "about box". +<a id="l663" href="#l663">663</a> +<a id="l664" href="#l664">664</a> You should also get your employer (if you work as a programmer) or school, +<a id="l665" href="#l665">665</a> if any, to sign a "copyright disclaimer" for the program, if necessary. +<a id="l666" href="#l666">666</a> For more information on this, and how to apply and follow the GNU GPL, see +<a id="l667" href="#l667">667</a> <https://www.gnu.org/licenses/>. +<a id="l668" href="#l668">668</a> +<a id="l669" href="#l669">669</a> The GNU General Public License does not permit incorporating your program +<a id="l670" href="#l670">670</a> into proprietary programs. If your program is a subroutine library, you +<a id="l671" href="#l671">671</a> may consider it more useful to permit linking proprietary applications with +<a id="l672" href="#l672">672</a> the library. If this is what you want to do, use the GNU Lesser General +<a id="l673" href="#l673">673</a> Public License instead of this License. But first, please read +<a id="l674" href="#l674">674</a> <https://www.gnu.org/licenses/why-not-lgpl.html>.</pre> +</div></body></html> diff --git a/git/CSV/file/README.md.html b/git/CSV/file/README.md.html new file mode 100644 index 0000000..05d02e5 --- /dev/null +++ b/git/CSV/file/README.md.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/README.md - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>README.md (57 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> [Go to the homepage.](http://spensertruex.com/CSV.html) +<a id="l2" href="#l2">2</a> </pre> +</div></body></html> diff --git a/git/CSV/file/csv.asd.html b/git/CSV/file/csv.asd.html new file mode 100644 index 0000000..ac214b3 --- /dev/null +++ b/git/CSV/file/csv.asd.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/csv.asd - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>csv.asd (329 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> (asdf:defsystem :csv +<a id="l2" href="#l2">2</a> :version "0.1.0" +<a id="l3" href="#l3">3</a> :description "Read CSV into lists natively. Convert CSV into lists dangerously." +<a id="l4" href="#l4">4</a> :author "Spenser Truex spensertruex.com" +<a id="l5" href="#l5">5</a> :serial t +<a id="l6" href="#l6">6</a> :license "GNU GPL, version 3" +<a id="l7" href="#l7">7</a> :components ((:file "package") +<a id="l8" href="#l8">8</a> (:file "utils") +<a id="l9" href="#l9">9</a> (:file "csv")))</pre> +</div></body></html> diff --git a/git/CSV/file/csv.lisp.html b/git/CSV/file/csv.lisp.html new file mode 100644 index 0000000..46c6eab --- /dev/null +++ b/git/CSV/file/csv.lisp.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/csv.lisp - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>csv.lisp (2466 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> (in-package :csv) +<a id="l2" href="#l2">2</a> (defun make-escapep (prev curr) +<a id="l3" href="#l3">3</a> (char= #\" prev curr)) +<a id="l4" href="#l4">4</a> (defun end-tokenp (prev curr) +<a id="l5" href="#l5">5</a> (declare (ignore curr)) +<a id="l6" href="#l6">6</a> (char= #\" prev)) +<a id="l7" href="#l7">7</a> (defun openp (prev curr) +<a id="l8" href="#l8">8</a> (declare (ignore curr)) +<a id="l9" href="#l9">9</a> (char= #\" prev)) +<a id="l10" href="#l10">10</a> (defun str->list (str) +<a id="l11" href="#l11">11</a> (labels ((inner (str acc len) +<a id="l12" href="#l12">12</a> (if (= 0 len) +<a id="l13" href="#l13">13</a> (nreverse acc) +<a id="l14" href="#l14">14</a> (inner (subseq str 1) (cons (elt str 0) acc) (1- len))))) +<a id="l15" href="#l15">15</a> (inner str nil (length str)))) +<a id="l16" href="#l16">16</a> (let ((in nil) +<a id="l17" href="#l17">17</a> (escape nil)) +<a id="l18" href="#l18">18</a> (setf (fdefinition 'switches) +<a id="l19" href="#l19">19</a> (lambda (prev curr str) +<a id="l20" href="#l20">20</a> (let ((str (if (array-has-fill-pointer-p str) +<a id="l21" href="#l21">21</a> str +<a id="l22" href="#l22">22</a> (make-array (length str) +<a id="l23" href="#l23">23</a> :fill-pointer 0 +<a id="l24" href="#l24">24</a> :adjustable t +<a id="l25" href="#l25">25</a> :element-type 'character +<a id="l26" href="#l26">26</a> :initial-contents (str->list str))))) +<a id="l27" href="#l27">27</a> (if (null curr) +<a id="l28" href="#l28">28</a> (progn (setf in nil escape nil) str) +<a id="l29" href="#l29">29</a> (if in +<a id="l30" href="#l30">30</a> (if escape +<a id="l31" href="#l31">31</a> (progn (toggle escape) (push-on prev str)) +<a id="l32" href="#l32">32</a> (if (make-escapep prev curr) +<a id="l33" href="#l33">33</a> (progn (toggle escape) str) +<a id="l34" href="#l34">34</a> (if (end-tokenp prev curr) +<a id="l35" href="#l35">35</a> (progn (toggle in) (push-on #\Nul str)) +<a id="l36" href="#l36">36</a> (push-on prev str)))) +<a id="l37" href="#l37">37</a> (if (openp prev curr) +<a id="l38" href="#l38">38</a> (progn (toggle in) str) +<a id="l39" href="#l39">39</a> str))))))) +<a id="l40" href="#l40">40</a> (defun splice (str) +<a id="l41" href="#l41">41</a> (labels ((inner (str acc!) +<a id="l42" href="#l42">42</a> (if (string= "" str) +<a id="l43" href="#l43">43</a> (nreverse acc!) +<a id="l44" href="#l44">44</a> (let ((res (search (string #\Nul) str))) +<a id="l45" href="#l45">45</a> (inner (subseq str (1+ res)) (push (subseq str 0 res) acc!)))))) +<a id="l46" href="#l46">46</a> (inner str nil))) +<a id="l47" href="#l47">47</a> (make-reader my-csv (stream #\# #\!) +<a id="l48" href="#l48">48</a> (macrolet ((once (&body body) ``',,@body)) +<a id="l49" href="#l49">49</a> (do ((prev #1= (read-char stream nil nil) curr) +<a id="l50" href="#l50">50</a> (curr #1# #1#) +<a id="l51" href="#l51">51</a> (str (make-array 0 :adjustable t :element-type 'character) +<a id="l52" href="#l52">52</a> (switches prev curr str))) +<a id="l53" href="#l53">53</a> ((and (char= curr #\#) +<a id="l54" href="#l54">54</a> (char= prev #\!)) (once (splice (switches nil nil str))))))) +<a id="l55" href="#l55">55</a> (defun read-to-string (stream) +<a id="l56" href="#l56">56</a> (with-output-to-string (s) +<a id="l57" href="#l57">57</a> (dolines (line stream) +<a id="l58" href="#l58">58</a> (princ line s) +<a id="l59" href="#l59">59</a> (format s "~%")))) +<a id="l60" href="#l60">60</a> (defun slurp-csv (path) +<a id="l61" href="#l61">61</a> "Read in a CSV file to string. Resource intensive." +<a id="l62" href="#l62">62</a> (with-open-file (s path) +<a id="l63" href="#l63">63</a> (concatenate 'string "#!" (read-to-string s) "!#"))) +<a id="l64" href="#l64">64</a> (defun dequote (list) +<a id="l65" href="#l65">65</a> (if (eql 'quote (car list)) +<a id="l66" href="#l66">66</a> (cadr list) +<a id="l67" href="#l67">67</a> list)) +<a id="l68" href="#l68">68</a> (defun slurp (path) +<a id="l69" href="#l69">69</a> "Read in a CSV file to list. Resource intensive." +<a id="l70" href="#l70">70</a> (dequote (read-from-string (slurp-csv path))))</pre> +</div></body></html> diff --git a/git/CSV/file/example.csv.html b/git/CSV/file/example.csv.html new file mode 100644 index 0000000..a266a9b --- /dev/null +++ b/git/CSV/file/example.csv.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/example.csv - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>example.csv (46 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> "example","csv","list","result","like","this"</pre> +</div></body></html> diff --git a/git/CSV/file/package.lisp.html b/git/CSV/file/package.lisp.html new file mode 100644 index 0000000..9c73782 --- /dev/null +++ b/git/CSV/file/package.lisp.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/package.lisp - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>package.lisp (74 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> (in-package :cl-user) +<a id="l2" href="#l2">2</a> (defpackage #:csv +<a id="l3" href="#l3">3</a> (:use #:cl) +<a id="l4" href="#l4">4</a> (:export :slurp))</pre> +</div></body></html> diff --git a/git/CSV/file/utils.lisp.html b/git/CSV/file/utils.lisp.html new file mode 100644 index 0000000..9d0b56d --- /dev/null +++ b/git/CSV/file/utils.lisp.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV/utils.lisp - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../../CSV/index.html">Log</a> | <a href="../../CSV/files.html">Files</a> | <a href="../../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<p>utils.lisp (796 bytes)</p><pre class="src"><a id="l1" href="#l1">1</a> (in-package :csv) +<a id="l2" href="#l2">2</a> (defmacro dolines ((var stream) &body body) +<a id="l3" href="#l3">3</a> `(do ((,var #1=(read-line ,stream nil nil) #1#)) +<a id="l4" href="#l4">4</a> ((null ,var)) +<a id="l5" href="#l5">5</a> ,@body)) +<a id="l6" href="#l6">6</a> (defmacro with-gensyms (symbols &body body) +<a id="l7" href="#l7">7</a> "Create gensyms for those symbols." +<a id="l8" href="#l8">8</a> `(let (,@(mapcar #'(lambda (sym) +<a id="l9" href="#l9">9</a> `(,sym ',(gensym))) symbols)) +<a id="l10" href="#l10">10</a> ,@body)) +<a id="l11" href="#l11">11</a> (defmacro make-reader (name (stream-var dispatch-1 dispatch-2) &body body) +<a id="l12" href="#l12">12</a> "Simplify the reader macro creation process in most cases." +<a id="l13" href="#l13">13</a> (with-gensyms (sub-char numarg) +<a id="l14" href="#l14">14</a> `(progn (defun ,name (,stream-var ,sub-char ,numarg) +<a id="l15" href="#l15">15</a> (declare (ignore ,sub-char ,numarg)) +<a id="l16" href="#l16">16</a> ,@body) +<a id="l17" href="#l17">17</a> (set-dispatch-macro-character ,dispatch-1 ,dispatch-2 #',name)))) +<a id="l18" href="#l18">18</a> (defun push-on (elt stack) +<a id="l19" href="#l19">19</a> (vector-push-extend elt stack) stack) +<a id="l20" href="#l20">20</a> (define-modify-macro toggle () not "Flipping vars.")</pre> +</div></body></html> diff --git a/git/CSV/files.html b/git/CSV/files.html new file mode 100644 index 0000000..a220f0d --- /dev/null +++ b/git/CSV/files.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV - Recently Written</title> +<link rel="stylesheet" href="../stagit.css" /> +</head><body> +<div id="top"><a href="../../index.html">Recently Written</a> · <a href="../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../CSV/index.html">Log</a> | <a href="../CSV/files.html">Files</a> | <a href="../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<table><thead><tr><td>Mode</td><td>Name</td><td>Size</td></tr></thead><tbody><tr><td>100644</td><td><a href="file/.gitignore.html">.gitignore</a></td><td class="num">170</td></tr><tr><td>100644</td><td><a href="file/LICENSE.html">LICENSE</a></td><td class="num">35149</td></tr><tr><td>100644</td><td><a href="file/README.md.html">README.md</a></td><td class="num">57</td></tr><tr><td>100644</td><td><a href="file/csv.asd.html">csv.asd</a></td><td class="num">329</td></tr><tr><td>100644</td><td><a href="file/csv.lisp.html">csv.lisp</a></td><td class="num">2466</td></tr><tr><td>100644</td><td><a href="file/example.csv.html">example.csv</a></td><td class="num">46</td></tr><tr><td>100644</td><td><a href="file/package.lisp.html">package.lisp</a></td><td class="num">74</td></tr><tr><td>100644</td><td><a href="file/utils.lisp.html">utils.lisp</a></td><td class="num">796</td></tr></tbody></table> +</div></body></html> diff --git a/git/CSV/index.html b/git/CSV/index.html new file mode 100644 index 0000000..2581acd --- /dev/null +++ b/git/CSV/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV - Recently Written</title> +<link rel="stylesheet" href="../stagit.css" /> +</head><body> +<div id="top"><a href="../../index.html">Recently Written</a> · <a href="../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../CSV/index.html">Log</a> | <a href="../CSV/files.html">Files</a> | <a href="../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<table><thead><tr><td>Date</td><td>Commit message</td><td>Author</td></tr></thead><tbody><tr><td>2019-01-07 14:05</td><td><a href="commit/f122dd6eeb0eb3a971ae7b02bb3c9abc9c073c51.html">Update csv.asd</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 13:58</td><td><a href="commit/2838a2e296e94912acb9ec834a3373fa1aa7ea38.html">Merge pull request #3 from equwal/add-license-1</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 13:54</td><td><a href="commit/8b3dae44e341aeb4e3840914f35608c1e5c1c2de.html">Create LICENSE</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 12:22</td><td><a href="commit/73c0ec1dfe5de713b99378928b361edc89c59ada.html">Merge pull request #2 from equwal/testing</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 12:21</td><td><a href="commit/6deca0d81e38d24fe7cd0bc062a53c1ff4d6818c.html">Fix quoting bug and homepage on README.</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 12:14</td><td><a href="commit/2130c21d376f5032246677667f456b1ac43018b1.html">Merge pull request #1 from equwal/testing</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 12:07</td><td><a href="commit/bdaa1297fd38f0ad8dfab76377739f1bc08d47dd.html">typo</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 12:07</td><td><a href="commit/19cbb6dcc701ef4714ddcd2e83f5aaaa7d34f13f.html">Homepage</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 11:55</td><td><a href="commit/374842de191e56f2f0f5e14100f093846068aaca.html">Fix quoting bug</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 11:52</td><td><a href="commit/4ab4cab04918986b3453b7e8c95999cfcf68134f.html">Include example.csv</a></td><td>Spenser Truex</td></tr><tr><td>2019-01-07 11:38</td><td><a href="commit/ac0bf7108272763fa16a318d8cf7bb8f53c727cc.html">Initial</a></td><td>Spenser Truex</td></tr></tbody></table> +</div></body></html> diff --git a/git/CSV/refs.html b/git/CSV/refs.html new file mode 100644 index 0000000..e030c43 --- /dev/null +++ b/git/CSV/refs.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>CSV - Recently Written</title> +<link rel="stylesheet" href="../stagit.css" /> +</head><body> +<div id="top"><a href="../../index.html">Recently Written</a> · <a href="../index.html">git</a></div> +<h1>CSV</h1><span class="desc">Convert CSV (in a reader macro, or in a file) in to Lisp lists.</span><p class="url">git clone https://github.com/equwal/CSV</p><p><a href="../CSV/index.html">Log</a> | <a href="../CSV/files.html">Files</a> | <a href="../CSV/refs.html">Refs</a></p><hr/> +<div id="content"> +<table><thead><tr><td>Name</td><td>Type</td><td>Date</td><td>Commit</td></tr></thead><tbody><tr><td>add-license-1</td><td>commit</td><td>2019-01-07</td><td>8b3dae4</td></tr><tr><td>master</td><td>commit</td><td>2019-01-07</td><td>f122dd6</td></tr><tr><td>testing</td><td>commit</td><td>2019-01-07</td><td>6deca0d</td></tr></tbody></table> +</div></body></html> diff --git a/git/Forthe/commit/0404a89d7d4038d12413b67b47aababbd69fbd55.html b/git/Forthe/commit/0404a89d7d4038d12413b67b47aababbd69fbd55.html new file mode 100644 index 0000000..87b3824 --- /dev/null +++ b/git/Forthe/commit/0404a89d7d4038d12413b67b47aababbd69fbd55.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Forthe 0404a89d - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>Forthe</h1><span class="desc">Forth-like DSL.</span><p class="url">git clone https://github.com/equwal/Forthe</p><p><a href="../../Forthe/index.html">Log</a> | <a href="../../Forthe/files.html">Files</a> | <a href="../../Forthe/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 0404a89d7d4038d12413b67b47aababbd69fbd55 +Spenser Truex <spensertruexonline@gmail.com> +2019-06-24 12:01:58 -0700 + +Nominative case, yeee. + +</pre><pre> README.org | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +</pre><pre>diff --git a/README.org b/README.org +index 7293a77..67495ed 100644 +--- a/README.org ++++ b/README.org +<span class="h">@@ -3,7 +3,7 @@</span> + #+EMAIL: web@spensertruex.com + + #+BEGIN_QUOTE +<span class="d">-Go [F]orth[e] and thee shall find.</span> +<span class="a">+Go Forth[e] and ye shall find.</span> + #+END_QUOTE + + **** Version 0.0.2</pre> +</div></body></html> diff --git a/git/Forthe/commit/0880bcfa3576c3a8cc2670bc6c0b0c3834c5ec7c.html b/git/Forthe/commit/0880bcfa3576c3a8cc2670bc6c0b0c3834c5ec7c.html new file mode 100644 index 0000000..dc5062a --- /dev/null +++ b/git/Forthe/commit/0880bcfa3576c3a8cc2670bc6c0b0c3834c5ec7c.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Forthe 0880bcfa - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>Forthe</h1><span class="desc">Forth-like DSL.</span><p class="url">git clone https://github.com/equwal/Forthe</p><p><a href="../../Forthe/index.html">Log</a> | <a href="../../Forthe/files.html">Files</a> | <a href="../../Forthe/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 0880bcfa3576c3a8cc2670bc6c0b0c3834c5ec7c +Spenser Truex <spensertruexonline@gmail.com> +2018-12-06 13:33:54 -0800 + +Lambda bug. + +</pre><pre> eforth.el | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) +</pre><pre>diff --git a/eforth.el b/eforth.el +index 64962ce..06a2ae7 100644 +--- a/eforth.el ++++ b/eforth.el +<span class="h">@@ -5,7 +5,9 @@</span> + (defun inner-eforth (lang list) + "Forth without a return stack." + (let ((s)) +<span class="d">- (labels ((fn (fn) (if (symbolp fn) (symbol-function fn) fn)))</span> +<span class="a">+ (labels ((fn (fn) (if (functionp fn)</span> +<span class="a">+ fn</span> +<span class="a">+ (symbol-function fn))))</span> + (dolist (i list) + (if (assoc i lang) + (let ((fn (cdr (assoc i lang)))) +<span class="h">@@ -33,9 +35,9 @@</span> + (del . delete-other-windows) + (cf . make-frame-command) + (nf . other-frame)) +<span class="d">- (cf del r r wr wr r d wr d wl wl d wl d wr n wr n wr n wl wl wl wd n</span> +<span class="d">- wr n wr n wr n wl wl wl wu nf)</span> +<span class="d">- ;; (cf del r r wr wr r d wr d wl wl d wl d</span> +<span class="d">- ;; n wr n wr n wr n wd n wl n wl n wl n wu)</span> +<span class="a">+ ;; (cf nf del r r wr wr r d wr d wl wl d wl d wr n wr n wr n wl wl wl wd n</span> +<span class="a">+ ;; wr n wr n wr n wl wl wl wu nf)</span> +<span class="a">+ (cf del r r wr wr r d wr d wl wl d wl d</span> +<span class="a">+ n wr n wr n wr n wd n wl n wl n wl n wu)</span> + )) + (provide 'eforth)</pre> +</div></body></html> diff --git a/git/Forthe/commit/09f4aaaedc5a22cb1a9b74ffc67cc90cad21f473.html b/git/Forthe/commit/09f4aaaedc5a22cb1a9b74ffc67cc90cad21f473.html new file mode 100644 index 0000000..412ccf4 --- /dev/null +++ b/git/Forthe/commit/09f4aaaedc5a22cb1a9b74ffc67cc90cad21f473.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Forthe 09f4aaae - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>Forthe</h1><span class="desc">Forth-like DSL.</span><p class="url">git clone https://github.com/equwal/Forthe</p><p><a href="../../Forthe/index.html">Log</a> | <a href="../../Forthe/files.html">Files</a> | <a href="../../Forthe/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 09f4aaaedc5a22cb1a9b74ffc67cc90cad21f473 +Spenser Truex <spensertruexonline@gmail.com> +2018-12-05 20:51:38 -0800 + +indent + +</pre><pre> README.md | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) +</pre><pre>diff --git a/README.md b/README.md +index 848c62b..e32d843 100644 +--- a/README.md ++++ b/README.md +<span class="h">@@ -16,15 +16,15 @@ example:</span> + (defun 8pan () + (interactive) + (eforth '((n . (lambda () (switch-to-buffer nil))) +<span class="d">- (d . split-window-below)</span> +<span class="d">- (r . split-window-right)</span> +<span class="d">- (wr . windmove-right)</span> +<span class="d">- (wl . windmove-left)</span> +<span class="d">- (wd . windmove-down)</span> +<span class="d">- (wu . windmove-up)</span> +<span class="d">- (del . delete-other-windows)</span> +<span class="d">- (cf . make-frame-command)</span> +<span class="d">- (nf . other-frame))</span> +<span class="a">+ (d . split-window-below)</span> +<span class="a">+ (r . split-window-right)</span> +<span class="a">+ (wr . windmove-right)</span> +<span class="a">+ (wl . windmove-left)</span> +<span class="a">+ (wd . windmove-down)</span> +<span class="a">+ (wu . windmove-up)</span> +<span class="a">+ (del . delete-other-windows)</span> +<span class="a">+ (cf . make-frame-command)</span> +<span class="a">+ (nf . other-frame))</span> + (cf del r r wr wr r d wr d wl wl d wl d wr n + wr n wr n wl wl wl wd n wr n wr n wr n wl wl wl wu nf))) + </pre> +</div></body></html> diff --git a/git/Forthe/commit/12860a6217ad7bcc00fdf69e4d90b3592f8d96dd.html b/git/Forthe/commit/12860a6217ad7bcc00fdf69e4d90b3592f8d96dd.html new file mode 100644 index 0000000..19146cd --- /dev/null +++ b/git/Forthe/commit/12860a6217ad7bcc00fdf69e4d90b3592f8d96dd.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Forthe 12860a62 - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>Forthe</h1><span class="desc">Forth-like DSL.</span><p class="url">git clone https://github.com/equwal/Forthe</p><p><a href="../../Forthe/index.html">Log</a> | <a href="../../Forthe/files.html">Files</a> | <a href="../../Forthe/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 12860a6217ad7bcc00fdf69e4d90b3592f8d96dd +Spenser Truex <spensertruexonline@gmail.com> +2019-06-23 11:09:22 -0700 + +githu->github. + +</pre><pre> README.org | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +</pre><pre>diff --git a/README.org b/README.org +index e1ccaa4..b7fdb46 100644 +--- a/README.org ++++ b/README.org +<span class="h">@@ -5,7 +5,7 @@</span> + + Docs available as: [[https://spensertruex.com/eforth][HTML]] | [[https://github.com/equwal/eforth/blob/master/README.org][ORG-mode]] | [[https://github.com/equwal/eforth/blob/master/eforth.el][Plain Text]] + +<span class="d">-Code on [[https://githu.com/equwal/eforth][github]]</span> +<span class="a">+Code on [[https://github.com/equwal/eforth][github]]</span> + + This is an implementation of an elisp-based FORTH. This means that elisp + is used to write the function definitions. In fact, no FORTH function</pre> +</div></body></html> diff --git a/git/Forthe/commit/238411ca22768e51528942867fe6ea73351fe264.html b/git/Forthe/commit/238411ca22768e51528942867fe6ea73351fe264.html new file mode 100644 index 0000000..ff81a4a --- /dev/null +++ b/git/Forthe/commit/238411ca22768e51528942867fe6ea73351fe264.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Forthe 238411ca - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>Forthe</h1><span class="desc">Forth-like DSL.</span><p class="url">git clone https://github.com/equwal/Forthe</p><p><a href="../../Forthe/index.html">Log</a> | <a href="../../Forthe/files.html">Files</a> | <a href="../../Forthe/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 238411ca22768e51528942867fe6ea73351fe264 +Spenser Truex <spensertruexonline@gmail.com> +2018-12-05 20:54:00 -0800 + +Indent. + +</pre><pre> README.md | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) +</pre><pre>diff --git a/README.md b/README.md +index 277e734..4ef942f 100644 +--- a/README.md ++++ b/README.md +<span class="h">@@ -16,15 +16,15 @@ example:</span> + (defun 8pan () + (interactive) + (eforth '((n . (lambda () (switch-to-buffer nil))) +<span class="d">- (d . split-window-below)</span> +<span class="d">- (r . split-window-right)</span> +<span class="d">- (wr . windmove-right)</span> +<span class="d">- (wl . windmove-left)</span> +<span class="d">- (wd . windmove-down)</span> +<span class="d">- (wu . windmove-up)</span> +<span class="d">- (del . delete-other-windows)</span> +<span class="d">- (cf . make-frame-command)</span> +<span class="d">- (nf . other-frame))</span> +<span class="a">+ (d . split-window-below)</span> +<span class="a">+ (r . split-window-right)</span> +<span class="a">+ (wr . windmove-right)</span> +<span class="a">+ (wl . windmove-left)</span> +<span class="a">+ (wd . windmove-down)</span> +<span class="a">+ (wu . windmove-up)</span> +<span class="a">+ (del . delete-other-windows)</span> +<span class="a">+ (cf . make-frame-command)</span> +<span class="a">+ (nf . other-frame))</span> + (cf del r r wr wr r d wr d wl wl d wl d wr n + wr n wr n wl wl wl wd n wr n wr n wr n wl wl wl wu nf))) + </pre> +</div></body></html> diff --git a/git/Forthe/commit/2af5cc9aa160b85bcb45106fdf2e01b10010d99f.html b/git/Forthe/commit/2af5cc9aa160b85bcb45106fdf2e01b10010d99f.html new file mode 100644 index 0000000..3a2c04b --- /dev/null +++ b/git/Forthe/commit/2af5cc9aa160b85bcb45106fdf2e01b10010d99f.html @@ -0,0 +1,244 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Forthe 2af5cc9a - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>Forthe</h1><span class="desc">Forth-like DSL.</span><p class="url">git clone https://github.com/equwal/Forthe</p><p><a href="../../Forthe/index.html">Log</a> | <a href="../../Forthe/files.html">Files</a> | <a href="../../Forthe/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 2af5cc9aa160b85bcb45106fdf2e01b10010d99f +Spenser Truex <spensertruexonline@gmail.com> +2019-06-22 20:13:19 -0700 + +Pro-melpa implementation and boilerplate. + +</pre><pre> README.org | 6 +- + eforth.el | 184 ++++++++++++++++++++++++++++++++++++++++++++++++++----------- + 2 files changed, 155 insertions(+), 35 deletions(-) +</pre><pre>diff --git a/README.org b/README.org +index 8da6d34..bafd536 100644 +--- a/README.org ++++ b/README.org +<span class="h">@@ -55,7 +55,8 @@ stack.</span> + (cf . make-frame-command) + (nf . other-frame)) + (cf del r r wr wr r d wr d wl wl d wl d wr n +<span class="d">- wr n wr n wl wl wl wd n wr n wr n wr n wl wl wl wu nf)))</span> +<span class="a">+ wr n wr n wl wl wl wd n wr n wr n wr n wl</span> +<span class="a">+ wl wl wu nf)))</span> + #+END_SRC + =M-x 8pan= will produce a new frame with eight panels (emacs-speak: + "windows"). Here is how it works: +<span class="h">@@ -85,9 +86,6 @@ org--insert-structure-template-unique-keys</span> + #+END_SRC + (a real function in the org mode) result in extremely verbose code. Using short, + lexical names can reduce code size by a large portion. +<span class="d">-#+BEGIN_SRC emacs-lisp :tangle yes</span> +<span class="d">-</span> +<span class="d">-#+END_SRC</span> + ** Compiles to Elisp. + Elisp is hated by many, and for good reason. It is an outdated and clunky lisp. + Many have tried and failed to port Emacs to Common Lisp, without success. Forth, +diff --git a/eforth.el b/eforth.el +index 67a55b7..9eeb74b 100644 +--- a/eforth.el ++++ b/eforth.el +<span class="h">@@ -1,43 +1,165 @@</span> +<span class="d">-(defun add-to-each (it list-of-lists)</span> +<span class="d">- (let ((l))</span> +<span class="d">- (dolist (i list-of-lists (nreverse l))</span> +<span class="d">- (push (list it i) l))))</span> +<span class="d">-(defun inner-eforth (lang list)</span> +<span class="d">- "Forth without a return stack."</span> +<span class="a">+;;; eforth.el --- FORTH in elisp. -*- lexical-binding: t; -*-</span> +<span class="a">+;; Copyright (C) 2019 Spenser Truex</span> +<span class="a">+;; Author: Spenser Truex <web@spensertruex.com></span> +<span class="a">+;; Created: 2019-06-22</span> +<span class="a">+;; Version: 0.0.1</span> +<span class="a">+;; Package-Requires: ((emacs "24"))</span> +<span class="a">+;; Keywords:</span> +<span class="a">+;; URL: https://</span> +<span class="a">+;; Homepage:</span> +<span class="a">+;; This file is not part of GNU Emacs.</span> +<span class="a">+;; This file is free software.</span> +<span class="a">+;; License:</span> +<span class="a">+;; Licensed with the GNU GPL v3 see:</span> +<span class="a">+;; <https://www.gnu.org/licenses/>.</span> +<span class="a">+;;; Commentary:</span> +<span class="a">+;;</span> +<span class="a">+</span> +<span class="a">+This is an implementation of an elisp-based FORTH. This means that elisp</span> +<span class="a">+is used to write the function definitions. In fact, no FORTH function</span> +<span class="a">+definitions are provided at all to the eForth macro from the library.</span> +<span class="a">+The main benefit comes from reducing the verbosity of elisp in a small</span> +<span class="a">+Domain Specific Language the programmer defines.</span> +<span class="a">+</span> +<span class="a">+ (require 'eforth)</span> +<span class="a">+ (defun 8pan ()</span> +<span class="a">+ (interactive)</span> +<span class="a">+ (eforth '((n . (lambda () (switch-to-buffer nil)))</span> +<span class="a">+ (d . split-window-below)</span> +<span class="a">+ (r . split-window-right)</span> +<span class="a">+ (wr . windmove-right)</span> +<span class="a">+ (wl . windmove-left)</span> +<span class="a">+ (wd . windmove-down)</span> +<span class="a">+ (wu . windmove-up)</span> +<span class="a">+ (del . delete-other-windows)</span> +<span class="a">+ (cf . make-frame-command)</span> +<span class="a">+ (nf . other-frame))</span> +<span class="a">+ (cf del r r wr wr r d wr d wl wl d wl d wr n</span> +<span class="a">+ wr n wr n wl wl wl wd n wr n wr n wr n wl wl wl wu nf)))</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+HOW DOES A FORTH WORK?</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+Forth code is gone through by the pointer moving through the call stack.</span> +<span class="a">+When a non-function is found, it is added to the argument stack. When a</span> +<span class="a">+function is found, it uses up the argument stack if it has arguments, or</span> +<span class="a">+just runs if it is nullary. Nothing else is provided by the</span> +<span class="a">+implementation.</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+WHY?</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+Needing to simulate a long set of keypresses to create an eight panel</span> +<span class="a">+frame (37 in total), the best option seemeed to be obviously to create a</span> +<span class="a">+miniature language with 1 or 2 letter abbreviations for each. Any</span> +<span class="a">+arguments to a function can be passed before it in the list, and there</span> +<span class="a">+is no need to define a return stack.</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+USAGE: EXAMPLE:</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+ (require 'eforth)</span> +<span class="a">+ (defun 8pan ()</span> +<span class="a">+ (interactive)</span> +<span class="a">+ (eforth '((n . (lambda () (switch-to-buffer nil)))</span> +<span class="a">+ (d . split-window-below)</span> +<span class="a">+ (r . split-window-right)</span> +<span class="a">+ (wr . windmove-right)</span> +<span class="a">+ (wl . windmove-left)</span> +<span class="a">+ (wd . windmove-down)</span> +<span class="a">+ (wu . windmove-up)</span> +<span class="a">+ (del . delete-other-windows)</span> +<span class="a">+ (cf . make-frame-command)</span> +<span class="a">+ (nf . other-frame))</span> +<span class="a">+ (cf del r r wr wr r d wr d wl wl d wl d wr n</span> +<span class="a">+ wr n wr n wl wl wl wd n wr n wr n wr n wl wl wl wu nf)))</span> +<span class="a">+</span> +<span class="a">+M-x 8pan will produce a new frame with eight panels (emacs-speak:</span> +<span class="a">+"windows"). Here is how it works:</span> +<span class="a">+</span> +<span class="a">+eforth is called with two arguments: the environment, name to function</span> +<span class="a">+bindings, and the eforth code list. You can see in this example that</span> +<span class="a">+there are no arguments used, since all of these are nullary functions.</span> +<span class="a">+Here is how you might use arguments:</span> +<span class="a">+</span> +<span class="a">+ (eforth '((ff . find-file)) ("~/some-file" ff))</span> +<span class="a">+</span> +<span class="a">+Here we ran (find-file "~/some-file"). If you need to reuse a forth,</span> +<span class="a">+just define an *env* variable:</span> +<span class="a">+</span> +<span class="a">+ (defvar *env* '((>r . to-return-stack) ...))</span> +<span class="a">+ (eforth *env* (forth code here ...))</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+BENEFITS</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+Concise code.</span> +<span class="a">+</span> +<span class="a">+Elisp's convention of names like:</span> +<span class="a">+</span> +<span class="a">+ org--insert-structure-template-unique-keys</span> +<span class="a">+</span> +<span class="a">+(a real function in the org mode) result in extremely verbose code.</span> +<span class="a">+Using short, lexical names can reduce code size by a large portion.</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+Compiles to Elisp.</span> +<span class="a">+</span> +<span class="a">+Elisp is hated by many, and for good reason. It is an outdated and</span> +<span class="a">+clunky lisp. Many have tried and failed to port Emacs to Common Lisp,</span> +<span class="a">+without success. Forth, unlike modern lisps, is designed to be easy to</span> +<span class="a">+implement. Writing a forth compiler is in fact a trivial exercise.</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+DRAWBACKS</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+Elispers might not want to read your eFORTH code</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+eForth is not stable</span> +<span class="a">+</span> +<span class="a">+</span> +<span class="a">+Isn't verbose code self-documenting?</span> +<span class="a">+</span> +<span class="a">+NO. Documented code is documented. Using short names with the bindings</span> +<span class="a">+handily available in the same form is equally explicit as writing them</span> +<span class="a">+out every time.</span> +<span class="a">+</span> +<span class="a">+;;; Code:</span> +<span class="a">+(require 'cl-lib)</span> +<span class="a">+</span> +<span class="a">+(defun eforth--inner (lang list)</span> +<span class="a">+ "Internal function for the `eforth' macro.</span> +<span class="a">+LANG are the bindings for the forth.</span> +<span class="a">+LIST is full of the forth stack (RPN)."</span> + (let ((s)) + (cl-flet ((fn (fn) (if (functionp fn) + fn + (symbol-function fn)))) + (dolist (i list) + (if (assoc i lang) +<span class="d">- (let ((fn (cdr (assoc i lang))))</span> +<span class="a">+ (let ((fn (cadr (assoc i lang))))</span> + (if s + (progn (apply (fn fn) s) (setf s nil)) + (funcall (fn fn)))) + (push i s)))))) +<span class="a">+</span> + (defmacro eforth (lang list) +<span class="d">- `(inner-eforth ,lang ',list))</span> +<span class="d">-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span> +<span class="d">-;; (defvar *my-env* '((ff . find-file))) ;;</span> +<span class="d">-;; (eforth *my-env* ("~/bogus/" ff)) ;;</span> +<span class="d">-;; (eforth '((d . split-window-below)) ;;</span> +<span class="d">-;; (d)) ;;</span> +<span class="d">-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span> +<span class="d">-(defun 8pan ()</span> +<span class="d">- (interactive)</span> +<span class="d">- (eforth '((n . (lambda () (switch-to-buffer nil)))</span> +<span class="d">- (d . split-window-below)</span> +<span class="d">- (r . split-window-right)</span> +<span class="d">- (wr . windmove-right)</span> +<span class="d">- (wl . windmove-left)</span> +<span class="d">- (wd . windmove-down)</span> +<span class="d">- (wu . windmove-up)</span> +<span class="d">- (del . delete-other-windows)</span> +<span class="d">- (cf . make-frame-command)</span> +<span class="d">- (nf . other-frame))</span> +<span class="d">- ;; (cf nf del r r wr wr r d wr d wl wl d wl d wr n wr n wr n wl wl wl wd n</span> +<span class="d">- ;; wr n wr n wr n wl wl wl wu nf)</span> +<span class="d">- (cf del r r wr wr r d wr d wl wl d wl d</span> +<span class="d">- n wr n wr n wr n wd n wl n wl n wl n wu)</span> +<span class="d">- ))</span> +<span class="a">+ "Define and execute a forth language.</span> +<span class="a">+LANG are the let-bindings for the FORTH's operators.</span> +<span class="a">+LIST is the forth's stack."</span> +<span class="a">+ `(eforth--inner ,lang ',list))</span> +<span class="a">+</span> + (provide 'eforth) +<span class="a">+</span> +<span class="a">+;Internal function for the `eforth' macro.ends here</span></pre> +</div></body></html> diff --git a/git/Forthe/commit/3506f89f505ccbc3867fb6a41f9044a8af98d66b.html b/git/Forthe/commit/3506f89f505ccbc3867fb6a41f9044a8af98d66b.html new file mode 100644 index 0000000..7696781 --- /dev/null +++ b/git/Forthe/commit/3506f89f505ccbc3867fb6a41f9044a8af98d66b.html @@ -0,0 +1,176 @@ +<!DOCTYPE html> +<html lang="en"><head><meta charset="UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Forthe 3506f89f - Recently Written</title> +<link rel="stylesheet" href="../../stagit.css" /> +</head><body> +<div id="top"><a href="../../../index.html">Recently Written</a> · <a href="../../index.html">git</a></div> +<h1>Forthe</h1><span class="desc">Forth-like DSL.</span><p class="url">git clone https://github.com/equwal/Forthe</p><p><a href="../../Forthe/index.html">Log</a> | <a href="../../Forthe/files.html">Files</a> | <a href="../../Forthe/refs.html">Refs</a></p><hr/> +<div id="content"> +<pre>commit 3506f89f505ccbc3867fb6a41f9044a8af98d66b +Spenser Truex <spensertruexonline@gmail.com> +2019-06-22 17:36:44 -0700 + +new readme. + +</pre><pre> .gitignore | 3 ++- + README.md | 49 ------------------------------------ + README.org | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 86 insertions(+), 50 deletions(-) +</pre><pre>diff --git a/.gitignore b/.gitignore +index b307eb6..c580a9a 100644 +--- a/.gitignore ++++ b/.gitignore +<span class="h">@@ -1,2 +1,3 @@</span> + *~ +<span class="d">-*.html</span> +\ No newline at end of file +<span class="a">+*.html</span> +<span class="a">+*.pandoc</span> +\ No newline at end of file +diff --git a/README.md b/README.md +deleted file mode 100644 +index 4ef942f..0000000 +--- a/README.md ++++ /dev/null +<span class="h">@@ -1,49 +0,0 @@</span> +<span class="d">-eFORTH</span> +<span class="d">-===</span> +<span class="d">-This is an implementation of an elisp-based FORTH. This means that elisp is used to write the function definitions. In fact, no FORTH function definitions are provided at all to the eforth macro from the library. **The main benefit comes from reducing the verbosity of elisp in a small Domain Specific Language the programmer defines.**</span> +<span class="d">-# How?</span> +<span class="d">-Forth code is gone through by the pointer moving through the call stack. When a non-function is found, it is added to the argument stack. When a function is found, it uses up the argument stack if it has arguments, or just runs if it is nullary. Nothing else is provided by the implementation.</span> +<span class="d">-# Why?</span> +<span class="d">-Needing to simulate a long set of keypresses to create an eight panel frame (37 in total), </span> +<span class="d">-the best option seemeed to be obviously to create a miniature language with 1 or 2 letter</span> +<span class="d">-abbreviations for each. Any arguments to a function can be passed before it in the list,</span> +<span class="d">-and there is no need to define a return stack.</span> +<span class="d">-# Usage:</span> +<span class="d">-example:</span> +<span class="d">-</span> +<span class="d">-```elisp</span> +<span class="d">-(require 'eforth)</span> +<span class="d">-(defun 8pan ()</span> +<span class="d">- (interactive)</span> +<span class="d">- (eforth '((n . (lambda () (switch-to-buffer nil)))</span> +<span class="d">- (d . split-window-below)</span> +<span class="d">- (r . split-window-right)</span> +<span class="d">- (wr . windmove-right)</span> +<span class="d">- (wl . windmove-left)</span> +<span class="d">- (wd . windmove-down)</span> +<span class="d">- (wu . windmove-up)</span> +<span class="d">- (del . delete-other-windows)</span> +<span class="d">- (cf . make-frame-command)</span> +<span class="d">- (nf . other-frame))</span> +<span class="d">- (cf del r r wr wr r d wr d wl wl d wl d wr n </span> +<span class="d">- wr n wr n wl wl wl wd n wr n wr n wr n wl wl wl wu nf)))</span> +<span class="d">-</span> +<span class="d">-```</span> +<span class="d">-</span> +<span class="d">-`M-x 8pan` will produce a new frame with eight panels (emacs-speak: "windows"). Here is how it works:</span> +<span class="d">-</span> +<span class="d">-`eforth` is called with two arguments: the environment, name to function bindings, and the eforth code list. You can see in this example</span> +<span class="d">-that there are no arguments used, since all of these are nullary functions. Here is how you might use arguments:</span> +<span class="d">-</span> +<span class="d">-</span> +<span class="d">-```elisp</span> +<span class="d">-(eforth '((ff . find-file)) ("~/some-file" ff))</span> +<span class="d">-```</span> +<span class="d">-</span> +<span class="d">-Here we ran `(find-file "~/some-file")`. If you need to reuse a forth, just define an `*env*` variable:</span> +<span class="d">-</span> +<span class="d">-``` elisp</span> +<span class="d">-(defvar *env* '((>r . to-return-stack) ...))</span> +<span class="d">-(eforth *env* (forth code here ...))</span> +<span class="d">-</span> +<span class="d">-```</span> +diff --git a/README.org b/README.org +new file mode 100644 +index 0000000..939a473 +--- /dev/null ++++ b/README.org +<span class="h">@@ -0,0 +1,84 @@</span> +<span class="a">+#+TITLE: eForth</span> +<span class="a">+#+AUTHOR: Spenser Truex</span> +<span class="a">+#+EMAIL: web@spensertruex.com</span> +<span class="a">+</span> +<span class="a">+**** Version 0.0.1</span> +<span class="a">+</span> +<span class="a">+This is an implementation of an elisp-based FORTH. This means that elisp</span> +<span class="a">+is used to write the function definitions. In fact, no FORTH function</span> +<span class="a">+definitions are provided at all to the eForth macro from the library.</span> +<span class="a">+The main benefit comes from reducing the verbosity of elisp in a small</span> +<span class="a">+Domain Specific Language the programmer defines.</span> +<span class="a">+</span> +<span class="a">+* How? Forth code is</span> +<span class="a">+gone through by the pointer moving through the call stack. When a</span> +<span class="a">+non-function is found, it is added to the argument stack. When a</span> +<span class="a">+function is found, it uses up the argument stack if it has arguments, or</span> +<span class="a">+just runs if it is nullary. Nothing else is provided by the</span> +<span class="a">+implementation. # Why? Needing to simulate a long set of keypresses to</span> +<span class="a">+create an eight panel frame (37 in total), the best option seemeed to be</span> +<span class="a">+obviously to create a miniature language with 1 or 2 letter</span> +<span class="a">+abbreviations for each. Any arguments to a function can be passed before</span> +<span class="a">+it in the list, and there is no need to define a return stack. # Usage:</span> +<span class="a">+example:</span> +<span class="a">+</span> +<span class="a">+#+BEGIN_SRC emacs-lisp :tangle no</span> +<span class="a">+(require 'eforth)</span> +<span class="a">+(defun 8pan ()</span> +<span class="a">+ (interactive)</span> +<span class="a">+ (eforth '((n . (lambda () (switch-to-buffer nil)))</span> +<span class="a">+ (d . split-window-below)</span> +<span class="a">+ (r . split-window-right)</span> +<span class="a">+ (wr . windmove-right)</span> +<span class="a">+ (wl . windmove-left)</span> +<span class="a">+ (wd . windmove-down)</span> +<span class="a">+ (wu . windmove-up)</span> +<span class="a">+ (del . delete-other-windows)</span> +<span class="a">+ (cf . make-frame-command)</span> +<span class="a">+ (nf . other-frame))</span> +<span class="a">+ (cf del r r wr wr r d wr d wl wl d wl d wr n</span> +<span class="a">+ wr n wr n wl wl wl wd n wr n wr n wr n wl wl wl wu nf)))</span> +<span class="a">+#+END_SRC</span> +<span class="a">+</span> +<span class="a">+=M-x 8pan= will produce a new frame with eight panels (emacs-speak:</span> +<span class="a">+"windows"). Here is how it works:</span> +<span class="a">+</span> +<span class="a">+=eforth= is called with two arguments: the environment, name to function</span> +<span class="a">+bindings, and the eforth code list. You can see in this example that</span> +<span class="a">+there are no arguments used, since all of these are nullary functions.</span> +<span class="a">+Here is how you might use arguments:</span> +<span class="a">+</span> +<span class="a">+#+BEGIN_SRC emacs-lisp :tangle no</span> +<span class="a">+(eforth '((ff . find-file)) ("~/some-file" ff))</span> +<span class="a">+#+END_SRC</span> +<span class="a">+</span> +<span class="a">+Here we ran =(find-file "~/some-file")=. If you need to reuse a forth,</span> +<span class="a">+just define an =*env*= variable:</span> +<span class="a">+</span> +<span class="a">+#+BEGIN_SRC emacs-lisp :tangle no</span> +<span class="a">+(defvar *env* '((>r . to-return-stack) ...))</span> +<span class="a">+(eforth *env* (forth code here ...))</span> +<span class="a">+#+END_SRC</span> +<span class="a">+</span> +<span class="a">+* Benefits</span> +<span class="a">+** Concise code.</span> +<span class="a">+Elisp's convention of names like:</span> +<span class="a">+#+BEGIN_SRC emacs-lisp :tangle yes</span> +<span class="a">+org--insert-structure-template-unique-keys</span> +<span class="a">+#+END_SRC</span> +<span class="a">+(a real function in the org [diff truncated]