# HG changeset patch # User Chris Cannam # Date 1498652405 -3600 # Node ID bf8a5ce8fb62583c1bb0f821274edd8f8e7adc43 # Parent 3505d9536367fade2edc68439119b1da9aa3f806 Update vext; providers -> services diff -r 3505d9536367 -r bf8a5ce8fb62 vext --- a/vext Tue Jun 27 14:31:29 2017 +0100 +++ b/vext Wed Jun 28 13:20:05 2017 +0100 @@ -18,9 +18,10 @@ if [ -z "$sml" ]; then if sml -h 2>&1 | grep -q 'Standard ML of New Jersey'; then sml="smlnj" - # I think there may be a race condition in the poly interpreter's - # tests for open or closed I/O streams - without the "echo" here, - # or with stderr redirection, this pipeline will sometimes hang + # We would prefer Poly/ML to SML/NJ, except that Poly v5.7 has a + # nasty bug that occasionally causes it to deadlock on startup. + # That appears to be fixed in their repo, so we could promote it + # up the order again at some point in future elif echo | poly -v 2>/dev/null | grep -q 'Poly/ML'; then sml="poly" elif mlton 2>&1 | grep -q 'MLton'; then diff -r 3505d9536367 -r bf8a5ce8fb62 vext-project.json --- a/vext-project.json Tue Jun 27 14:31:29 2017 +0100 +++ b/vext-project.json Wed Jun 28 13:20:05 2017 +0100 @@ -2,7 +2,7 @@ "config": { "extdir": "." }, - "providers": { + "services": { "soundsoftware": { "vcs": ["hg", "git"], "anon": "https://code.soundsoftware.ac.uk/{vcs}/{repo}", diff -r 3505d9536367 -r bf8a5ce8fb62 vext.sml --- a/vext.sml Tue Jun 27 14:31:29 2017 +0100 +++ b/vext.sml Wed Jun 28 13:20:05 2017 +0100 @@ -33,7 +33,7 @@ Software without prior written authorization. *) -val vext_version = "0.9.1" +val vext_version = "0.9.2" datatype vcs = @@ -41,8 +41,8 @@ GIT datatype source = - URL of string | - PROVIDER of { + URL_SOURCE of string | + SERVICE_SOURCE of { service : string, owner : string option, repo : string option @@ -986,10 +986,10 @@ } } val loaded = - case lookup_optional json ["providers"] of + case lookup_optional json ["services"] of NONE => [] | SOME (Json.OBJECT pl) => map (fn (k, v) => load v k) pl - | _ => raise Fail "Object expected for providers in config" + | _ => raise Fail "Object expected for services in config" val newly_loaded = List.filter (fn p => not (List.exists (fn pp => #service p = #service pp) @@ -1069,8 +1069,8 @@ fun remote_url (context : context) vcs source libname = case source of - URL u => u - | PROVIDER { service, owner, repo } => + URL_SOURCE u => u + | SERVICE_SOURCE { service, owner, repo } => provider_url { vcs = vcs, service = service, owner = owner, @@ -1387,9 +1387,9 @@ | other => raise Fail ("Unknown version-control system \"" ^ other ^ "\""), source = case (url, service, owner, repo) of - (SOME u, NONE, _, _) => URL u + (SOME u, NONE, _, _) => URL_SOURCE u | (NONE, SOME ss, owner, repo) => - PROVIDER { service = ss, owner = owner, repo = repo } + SERVICE_SOURCE { service = ss, owner = owner, repo = repo } | _ => raise Fail ("Must have exactly one of service " ^ "or url string"), pin = case lock_pin of