Skip to content

fix stack run bug, and make stack build and exec explicit#8

Open
AJnsm wants to merge 1 commit intophilipp-zahn:masterfrom
AJnsm:fix-stack-run
Open

fix stack run bug, and make stack build and exec explicit#8
AJnsm wants to merge 1 commit intophilipp-zahn:masterfrom
AJnsm:fix-stack-run

Conversation

@AJnsm
Copy link

@AJnsm AJnsm commented Oct 24, 2022

The tutorial says that the demo project can be run with stack run, but that command does not always correctly pick the first executable (see e.g. here).

On my machine (MacBook Pro 2018, MacOS 12.6), with stack Version 2.9.1 x86_64, I indeed got the following output:

> stack run
searching for aliceValue in expression VarE payments
searching for aliceValue in expression VarE payments
searching for aliceValue in expression VarE payments
searching for aliceValue in expression VarE aliceValue
searching for aliceValue in expression VarE bobValue
searching for aliceValue in expression VarE carolValue
searching for aliceValue in expression ListE [TupE [LitE (StringL "Alice"),VarE aliceDec],TupE [LitE (StringL "Bob"),VarE bobDec],TupE [LitE (StringL "Carol"),VarE carolDec]]
searching for bobValue in expression VarE payments
searching for bobValue in expression VarE payments
searching for bobValue in expression VarE payments
searching for bobValue in expression VarE aliceValue
searching for bobValue in expression VarE bobValue
searching for bobValue in expression VarE carolValue
searching for bobValue in expression ListE [TupE [LitE (StringL "Alice"),VarE aliceDec],TupE [LitE (StringL "Bob"),VarE bobDec],TupE [LitE (StringL "Carol"),VarE carolDec]]
searching for carolValue in expression VarE payments
searching for carolValue in expression VarE payments
searching for carolValue in expression VarE payments
searching for carolValue in expression VarE aliceValue
searching for carolValue in expression VarE bobValue
searching for carolValue in expression VarE carolValue
searching for carolValue in expression ListE [TupE [LitE (StringL "Alice"),VarE aliceDec],TupE [LitE (StringL "Bob"),VarE bobDec],TupE [LitE (StringL "Carol"),VarE carolDec]]
searching for aliceDec in expression VarE payments
searching for aliceDec in expression VarE payments
searching for aliceDec in expression VarE payments
searching for aliceDec in expression VarE aliceValue
searching for aliceDec in expression VarE bobValue
searching for aliceDec in expression VarE carolValue
searching for aliceDec in expression ListE [TupE [LitE (StringL "Alice"),VarE aliceDec],TupE [LitE (StringL "Bob"),VarE bobDec],TupE [LitE (StringL "Carol"),VarE carolDec]]
searching for bobDec in expression VarE payments
searching for bobDec in expression VarE payments
searching for bobDec in expression VarE payments
searching for bobDec in expression VarE aliceValue
searching for bobDec in expression VarE bobValue
searching for bobDec in expression VarE carolValue
searching for bobDec in expression ListE [TupE [LitE (StringL "Alice"),VarE aliceDec],TupE [LitE (StringL "Bob"),VarE bobDec],TupE [LitE (StringL "Carol"),VarE carolDec]]
searching for carolDec in expression VarE payments
searching for carolDec in expression VarE payments
searching for carolDec in expression VarE payments
searching for carolDec in expression VarE aliceValue
searching for carolDec in expression VarE bobValue
searching for carolDec in expression VarE carolValue
searching for carolDec in expression ListE [TupE [LitE (StringL "Alice"),VarE aliceDec],TupE [LitE (StringL "Bob"),VarE bobDec],TupE [LitE (StringL "Carol"),VarE carolDec]]
searching for payments in expression VarE payments
searching for payments in expression VarE payments
searching for payments in expression VarE payments
searching for payments in expression VarE aliceValue
searching for payments in expression VarE bobValue
searching for payments in expression VarE carolValue
searching for payments in expression ListE [TupE [LitE (StringL "Alice"),VarE aliceDec],TupE [LitE (StringL "Bob"),VarE bobDec],TupE [LitE (StringL "Carol"),VarE carolDec]]
edges are [(0,3,Covariant "aliceValue"),(1,4,Covariant "bobValue"),(2,5,Covariant "carolValue"),(3,6,Covariant "aliceDec"),(4,6,Covariant "bobDec"),(5,6,Covariant "carolDec"),(6,3,Contravariant "payments"),(6,4,Contravariant "payments"),(6,5,Contravariant "payments")]

Running stack run --verbose shows that it indeed runs the graphics executable, which is the second one in the package.yaml file, not the first. This is fixed by this PR, which explicitly builds and executes open-games-exe, and outputs:

> stack build --exec open-games-exe
[some build info]
Single decision -->
----Analytics begin----
 Strategies are NOT in equilibrium. Consider the following profitable deviations:

Player: player1
Optimal Move: 5.0
Current Strategy: fromFreqs [(4.0,1.0)]
Optimal Payoff: 0.0
Current Payoff: -1.0
Observable State: ()
Unobservable State: "((),())"
 --other game--
 --No more information--
 NEWGAME:
----Analytics end----


 Single decision -->
----Analytics begin----
 Strategies are in equilibrium
 NEWGAME:
----Analytics end----


 Single decision with stochastic environment -->
----Analytics begin----
 Strategies are in equilibrium
 NEWGAME:
----Analytics end----


 Prisoner's dilemma both cooperate -->
----Analytics begin----
 Strategies are NOT in equilibrium. Consider the following profitable deviations:

Player: player1
Optimal Move: Defect
Current Strategy: fromFreqs [(Cooperate,1.0)]
Optimal Payoff: 5.0
Current Payoff: 3.0
Observable State: ()
Unobservable State: "((),())"
 --other game--
 --No more information--
 NEWGAME:

 Strategies are NOT in equilibrium. Consider the following profitable deviations:

Player: player2
Optimal Move: Defect
Current Strategy: fromFreqs [(Cooperate,1.0)]
Optimal Payoff: 5.0
Current Payoff: 3.0
Observable State: ()
Unobservable State: "((),Cooperate)"
 --other game--
 --No more information--
 NEWGAME:
----Analytics end----


 Prisoner's dilemma both defect -->
----Analytics begin----
 Strategies are in equilibrium
 NEWGAME:

 Strategies are in equilibrium
 NEWGAME:
----Analytics end----


 Matching Pennies - mixed with equal prob -->
----Analytics begin----
 Strategies are in equilibrium
 NEWGAME:

 Strategies are in equilibrium
 NEWGAME:
----Analytics end----

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant