Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Type search "/search" endpoint not working #269

Open
@pete-murphy

Description

The /search endpoint doesn't seem to work (it's not officially documented, so I'm not sure if it's expected to work)

❯ curl -G --data-urlencode 'q=Unit' https://compile.purescript.org/search
{"error":"Cannot parse type"}% 

I am able to get it "working" locally (maybe not as intended) by stripping the TokLayoutStart and TokLayoutEnd tokens

tryParseType :: Text -> Maybe P.SourceType
tryParseType = hush . fmap (CST.convertType "<file>") . runParser CST.parseTypeP
 where
 hush = either (const Nothing) Just
 runParser :: CST.Parser a -> Text -> Either String a
 runParser p =
 let p' = do
 _ <- CSTM.token CST.TokLayoutStart
 result <- p
 _ <- CSTM.token CST.TokLayoutEnd
 _ <- CSTM.token CST.TokEof
 pure result
 in bimap (CST.prettyPrintError . NE.head) snd
 . CST.runTokenParser p'
 . CST.lexTopLevel

This produces output for certain input

❯ curl -G --data-urlencode 'q=Unit' localhost:8081/search | jq '.'
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 784 0 784 0 0 341 0 --:--:-- 0:00:02 --:--:-- 342
{
 "results": [
 "Control.Subcategory.Closed.assertClosed",
 "Control.Subcategory.HasStart.start",
 "Control.Subcategory.HasUnit.unit",
 "Data.Bounded.bottom",
 "Data.Bounded.top",
 "Data.Bounded.Generic.genericBottom",
 "Data.Bounded.Generic.genericTop",
 "Data.HeytingAlgebra.ff",
 "Data.HeytingAlgebra.tt",
 "Data.HeytingAlgebra.Generic.genericFF",
 "Data.HeytingAlgebra.Generic.genericTT",
 "Data.Monoid.mempty",
 "Data.Monoid.Generic.genericMempty",
 "Data.Ring.Module.mzeroL",
 "Data.Ring.Module.mzeroR",
 "Data.Semiring.one",
 "Data.Semiring.zero",
 "Data.Semiring.Generic.genericOne",
 "Data.Semiring.Generic.genericZero",
 "Data.Typelevel.Undefined.undefined",
 "Data.Unit.unit",
 "Formless.Class.Initial.initial",
 "Options.Applicative.Builder.idm",
 "Partial.crash",
 "Protobuf.Internal.Common.default",
 "Undefined.undefined"
 ]
}

but crashes on List a -> Maybe a (one of @paf31's examples from #55)

❯ curl -G --data-urlencode 'q=List a -> Maybe a' localhost:8081/search
curl: (52) Empty reply from server

q=(a -> f b) -> t a -> f (t b) fails similarly, and in both cases in the server logs I see

An internal error occurred during compilation: Skolem has no kind
Please report this at https://github.com/purescript/purescript/issues
CallStack (from HasCallStack):
 error, called at src/Language/PureScript/Crash.hs:23:3 in purescript-cst-0.4.0.0-BFtByvwp6rF98omNSi831H:Language.PureScript.Crash
 internalError, called at src/Language/PureScript/TypeChecker/Kinds.hs:501:32 in purescript-0.14.5-4MEYSDbbzAH8atq8Yve4k8:Language.PureScript.TypeChecker.Kinds
 elaborateKind, called at src/Language/PureScript/TypeChecker/Unify.hs:70:9 in purescript-0.14.5-4MEYSDbbzAH8atq8Yve4k8:Language.PureScript.TypeChecker.Unify

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /