Hex Artifact Content
Not logged in

Artifact e8789a9a149976b93c83a1b64dd9caece6820583:


0000: 23 20 74 68 75 6e 64 65 72 63 68 65 7a 0a 4c 69  # thunderchez.Li
0010: 62 72 61 72 69 65 73 20 66 6f 72 20 5b 43 68 65  braries for [Che
0020: 7a 20 53 63 68 65 6d 65 5d 28 68 74 74 70 73 3a  z Scheme](https:
0030: 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 63 69 73  //github.com/cis
0040: 63 6f 2f 43 68 65 7a 53 63 68 65 6d 65 29 20 70  co/ChezScheme) p
0050: 72 6f 64 75 63 74 69 76 69 74 79 0a 0a 42 65 20  roductivity..Be 
0060: 73 75 72 65 20 74 6f 20 70 75 74 20 74 68 75 6e  sure to put thun
0070: 64 65 72 63 68 65 7a 20 70 61 74 68 20 6f 6e 20  derchez path on 
0080: 79 6f 75 72 20 6c 69 62 72 61 72 79 20 70 61 74  your library pat
0090: 68 2c 0a 0a 42 79 20 65 78 61 6d 70 6c 65 3a 0a  h,..By example:.
00a0: 0a 0a 09 28 6c 69 62 72 61 72 79 2d 64 69 72 65  ...(library-dire
00b0: 63 74 6f 72 69 65 73 20 22 2f 70 61 74 68 2f 74  ctories "/path/t
00c0: 6f 2f 74 68 75 6e 64 65 72 63 68 65 7a 22 29 0a  o/thunderchez").
00d0: 0a 6f 72 20 73 65 74 20 74 68 65 20 43 48 45 5a  .or set the CHEZ
00e0: 53 43 48 45 4d 45 4c 49 42 44 49 52 53 20 65 6e  SCHEMELIBDIRS en
00f0: 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62  vironment variab
0100: 6c 65 3a 0a 09 0a 09 43 48 45 5a 53 43 48 45 4d  le:....CHEZSCHEM
0110: 45 4c 49 42 44 49 52 53 3d 2f 70 61 74 68 2f 74  ELIBDIRS=/path/t
0120: 6f 2f 74 68 75 6e 64 65 72 63 68 65 7a 0a 0a 23  o/thunderchez..#
0130: 23 20 53 52 46 49 0a 09 0a 42 61 73 65 64 20 6f  # SRFI...Based o
0140: 6e 20 5b 73 75 72 66 61 67 65 5d 28 68 74 74 70  n [surfage](http
0150: 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64  s://github.com/d
0160: 68 61 72 6d 61 74 65 63 68 2f 73 75 72 66 61 67  harmatech/surfag
0170: 65 2f 29 20 77 69 74 68 20 6d 69 6e 6f 72 20 63  e/) with minor c
0180: 68 61 6e 67 65 73 0a 0a 09 28 69 6d 70 6f 72 74  hanges...(import
0190: 20 28 73 72 66 69 20 73 31 20 6c 69 73 74 73 29   (srfi s1 lists)
01a0: 29 0a 09 28 69 6d 70 6f 72 74 20 28 73 72 66 69  )..(import (srfi
01b0: 20 73 31 33 20 73 74 72 69 6e 67 73 29 29 0a 09   s13 strings))..
01c0: 28 69 6d 70 6f 72 74 20 28 73 72 66 69 20 73 31  (import (srfi s1
01d0: 34 20 63 68 61 72 2d 73 65 74 73 29 29 0a 09 65  4 char-sets))..e
01e0: 74 63 2e 2e 2e 0a 09 0a 23 23 20 46 6d 74 0a 5b  tc......## Fmt.[
01f0: 4f 72 69 67 69 6e 61 6c 20 73 69 74 65 5d 28 68  Original site](h
0200: 74 74 70 3a 2f 2f 73 79 6e 74 68 63 6f 64 65 2e  ttp://synthcode.
0210: 63 6f 6d 2f 73 63 68 65 6d 65 2f 66 6d 74 2f 29  com/scheme/fmt/)
0220: 0a 0a 09 28 69 6d 70 6f 72 74 20 28 66 6d 74 20  ...(import (fmt 
0230: 66 6d 74 29 29 20 0a 09 28 69 6d 70 6f 72 74 20  fmt)) ..(import 
0240: 28 66 6d 74 20 66 6d 74 2d 63 29 29 20 0a 09 28  (fmt fmt-c)) ..(
0250: 69 6d 70 6f 72 74 20 28 66 6d 74 20 66 6d 74 2d  import (fmt fmt-
0260: 6a 73 29 29 20 0a 09 0a 0a 23 23 20 4d 61 74 63  js)) ....## Matc
0270: 68 61 62 6c 65 0a 42 61 73 65 64 20 6f 6e 20 5b  hable.Based on [
0280: 6d 61 74 63 68 61 62 6c 65 20 65 67 67 5d 28 68  matchable egg](h
0290: 74 74 70 3a 2f 2f 77 69 6b 69 2e 63 61 6c 6c 2d  ttp://wiki.call-
02a0: 63 63 2e 6f 72 67 2f 65 67 67 72 65 66 2f 34 2f  cc.org/eggref/4/
02b0: 6d 61 74 63 68 61 62 6c 65 29 0a 0a 09 28 69 6d  matchable)...(im
02c0: 70 6f 72 74 20 28 6d 61 74 63 68 61 62 6c 65 29  port (matchable)
02d0: 29 0a 20 20 0a 23 23 20 53 71 6c 69 74 65 33 0a  ).  .## Sqlite3.
02e0: 42 61 73 65 64 20 70 61 72 74 69 61 6c 6c 79 20  Based partially 
02f0: 6f 6e 20 63 68 69 63 6b 65 6e 20 5b 73 71 6c 69  on chicken [sqli
0300: 74 65 33 20 65 67 67 5d 28 68 74 74 70 3a 2f 2f  te3 egg](http://
0310: 77 69 6b 69 2e 63 61 6c 6c 2d 63 63 2e 6f 72 67  wiki.call-cc.org
0320: 2f 65 67 67 72 65 66 2f 34 2f 73 71 6c 69 74 65  /eggref/4/sqlite
0330: 33 29 20 62 75 74 20 73 6c 69 67 68 74 6c 79 20  3) but slightly 
0340: 64 69 66 66 65 72 65 6e 74 2e 20 4e 65 65 64 73  different. Needs
0350: 20 73 6f 6d 65 20 74 65 73 74 69 6e 67 2e 0a 0a   some testing...
0360: 09 28 69 6d 70 6f 72 74 20 28 73 71 6c 69 74 65  .(import (sqlite
0370: 33 29 29 0a 0a 23 23 20 55 53 42 0a 5b 4c 69 62  3))..## USB.[Lib
0380: 72 61 72 79 20 77 65 62 73 69 74 65 5d 28 68 74  rary website](ht
0390: 74 70 3a 2f 2f 6c 69 62 75 73 62 2e 69 6e 66 6f  tp://libusb.info
03a0: 29 0a 0a 09 28 69 6d 70 6f 72 74 20 28 75 73 62  )...(import (usb
03b0: 29 29 0a 20 20 0a 23 23 20 53 44 4c 32 0a 0a 5b  )).  .## SDL2..[
03c0: 4c 69 62 72 61 72 79 20 77 65 62 73 69 74 65 5d  Library website]
03d0: 28 68 74 74 70 3a 2f 2f 77 77 77 2e 6c 69 62 73  (http://www.libs
03e0: 64 6c 2e 6f 72 67 29 0a 20 20 0a 09 28 69 6d 70  dl.org).  ..(imp
03f0: 6f 72 74 20 28 73 64 6c 32 29 29 09 0a 0a 23 23  ort (sdl2))...##
0400: 20 43 61 69 72 6f 0a 5b 4c 69 62 72 61 72 79 20   Cairo.[Library 
0410: 77 65 62 73 69 74 65 5d 28 68 74 74 70 3a 2f 2f  website](http://
0420: 77 77 77 2e 63 61 69 72 6f 67 72 61 70 68 69 63  www.cairographic
0430: 73 2e 6f 72 67 29 0a 20 20 0a 09 28 69 6d 70 6f  s.org).  ..(impo
0440: 72 74 20 28 63 61 69 72 6f 29 29 0a 09 0a 53 65  rt (cairo))...Se
0450: 65 20 5b 74 65 73 74 2e 73 73 5d 28 2e 2f 63 61  e [test.ss](./ca
0460: 69 72 6f 2f 74 65 73 74 2e 73 73 29 20 66 6f 72  iro/test.ss) for
0470: 20 65 78 61 6d 70 6c 65 73 0a 0a 23 23 20 4a 73   examples..## Js
0480: 6f 6e 20 70 61 72 73 65 72 0a 55 73 65 73 20 5b  on parser.Uses [
0490: 6c 61 6c 72 5d 28 2e 2f 6c 61 6c 72 2f 6c 61 6c  lalr](./lalr/lal
04a0: 72 2e 73 73 29 0a 0a 09 28 69 6d 70 6f 72 74 20  r.ss)...(import 
04b0: 28 6a 73 6f 6e 29 29 0a 0a 09 28 73 74 72 69 6e  (json))...(strin
04c0: 67 2d 3e 6a 73 6f 6e 20 22 7b 20 5c 22 6e 61 6d  g->json "{ \"nam
04d0: 65 5c 22 20 3a 20 5c 22 6d 79 2d 6e 61 6d 65 5c  e\" : \"my-name\
04e0: 22 20 2c 20 5c 22 61 67 65 5c 22 20 3a 20 31 32  " , \"age\" : 12
04f0: 30 20 2c 20 5c 22 63 68 69 6c 64 72 65 6e 5c 22  0 , \"children\"
0500: 20 3a 20 5b 7b 20 5c 22 6e 61 6d 65 5c 22 20 3a   : [{ \"name\" :
0510: 20 5c 22 6d 79 2d 73 6f 6e 5c 22 2c 20 5c 22 61   \"my-son\", \"a
0520: 67 65 5c 22 20 3a 20 31 20 7d 2c 20 7b 20 5c 22  ge\" : 1 }, { \"
0530: 6e 61 6d 65 5c 22 20 3a 20 5c 22 6d 79 2d 73 6f  name\" : \"my-so
0540: 6e 32 5c 22 2c 20 5c 22 61 67 65 5c 22 20 3a 20  n2\", \"age\" : 
0550: 32 20 7d 5d 20 7d 22 20 29 0a 09 3d 3e 20 28 28  2 }] }" )..=> ((
0560: 6e 61 6d 65 20 2e 20 22 6d 79 2d 6e 61 6d 65 22  name . "my-name"
0570: 29 0a 09 20 20 20 20 28 61 67 65 20 2e 20 31 32  )..    (age . 12
0580: 30 29 0a 09 20 20 20 20 28 63 68 69 6c 64 72 65  0)..    (childre
0590: 6e 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20  n ..            
05a0: 20 20 20 20 20 20 20 20 23 28 28 28 6e 61 6d 65          #(((name
05b0: 20 2e 20 22 6d 79 2d 73 6f 6e 22 29 20 28 61 67   . "my-son") (ag
05c0: 65 20 2e 20 31 29 29 0a 20 20 20 20 20 20 20 20  e . 1)).        
05d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28                ((
05e0: 6e 61 6d 65 20 2e 20 22 6d 79 2d 73 6f 6e 32 22  name . "my-son2"
05f0: 29 20 28 61 67 65 20 2e 20 32 29 29 29 29 29 0a  ) (age . 2))))).
0600: 0a 0a 23 23 20 4e 61 6e 6f 4d 73 67 0a 5b 4c 69  ..## NanoMsg.[Li
0610: 62 72 61 72 79 20 77 65 62 73 69 74 65 5d 28 68  brary website](h
0620: 74 74 70 3a 2f 2f 77 77 77 2e 6e 61 6e 6f 6d 73  ttp://www.nanoms
0630: 67 2e 6f 72 67 29 0a 0a 09 28 69 6d 70 6f 72 74  g.org)...(import
0640: 20 28 6e 61 6e 6f 6d 73 67 29 29 0a 0a 23 23 23   (nanomsg))..###
0650: 20 53 6f 6d 65 20 74 65 73 74 73 20 66 72 6f 6d   Some tests from
0660: 20 5b 6e 61 6e 6f 6d 73 67 2d 65 78 61 6d 70 6c   [nanomsg-exampl
0670: 65 73 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68  es](https://gith
0680: 75 62 2e 63 6f 6d 2f 64 79 73 69 6e 67 65 72 2f  ub.com/dysinger/
0690: 6e 61 6e 6f 6d 73 67 2d 65 78 61 6d 70 6c 65 73  nanomsg-examples
06a0: 29 0a 20 20 2a 20 5b 70 69 70 65 6c 69 6e 65 5d  ).  * [pipeline]
06b0: 28 2e 2f 6e 61 6e 6f 6d 73 67 2f 70 69 70 65 6c  (./nanomsg/pipel
06c0: 69 6e 65 29 0a 20 20 2a 20 5b 72 65 71 72 65 70  ine).  * [reqrep
06d0: 5d 28 2e 2f 6e 61 6e 6f 6d 73 67 2f 72 65 71 72  ](./nanomsg/reqr
06e0: 65 70 29 0a 20 20 2a 20 5b 70 61 69 72 5d 28 2e  ep).  * [pair](.
06f0: 2f 6e 61 6e 6f 6d 73 67 2f 70 61 69 72 29 0a 20  /nanomsg/pair). 
0700: 20 2a 20 5b 70 75 62 73 75 62 5d 28 2e 2f 6e 61   * [pubsub](./na
0710: 6e 6f 6d 73 67 2f 70 75 62 73 75 62 29 0a 20 20  nomsg/pubsub).  
0720: 2a 20 5b 62 75 73 5d 28 2e 2f 6e 61 6e 6f 6d 73  * [bus](./nanoms
0730: 67 2f 62 75 73 29 0a 20 20 2a 20 5b 73 75 72 76  g/bus).  * [surv
0740: 65 79 5d 28 2e 2f 6e 61 6e 6f 6d 73 67 2f 73 75  ey](./nanomsg/su
0750: 72 76 65 79 29 0a 0a                             rvey)..