[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#44269] [PATCH] gnu: Add eosio-cdt.
From: |
Jesse Eisses |
Subject: |
[bug#44269] [PATCH] gnu: Add eosio-cdt. |
Date: |
Tue, 17 Nov 2020 09:20:32 +0100 |
Thanks for the feedback
As there are changes made to LLVM and libcxx for eosio-cdt I think we
have to compile them. These large dependencies are included as git
submodules though, so I will try to put them in separate packages.
The comments are clear; I'm working on an updated patch :)
- Jesse
Op di 10 nov. 2020 om 21:22 schreef Marius Bakke <marius@gnu.org>:
>
> jesse@unraveled.tech writes:
>
> > Hi all!
> >
> > This is my first patch, I hope I'm doing it correctly.
>
> Cool, welcome!
>
> The patch is lacking a proper commit message, but looks pretty good
> overall. Some comments follow.
>
> > The patch below adds the Contract Development Toolkit (compiler) for smart
> > contracts on the EOS blockchain. I also have a package for EOS itself that
> > is
> > a bit more involved, so I'll submit separately.
> >
> > Total package size is 607MB of which self is 329MB. It takes a while to
> > compile (about an hour on my i7 laptop).
>
> I suppose some of that time is because of the bundled LLVM, libcxx,
> etc. Do you know if it's possible to remove those, or at least build
> them separately?
>
> > diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
> > index 4397cf8ba8..0e661c4b56 100644
> > --- a/gnu/packages/finance.scm
> > +++ b/gnu/packages/finance.scm
>
> Can you also add your name to the list of authors at the top of the file?
>
> > @@ -59,6 +59,7 @@
> > #:use-module (gnu packages compression)
> > #:use-module (gnu packages crypto)
> > #:use-module (gnu packages curl)
> > + #:use-module (gnu packages cmake)
>
> I believe this import is unused.
>
> [...]
>
> > +(define-public eosio-cdt
> > + (package
> > + (name "eosio-cdt")
> > + (version "1.7.0")
> > + (source
> > + (origin
> > + (method git-fetch)
> > + (uri (git-reference (url "https://github.com/EOSIO/eosio.cdt")
> > + (commit (string-append "v" version))
> > + (recursive? #t)))
> > + (sha256
> > + (base32
> > + "1mrc8dn7sf086456c63rlha4j3fh0g1a59dbd6in6nyhan712xps"))
> > + (file-name (git-file-name name version))))
> > + (build-system cmake-build-system)
> > + (native-inputs
> > + `(("git" ,git)
>
> It looks like the git dependency comes from
> "modules/ClangExternalProject.txt". Though I don't see it being used.
> Can you try to substitute* out the "find_package(Git ...)" statement and
> see if it's possible to make it work without it?
>
> It's not uncommon that build scripts look for git even when it's not
> strictly needed. By removing the dependency we avoid needlessly
> rebuilding this package every time git is updated.
>
> > + ("doxygen" ,doxygen)
> > + ("pkg-config" ,pkg-config)
> > + ("curl" ,curl)))
> > + (inputs
> > + `(("gmp" ,gmp)
> > + ("openssl" ,openssl)
> > + ("python" ,python-3)))
> > + (arguments
> > + `(#:build-type "Release"))
>
> Is there a particular reason to use a "Release" build here (as opposed
> to the default "RelWithDebInfo")? Guix is a hackers distro, and
> debugging symbols are nice. :-)
>
> > + (home-page "https://developers.eos.io/manuals/eosio.cdt/latest/index")
> > + (synopsis "EOSIO.CDT is a suite of tools used to build EOSIO
> > contracts")
>
> Just "Suite of tools to build EOSIO contracts".
>
> Otherwise the patch looks great. Can you send an updated version?