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

2014-04-21 Thread Vincent St-Amour
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

2014-04-21 Thread Neil Toronto
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

2014-04-21 Thread Matthew Flatt
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

2014-04-21 Thread Suminda Dharmasena
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