jbclements / RSound

A cross-platform sound library for DrRacket
http://www.brinckerhoff.org/clements
Other
45 stars 11 forks source link

Weird interaction with racket-chipmunk #38

Closed srfoster closed 5 years ago

srfoster commented 5 years ago

Hi,

I just released some updated Racket bindings for Chipmunk:

https://github.com/thoughtstem/racket-chipmunk

I'm using racket-chipmunk and rsound together to make games, but for some reason racket-chipmunk seems to break rsound on Linux. I don't even know why that would be, but here are the steps that I've used reproduce the issue:

1) Installed rsound 2) Installed racket-chipmunk 3) Wrote a super simple program that just requires rsound. Ran it. Everything was fine. 4) Added a require for racket-chipmunk before the rsound require. Ran it. Got an error Assertion #<procedure:negative?> failed on 0.0 on the rsound require. The stacktrack bottoms out somewhere in "pkgs/math-lib/math/private/flonum/flonum-constants.rkt". No line number given.
5) What's weird is that at this point, even if I remove the require for racket-chipmunk, I get the same error whenever I require rsound. The problem persists until I restart DrRacket.

Feels funny. I don't know why these packages would interact weirdly with each other. And I've never seen something break in this way before. Any pointers?

(Both packages use the Racket ffi, which I suspect might be relevant. But I'm not sure.)

jbclements commented 5 years ago

Need more details. What platform? What program? I just tried this program:

#lang racket

(require racket-chipmunk)
(require rsound)

on OS X and it appeared to finish fine at the command line.

srfoster commented 5 years ago

Thanks. I should have mentioned it works for me on OSX and Windows. I'm getting the issue on Linux, though.

That program you supplied is exactly the one I'm getting the error with. Here's the full stacktrace:

Assertion #<procedure:negative?> failed on 0.0
  context...:
   /usr/share/racket/pkgs/math-lib/math/private/flonum/flonum-constants.rkt: [running body]
   /usr/share/racket/pkgs/math-lib/math/private/flonum/flonum-functions.rkt: [traversing imports]
   /usr/share/racket/pkgs/math-lib/math/private/flonum/flvector.rkt: [traversing imports]
   /usr/share/racket/pkgs/math-lib/math/private/base/base-functions.rkt: [traversing imports]
   /usr/share/racket/pkgs/math-lib/math/base.rkt: [traversing imports]
   /home/thoughtstem/.racket/6.10.1/pkgs/rsound/rsound/util.rkt: [traversing imports]
   /home/thoughtstem/.racket/6.10.1/pkgs/rsound/rsound/main.rkt: [traversing imports]
   /home/thoughtstem/Desktop/test.rkt: [traversing imports]
srfoster commented 5 years ago

P.S. I should also mention that I've tried both Racket 6.10 and 7.

srfoster commented 5 years ago

I should mention that I've managed to fix this -- apparently just by recompiling the chipmunk binaries. I'm not sure WHY that fixed it, but I do have a working rsound-based system in my game-engine now.

Thanks again for making this package!

jbclements commented 5 years ago

Very glad to hear it.

John

On Mar 28, 2019, at 12:03, Stephen R. Foster notifications@github.com wrote:

I should mention that I've managed to fix this -- apparently just by recompiling the chipmunk binaries. I'm not sure WHY that fixed it, but I do have a working rsound-based system in my game-engine now.

Thanks again for making this package!

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub, or mute the thread.