Skip to content
This repository has been archived by the owner on Apr 2, 2023. It is now read-only.

Commit

Permalink
Merge branch 'master' into docs
Browse files Browse the repository at this point in the history
  • Loading branch information
jonsterling committed Mar 20, 2018
2 parents 8c49456 + f4c5ea8 commit efcaa8d
Show file tree
Hide file tree
Showing 21 changed files with 467 additions and 481 deletions.
8 changes: 4 additions & 4 deletions src/redprl.cm
Original file line number Diff line number Diff line change
Expand Up @@ -78,18 +78,18 @@ is
redprl/mini_signature.sig

redprl/metalanguage/type.sig
redprl/metalanguage/syntax.sml

redprl/metalanguage/resolver.sig
redprl/metalanguage/syntax.sig
redprl/metalanguage/elaborate.sig
redprl/metalanguage/semantics.sig
redprl/metalanguage/evaluate.sig

redprl/metalanguage/type.sml
redprl/metalanguage/resolver.fun
redprl/metalanguage/syntax.fun
redprl/metalanguage/elaborate.fun
redprl/metalanguage/semantics.fun
redprl/metalanguage/evaluate.fun
redprl/metalanguage/semantics.sml
redprl/metalanguage/evaluate.sml

redprl/signature.sig
redprl/signature.sml
Expand Down
10 changes: 5 additions & 5 deletions src/redprl.mlb
Original file line number Diff line number Diff line change
Expand Up @@ -88,18 +88,18 @@ in


redprl/metalanguage/type.sig
redprl/metalanguage/type.sml
redprl/metalanguage/syntax.sml

redprl/metalanguage/resolver.sig
redprl/metalanguage/syntax.sig
redprl/metalanguage/elaborate.sig
redprl/metalanguage/semantics.sig
redprl/metalanguage/evaluate.sig

redprl/metalanguage/type.sml
redprl/metalanguage/resolver.fun
redprl/metalanguage/syntax.fun
redprl/metalanguage/elaborate.fun
redprl/metalanguage/semantics.fun
redprl/metalanguage/evaluate.fun
redprl/metalanguage/semantics.sml
redprl/metalanguage/evaluate.sml

redprl/signature.sig
redprl/signature.sml
Expand Down
48 changes: 42 additions & 6 deletions src/redprl/machine.fun
Original file line number Diff line number Diff line change
Expand Up @@ -929,8 +929,8 @@ struct
ty = substVar (s, v) b,
cap = projFromOne s,
tubes =
[ ((s, Syn.intoDim 0), (w, Syn.into @@ Syn.DIM_APP (Syn.intoSnd (fiberFromOne s), VarKit.toDim w)))
, ((s, Syn.intoDim 1), (w, projFromOne s)) ]}
[ ((s, Syn.intoDim 0), (w, Syn.into @@ Syn.DIM_APP (Syn.intoSnd (fiberFromOne (Syn.intoDim 0)), VarKit.toDim w)))
, ((s, Syn.intoDim 1), (w, coercee)) ]}
end
in
branchOnDim stability syms' (#1 dir)
Expand Down Expand Up @@ -1088,14 +1088,50 @@ struct
| STEP cfg => cfg
| CRITICAL cfg => cfg

val ppFrame : frame -> Fpp.doc =
fn APP _ => Fpp.text "app"
| HCOM _ => Fpp.text "hcom"
| COE _ => Fpp.text "coe"
| IF _ => Fpp.text "if"
| S1_REC _ => Fpp.text "s1-rec"
| PUSHOUT_REC _ => Fpp.text "pushout-rec"
| COEQUALIZER_REC _ => Fpp.text "coequalizer-rec"
| DIM_APP _ => Fpp.text "dim-app"
| NAT_REC _ => Fpp.text "nat-rec"
| INT_REC _ => Fpp.text "int-rec"
| PROJ _ => Fpp.text "proj"
| TUPLE_UPDATE _ => Fpp.text "tuple-update"
| CAP _ => Fpp.text "cap"
| VPROJ _ => Fpp.text "vproj"

val ppStack : stack -> Fpp.doc =
Fpp.collection (Fpp.text "[") (Fpp.text "]") (Fpp.text ",") o
List.map ppFrame

fun ppCfg (cfg : abt machine) =
let
val tm || (_, stk) = cfg
in
Fpp.grouped @@ Fpp.vsep [TermPrinter.ppTerm tm, Fpp.text "||", ppStack stk]
end

fun eval sign stability unfolding =
let
fun go cfg =
go (unwrapAction (step sign stability unfolding cfg))
handle Stuck => cfg
| Final => cfg
| Neutral _ => cfg
| Unstable => cfg
handle Stuck =>
let
val msg =
Fpp.hvsep
[Fpp.text "evaluation got stuck:",
Fpp.align @@ ppCfg cfg]
in
RedPrlLog.print RedPrlLog.WARN (NONE, msg);
cfg
end
| Final => cfg
| Neutral _ => cfg
| Unstable => cfg
in
unload o go o init
end
Expand Down

0 comments on commit efcaa8d

Please sign in to comment.