Re: [racket-dev] [plt] Push #28576: master branch updated
At Sat, 19 Apr 2014 19:41:49 -0600, Matthew Flatt wrote: At Sat, 19 Apr 2014 17:36:40 -0400, Vincent St-Amour wrote: At Sat, 19 Apr 2014 13:19:25 -0400, mfl...@racket-lang.org wrote: a01b12e Matthew Flatt mfl...@racket-lang.org 2014-04-19 10:11 : | optimizer: don't move expressions into a `with-continuation-mark` | | ... unless the optimizer can prove that the expression doesn't | inspect continuation marks. : M pkgs/racket-pkgs/racket-test/tests/racket/optimize.rktl | 12 +++- M racket/src/racket/src/optimize.c| 5 + This optimization can be observed from another thread, like a profiler's sampling thread, even if the relevant code doesn't observe continuation marks itself. Right: If there's some synchronization point within the expression so that you could reliably observe the thread at that point, then the expression doesn't get moved relative to marks. Ok, no problem then. Sorry for the noise. Vincent _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Adding pi.t
While adding racket/extflonum's exports to Typed Racket's base type environment, I realized that we don't have an 80-bit pi constant. I considered exporting this definition from racket/extflonum.rkt: (define pi.t (extfl* 4.0t0 (extflatan 1.0t0))) (Multiplication by 4.0t0 is exact if it doesn't overflow, so this is correctly rounded as long as `extflatan` is.) But what if the build platform doesn't have extflonums? I've got this right now: (define pi.t 3.1415926535897932385t0) Conversion between 80-bit flonums and decimals round-trips nicely, at least on my computer. But does decimal conversion (besides 0.0t0 and other easy cases) also require extflonums to be available? If so, is there a way to export an 80-bit pi approximation? Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] Adding pi.t
The definition (define pi.t 3.1415926535897932385t0) will work even on platforms where extflonums are not supported. On those platforms, no operation other than printing will work on the number, but reading and printing will work (and printing simply writes the original representation). At Mon, 21 Apr 2014 18:28:01 -0600, Neil Toronto wrote: While adding racket/extflonum's exports to Typed Racket's base type environment, I realized that we don't have an 80-bit pi constant. I considered exporting this definition from racket/extflonum.rkt: (define pi.t (extfl* 4.0t0 (extflatan 1.0t0))) (Multiplication by 4.0t0 is exact if it doesn't overflow, so this is correctly rounded as long as `extflatan` is.) But what if the build platform doesn't have extflonums? I've got this right now: (define pi.t 3.1415926535897932385t0) Conversion between 80-bit flonums and decimals round-trips nicely, at least on my computer. But does decimal conversion (besides 0.0t0 and other easy cases) also require extflonums to be available? If so, is there a way to export an 80-bit pi approximation? Neil ⊥ _ Racket Developers list: http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] Separation of Parser, Compiler, VM, JIT and GC as a Library to take Metaprogramming and Extensible Programming to the Next Level
Hi, It is interesting you can define your own language in Racket. What I am thinking is that you can deliver more of the language infrastructure through metaprogramming, extensible programming than currently done. You can have #require to determine what parts of the infrastructure you are using and could replace components with own implementations. Also all definitions in above should be pure Racket code. Compiler and VM can use rewriting to do the compilation for at least one version provided out of the box. These should be extensible in the code itself. Also a way to sometimes extend syntax in ways currently not possible like graphical languages, projectional editors, etc. Suminda _ Racket Developers list: http://lists.racket-lang.org/dev