Artifact 8a812f0b7cdffc06d5b3bf1ec9f55247a4fd2778:


0000: 0a 0a 0a 54 52 41 4d 50 4f 4c 49 4e 45 28 33 29  ...TRAMPOLINE(3)
0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0030: 20 20 20 20 20 20 20 54 52 41 4d 50 4f 4c 49 4e         TRAMPOLIN
0040: 45 28 33 29 0a 0a 0a 4e 08 4e 41 08 41 4d 08 4d  E(3)...N.NA.AM.M
0050: 45 08 45 0a 20 20 20 20 20 20 20 74 72 61 6d 70  E.E.       tramp
0060: 6f 6c 69 6e 65 20 2d 20 63 6c 6f 73 75 72 65 73  oline - closures
0070: 20 61 73 20 66 69 72 73 74 2d 63 6c 61 73 73 20   as first-class 
0080: 43 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 53 08 53  C functions..S.S
0090: 59 08 59 4e 08 4e 4f 08 4f 50 08 50 53 08 53 49  Y.YN.NO.OP.PS.SI
00a0: 08 49 53 08 53 0a 20 20 20 20 20 20 20 23 08 23  .IS.S.       #.#
00b0: 69 08 69 6e 08 6e 63 08 63 6c 08 6c 75 08 75 64  i.in.nc.cl.lu.ud
00c0: 08 64 65 08 65 20 3c 08 3c 74 08 74 72 08 72 61  .de.e <.<t.tr.ra
00d0: 08 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08  .am.mp.po.ol.li.
00e0: 69 6e 08 6e 65 08 65 2e 08 2e 68 08 68 3e 08 3e  in.ne.e...h.h>.>
00f0: 0a 0a 20 20 20 20 20 20 20 66 08 66 75 08 75 6e  ..       f.fu.un
0100: 08 6e 63 08 63 74 08 74 69 08 69 6f 08 6f 6e 08  .nc.ct.ti.io.on.
0110: 6e 20 3d 08 3d 20 61 08 61 6c 08 6c 6c 08 6c 6f  n =.= a.al.ll.lo
0120: 08 6f 63 08 63 5f 08 5f 74 08 74 72 08 72 61 08  .oc.c_._t.tr.ra.
0130: 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08 69  am.mp.po.ol.li.i
0140: 6e 08 6e 65 08 65 28 08 28 61 08 61 64 08 64 64  n.ne.e(.(a.ad.dd
0150: 08 64 72 08 72 65 08 65 73 08 73 73 08 73 2c 08  .dr.re.es.ss.s,.
0160: 2c 20 76 08 76 61 08 61 72 08 72 69 08 69 61 08  , v.va.ar.ri.ia.
0170: 61 62 08 62 6c 08 6c 65 08 65 2c 08 2c 20 64 08  ab.bl.le.e,., d.
0180: 64 61 08 61 74 08 74 61 08 61 29 08 29 3b 08 3b  da.at.ta.a).);.;
0190: 0a 0a 20 20 20 20 20 20 20 66 08 66 72 08 72 65  ..       f.fr.re
01a0: 08 65 65 08 65 5f 08 5f 74 08 74 72 08 72 61 08  .ee.e_._t.tr.ra.
01b0: 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08 69  am.mp.po.ol.li.i
01c0: 6e 08 6e 65 08 65 28 08 28 66 08 66 75 08 75 6e  n.ne.e(.(f.fu.un
01d0: 08 6e 63 08 63 74 08 74 69 08 69 6f 08 6f 6e 08  .nc.ct.ti.io.on.
01e0: 6e 29 08 29 3b 08 3b 0a 0a 20 20 20 20 20 20 20  n).);.;..       
01f0: 69 08 69 73 08 73 5f 08 5f 74 08 74 72 08 72 61  i.is.s_._t.tr.ra
0200: 08 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08  .am.mp.po.ol.li.
0210: 69 6e 08 6e 65 08 65 28 08 28 66 08 66 75 08 75  in.ne.e(.(f.fu.u
0220: 6e 08 6e 63 08 63 74 08 74 69 08 69 6f 08 6f 6e  n.nc.ct.ti.io.on
0230: 08 6e 29 08 29 0a 20 20 20 20 20 20 20 74 08 74  .n).).       t.t
0240: 72 08 72 61 08 61 6d 08 6d 70 08 70 6f 08 6f 6c  r.ra.am.mp.po.ol
0250: 08 6c 69 08 69 6e 08 6e 65 08 65 5f 08 5f 61 08  .li.in.ne.e_._a.
0260: 61 64 08 64 64 08 64 72 08 72 65 08 65 73 08 73  ad.dd.dr.re.es.s
0270: 73 08 73 28 08 28 66 08 66 75 08 75 6e 08 6e 63  s.s(.(f.fu.un.nc
0280: 08 63 74 08 74 69 08 69 6f 08 6f 6e 08 6e 29 08  .ct.ti.io.on.n).
0290: 29 0a 20 20 20 20 20 20 20 74 08 74 72 08 72 61  ).       t.tr.ra
02a0: 08 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08  .am.mp.po.ol.li.
02b0: 69 6e 08 6e 65 08 65 5f 08 5f 76 08 76 61 08 61  in.ne.e_._v.va.a
02c0: 72 08 72 69 08 69 61 08 61 62 08 62 6c 08 6c 65  r.ri.ia.ab.bl.le
02d0: 08 65 28 08 28 66 08 66 75 08 75 6e 08 6e 63 08  .e(.(f.fu.un.nc.
02e0: 63 74 08 74 69 08 69 6f 08 6f 6e 08 6e 29 08 29  ct.ti.io.on.n).)
02f0: 0a 20 20 20 20 20 20 20 74 08 74 72 08 72 61 08  .       t.tr.ra.
0300: 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08 69  am.mp.po.ol.li.i
0310: 6e 08 6e 65 08 65 5f 08 5f 64 08 64 61 08 61 74  n.ne.e_._d.da.at
0320: 08 74 61 08 61 28 08 28 66 08 66 75 08 75 6e 08  .ta.a(.(f.fu.un.
0330: 6e 63 08 63 74 08 74 69 08 69 6f 08 6f 6e 08 6e  nc.ct.ti.io.on.n
0340: 29 08 29 0a 0a 44 08 44 45 08 45 53 08 53 43 08  ).)..D.DE.ES.SC.
0350: 43 52 08 52 49 08 49 50 08 50 54 08 54 49 08 49  CR.RI.IP.PT.TI.I
0360: 4f 08 4f 4e 08 4e 0a 20 20 20 20 20 20 20 54 68  O.ON.N.       Th
0370: 65 73 65 20 20 66 75 6e 63 74 69 6f 6e 73 20 69  ese  functions i
0380: 6d 70 6c 65 6d 65 6e 74 20 5f 08 63 5f 08 6c 5f  mplement _.c_.l_
0390: 08 6f 5f 08 73 5f 08 75 5f 08 72 5f 08 65 5f 08  .o_.s_.u_.r_.e_.
03a0: 73 20 61 73 20 66 69 72 73 74 2d 63 6c 61 73 73  s as first-class
03b0: 20 43 20 66 75 6e 63 2d 0a 20 20 20 20 20 20 20   C func-.       
03c0: 74 69 6f 6e 73 2e 20 20 41 20 63 6c 6f 73 75 72  tions.  A closur
03d0: 65 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 61 20  e consists of a 
03e0: 72 65 67 75 6c 61 72 20 43 20 66 75 6e 63 74 69  regular C functi
03f0: 6f 6e 20 20 61 6e 64 20 20 61 0a 20 20 20 20 20  on  and  a.     
0400: 20 20 70 69 65 63 65 20 6f 66 20 64 61 74 61 20    piece of data 
0410: 77 68 69 63 68 20 67 65 74 73 20 70 61 73 73 65  which gets passe
0420: 64 20 74 6f 20 74 68 65 20 43 20 66 75 6e 63 74  d to the C funct
0430: 69 6f 6e 20 77 68 65 6e 20 74 68 65 0a 20 20 20  ion when the.   
0440: 20 20 20 20 63 6c 6f 73 75 72 65 20 69 73 20 63      closure is c
0450: 61 6c 6c 65 64 2e 0a 0a 20 20 20 20 20 20 20 43  alled...       C
0460: 6c 6f 73 75 72 65 73 20 61 73 20 5f 08 66 5f 08  losures as _.f_.
0470: 69 5f 08 72 5f 08 73 5f 08 74 5f 08 2d 5f 08 63  i_.r_.s_.t_.-_.c
0480: 5f 08 6c 5f 08 61 5f 08 73 5f 08 73 20 5f 08 43  _.l_.a_.s_.s _.C
0490: 20 5f 08 66 5f 08 75 5f 08 6e 5f 08 63 5f 08 74   _.f_.u_.n_.c_.t
04a0: 5f 08 69 5f 08 6f 5f 08 6e 5f 08 73 20 6d 65 61  _.i_.o_.n_.s mea
04b0: 6e 73 20 20 74 68 61 74 20 20 74 68 65 79 20 20  ns  that  they  
04c0: 66 69 74 0a 20 20 20 20 20 20 20 69 6e 74 6f 20  fit.       into 
04d0: 61 20 66 75 6e 63 74 69 6f 6e 20 70 6f 69 6e 74  a function point
04e0: 65 72 20 61 6e 64 20 63 61 6e 20 62 65 20 63 61  er and can be ca
04f0: 6c 6c 65 64 20 65 78 61 63 74 6c 79 20 6c 69 6b  lled exactly lik
0500: 65 20 61 6e 79 0a 20 20 20 20 20 20 20 6f 74 68  e any.       oth
0510: 65 72 20 43 20 66 75 6e 63 74 69 6f 6e 2e 20 20  er C function.  
0520: 20 5f 08 66 5f 08 75 5f 08 6e 5f 08 63 5f 08 74   _.f_.u_.n_.c_.t
0530: 5f 08 69 5f 08 6f 5f 08 6e 20 20 3d 08 3d 20 20  _.i_.o_.n  =.=  
0540: 61 08 61 6c 08 6c 6c 08 6c 6f 08 6f 63 08 63 5f  a.al.ll.lo.oc.c_
0550: 08 5f 74 08 74 72 08 72 61 08 61 6d 08 6d 70 08  ._t.tr.ra.am.mp.
0560: 70 6f 08 6f 6c 08 6c 69 08 69 6e 08 6e 65 08 65  po.ol.li.in.ne.e
0570: 28 08 28 5f 08 61 5f 08 64 5f 08 64 5f 08 72 5f  (.(_.a_.d_.d_.r_
0580: 08 65 5f 08 73 5f 08 73 2c 08 2c 0a 20 20 20 20  .e_.s_.s,.,.    
0590: 20 20 20 5f 08 76 5f 08 61 5f 08 72 5f 08 69 5f     _.v_.a_.r_.i_
05a0: 08 61 5f 08 62 5f 08 6c 5f 08 65 2c 08 2c 20 20  .a_.b_.l_.e,.,  
05b0: 5f 08 64 5f 08 61 5f 08 74 5f 08 61 29 08 29 20  _.d_.a_.t_.a).) 
05c0: 20 61 6c 6c 6f 63 61 74 65 73 20 20 61 20 63 6c   allocates  a cl
05d0: 6f 73 75 72 65 2e 20 57 68 65 6e 20 5f 08 66 5f  osure. When _.f_
05e0: 08 75 5f 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08  .u_.n_.c_.t_.i_.
05f0: 6f 5f 08 6e 20 67 65 74 73 0a 20 20 20 20 20 20  o_.n gets.      
0600: 20 63 61 6c 6c 65 64 2c 20 69 74 20 73 74 6f 72   called, it stor
0610: 65 73 20 5f 08 64 5f 08 61 5f 08 74 5f 08 61 20  es _.d_.a_.t_.a 
0620: 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 20  in the variable 
0630: 5f 08 76 5f 08 61 5f 08 72 5f 08 69 5f 08 61 5f  _.v_.a_.r_.i_.a_
0640: 08 62 5f 08 6c 5f 08 65 20 61 6e 64 20 20 63 61  .b_.l_.e and  ca
0650: 6c 6c 73 0a 20 20 20 20 20 20 20 74 68 65 20 20  lls.       the  
0660: 43 20 20 66 75 6e 63 74 69 6f 6e 20 20 61 74 20  C  function  at 
0670: 20 5f 08 61 5f 08 64 5f 08 64 5f 08 72 5f 08 65   _.a_.d_.d_.r_.e
0680: 5f 08 73 5f 08 73 2e 20 20 54 68 65 20 66 75 6e  _.s_.s.  The fun
0690: 63 74 69 6f 6e 20 61 74 20 5f 08 61 5f 08 64 5f  ction at _.a_.d_
06a0: 08 64 5f 08 72 5f 08 65 5f 08 73 5f 08 73 20 69  .d_.r_.e_.s_.s i
06b0: 73 0a 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73  s.       respons
06c0: 69 62 6c 65 20 66 6f 72 20 66 65 74 63 68 69 6e  ible for fetchin
06d0: 67 20 5f 08 64 5f 08 61 5f 08 74 5f 08 61 20 6f  g _.d_.a_.t_.a o
06e0: 75 74 20 6f 66 20 5f 08 76 5f 08 61 5f 08 72 5f  ut of _.v_.a_.r_
06f0: 08 69 5f 08 61 5f 08 62 5f 08 6c 5f 08 65 20 69  .i_.a_.b_.l_.e i
0700: 6d 6d 65 64 69 61 74 65 6c 79 2c 0a 20 20 20 20  mmediately,.    
0710: 20 20 20 62 65 66 6f 72 65 20 65 78 65 63 75 74     before execut
0720: 69 6f 6e 20 6f 66 20 61 6e 79 20 6f 74 68 65 72  ion of any other
0730: 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0a   function call..
0740: 0a 20 20 20 20 20 20 20 54 68 69 73 20 20 69 73  .       This  is
0750: 20 20 6d 75 63 68 20 6c 69 6b 65 20 67 08 67 63    much like g.gc
0760: 08 63 63 08 63 27 73 20 6c 6f 63 61 6c 20 66 75  .cc.c's local fu
0770: 6e 63 74 69 6f 6e 73 2c 20 65 78 63 65 70 74 20  nctions, except 
0780: 74 68 61 74 20 74 68 65 0a 20 20 20 20 20 20 20  that the.       
0790: 47 4e 55 20 43 20 6c 6f 63 61 6c 20 66 75 6e 63  GNU C local func
07a0: 74 69 6f 6e 73 20 68 61 76 65 20 64 79 6e 61 6d  tions have dynam
07b0: 69 63 20 65 78 74 65 6e 74 20 28 69 2e 65 2e 20  ic extent (i.e. 
07c0: 61 72 65 20 20 64 65 61 6c 2d 0a 20 20 20 20 20  are  deal-.     
07d0: 20 20 6c 6f 63 61 74 65 64 20 77 68 65 6e 20 74    located when t
07e0: 68 65 20 63 72 65 61 74 69 6e 67 20 66 75 6e 63  he creating func
07f0: 74 69 6f 6e 20 72 65 74 75 72 6e 73 29 2c 20 77  tion returns), w
0800: 68 69 6c 65 20 5f 08 74 5f 08 72 5f 08 61 5f 08  hile _.t_.r_.a_.
0810: 6d 5f 08 70 5f 08 6f 5f 08 2d 0a 20 20 20 20 20  m_.p_.o_.-.     
0820: 20 20 5f 08 6c 5f 08 69 5f 08 6e 5f 08 65 20 70    _.l_.i_.n_.e p
0830: 72 6f 76 69 64 65 73 20 66 75 6e 63 74 69 6f 6e  rovides function
0840: 73 20 77 69 74 68 20 69 6e 64 65 66 69 6e 69 74  s with indefinit
0850: 65 20 20 65 78 74 65 6e 74 3a 20 20 5f 08 66 5f  e  extent:  _.f_
0860: 08 75 5f 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08  .u_.n_.c_.t_.i_.
0870: 6f 5f 08 6e 0a 20 20 20 20 20 20 20 69 73 20 20  o_.n.       is  
0880: 6f 6e 6c 79 20 20 64 65 61 6c 6c 6f 63 61 74 65  only  deallocate
0890: 64 20 20 77 68 65 6e 20 20 66 08 66 72 08 72 65  d  when  f.fr.re
08a0: 08 65 65 08 65 5f 08 5f 74 08 74 72 08 72 61 08  .ee.e_._t.tr.ra.
08b0: 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08 69  am.mp.po.ol.li.i
08c0: 6e 08 6e 65 08 65 28 08 28 5f 08 66 5f 08 75 5f  n.ne.e(.(_.f_.u_
08d0: 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08 6f 5f 08  .n_.c_.t_.i_.o_.
08e0: 6e 29 08 29 20 20 69 73 0a 20 20 20 20 20 20 20  n).)  is.       
08f0: 63 61 6c 6c 65 64 2e 0a 0a 20 20 20 20 20 20 20  called...       
0900: 69 08 69 73 08 73 5f 08 5f 74 08 74 72 08 72 61  i.is.s_._t.tr.ra
0910: 08 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08  .am.mp.po.ol.li.
0920: 69 6e 08 6e 65 08 65 28 08 28 5f 08 66 5f 08 75  in.ne.e(.(_.f_.u
0930: 5f 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08 6f 5f  _.n_.c_.t_.i_.o_
0940: 08 6e 29 08 29 20 20 63 68 65 63 6b 73 20 20 77  .n).)  checks  w
0950: 68 65 74 68 65 72 20 20 74 68 65 20 20 43 20 20  hether  the  C  
0960: 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20  function.       
0970: 5f 08 66 5f 08 75 5f 08 6e 5f 08 63 5f 08 74 5f  _.f_.u_.n_.c_.t_
0980: 08 69 5f 08 6f 5f 08 6e 20 20 77 61 73 20 20 70  .i_.o_.n  was  p
0990: 72 6f 64 75 63 65 64 20 62 79 20 61 20 63 61 6c  roduced by a cal
09a0: 6c 20 74 6f 20 5f 08 61 5f 08 6c 5f 08 6c 5f 08  l to _.a_.l_.l_.
09b0: 6f 5f 08 63 5f 08 5f 5f 08 74 5f 08 72 5f 08 61  o_.c_.__.t_.r_.a
09c0: 5f 08 6d 5f 08 70 5f 08 6f 5f 08 6c 5f 08 69 5f  _.m_.p_.o_.l_.i_
09d0: 08 6e 5f 08 65 2e 20 20 49 66 0a 20 20 20 20 20  .n_.e.  If.     
09e0: 20 20 74 68 69 73 20 72 65 74 75 72 6e 73 20 74    this returns t
09f0: 72 75 65 2c 20 74 68 65 20 61 72 67 75 6d 65 6e  rue, the argumen
0a00: 74 73 20 67 69 76 65 6e 20 74 6f 20 5f 08 61 5f  ts given to _.a_
0a10: 08 6c 5f 08 6c 5f 08 6f 5f 08 63 5f 08 5f 5f 08  .l_.l_.o_.c_.__.
0a20: 74 5f 08 72 5f 08 61 5f 08 6d 5f 08 70 5f 08 6f  t_.r_.a_.m_.p_.o
0a30: 5f 08 6c 5f 08 69 5f 08 6e 5f 08 65 0a 20 20 20  _.l_.i_.n_.e.   
0a40: 20 20 20 20 63 61 6e 20 62 65 20 72 65 74 72 69      can be retri
0a50: 65 76 65 64 3a 0a 0a 20 20 20 20 20 20 20 20 20  eved:..         
0a60: 20 20 74 08 74 72 08 72 61 08 61 6d 08 6d 70 08    t.tr.ra.am.mp.
0a70: 70 6f 08 6f 6c 08 6c 69 08 69 6e 08 6e 65 08 65  po.ol.li.in.ne.e
0a80: 5f 08 5f 61 08 61 64 08 64 64 08 64 72 08 72 65  _._a.ad.dd.dr.re
0a90: 08 65 73 08 73 73 08 73 28 08 28 5f 08 66 5f 08  .es.ss.s(.(_.f_.
0aa0: 75 5f 08 6e 5f 08 63 5f 08 74 5f 08 69 5f 08 6f  u_.n_.c_.t_.i_.o
0ab0: 5f 08 6e 29 08 29 20 72 65 74 75 72 6e 73 20 5f  _.n).) returns _
0ac0: 08 61 5f 08 64 5f 08 64 5f 08 72 5f 08 65 5f 08  .a_.d_.d_.r_.e_.
0ad0: 73 5f 08 73 2c 0a 0a 20 20 20 20 20 20 20 20 20  s_.s,..         
0ae0: 20 20 74 08 74 72 08 72 61 08 61 6d 08 6d 70 08    t.tr.ra.am.mp.
0af0: 70 6f 08 6f 6c 08 6c 69 08 69 6e 08 6e 65 08 65  po.ol.li.in.ne.e
0b00: 5f 08 5f 76 08 76 61 08 61 72 08 72 69 08 69 61  _._v.va.ar.ri.ia
0b10: 08 61 62 08 62 6c 08 6c 65 08 65 28 08 28 5f 08  .ab.bl.le.e(.(_.
0b20: 66 5f 08 75 5f 08 6e 5f 08 63 5f 08 74 5f 08 69  f_.u_.n_.c_.t_.i
0b30: 5f 08 6f 5f 08 6e 29 08 29 20 72 65 74 75 72 6e  _.o_.n).) return
0b40: 73 20 5f 08 76 5f 08 61 5f 08 72 5f 08 69 5f 08  s _.v_.a_.r_.i_.
0b50: 61 5f 08 62 5f 08 6c 5f 08 65 2c 0a 0a 20 20 20  a_.b_.l_.e,..   
0b60: 20 20 20 20 20 20 20 20 74 08 74 72 08 72 61 08          t.tr.ra.
0b70: 61 6d 08 6d 70 08 70 6f 08 6f 6c 08 6c 69 08 69  am.mp.po.ol.li.i
0b80: 6e 08 6e 65 08 65 5f 08 5f 64 08 64 61 08 61 74  n.ne.e_._d.da.at
0b90: 08 74 61 08 61 28 08 28 5f 08 66 5f 08 75 5f 08  .ta.a(.(_.f_.u_.
0ba0: 6e 5f 08 63 5f 08 74 5f 08 69 5f 08 6f 5f 08 6e  n_.c_.t_.i_.o_.n
0bb0: 29 08 29 20 72 65 74 75 72 6e 73 20 5f 08 64 5f  ).) returns _.d_
0bc0: 08 61 5f 08 74 5f 08 61 2e 0a 0a 0a 53 08 53 45  .a_.t_.a....S.SE
0bd0: 08 45 45 08 45 20 41 08 41 4c 08 4c 53 08 53 4f  .EE.E A.AL.LS.SO
0be0: 08 4f 0a 20 20 20 20 20 20 20 67 08 67 63 08 63  .O.       g.gc.c
0bf0: 63 08 63 28 31 29 2c 20 76 08 76 61 08 61 72 08  c.c(1), v.va.ar.
0c00: 72 61 08 61 72 08 72 67 08 67 73 08 73 28 33 29  ra.ar.rg.gs.s(3)
0c10: 2c 20 63 08 63 61 08 61 6c 08 6c 6c 08 6c 62 08  , c.ca.al.ll.lb.
0c20: 62 61 08 61 63 08 63 6b 08 6b 28 33 29 0a 0a 0a  ba.ac.ck.k(3)...
0c30: 0a 0a 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20  ....            
0c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 32 35 20               25 
0c50: 4f 63 74 6f 62 65 72 20 31 39 39 37 20 20 20 20  October 1997    
0c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c70: 20 20 20 20 31 0a 0a 0a 0a 0a 0a 54 52 41 4d 50      1......TRAMP
0c80: 4f 4c 49 4e 45 28 33 29 20 20 20 20 20 20 20 20  OLINE(3)        
0c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54                 T
0cb0: 52 41 4d 50 4f 4c 49 4e 45 28 33 29 0a 0a 0a 42  RAMPOLINE(3)...B
0cc0: 08 42 55 08 55 47 08 47 53 08 53 0a 20 20 20 20  .BU.UG.GS.S.    
0cd0: 20 20 20 50 61 73 73 69 6e 67 20 20 74 68 65 20     Passing  the 
0ce0: 20 64 61 74 61 20 20 74 68 72 6f 75 67 68 20 61   data  through a
0cf0: 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65   global variable
0d00: 20 69 73 20 6e 6f 74 20 72 65 65 6e 2d 0a 20 20   is not reen-.  
0d10: 20 20 20 20 20 74 72 61 6e 74 2e 20 44 6f 6e 27       trant. Don'
0d20: 74 20 63 61 6c 6c 20 74 72 61 6d 70 6f 6c 69 6e  t call trampolin
0d30: 65 20 66 75 6e 63 74 69 6f 6e 73 20 66 72 6f 6d  e functions from
0d40: 20 77 69 74 68 69 6e 20 20 73 69 67 6e 61 6c 0a   within  signal.
0d50: 20 20 20 20 20 20 20 68 61 6e 64 6c 65 72 73 2e         handlers.
0d60: 20 54 68 69 73 20 69 73 20 66 69 78 65 64 20 69   This is fixed i
0d70: 6e 20 74 68 65 20 63 08 63 61 08 61 6c 08 6c 6c  n the c.ca.al.ll
0d80: 08 6c 62 08 62 61 08 61 63 08 63 6b 08 6b 28 33  .lb.ba.ac.ck.k(3
0d90: 29 20 70 61 63 6b 61 67 65 2e 0a 0a 0a 50 08 50  ) package....P.P
0da0: 4f 08 4f 52 08 52 54 08 54 49 08 49 4e 08 4e 47  O.OR.RT.TI.IN.NG
0db0: 08 47 0a 20 20 20 20 20 20 20 54 68 65 20 77 61  .G.       The wa
0dc0: 79 20 67 08 67 63 08 63 63 08 63 20 62 75 69 6c  y g.gc.cc.c buil
0dd0: 64 73 20 6c 6f 63 61 6c 20 66 75 6e 63 74 69 6f  ds local functio
0de0: 6e 73 20 69 73 20 64 65 73 63 72 69 62 65 64 20  ns is described 
0df0: 69 6e 20 74 68 65 20 67 63 63 0a 20 20 20 20 20  in the gcc.     
0e00: 20 20 73 6f 75 72 63 65 2c 20 66 69 6c 65 20 67    source, file g
0e10: 63 63 2d 32 2e 36 2e 33 2f 63 6f 6e 66 69 67 2f  cc-2.6.3/config/
0e20: 5f 08 63 5f 08 70 5f 08 75 2f 5f 08 63 5f 08 70  _.c_.p_.u/_.c_.p
0e30: 5f 08 75 2e 68 2e 0a 0a 0a 41 08 41 55 08 55 54  _.u.h....A.AU.UT
0e40: 08 54 48 08 48 4f 08 4f 52 08 52 0a 20 20 20 20  .TH.HO.OR.R.    
0e50: 20 20 20 42 72 75 6e 6f 20 48 61 69 62 6c 65 20     Bruno Haible 
0e60: 3c 62 72 75 6e 6f 40 63 6c 69 73 70 2e 6f 72 67  <bruno@clisp.org
0e70: 3e 0a 0a 0a 41 08 41 43 08 43 4b 08 4b 4e 08 4e  >...A.AC.CK.KN.N
0e80: 4f 08 4f 57 08 57 4c 08 4c 45 08 45 44 08 44 47  O.OW.WL.LE.ED.DG
0e90: 08 47 45 08 45 4d 08 4d 45 08 45 4e 08 4e 54 08  .GE.EM.ME.EN.NT.
0ea0: 54 53 08 53 0a 20 20 20 20 20 20 20 4d 61 6e 79  TS.S.       Many
0eb0: 20 69 64 65 61 73 20 77 65 72 65 20 63 72 69 62   ideas were crib
0ec0: 62 65 64 20 66 72 6f 6d 20 74 68 65 20 67 63 63  bed from the gcc
0ed0: 20 73 6f 75 72 63 65 2e 0a 0a 0a 0a 0a 0a 0a 0a   source.........
0ee0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a  ................
0ef0: 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a  ................
0f00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0f10: 20 20 20 20 20 20 20 20 20 20 32 35 20 4f 63 74            25 Oct
0f20: 6f 62 65 72 20 31 39 39 37 20 20 20 20 20 20 20  ober 1997       
0f30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0f40: 20 32 0a 0a 0a                                    2...