Re: [racket-dev] Testing whether a procedure gets collected

2012-12-06 Thread Marijn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 01-12-12 18:45, Neil Toronto wrote:


Rather than a guarantee (or a probabilistic estimate) of actual
collection, could the garbage collector's opinion of what is or isn't
garbage be exposed somehow?

Marijn

-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with undefined - http://www.enigmail.net/

iEYEARECAAYFAlDAUtAACgkQp/VmCx0OL2xK+ACfeSZXDxrYv93gfCu2wlqqnMDW
AIYAn0D/LZsml0eP2625gE92VzjpiMAv
=cEMa
-END PGP SIGNATURE-
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] ctype-scheme-c

2012-12-06 Thread Laurent
Hem, I don't know if it was me being blind or if they have been added in
the docs since, but anyway, thanks!

And I'll add a general Thank You for all the small things that I've been
asking for or complaining about and that you guys have been adding to
Racket and I didn't notice right away.

Laurent


On Thu, Nov 8, 2012 at 9:12 AM, Laurent laurent.ors...@gmail.com wrote:

 Hi,

 Is there a reason that ffi/unsafe does not export ctype-scheme-c and
 ctype-c-scheme?
 Because I find them very useful in practice. Or should I avoid using them
 for some reason?

 Laurent

_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Sam Tobin-Hochstadt
On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org wrote:

 | Reimplemented really simple FFI functions (e.g. mpfr-prec, mpfr-exp) to
 | avoid calling overhead

If you have meaningful benchmarks where this makes a difference, that
may be useful to Matthew, since he recently was working on improving
the FFI's code generation.

Sam
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Neil Toronto

On 12/06/2012 02:08 PM, Sam Tobin-Hochstadt wrote:

On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org wrote:


| Reimplemented really simple FFI functions (e.g. mpfr-prec, mpfr-exp) to
| avoid calling overhead


If you have meaningful benchmarks where this makes a difference, that
may be useful to Matthew, since he recently was working on improving
the FFI's code generation.


I don't, but that's a good idea. It shouldn't take long.

On a related note, because DrDr is late testing this push and I'm 
anxious to know whether my changes work... DrDr appears to be stuck 
building on the push before mine. It's at 4.39 hours now.


Neil ⊥

_
 Racket Developers list:
 http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Jay McCarthy
Ya, it looks stuck but it will be caught soon (there's a global timeout so
I don't have to intervene in these situations)

There's a deadlock somewhere in the parallel logic of DrDr that I haven't
caught yet.

Jay


On Thu, Dec 6, 2012 at 3:05 PM, Neil Toronto neil.toro...@gmail.com wrote:

 On 12/06/2012 02:08 PM, Sam Tobin-Hochstadt wrote:

 On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org wrote:


 | Reimplemented really simple FFI functions (e.g. mpfr-prec, mpfr-exp) to
 | avoid calling overhead


 If you have meaningful benchmarks where this makes a difference, that
 may be useful to Matthew, since he recently was working on improving
 the FFI's code generation.


 I don't, but that's a good idea. It shouldn't take long.

 On a related note, because DrDr is late testing this push and I'm anxious
 to know whether my changes work... DrDr appears to be stuck building on the
 push before mine. It's at 4.39 hours now.

 Neil ⊥


 _
  Racket Developers list:
  http://lists.racket-lang.org/**dev http://lists.racket-lang.org/dev




-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Neil Toronto

On 12/06/2012 02:08 PM, Sam Tobin-Hochstadt wrote:

On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org wrote:


| Reimplemented really simple FFI functions (e.g. mpfr-prec, mpfr-exp) to
| avoid calling overhead


If you have meaningful benchmarks where this makes a difference, that
may be useful to Matthew, since he recently was working on improving
the FFI's code generation.


I've got some benchmarks showing via timing loops that pulling a _long 
directly out of an _mpfr takes just over half the time it takes to call 
libmpfr to do it. It's enough to make me want to rewrite simple things 
like `bfnegative?' in Racket.


I won't, though, if Matthew has near-future Big Plans. Or Medium Plans.

I see we have tests/racket/benchmarks. Should I just drop the code 
there, or is there some kind of procedure or protocol I should follow?


Neil ⊥

_
 Racket Developers list:
 http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Jay McCarthy
On Thu, Dec 6, 2012 at 3:32 PM, Neil Toronto neil.toro...@gmail.com wrote:

 On 12/06/2012 02:08 PM, Sam Tobin-Hochstadt wrote:

 On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org wrote:


 | Reimplemented really simple FFI functions (e.g. mpfr-prec, mpfr-exp) to
 | avoid calling overhead


 If you have meaningful benchmarks where this makes a difference, that
 may be useful to Matthew, since he recently was working on improving
 the FFI's code generation.


 I've got some benchmarks showing via timing loops that pulling a _long
 directly out of an _mpfr takes just over half the time it takes to call
 libmpfr to do it. It's enough to make me want to rewrite simple things like
 `bfnegative?' in Racket.

 I won't, though, if Matthew has near-future Big Plans. Or Medium Plans.

 I see we have tests/racket/benchmarks. Should I just drop the code
 there, or is there some kind of procedure or protocol I should follow?


Generally that directory is for benchmark Racket against other languages,
so the program has to be cross-compatible. I think you are talking about a
stress test, which can be used to monitor Racket's performance against
itself in the future to catch regressions. That's in tests/racket/stress.

Jay

-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Sam Tobin-Hochstadt
On Thu, Dec 6, 2012 at 2:36 PM, Jay McCarthy jay.mccar...@gmail.com wrote:
 On Thu, Dec 6, 2012 at 3:32 PM, Neil Toronto neil.toro...@gmail.com wrote:

 On 12/06/2012 02:08 PM, Sam Tobin-Hochstadt wrote:

 On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org wrote:


 | Reimplemented really simple FFI functions (e.g. mpfr-prec, mpfr-exp)
 to
 | avoid calling overhead


 If you have meaningful benchmarks where this makes a difference, that
 may be useful to Matthew, since he recently was working on improving
 the FFI's code generation.


 I've got some benchmarks showing via timing loops that pulling a _long
 directly out of an _mpfr takes just over half the time it takes to call
 libmpfr to do it. It's enough to make me want to rewrite simple things like
 `bfnegative?' in Racket.

 I won't, though, if Matthew has near-future Big Plans. Or Medium Plans.

 I see we have tests/racket/benchmarks. Should I just drop the code
 there, or is there some kind of procedure or protocol I should follow?


 Generally that directory is for benchmark Racket against other languages, so
 the program has to be cross-compatible. I think you are talking about a
 stress test, which can be used to monitor Racket's performance against
 itself in the future to catch regressions. That's in tests/racket/stress.

I don't think that's right about the `benchmarks` directory -- the
`shootout` directory is not cross-compatible, and we have Typed Racket
benchmarks that are mostly used for benchmarking TR against plain R.

Sam
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Jay McCarthy
Ah ya, I guess I meant the common sub-dir.

In any case, I think that Neil won't be comparing Racket vs something, but
just measuring the performance of a piece of Racket

Jay


On Thu, Dec 6, 2012 at 4:06 PM, Sam Tobin-Hochstadt sa...@ccs.neu.eduwrote:

 On Thu, Dec 6, 2012 at 2:36 PM, Jay McCarthy jay.mccar...@gmail.com
 wrote:
  On Thu, Dec 6, 2012 at 3:32 PM, Neil Toronto neil.toro...@gmail.com
 wrote:
 
  On 12/06/2012 02:08 PM, Sam Tobin-Hochstadt wrote:
 
  On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org wrote:
 
 
  | Reimplemented really simple FFI functions (e.g. mpfr-prec, mpfr-exp)
  to
  | avoid calling overhead
 
 
  If you have meaningful benchmarks where this makes a difference, that
  may be useful to Matthew, since he recently was working on improving
  the FFI's code generation.
 
 
  I've got some benchmarks showing via timing loops that pulling a _long
  directly out of an _mpfr takes just over half the time it takes to call
  libmpfr to do it. It's enough to make me want to rewrite simple things
 like
  `bfnegative?' in Racket.
 
  I won't, though, if Matthew has near-future Big Plans. Or Medium Plans.
 
  I see we have tests/racket/benchmarks. Should I just drop the code
  there, or is there some kind of procedure or protocol I should follow?
 
 
  Generally that directory is for benchmark Racket against other
 languages, so
  the program has to be cross-compatible. I think you are talking about a
  stress test, which can be used to monitor Racket's performance against
  itself in the future to catch regressions. That's in tests/racket/stress.

 I don't think that's right about the `benchmarks` directory -- the
 `shootout` directory is not cross-compatible, and we have Typed Racket
 benchmarks that are mostly used for benchmarking TR against plain R.

 Sam




-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25860: master branch updated

2012-12-06 Thread Neil Toronto
It's Racket vs. libmpfr via an FFI call, and the `stress' macro does 
everything I need for that. I've got a commit ready, which I'll push as 
soon as DrDr doesn't complain about missing mpfr_set_z_2exp - which 
should be after it tests my last push.


Neil ⊥

On 12/06/2012 04:21 PM, Jay McCarthy wrote:

Ah ya, I guess I meant the common sub-dir.

In any case, I think that Neil won't be comparing Racket vs something,
but just measuring the performance of a piece of Racket

Jay


On Thu, Dec 6, 2012 at 4:06 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu
mailto:sa...@ccs.neu.edu wrote:

On Thu, Dec 6, 2012 at 2:36 PM, Jay McCarthy jay.mccar...@gmail.com
mailto:jay.mccar...@gmail.com wrote:
  On Thu, Dec 6, 2012 at 3:32 PM, Neil Toronto
neil.toro...@gmail.com mailto:neil.toro...@gmail.com wrote:
 
  On 12/06/2012 02:08 PM, Sam Tobin-Hochstadt wrote:
 
  On Thu, Dec 6, 2012 at 12:44 PM,  ntoro...@racket-lang.org
mailto:ntoro...@racket-lang.org wrote:
 
 
  | Reimplemented really simple FFI functions (e.g. mpfr-prec,
mpfr-exp)
  to
  | avoid calling overhead
 
 
  If you have meaningful benchmarks where this makes a
difference, that
  may be useful to Matthew, since he recently was working on
improving
  the FFI's code generation.
 
 
  I've got some benchmarks showing via timing loops that pulling a
_long
  directly out of an _mpfr takes just over half the time it takes
to call
  libmpfr to do it. It's enough to make me want to rewrite simple
things like
  `bfnegative?' in Racket.
 
  I won't, though, if Matthew has near-future Big Plans. Or Medium
Plans.
 
  I see we have tests/racket/benchmarks. Should I just drop the code
  there, or is there some kind of procedure or protocol I should
follow?
 
 
  Generally that directory is for benchmark Racket against other
languages, so
  the program has to be cross-compatible. I think you are talking
about a
  stress test, which can be used to monitor Racket's performance
against
  itself in the future to catch regressions. That's in
tests/racket/stress.

I don't think that's right about the `benchmarks` directory -- the
`shootout` directory is not cross-compatible, and we have Typed Racket
benchmarks that are mostly used for benchmarking TR against plain R.

Sam




--
Jay McCarthy j...@cs.byu.edu mailto:j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93


_
 Racket Developers list:
 http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25861: master branch updated

2012-12-06 Thread Neil Toronto

On 12/06/2012 04:12 PM, stamo...@racket-lang.org wrote:

cc8bd4f Vincent St-Amour stamo...@racket-lang.org 2012-12-06 11:59
:
| Make srclocs serializable.
:
   M collects/racket/private/serialize.rkt  | 10 --
   M collects/scribblings/reference/serialization.scrbl | 10 +-
   M collects/tests/racket/serialize.rktl   |  3 +++


Very interesting. What's it for?

Neil ⊥

_
 Racket Developers list:
 http://lists.racket-lang.org/dev


Re: [racket-dev] [plt] Push #25861: master branch updated

2012-12-06 Thread Vincent St-Amour
At Thu, 06 Dec 2012 16:27:20 -0700,
Neil Toronto wrote:
 
 On 12/06/2012 04:12 PM, stamo...@racket-lang.org wrote:
  cc8bd4f Vincent St-Amour stamo...@racket-lang.org 2012-12-06 11:59
  :
  | Make srclocs serializable.
  :
 M collects/racket/private/serialize.rkt  | 10 --
 M collects/scribblings/reference/serialization.scrbl | 10 +-
 M collects/tests/racket/serialize.rktl   |  3 +++
 
 Very interesting. What's it for?

A new version of Optimization Coach that integrates with the profiler.
Should be out soon.

Vincent
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


[racket-dev] Contract violation from custodian shutdown

2012-12-06 Thread Neil Toronto
I just got this message on my console, I think after closing a tab, 
which coincided with DrRacket hanging:



eventspace-shutdown?: contract violation
  expected: eventspace?
  given: #procedure:mpfr_free_cache
  context...:
   /home/neil/plt/collects/mred/private/wx/common/queue.rkt:201:0: 
shutdown-eventspace!



It's obviously because of this code, which is near the top of 
math/private/bigfloat/mpfr.rkt:



(define mpfr-free-cache (get-mpfr-fun 'mpfr_free_cache (_fun - _void)))

(define mpfr-shutdown
  (register-custodian-shutdown mpfr-free-cache (λ (free) (free


Did I misunderstand something, or is this someone else's bug?

Neil ⊥
_
 Racket Developers list:
 http://lists.racket-lang.org/dev


[racket-dev] Two pull requests (Markdown render for Scribble, and XREPL , log udpate)

2012-12-06 Thread Greg Hendershott
I submitted two pull requests:

https://github.com/plt/racket/pull/187
Add a Markdown rendering mode to Scribble.

https://github.com/plt/racket/pull/188
Update xrepl for 5.3.1's enhanced `make-log-receiver'.

This is my first time submitting a pull request to Racket. I tried to
make it correct and convenient: Each pull request uses a dedicated
topic branch with a single commit. If there are any questions or
problems, of course please let me know.


P.S. Adding a Markdown render to Scribble is something I've wanted to
do for awhile. What motivated me to finally do it was thinking about
how I could provide documentation on Github with Planet2.

For example, the markdown at https://gist.github.com/4230519 is
generated from the same .scrbl source as the HTML at
http://planet.racket-lang.org/package-source/gh/aws.plt/1/4/planet-docs/manual/index.html.
_
  Racket Developers list:
  http://lists.racket-lang.org/dev


Re: [racket-dev] Two pull requests (Markdown render for Scribble, and XREPL , log udpate)

2012-12-06 Thread Jay McCarthy
The Markdown mode is great!


On Thu, Dec 6, 2012 at 8:30 PM, Greg Hendershott
greghendersh...@gmail.comwrote:

 I submitted two pull requests:

 https://github.com/plt/racket/pull/187
 Add a Markdown rendering mode to Scribble.

 https://github.com/plt/racket/pull/188
 Update xrepl for 5.3.1's enhanced `make-log-receiver'.

 This is my first time submitting a pull request to Racket. I tried to
 make it correct and convenient: Each pull request uses a dedicated
 topic branch with a single commit. If there are any questions or
 problems, of course please let me know.


 P.S. Adding a Markdown render to Scribble is something I've wanted to
 do for awhile. What motivated me to finally do it was thinking about
 how I could provide documentation on Github with Planet2.

 For example, the markdown at https://gist.github.com/4230519 is
 generated from the same .scrbl source as the HTML at

 http://planet.racket-lang.org/package-source/gh/aws.plt/1/4/planet-docs/manual/index.html
 .
 _
   Racket Developers list:
   http://lists.racket-lang.org/dev




-- 
Jay McCarthy j...@cs.byu.edu
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

The glory of God is Intelligence - DC 93
_
  Racket Developers list:
  http://lists.racket-lang.org/dev