Advertisement
keatondunsford

%eyre stack trace from using +-urn:by wrong.

Apr 24th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 KB | None | 0 0
  1. This generator:
  2.  
  3. /? 310
  4. ::
  5. !:
  6. ::
  7. :- %say |= *
  8. :- %noun
  9. =< (~(urn by netwerk) network-to-json) :: I think I just misunderstood how +-urn:by works.
  10.  
  11. |%
  12. ++ network (map @p (set @p))
  13. ::
  14. ++ netwerk
  15. ^- network
  16. %- ~(gas by *(map @p (set @p)))
  17. :~ [~lorrem-mipsum (~(gas in *(set @p)) ~zod ~syx ~sev ~ten ~lev ~wel ~)]
  18. [~tonlur-sarret (~(gas in *(set @p)) ~zod ~syx ~sev ~ten ~lev ~wel ~)]
  19. ==
  20. ::
  21. ++ network-to-json
  22. |= a/(pair @p (set @p))
  23. ^- json
  24. %- jobe
  25. ^- (list {p/@t q/json})
  26. :~ :- `@t`(scot %p p.a)
  27. ^- json
  28. :- %a
  29. ^- (list json)
  30. %+ turn (~(tap in q.a))
  31. |= friend/@p
  32. [%s `@t`(scot %p friend)]
  33. ==
  34. ::
  35. --
  36.  
  37.  
  38. gave me this:
  39.  
  40. > +mesh-gen
  41. { [ p=~tonlur-sarret
  42. q
  43. [ %o
  44. p
  45. { [ p='~tonlur-sarret'
  46. q=[%a p=~[[%s p='~wel'] [%s p='~lev'] [%s p='~ten'] [%s p='~syx'] [%s p='~zod'] [%s p='~sev']]]
  47. ]
  48. }
  49. ]
  50. ]
  51. [ p=~lorrem-mipsum
  52. q
  53. [ %o
  54. p
  55. { [ p='~lorrem-mipsum'
  56. q=[%a p=~[[%s p='~wel'] [%s p='~lev'] [%s p='~ten'] [%s p='~syx'] [%s p='~zod'] [%s p='~sev']]]
  57. ]
  58. }
  59. ]
  60. ]
  61. }
  62.  
  63. *Notice how the `p` values are @p, not @t (which is needed for ++jobe to convert to JSON).*
  64.  
  65. And then trying to `urb.bind` to my :mesh app gives me this stack trace:
  66.  
  67. exit
  68. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  69. <[11.103 15].[11.134 57]>
  70. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  71. <[11.104 15].[11.134 57]>
  72. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  73. <[11.105 15].[11.134 57]>
  74. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  75. <[11.107 15].[11.134 57]>
  76. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  77. <[11.109 15].[11.134 57]>
  78. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  79. <[11.109 29].[11.109 44]>
  80. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  81. <[11.174 3].[11.179 13]>
  82. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  83. <[11.176 3].[11.179 13]>
  84. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  85. <[11.177 3].[11.179 13]>
  86. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/hoon
  87. <[11.178 5].[11.178 47]>
  88. [%swim-take-vane %e %unto ~]
  89. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.005 3].[2.017 13]>
  90. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.006 3].[2.017 13]>
  91. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.007 3].[2.017 13]>
  92. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.008 3].[2.017 13]>
  93. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.009 3].[2.017 13]>
  94. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.010 3].[2.017 13]>
  95. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.011 3].[2.017 13]>
  96. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.012 3].[2.017 13]>
  97. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.013 3].[2.017 13]>
  98. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.014 3].[2.017 13]>
  99. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.015 5].[2.016 64]>
  100. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[2.016 5].[2.016 64]>
  101. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[748 5].[889 7]>
  102. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[749 5].[889 7]>
  103. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[750 5].[889 7]>
  104. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[752 5].[889 7]>
  105. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[772 7].[786 9]>
  106. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[773 7].[786 9]>
  107. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[774 7].[786 9]>
  108. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[780 9].[783 64]>
  109. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[783 9].[783 64]>
  110. /~lorrem-mipsum/home/~2017.4.18..18.33.53..14b7/arvo/eyre:<[783 40].[783 63]>
  111. %hard
  112. [%dead-request ~[//http/0v18.imma8/43/1]]
  113.  
  114. which makes sense since it's not valid JSON. (but should this still crash in %eyre?)
  115.  
  116. But running this generator:
  117.  
  118. /? 310
  119. ::
  120. !:
  121. ::
  122. :- %say |= *
  123. :- %noun
  124. =< %+ turn (~(tap by netwerk)) network-to-json :: Changed; this works.
  125.  
  126. |%
  127. ++ network (map @p (set @p))
  128. ::
  129. ++ netwerk
  130. ^- network
  131. %- ~(gas by *(map @p (set @p)))
  132. :~ [~lorrem-mipsum (~(gas in *(set @p)) ~zod ~syx ~sev ~ten ~lev ~wel ~)]
  133. [~tonlur-sarret (~(gas in *(set @p)) ~zod ~syx ~sev ~ten ~lev ~wel ~)]
  134. ==
  135. ::
  136. ++ network-to-json
  137. |= a/(pair @p (set @p))
  138. ~& a
  139. ^- json
  140. %- jobe
  141. ^- (list {p/@t q/json})
  142. :~ :- `@t`(scot %p p.a)
  143. ^- json
  144. :- %a
  145. ^- (list json)
  146. %+ turn (~(tap in q.a))
  147. |= friend/@p
  148. [%s `@t`(scot %p friend)]
  149. ==
  150. ::
  151. --
  152.  
  153.  
  154. gave me what I wanted originally:
  155.  
  156. > +mesh-gen
  157. ~[
  158. [ %o
  159. p
  160. { [ p='~lorrem-mipsum'
  161. q=[%a p=~[[%s p='~wel'] [%s p='~lev'] [%s p='~ten'] [%s p='~syx'] [%s p='~zod'] [%s p='~sev']]]
  162. ]
  163. }
  164. ]
  165. [ %o
  166. p
  167. { [ p='~tonlur-sarret'
  168. q=[%a p=~[[%s p='~wel'] [%s p='~lev'] [%s p='~ten'] [%s p='~syx'] [%s p='~zod'] [%s p='~sev']]]
  169. ]
  170. }
  171. ]
  172. ]
  173.  
  174. and I can get that from the browser in my :mesh app via an `urb.bind` with this mesh.hoon:
  175.  
  176. !:
  177. |%
  178. ++ network (map @p (set @p))
  179. ++ netwerk
  180. ^- network
  181. %- ~(gas by *(map @p (set @p)))
  182. :~ [~lorrem-mipsum (~(gas in *(set @p)) ~zod ~syx ~sev ~ten ~lev ~wel ~)]
  183. [~tonlur-sarret (~(gas in *(set @p)) ~zod ~syx ~sev ~ten ~lev ~wel ~)]
  184. ==
  185. ::
  186. --
  187. ::
  188. !:
  189. |_ {bow/bowl net/network}
  190. ::
  191. ++ prep _`.
  192. ::
  193. ++ network-to-json
  194. |= a/(pair @p (set @p))
  195. ~& a
  196. ^- json
  197. %- jobe
  198. ^- (list {p/@t q/json})
  199. :~ :- `@t`(scot %p p.a)
  200. ^- json
  201. :- %a
  202. ^- (list json)
  203. %+ turn (~(tap in q.a))
  204. |= friend/@p
  205. [%s `@t`(scot %p friend)]
  206. ==
  207. ::
  208. ++ peek
  209. |= {our/ship pax/path}
  210. :- %json
  211. `json`[%a %+ turn (~(tap by netwerk)) network-to-json
  212. ::
  213. ++ peer
  214. |= pax/path
  215. ?^ pax `+>
  216. [[ost.bow %diff (peek src.bow pax)]~ +>]
  217. ::
  218. --
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement