Commit Graph

255 Commits

Author SHA1 Message Date
Kasey White
9dc2bac2c3 fix:minor optimization fixes
Unique only comparison for equals led to strange results
Fixed by interning in a different spot
2023-02-01 23:49:33 -05:00
Kasey White
fdf89b7326 implement optimizations
-Force usage on builtins
-Inline vars used once
-Lambdas that use a var as an arg
-Lambdas that use a const as an arg
2023-02-01 23:49:33 -05:00
Kasey White
3123ad9079 change eval_builtin_app to return Rc so that ifthenelse and chooselist are faster 2023-02-01 18:53:11 -05:00
Kasey White
456b08a205 minor performance improvements
Changed a couple cases where the inner Rc object was cloned to use the Rc object instead
2023-02-01 18:53:11 -05:00
rvcas
a365649360 chore: clippy autofix 2023-02-01 18:53:11 -05:00
rvcas
9c4e921e79 feat: more Rc in machine 2023-02-01 18:53:11 -05:00
rvcas
c8efe60843 feat: use Rc for more things, fib_iter runs almost 3 seconds faster now 2023-02-01 18:53:11 -05:00
rvcas
eda3194cf0 feat: trying Rc for Name 2023-02-01 18:53:11 -05:00
Kasey White
b5d9a9bb52 Change discharge_value and discharge_value_env to use a stack machine 2023-02-01 18:53:11 -05:00
rvcas
790e8ba680 fix: start trying to get rid of recursion for discharge value 2023-02-01 18:53:11 -05:00
KtorZ
cab59c188a Define serde's Serialize/Deserialize for Program<DeBrujin>
This will be useful to re-use this behavior in other structure that contains a Program<DeBruijn> without having to manually serialize or deserialize the entire structure.
2023-01-31 15:39:40 +01:00
Kasey White
afd040fda5 feat: Finish up assert feature
Better error reporing on NonFunctionalApplication Error
Refactor redundant code
Add handling of whens with one clause.
2023-01-29 05:21:55 -05:00
Kasey White
fc88028034 some refactoring and adding assert on lists 2023-01-27 05:02:19 -05:00
rvcas
d649b34ec3 Release 0.0.28
aiken@0.0.28
aiken-lang@0.0.28
aiken-lsp@0.0.28
aiken-project@0.0.28
uplc@0.0.28

Generated by cargo-workspaces
2023-01-06 13:41:00 -05:00
rvcas
c89802eaed chore: bump pallas version 2023-01-06 13:39:18 -05:00
alessandrokonrad
3aba9baba5 Fixed reward account creation in ScriptContext 2023-01-05 10:31:32 -05:00
Kasey White
b0ea187151 better data deserialization errors and test hint
now runs even being in a sequence
2022-12-30 14:01:11 -05:00
rvcas
ee678f2978 Release 0.0.27
aiken@0.0.27
aiken-lang@0.0.27
aiken-lsp@0.0.27
aiken-project@0.0.27
flat-rs@0.0.27
uplc@0.0.27

Generated by cargo-workspaces
2022-12-30 00:57:49 -05:00
Kasey White
a08c615da4 checkpoint 2022-12-27 19:35:08 -05:00
Kasey White
b7d506a8db nested lists now work 2022-12-27 19:35:08 -05:00
Kasey White
6126ee4cb4 checkpoint 2022-12-27 19:35:08 -05:00
alessandrokonrad
b97570bc00 Fixed clippy issue 2022-12-27 17:08:05 -05:00
alessandrokonrad
c6b5380c27 Fixed ex unit budget limit per redeemer 2022-12-27 17:08:05 -05:00
rvcas
42204d2d71 chore: make folder names match crate name 2022-12-21 18:11:07 -05:00
rvcas
b3266fb837 chore: clippy warnings 2022-12-20 16:32:31 -05:00
KtorZ
529b3e87ff Rename builtin as 'verify_ed25519_signature'
It's best to keep builtin as-close-as possible to their standard name
  because they're hard to document. We can then leverage the prelude and
  the standard lib for convenient names.
2022-12-19 00:41:27 -05:00
Kasey White
e6c59dca2c cleanup if then else a bit 2022-12-19 00:41:27 -05:00
rvcas
841babae5c chore: clean some links up so they point to the new repo 2022-12-17 11:19:02 -05:00
jmhrpr
775e90d782 chore: remove unnecessary Option wrapper on type 2022-12-15 18:22:31 -05:00
jmhrpr
325a7b7b45 fix: correct V1 to_plutus_data() for txout with no datum hash 2022-12-15 18:22:31 -05:00
rvcas
141a9aef30 feat: impl Sub for ExBudget 2022-12-08 19:24:20 -05:00
rvcas
f250d3df84 feat: eval should take initial budget 2022-12-08 19:24:20 -05:00
Kasey White
2f7131e9b8 feat: add tuples and streamline conversion of types to and from data 2022-12-07 08:40:23 -05:00
Kasey White
29a30aa61f feat: finished when constr is for IR and code gen 2022-12-05 14:18:44 -05:00
rvcas
86ea41adc3 feat: start when expressions 2022-12-05 14:18:44 -05:00
Kasey White
8b24a66b7e add field access and list patterns are finished
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 14:18:44 -05:00
KtorZ
375499930a Add UPLC support for 'ProtoList' & 'ProtoPair' constants
Supersedes #35.

  The syntax for these elements isn't "set in stone"; in the sense that it is unspecified in [input-output-hk/plutus](https://github.com/input-output-hk/plutus). There's no visible plan from IOG to extend the Haskell parser to support this syntax, though there are samples of imagined syntax in the code. Thus, we can lead the way and simply choose a suitable syntax and let the Haskell implementation align to it later.

  This syntax is thus inspired from input-output-hk/plutus' samples, with only a small change: we use `<` and `>` for encapsulating type declaration instead of `(`, `)`. There are already enough parentheses in the UPLC syntax, adding more reduces visibility.

  Doing this, I've also added a lot more test cases for the UPLC parser. There could be more, but this is a good start.

  Here are some example programs (taken from test cases) utilizing this syntax:

  ```
  (program 0.0.0 (con list<bytestring> [#00, #01]))
  ```

  ```
  (program 0.0.0
      (con pair
        <integer, integer>
        [14, 42]
      )
  )
  ```

  ```
  (program 0.0.0
      (con pair<string, list<integer>> ["foo", [14, 42]])
  )
  ```

  _(Note that this was mainly done as an exercise to get more familiar with Rust and parts of Aiken.)_
2022-12-03 10:16:16 -05:00
eyelash
6066e3176c move to_string() outside of the match 2022-11-28 17:30:45 -05:00
rvcas
d5087dbcc7 fix: it's more consistent to have snakecase builtins 2022-11-24 18:36:22 -05:00
rvcas
f089eff97d Release 0.0.25
aiken@0.0.25
aiken-lang@0.0.25
aiken-lsp@0.0.25
aiken-project@0.0.25
uplc@0.0.25

Generated by cargo-workspaces
2022-11-14 18:04:19 -05:00
rvcas
01e91b9fe5 chore: deal with clippy warnings 2022-11-10 01:27:18 -05:00
Kasey White
6c6aefd1c4 get basic when conditions to work 2022-11-08 22:21:07 -05:00
Kasey White
3cafb2bcbe checkpoint commit 2022-11-08 22:21:07 -05:00
rvcas
d8f3ada13e chore: add default for Interner 2022-11-08 22:21:07 -05:00
Kasey White
ffa78e4c30 work out some initial direction for code gen 2022-11-08 22:21:07 -05:00
rvcas
3df275043a Release 0.0.24
aiken@0.0.24
aiken-lang@0.0.24
aiken-project@0.0.24
uplc@0.0.24

Generated by cargo-workspaces
2022-11-04 13:56:15 -04:00
alessandrokonrad
af7ca87ffc Fixed more clippy issues 2022-11-04 18:21:22 +01:00
alessandrokonrad
9a2c6753cd Fixed clippy issues 2022-11-04 18:13:46 +01:00
alessandrokonrad
d1141f306a Sorted all relevant structures in ScriptContext 2022-11-04 17:58:23 +01:00
rvcas
c4db8c951f Release 0.0.23
aiken@0.0.23
aiken-lang@0.0.23
aiken-project@0.0.23
uplc@0.0.23

Generated by cargo-workspaces
2022-11-03 20:27:03 -04:00