Skip to content

Commit

Permalink
Merge pull request #619 from objectionary/618-switch-to-yegoryaml-unt…
Browse files Browse the repository at this point in the history
…il-newyaml-rules-work

Switch to built-in rules until new.yaml rules work
  • Loading branch information
deemp authored Dec 10, 2024
2 parents 0f1de46 + 24de7a5 commit eab71bd
Show file tree
Hide file tree
Showing 10 changed files with 3,379 additions and 297 deletions.
74 changes: 62 additions & 12 deletions eo-phi-normalizer/src/Language/EO/Phi/Dataize.hs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ pattern AsObject obj <- (desugarAsBytes -> Left obj)

-- | Perform one step of dataization to the object (if possible).
dataizeStep :: Context -> Object -> (Context, Either Object Bytes)
dataizeStep ctx obj = snd $ head $ runChain (dataizeStepChain obj) ctx -- FIXME: head is bad
dataizeStep ctx obj = snd $ head $ runChain (dataizeStepChain DataizeAll obj) ctx -- FIXME: head is bad

dataizeStep' :: Context -> Object -> Either Object Bytes
dataizeStep' ctx obj = snd (dataizeStep ctx obj)
Expand All @@ -75,12 +75,15 @@ dataizeRecursively :: Context -> Object -> Either Object Bytes
dataizeRecursively ctx obj = snd $ dataizeRecursivelyChain' ctx obj

dataizeStepChain' :: Context -> Object -> ([LogEntry (Either Object Bytes)], Either Object Bytes)
dataizeStepChain' ctx obj = snd <$> head (runChain (dataizeStepChain obj) ctx) -- FIXME: head is bad
dataizeStepChain' ctx obj = snd <$> head (runChain (dataizeStepChain DataizeAll obj) ctx) -- FIXME: head is bad

data DataizeStepMode = DataizeOnlyLambda | DataizeAll

-- | Perform one step of dataization to the object (if possible), reporting back individiual steps.
dataizeStepChain :: Object -> DataizeChain (Context, Either Object Bytes)
dataizeStepChain obj@(Formation bs)
| Just (DeltaBinding bytes) <- listToMaybe [b | b@(DeltaBinding _) <- bs]
dataizeStepChain :: DataizeStepMode -> Object -> DataizeChain (Context, Either Object Bytes)
dataizeStepChain mode obj@(Formation bs)
| DataizeAll <- mode
, Just (DeltaBinding bytes) <- listToMaybe [b | b@(DeltaBinding _) <- bs]
, not hasEmpty = do
logStep "Found bytes" (AsBytes bytes)
ctx <- getContext
Expand All @@ -102,7 +105,8 @@ dataizeStepChain obj@(Formation bs)
Just ((obj', _state), _alts) -> do
ctx <- getContext
return (ctx, AsObject obj')
| Just (AlphaBinding Phi decoratee) <- listToMaybe [b | b@(AlphaBinding Phi _) <- bs]
| DataizeAll <- mode
, Just (AlphaBinding Phi decoratee) <- listToMaybe [b | b@(AlphaBinding Phi _) <- bs]
, not hasEmpty = do
let decoratee' = substThis obj decoratee
logStep "Dataizing inside phi" (AsObject decoratee')
Expand All @@ -119,22 +123,22 @@ dataizeStepChain obj@(Formation bs)
isEmpty _ = False
hasEmpty = any isEmpty bs
-- IMPORTANT: dataize the object being copied IF normalization is stuck on it!
dataizeStepChain (Application obj bindings) = incLogLevel $ do
dataizeStepChain _mode (Application obj bindings) = incLogLevel $ do
logStep "Dataizing inside application" (AsObject obj)
modifyContext (\c -> c{dataizePackage = False}) $ do
(ctx, obj') <- dataizeStepChain obj
(ctx, obj') <- dataizeStepChain DataizeOnlyLambda obj
case obj' of
Left obj'' -> return (ctx, AsObject (obj'' `Application` bindings))
Right bytes -> return (ctx, AsObject (Formation [DeltaBinding bytes] `Application` bindings))
-- IMPORTANT: dataize the object being dispatched IF normalization is stuck on it!
dataizeStepChain (ObjectDispatch obj attr) = incLogLevel $ do
dataizeStepChain _mode (ObjectDispatch obj attr) = incLogLevel $ do
logStep "Dataizing inside dispatch" (AsObject obj)
modifyContext (\c -> c{dataizePackage = False}) $ do
(ctx, obj') <- dataizeStepChain obj
(ctx, obj') <- dataizeStepChain DataizeOnlyLambda obj
case obj' of
Left obj'' -> return (ctx, AsObject (obj'' `ObjectDispatch` attr))
Right bytes -> return (ctx, AsObject (Formation [DeltaBinding bytes] `ObjectDispatch` attr))
dataizeStepChain obj = do
dataizeStepChain _mode obj = do
logStep "Nothing to dataize" (AsObject obj)
ctx <- getContext
return (ctx, AsObject obj)
Expand Down Expand Up @@ -166,7 +170,7 @@ dataizeRecursivelyChain = fmap minimizeObject' . go
Just (normObj, _alternatives)
| normObj == obj && normalizeRequired -> return (AsObject obj)
| otherwise -> do
(ctx', step) <- dataizeStepChain normObj
(ctx', step) <- dataizeStepChain DataizeAll normObj
case step of
(AsObject stillObj)
| stillObj == normObj && ctx `sameContext` ctx' -> do
Expand Down Expand Up @@ -250,6 +254,49 @@ evaluateBinaryDataizationFunChain resultToBytes bytesToParam wrapBytes arg1 arg2
fail (name <> ": Couldn't find bytes in RHS: " <> printTree (hideRho r))
return (result, ())

evaluatePartialBinaryDataizationFunChain ::
-- | How to convert the result back to bytes
(res -> Bytes) ->
-- | How to interpret the bytes in terms of the given data type
(Bytes -> a) ->
-- | How to wrap the bytes in an object
(Bytes -> Object) ->
-- | Extract the 1st argument to be dataized
(Object -> Object) ->
-- | Extract the 2nd argument to be dataized
(Object -> Object) ->
-- | A binary function on the argument
(a -> a -> Maybe res) ->
-- | Name of the atom.
String ->
Object ->
EvaluationState ->
DataizeChain (Object, EvaluationState)
evaluatePartialBinaryDataizationFunChain resultToBytes bytesToParam wrapBytes arg1 arg2 func name obj _state = do
let lhsArg = arg1 obj
let rhsArg = arg2 obj
lhs <- incLogLevel $ do
logStep "Evaluating LHS" (AsObject lhsArg)
dataizeRecursivelyChain True lhsArg
rhs <- incLogLevel $ do
logStep "Evaluating RHS" (AsObject rhsArg)
dataizeRecursivelyChain True rhsArg
result <- case (lhs, rhs) of
(AsBytes l, AsBytes r) -> do
case resultToBytes <$> bytesToParam l `func` bytesToParam r of
Nothing -> fail (name <> ": throws an error")
Just bytes -> do
let resultObj = wrapBytes bytes
logStep "Evaluated function" (AsObject resultObj)
return resultObj
(AsObject _l, AsObject _r) ->
fail (name <> ": Couldn't find bytes in both LHS and RHS")
(AsObject l, _) -> do
fail (name <> ": Couldn't find bytes in LHS: " <> printTree (hideRho l))
(_, AsObject r) -> do
fail (name <> ": Couldn't find bytes in RHS: " <> printTree (hideRho r))
return (result, ())

-- | Unary functions operate on the given object without any additional parameters
evaluateUnaryDataizationFunChain ::
-- | How to convert the result back to bytes
Expand All @@ -273,6 +320,9 @@ evaluateUnaryDataizationFunChain resultToBytes bytesToParam wrapBytes extractArg
evaluateIntIntIntFunChain :: (Int -> Int -> Int) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState)
evaluateIntIntIntFunChain = evaluateBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInConstInt extractRho (extractLabel "x")

evaluateIntIntMaybeIntFunChain :: (Int -> Int -> Maybe Int) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState)
evaluateIntIntMaybeIntFunChain = evaluatePartialBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInConstInt extractRho (extractLabel "x")

evaluateIntIntBoolFunChain :: (Int -> Int -> Bool) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState)
evaluateIntIntBoolFunChain = evaluateBinaryDataizationFunChain boolToBytes bytesToInt wrapBytesAsBool extractRho (extractLabel "x")

Expand Down
95 changes: 77 additions & 18 deletions eo-phi-normalizer/src/Language/EO/Phi/Dataize/Atoms.hs
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,17 @@ import Language.EO.Phi.Syntax

knownAtomsList :: [(String, String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState))]
knownAtomsList =
-- [ ("Lorg_eolang_as_phi", _)
[ ("Lorg_eolang_int_gt", evaluateIntIntBoolFunChain (>))
, ("Lorg_eolang_int_plus", evaluateIntIntIntFunChain (+))
, ("Lorg_eolang_int_times", evaluateIntIntIntFunChain (*))
, ("Lorg_eolang_int_div", evaluateIntIntIntFunChain quot)
, ("Lorg_eolang_bytes_and", evaluateBytesBytesBytesFunChain (.&.))
, ("Lorg_eolang_bytes_concat", evaluateBinaryDataizationFunChain id id wrapBytesInBytes extractRho (extractLabel "b") concatBytes)
, ("Lorg_eolang_bytes_eq", evaluateBinaryDataizationFunChain boolToBytes bytesToInt wrapBytesAsBool extractRho (extractLabel "b") (==))
, ("Lorg_eolang_bytes_not", evaluateBytesBytesFunChain complement)
, ("Lorg_eolang_bytes_or", evaluateBytesBytesBytesFunChain (.|.))
, ("Lorg_eolang_bytes_right", evaluateBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInBytes extractRho (extractLabel "x") (\x i -> shift x (-i)))
,
( "Lorg_eolang_bytes_size"
, let f = evaluateUnaryDataizationFunChain intToBytes id wrapBytesInBytes extractRho (\(Bytes bytes) -> length (words (map dashToSpace bytes)))
Expand All @@ -54,24 +60,71 @@ knownAtomsList =
bytes <- case thisStr of
AsBytes bytes -> pure bytes
AsObject _ -> fail "Couldn't find bytes"
evaluateBinaryDataizationFunChain id bytesToInt wrapBytesInBytes (extractLabel "start") (extractLabel "len") (sliceBytes bytes) name obj state
evaluateBinaryDataizationFunChain id bytesToFloat wrapBytesInBytes (extractLabel "start") (extractLabel "len") (\start len -> sliceBytes bytes (floor start) (floor len)) name obj state
)
, ("Lorg_eolang_bytes_and", evaluateBytesBytesBytesFunChain (.&.))
, ("Lorg_eolang_bytes_or", evaluateBytesBytesBytesFunChain (.|.))
, ("Lorg_eolang_bytes_xor", evaluateBytesBytesBytesFunChain (.^.))
, ("Lorg_eolang_bytes_not", evaluateBytesBytesFunChain complement)
, ("Lorg_eolang_bytes_right", evaluateBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInBytes extractRho (extractLabel "x") (\x i -> shift x (-i)))
, ("Lorg_eolang_bytes_concat", evaluateBinaryDataizationFunChain id id wrapBytesInBytes extractRho (extractLabel "b") concatBytes)
, -- deprecated
("Lorg_eolang_dataized", evaluateUnaryDataizationFunChain id id wrapBytesInBytes (extractLabel "target") id)
, -- , ("Lorg_eolang_cage_encaged_encage", _)
-- , ("Lorg_eolang_cage_encaged_φ", _)
-- , ("Lorg_eolang_cage_φ", _)
("Lorg_eolang_error", evaluateUnaryDataizationFunChain stringToBytes bytesToString wrapBytesInBytes (extractLabel "message") error)
, -- float
-- deprecated
("Lorg_eolang_float_gt", evaluateBinaryDataizationFunChain boolToBytes bytesToFloat wrapBytesInBytes extractRho (extractLabel "x") (>))
, -- deprecated
("Lorg_eolang_float_times", evaluateFloatFloatFloatFunChain (*))
, -- deprecated
("Lorg_eolang_float_plus", evaluateFloatFloatFloatFunChain (+))
, -- deprecated
("Lorg_eolang_float_div", evaluateFloatFloatFloatFunChain (/))
, -- deprecated
("Lorg_eolang_float_gt", evaluateBinaryDataizationFunChain boolToBytes bytesToFloat wrapBytesInBytes extractRho (extractLabel "x") (>))
, ("Lorg_eolang_float_times", evaluateFloatFloatFloatFunChain (*))
, ("Lorg_eolang_float_plus", evaluateFloatFloatFloatFunChain (+))
, ("Lorg_eolang_float_div", evaluateFloatFloatFloatFunChain (/))
, ("Lorg_eolang_float_gt", evaluateBinaryDataizationFunChain boolToBytes bytesToFloat wrapBytesInBytes extractRho (extractLabel "x") (>))
, ("Lorg_eolang_float_times", evaluateFloatFloatFloatFunChain (*))
, ("Lorg_eolang_float_plus", evaluateFloatFloatFloatFunChain (+))
, ("Lorg_eolang_float_div", evaluateFloatFloatFloatFunChain (/))
, -- string
, -- deprecated
("Lorg_eolang_float_times", evaluateFloatFloatFloatFunChain (*))
, -- deprecated
("Lorg_eolang_float_plus", evaluateFloatFloatFloatFunChain (+))
, -- deprecated
("Lorg_eolang_float_div", evaluateFloatFloatFloatFunChain (/))
, -- , ("Lorg_eolang_fs_dir_made_mkdir", _)
-- , ("Lorg_eolang_fs_dir_tmpfile_touch", _)
-- , ("Lorg_eolang_fs_dir_walk", _)
-- , ("Lorg_eolang_fs_file_deleted_delete", _)
-- , ("Lorg_eolang_fs_file_exists", _)
-- , ("Lorg_eolang_fs_file_is_directory", _)
-- , ("Lorg_eolang_fs_file_moved_move", _)
-- , ("Lorg_eolang_fs_file_open_file_stream_read_read_bytes", _)
-- , ("Lorg_eolang_fs_file_open_file_stream_write_written_bytes", _)
-- , ("Lorg_eolang_fs_file_open_process_file", _)
-- , ("Lorg_eolang_fs_file_size", _)
-- , ("Lorg_eolang_fs_file_touched_touch", _)
("Lorg_eolang_i16_as_i32", evaluateUnaryDataizationFunChain int16ToBytes bytesToInt64 wrapBytesInConstInt extractRho fromIntegral)
, ("Lorg_eolang_i32_as_i64", evaluateUnaryDataizationFunChain int32ToBytes bytesToInt64 wrapBytesInConstInt extractRho fromIntegral)
, ("Lorg_eolang_i64_as_number", evaluateUnaryDataizationFunChain floatToBytes bytesToInt64 wrapBytesInConstInt extractRho fromIntegral)
, ("Lorg_eolang_i64_div", evaluateIntIntMaybeIntFunChain (\x y -> if y == 0 then Nothing else Just (x `quot` y)))
, ("Lorg_eolang_i64_gt", evaluateIntIntBoolFunChain (>))
, ("Lorg_eolang_i64_plus", evaluateIntIntIntFunChain (+))
, ("Lorg_eolang_i64_times", evaluateIntIntIntFunChain (*))
, -- , ("Lorg_eolang_malloc_of_allocated_read", _)
-- , ("Lorg_eolang_malloc_of_allocated_resize", _)
-- , ("Lorg_eolang_malloc_of_allocated_size", _)
-- , ("Lorg_eolang_malloc_of_allocated_write", _)
-- , ("Lorg_eolang_malloc_of_φ", _)
("Lorg_eolang_math_angle_cos", evaluateUnaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho cos)
, ("Lorg_eolang_math_angle_sin", evaluateUnaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho sin)
, ("Lorg_eolang_math_real_acos", evaluateUnaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho acos)
, ("Lorg_eolang_math_real_asin", evaluateUnaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho asin)
, ("Lorg_eolang_math_real_ln", evaluateUnaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho log)
, ("Lorg_eolang_math_real_pow", evaluateFloatFloatFloatFunChain (**))
, ("Lorg_eolang_math_real_sqrt", evaluateUnaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho sqrt)
, ("Lorg_eolang_number_as_i64", evaluateUnaryDataizationFunChain int64ToBytes bytesToFloat wrapBytesInConstInt extractRho round)
, ("Lorg_eolang_number_div", evaluateFloatFloatFloatFunChain (/))
, ("Lorg_eolang_number_floor", evaluateUnaryDataizationFunChain int64ToBytes bytesToFloat wrapBytesInConstInt extractRho floor)
, ("Lorg_eolang_number_gt", evaluateBinaryDataizationFunChain boolToBytes bytesToFloat wrapBytesInBytes extractRho (extractLabel "x") (>))
, ("Lorg_eolang_number_plus", evaluateFloatFloatFloatFunChain (+))
, ("Lorg_eolang_number_times", evaluateFloatFloatFloatFunChain (*))
, -- , ("Lorg_eolang_rust", _)
-- string
("Lorg_eolang_string_length", evaluateUnaryDataizationFunChain intToBytes bytesToString wrapBytesInConstInt extractRho length)
,
( "Lorg_eolang_string_slice"
Expand All @@ -80,12 +133,18 @@ knownAtomsList =
string <- case thisStr of
AsBytes bytes -> pure $ bytesToString bytes
AsObject _ -> fail "Couldn't find bytes"
evaluateBinaryDataizationFunChain stringToBytes bytesToInt wrapBytesInConstString (extractLabel "start") (extractLabel "len") (\start len -> take len (drop start string)) name obj state
evaluateBinaryDataizationFunChain stringToBytes bytesToFloat wrapBytesInConstString (extractLabel "start") (extractLabel "len") (\start len -> take (floor len) (drop (floor start) string)) name obj state
)
, -- others
("Lorg_eolang_dataized", evaluateUnaryDataizationFunChain id id wrapBytesInBytes (extractLabel "target") id)
, ("Lorg_eolang_error", evaluateUnaryDataizationFunChain stringToBytes bytesToString wrapBytesInBytes (extractLabel "message") error)
,
-- , ("Lorg_eolang_sys_os_name", _)
-- , ("Lorg_eolang_sys_posix_φ", _)
-- , ("Lorg_eolang_sys_win32_φ", _)
-- , ("Lorg_eolang_try", _)
-- , ("Lorg_eolang_txt_regex_compiled", _)
-- , ("Lorg_eolang_txt_regex_pattern_match_matched_from_index", _)
-- , ("Lorg_eolang_txt_sprintf", _)
-- , ("Lorg_eolang_txt_sscanf", _)

( "Package"
, let
f _name obj@(Formation bindings) = do
Expand Down
Loading

1 comment on commit eab71bd

@0pdd
Copy link

@0pdd 0pdd commented on eab71bd Dec 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to retrieve PDD puzzles from the code base and submit them to github. If you think that it's a bug on our side, please submit it to yegor256/0pdd:

set -x && set -e && set -o pipefail && cd /tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA && pdd -v -f /tmp/20241210-1125-s81xfc [1]: + set -e + set -o pipefail + cd...

Please, copy and paste this stack trace to GitHub:

UserError
set -x && set -e && set -o pipefail && cd /tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA && pdd -v -f /tmp/20241210-1125-s81xfc [1]:
+ set -e
+ set -o pipefail
+ cd /tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA
+ pdd -v -f /tmp/20241210-1125-s81xfc

My version is 0.24.0
Ruby version is 3.1.4 at x86_64-linux
Reading from root dir /tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/.markdownlint.jsonc is a binary file (23 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/.vscode/settings.json is a binary file (650 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/flake.lock is a binary file (5296 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/package-lock.json is a binary file (30789 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/package.json is a binary file (126 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/renovate.json is a binary file (114 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/site/docs/src/image.png is a binary file (245811 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/site/docs/src/media/metrics.png is a binary file (95050 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/site/docs/src/media/phi-grammar.png is a binary file (131415 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/site/docs/src/media/print-rules-tex-compact.png is a binary file (235249 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/site/docs/src/media/print-rules-tex.png is a binary file (588712 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/site/docs/src/media/rules.jpg is a binary file (76143 bytes)
/tmp/0pdd20241210-2-mbm6ym/Z2l0QGdpdGh1Yi5jb206b2JqZWN0aW9uYXJ5L2VvLXBoaS1ub3JtYWxpemVyLmdpdA/stack.nix is a binary file (66 bytes)
Reading .envrc ...
Reading .gitattributes ...
Reading .github/workflows/ghc.yml ...
Puzzle 340-40b07064 10/DEV at .github/workflows/ghc.yml
Reading .github/workflows/release.yml ...
Reading .gitignore ...
Reading .gitmodules ...
Reading .hlint.yaml ...
Reading .pre-commit-config.yaml ...
Reading .prettierignore ...
Reading CONTRIBUTING.md ...
Reading LICENSE.txt ...
Reading README.md ...
Reading cabal.project ...
Reading default.nix ...
Reading eo-phi-normalizer/.gitignore ...
Reading eo-phi-normalizer/CHANGELOG.md ...
Reading eo-phi-normalizer/LICENSE ...
Reading eo-phi-normalizer/README.md ...
Reading eo-phi-normalizer/Setup.hs ...
Reading eo-phi-normalizer/app/Main.hs ...
Reading eo-phi-normalizer/data/0.36.0/dependencies.md ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/as-phi.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/bool.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/bytes.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/cage.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/cti.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/dataized.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/error.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/float.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/go.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/goto.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/heap.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/if.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/int.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/io/stdin.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/io/stdout.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/malloc.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/memory.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/nan.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/negative-infinity.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/nop.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/positive-infinity.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/ram.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/rust.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/seq.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/string.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/switch.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/try.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/tuple.phi ...
Reading eo-phi-normalizer/data/0.36.0/org/eolang/while.phi ...
Reading eo-phi-normalizer/data/0.37.0/dependencies.md ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/as-phi.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/bytes.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/cage.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/cti.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/dataized.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/error.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/false.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/float.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/go.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/int.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/io/stdin.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/io/stdout.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/malloc.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/nan.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/negative-infinity.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/positive-infinity.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/rust.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/seq.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/string.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/switch.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/true.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/try.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/tuple.phi ...
Reading eo-phi-normalizer/data/0.37.0/org/eolang/while.phi ...
Reading eo-phi-normalizer/data/0.38.0/dependencies.md ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/as-phi.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/bytes.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/cage.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/cti.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/dataized.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/error.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/false.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/float.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/go.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/int.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/io/stdin.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/io/stdout.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/malloc.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/nan.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/negative-infinity.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/positive-infinity.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/rust.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/seq.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/string.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/switch.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/true.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/try.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/tuple.phi ...
Reading eo-phi-normalizer/data/0.38.0/org/eolang/while.phi ...
Reading eo-phi-normalizer/data/0.38.4/dependencies.md ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/as-phi.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/bytes.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/cage.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/cti.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/dataized.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/error.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/false.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/float.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/go.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/int.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/io/stdin.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/io/stdout.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/malloc.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/nan.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/negative-infinity.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/positive-infinity.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/rust.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/seq.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/string.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/switch.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/true.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/try.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/tuple.phi ...
Reading eo-phi-normalizer/data/0.38.4/org/eolang/while.phi ...
Reading eo-phi-normalizer/data/0.41.2/dependencies.md ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/as-phi.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/bytes.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/cage.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/cti.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/dataized.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/error.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/false.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/fs/dir.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/fs/file.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/fs/path.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/fs/tmpdir.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/go.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/i16.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/i32.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/i64.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/bytes-as-input.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/console.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/dead-input.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/dead-output.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/input-length.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/malloc-as-output.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/stdin.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/stdout.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/io/tee-input.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/malloc.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/math/angle.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/math/e.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/math/integral.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/math/numbers.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/math/pi.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/math/random.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/math/real.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/nan.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/negative-infinity.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/net/socket.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/number.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/positive-infinity.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/rust.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/seq.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/string.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/structs/bytes-as-array.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/structs/hash-code-of.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/structs/list.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/structs/map.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/structs/range-of-ints.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/structs/range.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/structs/set.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/switch.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/sys/getenv.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/sys/line-separator.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/sys/os.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/sys/posix.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/sys/win32.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/true.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/try.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/tuple.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/txt/regex.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/txt/sprintf.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/txt/sscanf.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/txt/text.phi ...
Reading eo-phi-normalizer/data/0.41.2/org/eolang/while.phi ...
Reading eo-phi-normalizer/eo-phi-normalizer.cabal ...
Reading eo-phi-normalizer/grammar/EO/Phi/Syntax.cf ...
Reading eo-phi-normalizer/package.yaml ...
Reading eo-phi-normalizer/report/main.js ...
Reading eo-phi-normalizer/report/styles.css ...
Reading eo-phi-normalizer/src/Language/EO/Locale.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Dataize/Atoms.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Dataize/Context.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Dataize.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Dependencies.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Metrics/Collect.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Metrics/Data.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Normalize.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Pipeline/Config.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Pipeline/Dataize/PrintConfigs.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Pipeline/EOTests/Data.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Pipeline/EOTests/PrepareTests.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Report/Data.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Report/Html.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Rules/Common.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Rules/Fast.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Rules/PhiPaper.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Rules/RunYegor.hs ...
Reading eo-phi-normalizer/src/Language/EO/Phi/Rules/Yaml.hs ...
ERROR: ERROR: eo-phi-normalizer/src/Language/EO/Phi/Rules/Yaml.hs; PDD::Error at eo-phi-normalizer/src/Language/EO/Phi/Rules/Yaml.hs:151: TODO found, but puzzle can't be parsed, most probably because TODO is not followed by a puzzle marker, as this page explains: https://github.com/cqfn/pdd#how-to-format
If you can't understand the cause of this issue or you don't know how to fix it, please submit a GitHub issue, we will try to help you: https://github.com/cqfn/pdd/issues. This tool is still in its beta version and we will appreciate your feedback. Here is where you can find more documentation: https://github.com/cqfn/pdd/blob/master/README.md.
Exit code is 1

/app/objects/git_repo.rb:74:in `rescue in block in xml'
/app/objects/git_repo.rb:71:in `block in xml'
/app/vendor/ruby-3.1.4/lib/ruby/3.1.0/tempfile.rb:317:in `open'
/app/objects/git_repo.rb:70:in `xml'
/app/objects/puzzles.rb:46:in `deploy'
/app/objects/jobs/job.rb:38:in `proceed'
/app/objects/jobs/job_starred.rb:32:in `proceed'
/app/objects/jobs/job_recorded.rb:31:in `proceed'
/app/objects/jobs/job_emailed.rb:33:in `proceed'
/app/objects/jobs/job_commiterrors.rb:33:in `proceed'
/app/objects/jobs/job_detached.rb:48:in `exclusive'
/app/objects/jobs/job_detached.rb:36:in `block in proceed'
/app/objects/jobs/job_detached.rb:36:in `fork'
/app/objects/jobs/job_detached.rb:36:in `proceed'
/app/0pdd.rb:549:in `process_request'
/app/0pdd.rb:380:in `block in <top (required)>'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1804:in `block in compile!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (3 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1089:in `route_eval'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1071:in `block (2 levels) in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1120:in `block in process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1118:in `process_route'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1069:in `block in route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `each'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1066:in `route!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1190:in `block in dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1185:in `dispatch!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `block in call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `catch'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1161:in `invoke'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1001:in `call!'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:990:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/rewindable_input.rb:25:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/deflater.rb:47:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/xss_header.rb:20:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/path_traversal.rb:18:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/json_csrf.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/base.rb:53:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-protection-4.0.0/lib/rack/protection/frame_options.rb:33:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/logger.rb:19:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/common_logger.rb:43:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:266:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:259:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/head.rb:15:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rack-3.0.9/lib/rack/method_override.rb:28:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:224:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:2115:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `block in call'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1890:in `synchronize'
/app/vendor/bundle/ruby/3.1.0/gems/sinatra-4.0.0/lib/sinatra/base.rb:1674:in `call'
/app/vendor/bundle/ruby/3.1.0/gems/rackup-2.1.0/lib/rackup/handler/webrick.rb:111:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:140:in `service'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/httpserver.rb:96:in `run'
/app/vendor/bundle/ruby/3.1.0/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

Please sign in to comment.