all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Too many heap sections
@ 2017-12-07 20:04 Bryan Ferris
  2017-12-08  1:58 ` Chris Marusich
  2017-12-08 10:37 ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Bryan Ferris @ 2017-12-07 20:04 UTC (permalink / raw)
  To: help-guix

[-- Attachment #1: Type: text/plain, Size: 1735 bytes --]

Hello,

I have recently (re-)installed Guix, and I am trying to package Jekyll so
that I can build my website on this system. I used `guix import gem` to get
started, and then repeated the process for a number of it's dependencies.
Now when I try to build it (with `guix package -f jekyll.scm`) I get the
following error:

Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS

To me, this sounds like I'm using too much RAM. However, I don't understand
how package definitions could cause that problem, unless the source code
was too big or something equally absurd. Here's my current package
definition:

(define ruby-jekyll (package
  (name "ruby-jekyll")
  (version "3.6.2")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "jekyll" version))
      (sha256
        (base32
          "0rgdml6ypwwxrwv4dk2r8v9vp0ch3c060f6svhxggvk31w9k5lki")
      )
    )
  )
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs
    `(("ruby-addressable" ,ruby-addressable)
      ("ruby-colorator" ,ruby-colorator)
      ("ruby-jekyll" ,ruby-jekyll)
      ("ruby-jekyll-sass-converter"
       ,ruby-jekyll-sass-converter)
      ("ruby-jekyll-watch" ,ruby-jekyll-watch)
      ("ruby-kramdown" ,ruby-kramdown)
      ("ruby-liquid" ,ruby-liquid)
      ("ruby-mercenary" ,ruby-mercenary)
      ("ruby-pathutil" ,ruby-pathutil)
      ("ruby-rouge" ,ruby-rouge)
      ("ruby-safe-yaml" ,ruby-safe-yaml)
    )
  )
  (synopsis
    "Jekyll is a simple, blog aware, static site generator.")
  (description
    "Jekyll is a simple, blog aware, static site generator.")
  (home-page "https://github.com/jekyll/jekyll")
  (license expat)
))

Thanks,
Bryan

[-- Attachment #2: Type: text/html, Size: 2330 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Too many heap sections
  2017-12-07 20:04 Too many heap sections Bryan Ferris
@ 2017-12-08  1:58 ` Chris Marusich
  2017-12-08 10:37 ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Chris Marusich @ 2017-12-08  1:58 UTC (permalink / raw)
  To: Bryan Ferris; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 1153 bytes --]

Bryan Ferris <saffsnail@gmail.com> writes:

> Hello,
>
> I have recently (re-)installed Guix, and I am trying to package Jekyll so
> that I can build my website on this system. I used `guix import gem` to get
> started, and then repeated the process for a number of it's dependencies.
> Now when I try to build it (with `guix package -f jekyll.scm`) I get the
> following error:
>
> Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
>
> To me, this sounds like I'm using too much RAM. However, I don't understand
> how package definitions could cause that problem, unless the source code
> was too big or something equally absurd. Here's my current package
> definition:
>

I tried to reproduce this locally, but I couldn't build it due to
missing dependencies.  Can you attach a patch that applies cleanly to
master, or a file that contains package definitions for all of the
dependencies that are not yet packaged, or more detailed instructions?

I haven't used any of the importers yet, so I'm not sure how to use it.
Are you supposed to invoke "guix import gem foo" from a Guix checkout?

Thank you,
-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Too many heap sections
  2017-12-07 20:04 Too many heap sections Bryan Ferris
  2017-12-08  1:58 ` Chris Marusich
@ 2017-12-08 10:37 ` Ludovic Courtès
  2017-12-08 16:27   ` Bryan Ferris
  1 sibling, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2017-12-08 10:37 UTC (permalink / raw)
  To: Bryan Ferris; +Cc: help-guix

Hi Bryan,

Bryan Ferris <saffsnail@gmail.com> skribis:

> I have recently (re-)installed Guix, and I am trying to package Jekyll so
> that I can build my website on this system. I used `guix import gem` to get
> started, and then repeated the process for a number of it's dependencies.
> Now when I try to build it (with `guix package -f jekyll.scm`) I get the
> following error:
>
> Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
>
> To me, this sounds like I'm using too much RAM.

IIRC it’s a warning, not an error, but it has to do with Guile consuming
too much memory, indeed.

It shouldn’t happen when all the package .scm files have been compiled.
Is it the case?

HTH,
Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Too many heap sections
  2017-12-08 10:37 ` Ludovic Courtès
@ 2017-12-08 16:27   ` Bryan Ferris
  2017-12-12 16:15     ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Bryan Ferris @ 2017-12-08 16:27 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 13004 bytes --]

Thanks for the prompt replies,

Ludovic: I have one file, jekyll.scm, which contains jekyll and it's
dependencies, and the only thing I do to it is run `guix package -f
jekyll.scm`. I had assumed that this command would take care of things like
compiling the packages. Is this not the case?

Chris: I probably should've sent the whole file the first time, I was just
worried that a wall of text would be unapproachable. Here's the full file:

(use-modules (guix packages)
             (guix build-system ruby)
             (guix download)
             (guix licenses)
             (gnu packages ruby)
)


(define ruby-sass (package
  (name "ruby-sass")
  (version "3.5.3")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "sass" version))
      (sha256
        (base32
          "1167camc4ccqf9lcjlpyf96ji00f0041i7xanj2nm41fkx7kr7kr"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs
    `(("ruby-sass-listen" ,ruby-sass-listen)))
  (synopsis
    "      Sass makes CSS fun again. Sass is an extension of CSS, adding
      nested rules, variables, mixins, selector inheritance, and more.
      It's translated to well-formatted, standard CSS using the
      command line tool or a web-framework plugin.
")
  (description
    "      Sass makes CSS fun again.  Sass is an extension of CSS, adding
      nested rules, variables, mixins, selector inheritance, and more.
      It's translated to well-formatted, standard CSS using the
      command line tool or a web-framework plugin.
")
  (home-page "http://sass-lang.com/")
  (license expat)
))


(define ruby-sass-listen (package
  (name "ruby-sass-listen")
  (version "4.0.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "sass-listen" version))
      (sha256
        (base32
          "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs
    `(("ruby-rb-fsevent" ,ruby-rb-fsevent)
      ("ruby-rb-inotify" ,ruby-rb-inotify)))
  (synopsis
    "This fork of guard/listen provides a stable API for users of the ruby
Sass CLI")
  (description
    "This fork of guard/listen provides a stable API for users of the ruby
Sass CLI")
  (home-page "https://github.com/sass/listen")
  (license expat)
))

(define ruby-forwardable-extended (package
  (name "ruby-forwardable-extended")
  (version "2.6.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "forwardable-extended" version))
      (sha256
        (base32
          "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis
    "Forwardable with hash, and instance variable extensions.")
  (description
    "Forwardable with hash, and instance variable extensions.")
  (home-page
    "http://github.com/envygeeks/forwardable-extended")
  (license expat)
))

(define ruby-public-suffix (package
  (name "ruby-public-suffix")
  (version "3.0.1")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "public_suffix" version))
      (sha256
        (base32
          "0mvzd9ycjw8ydb9qy3daq3kdzqs2vpqvac4dqss6ckk4rfcjc637"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis
    "PublicSuffix can parse and decompose a domain name into top level
domain, domain and subdomains.")
  (description
    "PublicSuffix can parse and decompose a domain name into top level
domain, domain and subdomains.")
  (home-page
    "https://simonecarletti.com/code/publicsuffix-ruby")
  (license expat)
))

(define ruby-addressable (package
  (name "ruby-addressable")
  (version "2.5.2")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "addressable" version))
      (sha256
        (base32
          "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs
    `(("ruby-public-suffix" ,ruby-public-suffix)))
  (synopsis
    "Addressable is a replacement for the URI implementation that is part of
     Ruby's standard library. It more closely conforms to the relevant RFCs
and
     adds support for IRIs and URI templates.
    ")
  (description
    "Addressable is a replacement for the URI implementation that is part of
     Ruby's standard library.  It more closely conforms to the relevant
RFCs and
     adds support for IRIs and URI templates.
  ")
  (home-page
    "https://github.com/sporkmonger/addressable")
  (license #f)
))


(define ruby-colorator (package
  (name "ruby-colorator")
  (version "1.1.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "colorator" version))
      (sha256
        (base32
          "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis "Colorize your text in the terminal.")
  (description
    "Colorize your text in the terminal.")
  (home-page
    "https://github.com/octopress/colorator")
  (license expat)
))


(define ruby-jekyll-sass-converter (package
  (name "ruby-jekyll-sass-converter")
  (version "1.5.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "jekyll-sass-converter" version))
      (sha256
        (base32
          "01m921763yfgx1gc33k5ixqz623f4c4azgnpqhgsc2q61fyfk3q1"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs `(("ruby-sass" ,ruby-sass)))
  (synopsis "A basic Sass converter for Jekyll.")
  (description
    "This package provides a basic Sass converter for Jekyll.")
  (home-page
    "https://github.com/jekyll/jekyll-sass-converter")
  (license expat)
))

(define ruby-jekyll-watch (package
  (name "ruby-jekyll-watch")
  (version "1.5.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "jekyll-watch" version))
      (sha256
        (base32
          "02rg3wi95w2l0bg1igl5k6pza723vn2b2gj975gycz1cpmhdjn6z"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs
    `(("ruby-listen" ,ruby-listen)))
  (synopsis
    "Rebuild your Jekyll site when a file changes with the `--watch`
switch.")
  (description
    "Rebuild your Jekyll site when a file changes with the `--watch`
switch.")
  (home-page
    "https://github.com/jekyll/jekyll-watch")
  (license expat)
))

(define ruby-kramdown (package
  (name "ruby-kramdown")
  (version "1.15.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "kramdown" version))
      (sha256
        (base32
          "12k1dayq3dh20zlllfarw4nb6xf36vkd5pb41ddh0d0lndjaaf5f"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis
    "kramdown is yet-another-markdown-parser but fast, pure Ruby,
using a strict syntax definition and supporting several common extensions.
")
  (description
    "kramdown is yet-another-markdown-parser but fast, pure Ruby,
using a strict syntax definition and supporting several common extensions.
")
  (home-page "http://kramdown.gettalong.org")
  (license expat)
))


(define ruby-liquid (package
  (name "ruby-liquid")
  (version "4.0.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "liquid" version))
      (sha256
        (base32
          "17fa0jgwm9a935fyvzy8bysz7j5n1vf1x2wzqkdfd5k08dbw3x2y"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis
    "A secure, non-evaling end user template engine with aesthetic markup.")
  (description
    "This package provides a secure, non-evaling end user template engine
with aesthetic markup.")
  (home-page "http://www.liquidmarkup.org")
  (license expat)
))


(define ruby-mercenary (package
  (name "ruby-mercenary")
  (version "0.3.6")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "mercenary" version))
      (sha256
        (base32
          "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis
    "Lightweight and flexible library for writing command-line apps in
Ruby.")
  (description
    "Lightweight and flexible library for writing command-line apps in
Ruby.")
  (home-page "https://github.com/jekyll/mercenary")
  (license expat)
))


(define ruby-pathutil (package
  (name "ruby-pathutil")
  (version "0.16.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "pathutil" version))
      (sha256
        (base32
          "17ipzhp1zmb0shskgvcrkpgicv499cb3nd5g4r2qaj9j2cf12b6l"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs
    `(("ruby-forwardable-extended"
       ,ruby-forwardable-extended)))
  (synopsis
    "Like Pathname but a little less insane.")
  (description
    "Like Pathname but a little less insane.")
  (home-page
    "http://github.com/envygeeks/pathutil")
  (license expat)
))


(define ruby-rouge (package
  (name "ruby-rouge")
  (version "3.0.0")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "rouge" version))
      (sha256
        (base32
          "1in49lnhck46amlg6sxaiv2irl9w3r032agnsdlziaxy48ddk9h1"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis
    "Rouge aims to a be a simple, easy-to-extend drop-in replacement for
pygments.")
  (description
    "Rouge aims to a be a simple, easy-to-extend drop-in replacement for
pygments.")
  (home-page "http://rouge.jneen.net/")
  (license (list expat #f))
))


(define ruby-safe-yaml (package
  (name "ruby-safe-yaml")
  (version "1.0.4")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "safe_yaml" version))
      (sha256
        (base32
          "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"))))
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (synopsis "Parse YAML safely")
  (description "Parse YAML safely")
  (home-page "https://github.com/dtao/safe_yaml")
  (license expat)
))


(define ruby-jekyll (package
  (name "ruby-jekyll")
  (version "3.6.2")
  (source
    (origin
      (method url-fetch)
      (uri (rubygems-uri "jekyll" version))
      (sha256
        (base32
          "0rgdml6ypwwxrwv4dk2r8v9vp0ch3c060f6svhxggvk31w9k5lki")
      )
    )
  )
  (build-system ruby-build-system)
  (arguments '(#:phases (modify-phases %standard-phases (delete 'check))))
  (propagated-inputs
    `(("ruby-addressable" ,ruby-addressable)
      ("ruby-colorator" ,ruby-colorator)
      ("ruby-jekyll" ,ruby-jekyll)
      ("ruby-jekyll-sass-converter"
       ,ruby-jekyll-sass-converter)
      ("ruby-jekyll-watch" ,ruby-jekyll-watch)
      ("ruby-kramdown" ,ruby-kramdown)
      ("ruby-liquid" ,ruby-liquid)
      ("ruby-mercenary" ,ruby-mercenary)
      ("ruby-pathutil" ,ruby-pathutil)
      ("ruby-rouge" ,ruby-rouge)
      ("ruby-safe-yaml" ,ruby-safe-yaml)
    )
  )
  (synopsis
    "Jekyll is a simple, blog aware, static site generator.")
  (description
    "Jekyll is a simple, blog aware, static site generator.")
  (home-page "https://github.com/jekyll/jekyll")
  (license expat)
))

ruby-jekyll





On Fri, Dec 8, 2017 at 2:37 AM, Ludovic Courtès <ludo@gnu.org> wrote:

> Hi Bryan,
>
> Bryan Ferris <saffsnail@gmail.com> skribis:
>
> > I have recently (re-)installed Guix, and I am trying to package Jekyll so
> > that I can build my website on this system. I used `guix import gem` to
> get
> > started, and then repeated the process for a number of it's dependencies.
> > Now when I try to build it (with `guix package -f jekyll.scm`) I get the
> > following error:
> >
> > Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
> >
> > To me, this sounds like I'm using too much RAM.
>
> IIRC it’s a warning, not an error, but it has to do with Guile consuming
> too much memory, indeed.
>
> It shouldn’t happen when all the package .scm files have been compiled.
> Is it the case?
>
> HTH,
> Ludo’.
>

[-- Attachment #2: Type: text/html, Size: 17313 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Too many heap sections
  2017-12-08 16:27   ` Bryan Ferris
@ 2017-12-12 16:15     ` Ludovic Courtès
  0 siblings, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2017-12-12 16:15 UTC (permalink / raw)
  To: Bryan Ferris; +Cc: help-guix

Hi Bryan,

Bryan Ferris <saffsnail@gmail.com> skribis:

> Ludovic: I have one file, jekyll.scm, which contains jekyll and it's
> dependencies, and the only thing I do to it is run `guix package -f
> jekyll.scm`. I had assumed that this command would take care of things like
> compiling the packages. Is this not the case?

It’s definitely the case.

The problem in the file you posted can be seen by running:

  guix graph -e '(load "/tmp/jekyll.scm")' | dot -Tps > t.ps
  evince t.ps

This shows that there’s a cycle: ‘ruby-jekyll’ depends on itself.  This
triggers an infinite loop in Guix (ideally it would diagnose this and
error out.)

The fix is to remove this line from the ‘ruby-jekyll’ definition:

      ("ruby-jekyll" ,ruby-jekyll)

HTH!

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-12-12 16:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-07 20:04 Too many heap sections Bryan Ferris
2017-12-08  1:58 ` Chris Marusich
2017-12-08 10:37 ` Ludovic Courtès
2017-12-08 16:27   ` Bryan Ferris
2017-12-12 16:15     ` Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.