@@ -0,0 +1,63 @@
1++++
2+title = "Tune slaw/scot Jets"
3+date = 2021-06-17
4+[taxonomies]
5+grant_type = ["bounties"]
6+grant_category = ["Core Dev"]
7+[extra]
8+image = ""
9+description = "Tune slaw/scot jets for better perfomance."
10+reward = 1
11+mentor = "~timluc-miptev"
12+assignee = ""
13+completed = false
14+work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0037&prefill_Grant+Name=Tune%20slaw%2Fscot%20jets"
15++++
16+
17+## slaw/scot
18+
19+We need to generally speed up common parsing and serialization operations. A large part of Urbit's UX is sending data in and out of Urbit for display in the UI, and the functions inside Urbit that handle this are all significant performance bottlenecks.
20+
21+`slaw` parses strings to atoms, and `scot` serializes atoms to strings. They both are used heavily throughout the codebase.
22+
23+Completing this bounty will have an immediate impact on the perceived speed of the system in frontends like Landscape.
24+
25+### Examples
26+slaw
27+```
28+> `(unit @p)`(slaw %p '~pillyt')
29+[~ ~pillyt]
30+> `(unit @p)`(slaw %p '~pillam')
31+~
32+> `(unit @ux)`(slaw %ux '0x12')
33+[~ 0x12]
34+> `(unit @ux)`(slaw %ux '0b10')
35+```
36+
37+scot
38+```
39+> `@t`(scot %p ~pillyt)
40+'~pillyt'
41+> (scot %ux 0x12)
42+~.0x12
43+```
44+
45+### Code
46+
47+* slaw https://github.com/urbit/urbit/blob/master/pkg/arvo/sys/hoon.hoon#L5913
48+* scot https://github.com/urbit/urbit/blob/master/pkg/arvo/sys/hoon.hoon#L5905
49+
50+### Requirements
51+
52+* Knowledge of C
53+* Experience memory profiling to prevent leaks
54+* Hoon knowledge nice but not necessary
55+
56+### Resources
57+
58+* Tlon engineer explanation/assistance as needed
59+* Check-in with a Foundation director as needed
60+
61+## Milestone: Completion, 1 star
62+- jet is implemented and passes all tests
63+- Tlon engineer gives final approval on merging jet into core