Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bring back c-sources: cbits/blst_util.c #412

Merged
merged 1 commit into from May 12, 2023
Merged

Conversation

angerman
Copy link
Collaborator

In #255 we somehow removed the

c-sources: cbits/blst_util.c

from the library. This included the symbol: size_blst_p1, which is used in cardano-crypto-class 馃槺 .

E.g. https://github.com/input-output-hk/cardano-base/blob/e48f2ec561713f7a0863e58e34004b8099079cab/cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs#L372

And thus we now run into undefined symbols issues 馃く

In #255 we somehow removed the
```
c-sources: cbits/blst_util.c
```
from the library. This included the symbol: `size_blst_p1`, which _is_ used in `cardano-crypto-class` 馃槺 .

E.g. https://github.com/input-output-hk/cardano-base/blob/e48f2ec561713f7a0863e58e34004b8099079cab/cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs#L372

And thus we now run into undefined symbols issues 馃く
@angerman angerman requested review from lehins and erikd May 12, 2023 05:49
@angerman angerman self-assigned this May 12, 2023
@angerman angerman enabled auto-merge (squash) May 12, 2023 05:52
angerman added a commit to IntersectMBO/plutus that referenced this pull request May 12, 2023
Copy link
Collaborator

@lehins lehins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching it! 馃憤

@angerman angerman merged commit f855e4b into master May 12, 2023
122 of 160 checks passed
lehins pushed a commit that referenced this pull request May 18, 2023
In #255 we somehow removed the
```
c-sources: cbits/blst_util.c
```
from the library. This included the symbol: `size_blst_p1`, which _is_ used in `cardano-crypto-class` 馃槺 .

E.g. https://github.com/input-output-hk/cardano-base/blob/e48f2ec561713f7a0863e58e34004b8099079cab/cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs#L372

And thus we now run into undefined symbols issues 馃く
lehins pushed a commit that referenced this pull request May 23, 2023
In #255 we somehow removed the
```
c-sources: cbits/blst_util.c
```
from the library. This included the symbol: `size_blst_p1`, which _is_ used in `cardano-crypto-class` 馃槺 .

E.g. https://github.com/input-output-hk/cardano-base/blob/e48f2ec561713f7a0863e58e34004b8099079cab/cardano-crypto-class/src/Cardano/Crypto/EllipticCurve/BLS12_381/Internal.hs#L372

And thus we now run into undefined symbols issues 馃く
michaelpj added a commit to IntersectMBO/plutus that referenced this pull request Jun 1, 2023
* Initial version of BLS pairing builtins

* WIP

* WIP

* WIP: implementations of GT operations

* Tidy up instances

* More-or-less complete implementation for UPLC

* Initial costing benchmarks for BLS builtins

* Update benchmarks

* Update R code

* Forgot source files

* Wrong denotation for GT_mul

* Partial updates to CreateBuiltinCostModel

* Fix typos in function names

* Update memory models for BLS12_381 builtins

* Update memory models for BLS12_381 builtins

* WIP

* Rename BLS (de)serialise -> (un)compress

* Reformat

* inline-r workaround; corrections to cost model generation code

* inline-r workaround

* Update cost model tests for BLS functions

* Update benching results and cost model file for BLS

* Update benching results and cost model file for BLS

* Update comment

* Update comment

* Add some extra stuff for the benefit of the QuickCheck shrinker

* Add new builtins to plutus-tx

* Add a few Haskell BLS examples

* WIP

* Update cabal file

* Merge master

* WIP

* Update BLS throughput benchmarks

* Update cost model for uncompress vs deserialise

* Update BSL benchmark program

* WIP

* Nix weirdness

* Updates after merge

* Add Groth16 verification example

* Tidying up; get rid of SourceSpans

* Minor updates

* Minor updates

* Add proper Criterion benchmarks

* Tidying up

* Moved file

* Forgot cabal file

* Fix typo

* Update comment

* Fix cabal version constraints

* Add missing cases for geqStep

* Update deriving methods

* WIP: property tests

* Add Plutus versions of most of the property tests

* Tidy up the test code a bit

* Use folds for repeated addition; adjust sizes of test inputs

* Better folding

* Update FFI code to new version

* Name change: millerLoop -> pairing

* Reorganise files

* Tidy up

* Tidy up

* More tidying up

* Add comment

* Abstraction for BLS property tests

* Tidying up

* WIP

* Incorporate Inigo's updates

* Banish Hedgehog

* Add conformance tests for BLS12-381 constants

* Add BLS12-381 addition conformance tests

* Add BLS12-381 equality conformance tests

* Add BLS12-381 negation conformance tests

* Update comment on cofactors

* More conformance tests

* Correct test name

* Add BLS12-381 scalar multiplication conformance tests

* Remark about source of data for Groth16 verification example

* Add BLS12-381 pairing operation conformance tests

* Update comment in BLS12-381 peoperty tests

* Update comment in BLS12-381 peoperty tests

* Typo in file name

* Fix types in bls-sizes executable

* Update names in costing benchmark CSV file

* Update names of built-in types and functions in plutus-core

* Update names in conformance tests

* Update BLS names in plutus-tx-plugin

* Remove parser for MlResult; fix Groth16 example

* Tidy up the Groth16 example

* Update versions in plutus-benchmark.cabal

* applyCode -> unsafeApplyCode after PLT-1552

* Update comment

* Minor formatting updates

* Make plutus-metatheory work with the BLS builtins to some extent

* Fix incorrect test

* Exclude failing BLS12-381 Agda tests

* Exclude failing BLS12-381 Agda tests

* Add property test for periodicity of scalar multiplication

* Minor code rearrangement

* Import scalarPeriod for tests

* Add more property tests for BLS compression

* Add conformance tests for BLS scalar mulitplication periodicity

* Add descirptive comments to the BLS conformance tests

* Improve printing of known builtins when parser encounters an unknown one

* Reorganise files containing cryptographic functions

* Reorganise Crypto files

* hashToCurve -> hashToGroup

* Adjust spacing in print-builtin-signatures

* Justification

* Attempt to update to work with iohk-nix version of libblst

* Merge Mauro's metatheory updates

* Update to new version of BLS bindings

* Update to new version of BLS bindings

* Update to new version of BLS bindings

* Merge Mauro's metatheory improvements

* Still trying to get libblst to work with nix

* More informative BLS names in metatheory

* Update some comments

* Get BSL sizes from blst

* Pairing.pairing -> Pairing.millerLoop

* Backpatch cost model

* Turn on immediate warnings in R

* Restore golden budget results after cost model backpatch

* Attempt to fix plututs-ledger-api version tests

* Restore comment

* Add comment

* Fix name of plutus-tx-plugin-tests

* Improve comments

* Extend comments

* Reformat comments

* Add comments to ignore cbits

* Comments on costing benchmarks

* Tidying up

* Add some more comments

* Add changelog entries for BLS12-381 modifications

* Remove unnecessary changelog directories from unversioned packages

* Update plutus-core/plutus-core/src/PlutusCore/Parser/Builtin.hs

Co-authored-by: Michael Peyton Jones <michael.peyton-jones@iohk.io>

* Address some PR comments

* Crypto -> PlutusCore.Crypto for stuff we've defined

* Address some more PR comments

* Update metatheory for package name change

* Update metatheory for package name change

* Update version numbers in cabal file

* Update BLS branch to work with merged version of BLS bindings in cardano-base

* Remove commented-out Haskell code in plutus-metatheory

* Missing cases in metatheory

* Missing cases in metatheory

* Missing cases in metatheory

* Missing cases in metatheory

* Missing cases in metatheory

* Reorder constructors in ledger-api cost model interface

* Update the comments about wrapping BLS12-381 types

* Remove Haskell property tests for BLS12-381 (tested in cardano-base)

* Refactoring

* Refactoring

* Remove some stuff that was left in accidentally

* Remove empty lines

* Resolve merge problems

* Fix comment

* Delete unused boilerplate  from changelog entry

* Update cabal file

* Fix alignment

* Address some PR comments

* Address some PR comments

* fromIntegral -> fromSatInt

* GHC.Tick -> GHC.HpcTick

* Trying to get rid of wrong version of Expr.hs in plutus-tx-plugin

* Add missing golden files

* Fix weird results in TypeSynthesis/Golden/Bls12*

* Try to fix blst

* Add BLS builtins to metatheory

* Fix Untyped/CEK.lagda; make Agda conformance tests pass

* Correct spacing

* Remove some remaining merge conflicts

* Correct spacing

* Correct formatting

* Correct formatting

* Some renaming

* Update flake

* Bump plutus-core at el from 1.5 -> 1.6

* Bump haskell.nix, iohk-nix, CHaP

* bump cardano-base

we needed to get proper blst discovery, until 2.2.0.0 is released. This
also means we need to bring in cardano-mempool.

* Fix missing blst symbols.

This depends on IntersectMBO/cardano-base#412.

* Agda fixes

* liftCode -> liftCodeDef

* Remove superlfuous dependencies

* Add DST argument to hashToGroup builtins

* Address a couple of PR comments

* bump haskell.nix

* Add NOINLINE to listOfSizedByteStrings

* Address some PR comments

* Bump haskell.nix

To get input-output-hk/haskell.nix#1948

* Error type for overlong DSTs

* Error type for overlong DSTs

* Stuff about shrinking

* Make CI happy. x is unused.

* plutus windows cross 8.10

* Finish incomplete test

* Typo

* Address PR comments

* Fix parser for bls12_381_mlresult type

* WIP updating things

* bump iohk-nix

* Improve hash collision tests

* Update benching.csv to new format to make merge easier

* Resolve some remaining conflicts

* Update ciJobs.nix

* bump haskell.nix

* Update nix/cells/automation/ciJobs.nix

* Update nix/cells/automation/ciJobs.nix

* Update plutus-metatheory/src/Algorithmic/Erasure.lagda

---------

Co-authored-by: Michael Peyton Jones <michael.peyton-jones@iohk.io>
Co-authored-by: Moritz Angermann <moritz.angermann@gmail.com>
Co-authored-by: Hamish Mackenzie <Hamish.K.Mackenzie@gmail.com>
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.

None yet

2 participants