Skip to content

Commit

Permalink
Merge pull request #52 from roc-lang/upgrade-syntax
Browse files Browse the repository at this point in the history
Upgrade module syntax and fix import warnings
  • Loading branch information
Anton-4 committed May 3, 2024
2 parents 926872c + fb0bd15 commit 8b2a4cc
Show file tree
Hide file tree
Showing 40 changed files with 332 additions and 359 deletions.
2 changes: 1 addition & 1 deletion ci/expect_scripts/file.exp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ spawn $env(EXAMPLES_DIR)file
expect "Listening on <http://localhost:8000>\r\n" {
set curlOutput [exec curl -sS localhost:8000]

if { [string match "Source code of current program:\n\napp \"file\"*" $curlOutput] } {
if { [string match "Source code of current program:\n\napp *" $curlOutput] } {
exit 0
} else {
puts "Error: curl output was different than expected: $curlOutput"
Expand Down
17 changes: 7 additions & 10 deletions examples/command.roc
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
app "command"
packages { pf: "../platform/main.roc" }
imports [
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.Command,
pf.Utc,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.Command
import pf.Utc

main : Request -> Task Response []
main = \req ->
Expand All @@ -22,7 +19,7 @@ main = \req ->
when result is
Ok {} -> respond "Command succeeded\n"
Err (ExitCode code) -> respond "Command exited with code $(Num.toStr code)\n"
Err (KilledBySignal) -> respond "Command was killed by signal\n"
Err KilledBySignal -> respond "Command was killed by signal\n"
Err (IOError str) -> respond "IO Error: $(str)\n"

respond = \str -> Task.ok { status: 200, headers: [], body: Str.toUtf8 str }
21 changes: 9 additions & 12 deletions examples/dir.roc
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
app "dir"
packages { pf: "../platform/main.roc" }
imports [
pf.Stdout,
pf.Stderr,
pf.Dir,
pf.Env,
pf.Path,
pf.Task.{ Task },
pf.Http.{ Request, Response },
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Stdout
import pf.Stderr
import pf.Dir
import pf.Env
import pf.Path
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]

main : Request -> Task Response []
main = \_ ->
Expand Down
15 changes: 6 additions & 9 deletions examples/echo.roc
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
app "echo"
packages { pf: "../platform/main.roc" }
imports [
pf.Stdout,
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.Utc,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Stdout
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.Utc

main : Request -> Task Response []
main = \req ->
Expand Down
13 changes: 5 additions & 8 deletions examples/env.roc
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
app "env"
packages { pf: "../platform/main.roc" }
imports [
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.Env,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.Env

main : Request -> Task Response []
main = \_ ->
Expand Down
21 changes: 9 additions & 12 deletions examples/error-handling.roc
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
# This example demonstrates error handling and fetching content from another website.
app "error-handling"
packages { pf: "../platform/main.roc" }
imports [
pf.Stdout,
pf.Stderr,
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.Utc,
pf.Env,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Stdout
import pf.Stderr
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.Utc
import pf.Env

main : Request -> Task Response []
main = \req ->
Expand Down Expand Up @@ -43,7 +40,7 @@ logRequest = \req ->

readEnvVar : Str -> Task Str [EnvVarNotSet Str]
readEnvVar = \envVarName ->
Env.var envVarName
Env.var envVarName
|> Task.mapErr \_ -> EnvVarNotSet envVarName

fetchContent : Str -> Task Str [HttpError Http.Error]
Expand Down
17 changes: 7 additions & 10 deletions examples/file.roc
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
app "file"
packages { pf: "../platform/main.roc" }
imports [
pf.File,
pf.Path,
pf.Task.{ Task },
pf.Http.{ Request, Response },
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.File
import pf.Path
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]

main : Request -> Task Response []
main = \_ ->
Expand All @@ -30,4 +27,4 @@ okHttp = \bodyStr ->

internalErrHttp : Str -> Task Response []
internalErrHttp = \bodyStr ->
Task.ok { status: 500, headers: [], body: Str.toUtf8 bodyStr }
Task.ok { status: 500, headers: [], body: Str.toUtf8 bodyStr }
15 changes: 6 additions & 9 deletions examples/hello-web.roc
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
app "hello-web"
packages { pf: "../platform/main.roc" }
imports [
pf.Stdout,
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.Utc,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Stdout
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.Utc

main : Request -> Task Response []
main = \req ->
Expand Down
23 changes: 10 additions & 13 deletions examples/result.roc
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
app "result"
packages { pf: "../platform/main.roc" }
imports [
pf.Task.{ Task },
pf.Http.{ Request, Response },
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]

# This example demonstrates the use of `Task.result`.
# It transforms a task that can either succeed with `ok`, or fail with `err`, into
Expand All @@ -15,13 +12,13 @@ main = \_ ->
when checkFile "good" |> Task.result! is
Ok Good -> Task.ok { status: 200, headers: [], body: Str.toUtf8 "GOOD" }
Ok Bad -> Task.ok { status: 200, headers: [], body: Str.toUtf8 "BAD" }
Err IOError -> Task.ok { status: 500, headers: [], body: Str.toUtf8 "ERROR: IoError when executing checkFile." }
Err IOError -> Task.ok { status: 500, headers: [], body: Str.toUtf8 "ERROR: IoError when executing checkFile." }

checkFile : Str -> Task [Good, Bad] [IOError]
checkFile = \str ->
if str == "good" then
Task.ok Good
else if str == "bad" then
Task.ok Bad
else
if str == "good" then
Task.ok Good
else if str == "bad" then
Task.ok Bad
else
Task.err IOError
15 changes: 6 additions & 9 deletions examples/sleep.roc
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
app "echo"
packages { pf: "../platform/main.roc" }
imports [
pf.Stdout,
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.Sleep,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Stdout
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.Sleep

main : Request -> Task Response []
main = \_ ->
Expand Down
17 changes: 7 additions & 10 deletions examples/sqlite3.roc
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
app "echo"
packages { pf: "../platform/main.roc" }
imports [
pf.Stdout,
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.SQLite3,
pf.Env,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Stdout
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.SQLite3
import pf.Env

main : Request -> Task Response []
main = \_ ->
Expand Down
32 changes: 14 additions & 18 deletions examples/todos.roc
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
# Webapp for todos using a SQLite 3 database
app "todos"
packages { pf: "../platform/main.roc" }
imports [
pf.Stdout,
pf.Stderr,
pf.Task.{ Task },
pf.Http.{ Request, Response },
pf.Command,
pf.Env,
pf.Url,
pf.Utc,
Dict,
"todos.html" as todoHtml : List U8,
]
provides [main] to pf
app [main] { pf: platform "../platform/main.roc" }

import pf.Stdout
import pf.Stderr
import pf.Task exposing [Task]
import pf.Http exposing [Request, Response]
import pf.Command
import pf.Env
import pf.Url
import pf.Utc
import "todos.html" as todoHtml : List U8

main : Request -> Task Response []
main = \req ->
Expand Down Expand Up @@ -136,10 +132,10 @@ isSqliteInstalled =
|> Command.status
|> Task.attempt

when sqlite3Res is
when sqlite3Res is
Ok {} -> Task.ok {}
Err _ -> Task.err Sqlite3NotInstalled

logRequest : Request -> Task {} *
logRequest = \req ->
datetime <- Utc.now |> Task.map Utc.toIso8601Str |> Task.await
Expand All @@ -148,7 +144,7 @@ logRequest = \req ->

readEnvVar : Str -> Task Str [EnvVarNotSet Str]_
readEnvVar = \envVarName ->
Env.var envVarName
Env.var envVarName
|> Task.mapErr \_ -> EnvVarNotSet envVarName

handleErr : AppError -> Task Response *
Expand Down
12 changes: 6 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions platform/Base64.roc
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
interface Base64
exposes [toBytes, toStr]
imports []
module [toBytes, toStr]

## Base64-encodes a [Str] into another [Str].
toStr : Str -> Str
Expand Down
36 changes: 17 additions & 19 deletions platform/Command.roc
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
interface Command
exposes [
Command,
Output,
new,
arg,
args,
env,
envs,
clearEnvs,
status,
output,
]
imports [
Task.{ Task },
InternalTask,
InternalCommand,
Effect,
]
module [
Command,
Output,
new,
arg,
args,
env,
envs,
clearEnvs,
status,
output,
]

import Task exposing [Task]
import InternalTask
import InternalCommand
import Effect

## Represents a command to be executed in a child process.
## ```
Expand Down
11 changes: 8 additions & 3 deletions platform/Dir.roc
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
interface Dir
exposes [deleteEmptyDir, deleteRecursive, list]
imports [Effect, Task.{ Task }, InternalTask, Path.{ Path }, InternalPath, InternalError]
module [deleteEmptyDir, deleteRecursive, list]

import Effect
import Task exposing [Task]
import InternalTask
import Path exposing [Path]
import InternalPath
import InternalError

ReadErr : InternalError.InternalDirReadErr

Expand Down
Loading

0 comments on commit 8b2a4cc

Please sign in to comment.