Skip to content

Commit

Permalink
Rename Frontend to Parsing (#1072)
Browse files Browse the repository at this point in the history
* Rename Frontend to Parsing

* Fix benchmarks

* [ci] changes from CI

Co-authored-by: drone <noreply@drone>
  • Loading branch information
Acentelles and drone authored Nov 15, 2021
1 parent f23ebb8 commit c0207f1
Show file tree
Hide file tree
Showing 71 changed files with 381 additions and 348 deletions.
16 changes: 8 additions & 8 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -254,14 +254,14 @@ steps:
AWS_SECRET_ACCESS_KEY: {from_secret: aws_secret_access_key}
BACKEND_OPERATION_TIMEOUT: 8m
image: meltwater/drone-cache:latest
name: restore-cache-frontend
name: restore-cache-parsing
pull: never
settings:
archive_format: gzip
backend: s3
bucket: heliax-drone-cache-v2
cache_key: juvix/docs/{{ checksum "library/Frontend/stack.yaml" }}
mount: [library/Frontend/.stack-work]
cache_key: juvix/docs/{{ checksum "library/Parsing/stack.yaml" }}
mount: [library/Parsing/.stack-work]
override: false
rebuild: false
region: eu-west-1
Expand Down Expand Up @@ -470,7 +470,7 @@ steps:
status: [success, failure]
- commands: [./scripts/build-and-publish-docs.sh]
depends_on: [restore-cache-stack, restore-cache-context, restore-cache-core, restore-cache-data-structure,
restore-cache-easy, restore-cache-frontend, restore-cache-http, restore-cache-llvm,
restore-cache-easy, restore-cache-parsing, restore-cache-http, restore-cache-llvm,
restore-cache-michelson, restore-cache-plonk, restore-cache-sexp, restore-cache-standard-library,
restore-cache-translate, restore-cache-witch]
environment:
Expand Down Expand Up @@ -544,14 +544,14 @@ steps:
AWS_SECRET_ACCESS_KEY: {from_secret: aws_secret_access_key}
BACKEND_OPERATION_TIMEOUT: 8m
image: meltwater/drone-cache:latest
name: rebuild-cache-frontend
name: rebuild-cache-parsing
pull: never
settings:
archive_format: gzip
backend: s3
bucket: heliax-drone-cache-v2
cache_key: juvix/docs/{{ checksum "library/Frontend/stack.yaml" }}
mount: [library/Frontend/.stack-work]
cache_key: juvix/docs/{{ checksum "library/Parsing/stack.yaml" }}
mount: [library/Parsing/.stack-work]
override: false
rebuild: true
region: eu-west-1
Expand Down Expand Up @@ -797,6 +797,6 @@ type: docker
workspace: {path: /drone/workspace}
---
kind: signature
hmac: 9f1686700caf8e964bd9f116fef247dafd18d99d6c73e9631a8694e7ddb34386
hmac: 63190a73fc731a1e5d12b0bc7793b82ea3ace6a660c2f70c535a7a67029aa7b2

...
43 changes: 43 additions & 0 deletions bench/Context.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
module Context where

import qualified Criterion.Main as Criterion
import qualified Juvix.Backends.LLVM as LLVM
import qualified Juvix.Desugar as Desugar
import Juvix.Library hiding (mod)
import qualified Juvix.Library.Feedback as Feedback
import qualified Juvix.Parsing.Parser as Parser
import qualified Juvix.Pipeline as Pipeline
import qualified Juvix.Pipeline.ToSexp as ToSexp
import qualified Text.Megaparsec as P

bench :: Criterion.Benchmark
bench =
Criterion.bgroup
"desugar"
[guardTest]

guardTest :: Criterion.Benchmark
guardTest =
Criterion.env
( liftIO $
Feedback.runFeedbackT $
Pipeline.toML
LLVM.BLLVM
( ""
<> "mod Let where\n"
<> "open Prelude\n"
<> "sig (==) : field -> field -> bool\n"
<> "let (==) = %LLVM.eq\n"
<> "declare infixl (==) 2\n"
<> "let foo | x == 3 = 3 | else = 2"
)
)
( \ ~(Feedback.Success _ t) ->
Criterion.bgroup
"guardTest"
[ Criterion.bench "guard small WHNF" $
Criterion.whnfIO (either (panic . show) identity <$> ToSexp.contextify t),
Criterion.bench "guard small NF" $
Criterion.nfIO (either (panic . show) identity <$> ToSexp.contextify t)
]
)
15 changes: 8 additions & 7 deletions bench/Frontend/Parser.hs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
module Frontend.Parser where

import qualified Criterion.Main as Criterion
import Data.Attoparsec.ByteString
import qualified Juvix.Frontend.Parser as Parser
import qualified Juvix.Frontend.Types as Types
import Juvix.Library hiding (mod)
import qualified Juvix.Library.Parser.Lexer as Lexer
import qualified Juvix.Parsing.Parser as Parser
import qualified Juvix.Parsing.Types as Types
import qualified Text.Megaparsec as P
import Prelude (String)

--------------------------------------------------------------------------------
Expand Down Expand Up @@ -85,8 +86,8 @@ mod =
-- Parser functions
--------------------------------------------------------------------------------

letParser :: ByteString -> Either String [Types.Let]
letParser = parseOnly (many' (Parser.spaceLiner Parser.let'))
letParser :: ByteString -> Either (P.ParseErrorBundle ByteString Void) [Types.Let]
letParser = P.parse (P.some (Lexer.spaceLiner Parser.let')) ""

topLevelParser :: ByteString -> Either String Types.TopLevel
topLevelParser = parseOnly Parser.topLevel
topLevelParser :: ByteString -> Either (P.ParseErrorBundle ByteString Void) Types.TopLevel
topLevelParser = P.parse Parser.topLevel ""
24 changes: 0 additions & 24 deletions bench/FrontendDesugar.hs

This file was deleted.

4 changes: 2 additions & 2 deletions bench/Main.hs
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
module Main where

import qualified Context
import qualified Criterion.Main as Criterion
import qualified Frontend.Parser as Parser
import qualified FrontendDesugar
import Juvix.Library

main :: IO ()
main =
Criterion.defaultMain
[ Parser.bench,
FrontendDesugar.bench
Context.bench
]
9 changes: 7 additions & 2 deletions docs/Code/Bench.org
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
* FrontendDesugar
* Context
- _Relies on_
+ [[Parser]]
+ [[FrontendDesugar]]
+ [[Desugar]]
+ [[ToSexp]]
+ [[Pipeline]]
+ [[LLVM]]
+ [[Feedback]]
+ [[Library]]
* Main
- _Relies on_
+ [[Library]]
* Frontend
** Parser
- _Relies on_
+ [[Lexer]]
+ [[Parser]]
+ [[Types]]
+ [[Library]]
Expand Down
Loading

0 comments on commit c0207f1

Please sign in to comment.