Type search "/search" endpoint not working
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Start at the /search endpoint and its tryParseType parser path, reproducing the documented curl queries locally. Trace failures through Language.PureScript.TypeChecker.Kinds at line 501 and Language.PureScript.TypeChecker.Unify at line 70. Done means valid type searches return results or a handled error without the endpoint rejecting basic input or crashing.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- PureScript
- Sterne
- 121
- Forks
- 51
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus purescript/trypurescript
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
purescript/trypurescript#309 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
purescript/trypurescript#308 ·
-
Publish as a library Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
purescript/trypurescript#303 · 1 Kommentar ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
purescript/trypurescript#301 · 1 Kommentar · 1 Reaktion ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
purescript/trypurescript#293 · 7 Kommentare ·
Alle Issues in purescript/trypurescript
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
microsoft/magentic-ui#588 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
alexgorbatchev/simple-ptt#3 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
CorrelAid/formtransform#44 ·