Skip to content

Commit

Permalink
WIP:fix single field use
Browse files Browse the repository at this point in the history
  • Loading branch information
vidsinghal committed Dec 29, 2023
1 parent 12fbb16 commit 6a8b8f5
Show file tree
Hide file tree
Showing 39 changed files with 177 additions and 92 deletions.
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/Basics.hs
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ mkContentFromText f =
-- This creates all the base cases for the inline type
mkInlineBaseCase :: Int -> Inline
mkInlineBaseCase option =
if option == 0 then (Str (getRandomString 5)) -- get a random word
if option == 0 then (Str (getRandomString 1)) -- get a random word
else Space

-- Make a list of Inline data Type.
Expand All @@ -482,7 +482,7 @@ mkInlineList' length index words =

mkRandomInlineList :: Int -> (PList Inline)
mkRandomInlineList len = if len <= 0 then Nil
else let word = Str (getRandomString 1)
else let word = Str (getRandomString 5)
rst = mkRandomInlineList (len - 1)
in Cons word rst

Expand Down
20 changes: 10 additions & 10 deletions gibbon-compiler/examples/layout_bench/DecisionTree.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@ type String = Vector Char

data PackedBool = B Int

data DecisionTree = Node PackedBool DecisionTree DecisionTree Inline | Leaf Inline
data DecisionTree = Node PackedBool Inline DecisionTree DecisionTree | Leaf Inline



mkRandomDecisionTree :: Int -> DecisionTree
mkRandomDecisionTree depth = if depth <= 0 then Leaf (Str (getRandomString 10))
else
let randBool = mod rand 2
randString = getRandomString 10
randString = getRandomString 500
inline = Str randString
leftSubtree = mkRandomDecisionTree (depth-1)
rightSubtree = mkRandomDecisionTree (depth-1)
in Node (B randBool) leftSubtree rightSubtree inline
in Node (B randBool) inline leftSubtree rightSubtree



Expand Down Expand Up @@ -49,14 +49,14 @@ singleton_plist elem = (Cons elem) Nil

accumulateDecisions :: DecisionTree -> PList Inline
accumulateDecisions tree = case tree of
Node b left right str -> let bb = fromBool b
Node b str left right -> let bb = fromBool b
in if bb == 1
then
let curr = append_plist Nil str
vecLeft = accumulateDecisions left
cc = singleton_plist (Str (getRandomString 10))
vecLeft = accumulateDecisions left
temp = merge_plist curr vecLeft
vecRight = accumulateDecisions right
in merge_plist (merge_plist curr vecLeft) vecRight
in merge_plist temp vecRight
else
let vecLeft = accumulateDecisions left
vecRight = accumulateDecisions right
Expand All @@ -66,9 +66,9 @@ accumulateDecisions tree = case tree of


gibbon_main =
let tree = mkRandomDecisionTree 2
vec = accumulateDecisions tree
in printPacked vec
let tree = mkRandomDecisionTree 20
vec = iterate (accumulateDecisions tree)
in ()

--- filter

Expand Down
8 changes: 7 additions & 1 deletion gibbon-compiler/examples/layout_bench/GenerateLayout1.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ mkBlogs_layout1 length =
id = (ID (10 - (mod length 10)))
author = (Author (getRandomString 5))
date = (Date (getRandomString 5))
content = (Content (Plain (mkRandomInlineList 50)))
content = (Content (Plain (mkRandomInlineList 100)))
tags = (TagList (mkSomeTags 10))
rst = (mkBlogs_layout1 (length - 1))
in Layout1 header id author date content tags rst
Expand Down Expand Up @@ -46,3 +46,9 @@ mkBlogs_layout1 length =
-- Content -> 50
-- Tags -> 50
-- Blogs -> 400,000
--

-- manyFuncs
-- Content -> 50
-- Tags -> 10
-- Blogs -> 1000000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/GenerateLayout2.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ mkBlogs_layout2 length =
if length <= 0 then End
else
let
content = (Content (Plain (mkRandomInlineList 50)))
tags = (TagList (mkSomeTags 10))
content = (Content (Plain (mkRandomInlineList 500)))
tags = (TagList (mkSomeTags 5))
rst = (mkBlogs_layout2 (length - 1))
header = (Header (getRandomString 5))
id = (ID (10 - (mod length 10)))
Expand Down
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/GenerateLayout3.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ mkBlogs_layout3 length =
if length <= 0 then End
else
let
tags = (TagList (mkSomeTags 10))
tags = (TagList (mkSomeTags 5))
rst = (mkBlogs_layout3 (length - 1))
content = (Content (Plain (mkRandomInlineList 50)))
content = (Content (Plain (mkRandomInlineList 500)))
header = (Header (getRandomString 5))
id = (ID (10 - (mod length 10)))
author = (Author (getRandomString 5))
Expand Down
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/GenerateLayout4.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ mkBlogs_layout4 length =
if length <= 0 then End
else
let
tags = (TagList (mkSomeTags 10))
content = (Content (Plain (mkRandomInlineList 50)))
tags = (TagList (mkSomeTags 5))
content = (Content (Plain (mkRandomInlineList 500)))
rst = (mkBlogs_layout4 (length - 1))
header = (Header (getRandomString 5))
id = (ID (10 - (mod length 10)))
Expand Down
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/GenerateLayout5.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ mkBlogs_layout5 length =
else
let
rst = (mkBlogs_layout5 (length - 1))
tags = (TagList (mkSomeTags 10))
content = (Content (Plain (mkRandomInlineList 50)))
tags = (TagList (mkSomeTags 5))
content = (Content (Plain (mkRandomInlineList 500)))
header = (Header (getRandomString 5))
id = (ID (10 - (mod length 10)))
author = (Author (getRandomString 5))
Expand Down
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/GenerateLayout6.hs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ mkBlogs_layout6 length =
id = (ID (10 - (mod length 10)))
author = (Author (getRandomString 5))
date = (Date (getRandomString 5))
content = (Content (Plain (mkRandomInlineList 50)))
content = (Content (Plain (mkRandomInlineList 500)))
rst = (mkBlogs_layout6 (length - 1))
tags = (TagList (mkSomeTags 10))
tags = (TagList (mkSomeTags 5))
in Layout6 header id author date content rst tags
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/GenerateLayout7.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ mkBlogs_layout7 length =
else
let
rst = (mkBlogs_layout7 (length - 1))
content = (Content (Plain (mkRandomInlineList 50)))
content = (Content (Plain (mkRandomInlineList 500)))
header = (Header (getRandomString 5))
id = (ID (10 - (mod length 10)))
author = (Author (getRandomString 5))
date = (Date (getRandomString 5))
tags = (TagList (mkSomeTags 10))
tags = (TagList (mkSomeTags 5))
in Layout7 rst content header id author date tags
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout1ContentSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ emphKeywordInContent keyword blogs =

-- main function
gibbon_main =
let blogs = mkBlogs_layout1 1000
let blogs = mkBlogs_layout1 1000000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInContent keyword blogs
newblgs = iterate (emphKeywordInContent keyword blogs)
in (blogLength newblgs) == 1000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout1FilterBlogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ checkBlogs keyword blogs = case blogs of
-- main function
gibbon_main =
let
blogs = mkBlogs_layout1 100
blogs = mkBlogs_layout1 1000000
keyword :: Vector Char
keyword = "a"
newblgs = filterByKeywordInTagList keyword blogs
newblgs = iterate (filterByKeywordInTagList keyword blogs)
in checkBlogs keyword newblgs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout1TagSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ emphKeywordInTag keyword blogs = case blogs of
-- main function
gibbon_main =
let
blogs = mkBlogs_layout1 40
blogs = mkBlogs_layout1 400000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInTag keyword blogs
newblgs = iterate (emphKeywordInTag keyword blogs)
in blogLength newblgs == blogLength blogs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout2ContentSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ emphKeywordInContent keyword blogs =
-- main function
gibbon_main =
let
blogs = mkBlogs_layout2 1000
blogs = mkBlogs_layout2 1000000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInContent keyword blogs
newblgs = iterate (emphKeywordInContent keyword blogs)
in blogLength newblgs == 1000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout2FilterBlogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ checkBlogs keyword blogs = case blogs of

gibbon_main =
let
blogs = mkBlogs_layout2 100
blogs = mkBlogs_layout2 1000000
keyword :: Vector Char
keyword = "a"
newblgs = filterByKeywordInTagList keyword blogs
newblgs = iterate (filterByKeywordInTagList keyword blogs)
in checkBlogs keyword newblgs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout2TagSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ emphKeywordInTag keyword blogs = case blogs of

gibbon_main =
let
blogs = mkBlogs_layout2 40
blogs = mkBlogs_layout2 400000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInTag keyword blogs
newblgs = iterate (emphKeywordInTag keyword blogs)
in blogLength newblgs == blogLength blogs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout3ContentSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ emphKeywordInContent keyword blogs =
-- main function
gibbon_main =
let
blogs = mkBlogs_layout3 1000
blogs = mkBlogs_layout3 1000000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInContent keyword blogs
newblgs = iterate (emphKeywordInContent keyword blogs)
in blogLength newblgs == 1000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout3FilterBlogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ checkBlogs keyword blogs = case blogs of
-- main function
gibbon_main =
let
blogs = mkBlogs_layout3 100
blogs = mkBlogs_layout3 1000000
keyword :: Vector Char
keyword = "a"
newblgs = filterByKeywordInTagList keyword blogs
newblgs = iterate (filterByKeywordInTagList keyword blogs)
in checkBlogs keyword newblgs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout3TagSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ emphKeywordInTag keyword blogs = case blogs of

gibbon_main =
let
blogs = mkBlogs_layout3 40
blogs = mkBlogs_layout3 400000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInTag keyword blogs
newblgs = iterate (emphKeywordInTag keyword blogs)
in blogLength newblgs == blogLength blogs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout4ContentSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ emphKeywordInContent keyword blogs =
-- main function
gibbon_main =
let
blogs = mkBlogs_layout4 1000
blogs = mkBlogs_layout4 1000000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInContent keyword blogs
newblgs = iterate (emphKeywordInContent keyword blogs)
in blogLength newblgs == 1000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout4FilterBlogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ checkBlogs keyword blogs = case blogs of
-- main function
gibbon_main =
let
blogs = mkBlogs_layout4 100
blogs = mkBlogs_layout4 1000000
keyword :: Vector Char
keyword = "a"
newblgs = filterByKeywordInTagList keyword blogs
newblgs = iterate (filterByKeywordInTagList keyword blogs)
in checkBlogs keyword newblgs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout4TagSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ emphKeywordInTag keyword blogs = case blogs of

gibbon_main =
let
blogs = mkBlogs_layout4 40
blogs = mkBlogs_layout4 400000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInTag keyword blogs
newblgs = iterate (emphKeywordInTag keyword blogs)
in blogLength newblgs == blogLength blogs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout5ContentSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ emphKeywordInContent keyword blogs =
-- main function
gibbon_main =
let
blogs = mkBlogs_layout5 1000
blogs = mkBlogs_layout5 1000000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInContent keyword blogs
newblgs = iterate (emphKeywordInContent keyword blogs)
in blogLength newblgs == 1000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout5FilterBlogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ checkBlogs keyword blogs = case blogs of
-- main function
gibbon_main =
let
blogs = mkBlogs_layout5 100
blogs = mkBlogs_layout5 1000000
keyword :: Vector Char
keyword = "a"
newblgs = filterByKeywordInTagList keyword blogs
newblgs = iterate (filterByKeywordInTagList keyword blogs)
in checkBlogs keyword newblgs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout5TagSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ emphKeywordInTag keyword blogs = case blogs of

gibbon_main =
let
blogs = mkBlogs_layout5 40
blogs = mkBlogs_layout5 400000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInTag keyword blogs
newblgs = iterate (emphKeywordInTag keyword blogs)
in blogLength newblgs == blogLength blogs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout6ContentSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ emphKeywordInContent keyword blogs =
-- main function
gibbon_main =
let
blogs = mkBlogs_layout6 1000
blogs = mkBlogs_layout6 1000000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInContent keyword blogs
newblgs = iterate (emphKeywordInContent keyword blogs)
in blogLength newblgs == 1000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout6FilterBlogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ checkBlogs keyword blogs = case blogs of
-- main function
gibbon_main =
let
blogs = mkBlogs_layout6 100
blogs = mkBlogs_layout6 1000000
keyword :: Vector Char
keyword = "a"
newblgs = filterByKeywordInTagList keyword blogs
newblgs = iterate (filterByKeywordInTagList keyword blogs)
in checkBlogs keyword newblgs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout6TagSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ emphKeywordInTag keyword blogs = case blogs of

gibbon_main =
let
blogs = mkBlogs_layout6 40
blogs = mkBlogs_layout6 400000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInTag keyword blogs
newblgs = iterate (emphKeywordInTag keyword blogs)
in blogLength newblgs == blogLength blogs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout7ContentSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ emphKeywordInContent keyword blogs =
-- main function
gibbon_main =
let
blogs = mkBlogs_layout7 1000
blogs = mkBlogs_layout7 1000000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInContent keyword blogs
newblgs = iterate (emphKeywordInContent keyword blogs)
in blogLength newblgs == 1000
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout7FilterBlogs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ checkBlogs keyword blogs = case blogs of
-- main function
gibbon_main =
let
blogs = mkBlogs_layout7 100
blogs = mkBlogs_layout7 1000000
keyword :: Vector Char
keyword = "a"
newblgs = filterByKeywordInTagList keyword blogs
newblgs = iterate (filterByKeywordInTagList keyword blogs)
in checkBlogs keyword newblgs
4 changes: 2 additions & 2 deletions gibbon-compiler/examples/layout_bench/layout7TagSearch.hs
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ emphKeywordInTag keyword blogs = case blogs of

gibbon_main =
let
blogs = mkBlogs_layout7 40
blogs = mkBlogs_layout7 400000
keyword :: Vector Char
keyword = "a"
newblgs = emphKeywordInTag keyword blogs
newblgs = iterate (emphKeywordInTag keyword blogs)
in blogLength newblgs == blogLength blogs
Loading

0 comments on commit 6a8b8f5

Please sign in to comment.