Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
cf48355
WIP: Added new 'Expr' data type that does not hold a function interna…
RobinWebbers Jul 31, 2026
9d646d6
Adjusted 'DataCon' orphan 'Ord' and 'Mergeable' instances to sort on …
RobinWebbers Sep 8, 2026
64abff5
Set 'OverloadedStrings' as default extension (as using normal 'String…
RobinWebbers Sep 8, 2026
41cd58b
WIP evaluator adjustment: stepping away from thunks in 'Expr' to a mo…
RobinWebbers Sep 8, 2026
f5c96a8
Adjusted a bunch of code for the WHNF evaluator. Big change especiall…
RobinWebbers Sep 16, 2026
588ef91
Small evaluator module cleanup. Fixed bug where we swapped around 'En…
RobinWebbers Sep 18, 2026
7b0e81d
Adjusted 'SNat' pattern in builtins to use 'evidence' function, inste…
RobinWebbers Sep 18, 2026
0dbdf73
Adjusted import qualified as 'Prelude' to 'Base', as the imports are …
RobinWebbers Sep 18, 2026
c275b66
Some typos and documentation changes for the built-in functions.
RobinWebbers Sep 18, 2026
bfb044d
Initial primitive addition. WIP: need to write a good way to wrap som…
RobinWebbers Sep 19, 2026
02918a4
Renamed 'Subst' to 'Env'. Improved the primitive call functions and u…
RobinWebbers Sep 23, 2026
676bbc5
Fixed mistake on 'IteOp' where the arity was 0, but should be 3. Fixe…
RobinWebbers Sep 25, 2026
32d6091
Added support for 'Wrap' and 'Unwrap' of 'PrimitiveType'. Used this t…
RobinWebbers Sep 25, 2026
ff928b8
Added support for case-of on primitive literals.
RobinWebbers Oct 5, 2026
0c25381
* Added in support for tagToEnum#. This one was a bit of a hassle: we…
RobinWebbers Oct 7, 2026
538947e
* Fixed issue with 'i2bv' where we did not match the arity of the fun…
RobinWebbers Oct 7, 2026
75e6d62
* Adjusted argument thunking to resolve variables. Without this, new …
RobinWebbers Oct 7, 2026
8b0f5fd
* Fixed 'UnsafeEqualityProof' where we returned only a coercion, whil…
RobinWebbers Oct 8, 2026
d38d5ab
* Adjusted API for calling the evaluator. Now, we expect a value in t…
RobinWebbers Oct 8, 2026
308dd53
* Added support for bitvector slice, concat and extends.
RobinWebbers Oct 9, 2026
05b414e
* Added instance for 'Symbolic' through 'GHC.Generics'. This way, a u…
RobinWebbers Oct 9, 2026
001aae3
* Added support for array primitive operations.
RobinWebbers Oct 10, 2026
e54b84d
Mini code improvement: used `type (:.:)` for lifting to and from a fu…
RobinWebbers Oct 11, 2026
9d59dd0
Resolve nasty bug where 'symbolise#' was not called due to it contain…
RobinWebbers Oct 11, 2026
3e4ffe6
Added type family normalisation to subsumption, this allows us to res…
RobinWebbers Oct 13, 2026
0feff53
Found where we added too much environment during evaluation: when pus…
RobinWebbers Oct 13, 2026
8ebd8b8
Added 'nospec' unfolding manually: this function is not exposed but s…
RobinWebbers Oct 13, 2026
971acdd
Adjusted the extension of embeddings to not contain themselves in the…
RobinWebbers Oct 13, 2026
4175730
Added 'ArrayType' prim op. Added support for 'raise#' operation. Expo…
RobinWebbers Oct 13, 2026
cb4bb7b
* Removed HasCallStack threaded in the main evaluator as the mutually…
RobinWebbers Oct 14, 2026
198f426
* Found out that the merging algorithm for DataCon was not working: I…
RobinWebbers Oct 14, 2026
d540f40
Added actual final solver call. Since the fresh value API changed, we…
RobinWebbers Oct 15, 2026
e2ba520
Refactor (i.e. removing old evaluator in favor of new one):
RobinWebbers Oct 15, 2026
dfa70ed
Fixed test bench by having it use the new API.
RobinWebbers Oct 15, 2026
55a74b4
Moved 'Pantomime.Axiom' to 'Pantomime.Embed' as the name makes more s…
RobinWebbers Oct 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ default-extensions:
- BlockArguments
- ConstraintKinds
- DataKinds
- DeriveGeneric
- DeriveDataTypeable
- DeriveTraversable
- DerivingVia
- FlexibleContexts
- FlexibleInstances
- GADTs
Expand All @@ -35,8 +37,11 @@ default-extensions:
- MultiParamTypeClasses
- MultiWayIf
- NamedFieldPuns
- OverloadedStrings
- PatternSynonyms
- RankNTypes
- RecordWildCards
- RecursiveDo
# TODO: Perhaps it would be better to fade out any use of 'ScopedTypeVariables'
# in favor of only using 'TypeAbstractions'. It is a lot less cursed.
- ScopedTypeVariables
Expand Down Expand Up @@ -77,11 +82,14 @@ library:
- template-haskell
- microlens
- effectful-core >= 2.5.1.0
- effectful
- text
- hashable
- deepseq
- bytestring
- syb
- data-fix
- recursion-schemes

tests:
pantomime-test:
Expand All @@ -91,7 +99,6 @@ tests:
- -threaded
- -rtsopts
- -with-rtsopts=-N
- -dynamic
dependencies:
- pantomime
- hspec
Expand Down
30 changes: 18 additions & 12 deletions pantomime.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2

-- This file has been generated from package.yaml by hpack version 0.38.1.
-- This file has been generated from package.yaml by hpack version 0.39.6.
--
-- see: https://github.com/sol/hpack

Expand Down Expand Up @@ -39,27 +39,20 @@ library
Effectful.Grisette.Solver
Pantomime
Pantomime.Annotation
Pantomime.Axiom
Pantomime.Binding
Pantomime.BuiltIn
Pantomime.Defer
Pantomime.Embed
Pantomime.Expr
Pantomime.Fresh
Pantomime.Grisette.Mergeable
Pantomime.Grisette.UnionT
Pantomime.Literal
Pantomime.Marker
Pantomime.Orphan.GHC
Pantomime.Orphan.Grisette
Pantomime.Passes
Pantomime.PrimOps
Pantomime.PrimOp
Pantomime.Solve
Pantomime.Subst
Pantomime.Symbolise
Pantomime.TH
Pantomime.Tsil
Pantomime.Unification
Pantomime.Util
Pantomime.WHNF
other-modules:
Paths_pantomime
autogen-modules:
Expand All @@ -71,8 +64,10 @@ library
BlockArguments
ConstraintKinds
DataKinds
DeriveGeneric
DeriveDataTypeable
DeriveTraversable
DerivingVia
FlexibleContexts
FlexibleInstances
GADTs
Expand All @@ -82,8 +77,11 @@ library
MultiParamTypeClasses
MultiWayIf
NamedFieldPuns
OverloadedStrings
PatternSynonyms
RankNTypes
RecordWildCards
RecursiveDo
ScopedTypeVariables
TemplateHaskell
TupleSections
Expand All @@ -98,14 +96,17 @@ library
, composition
, constraints >=0.14.2
, containers
, data-fix
, deepseq
, effectful
, effectful-core >=2.5.1.0
, ghc >=9.12.2
, grisette >=0.13.0.0
, hashable
, microlens
, mtl
, primitive
, recursion-schemes
, syb
, template-haskell
, text
Expand All @@ -127,8 +128,10 @@ test-suite pantomime-test
BlockArguments
ConstraintKinds
DataKinds
DeriveGeneric
DeriveDataTypeable
DeriveTraversable
DerivingVia
FlexibleContexts
FlexibleInstances
GADTs
Expand All @@ -138,16 +141,19 @@ test-suite pantomime-test
MultiParamTypeClasses
MultiWayIf
NamedFieldPuns
OverloadedStrings
PatternSynonyms
RankNTypes
RecordWildCards
RecursiveDo
ScopedTypeVariables
TemplateHaskell
TupleSections
TypeAbstractions
TypeApplications
TypeFamilies
TypeOperators
ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wprepositive-qualified-module -threaded -rtsopts -with-rtsopts=-N -dynamic
ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wprepositive-qualified-module -threaded -rtsopts -with-rtsopts=-N
build-depends:
HUnit
, base >=4.7 && <5
Expand Down
3 changes: 1 addition & 2 deletions src/Effectful/GHC/TyThing.hs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Effectful.GHC.TyThing
Expand Down Expand Up @@ -85,6 +83,7 @@ instance (Error (LookupError Name) :> es, HasThings :> es) => MonadThings (Eff e
ATyCon tyCon -> pure tyCon
_ -> throwError_ $ LookupError name

-- | Lookup a class.
lookupClass
:: HasCallStack
=> Error (LookupError Name) :> es
Expand Down
2 changes: 1 addition & 1 deletion src/Pantomime.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ module Pantomime
import GHC.Plugins hiding (empty, (<>))

import Pantomime.Annotation
import Pantomime.Axiom
import Pantomime.Embed
import Pantomime.Passes
import Pantomime.TH (pantomime)
import Pantomime.Marker
Expand Down
2 changes: 1 addition & 1 deletion src/Pantomime/Annotation.hs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module Pantomime.Annotation
) where

import Data.Data (Data)
import Pantomime.Axiom (Embeddings)
import Pantomime.Embed (Embeddings)
import GHC.Utils.Outputable (Outputable (..), hang)

-- TODO: Not sure I like the name. This checks whether an expression whose
Expand Down
Loading
Loading