Re: [racket-users] Racket slower than Chez Scheme on interpreter benchmark, potential low hanging fruit?

2021-03-01 Thread Sam Tobin-Hochstadt
When Chez is faster than Racket CS, the usual culprits are either:
- mutable pairs
- very large code size that causes Racket CS to interpret the outer module

However, neither of those seem to be happening here.

Sam

On Mon, Mar 1, 2021 at 2:39 AM philngu...@gmail.com
 wrote:
>
> There’s this benchmark on BF interpreter where the Racket and Chez Scheme 
> implementations are very similar, but Chez Scheme is much faster than Racket 
> 8.0 at interpreting bench.b (3s vs 8s) and mandel.b (40s vs 136s).
>
> There’s the “Racket (Syntax Object)” variant that directly parses BF’s syntax 
> into Racket syntax object, which is faster (3.7s for bench, 82s for mandel), 
> but still significantly behind Chez Scheme’s naive interpreter.
>
> Profiling doesn’t give very illuminating results, saying most of the cost is 
> from interpreting BF’s loop instruction.
>
> Given that Racket is on Chez, could this benchmark reveal some low hanging 
> fruit for improving Racket’s performance?
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-users/83b2819d-8295-4769-944d-fa0c155976dan%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAK%3DHD%2BY5p%3DW2%2BMrg_QpvVQZVXY%2B3sHW-c%3DGcK1KrTT%3D0hRC9-g%40mail.gmail.com.


[racket-users] A real-time Racket?

2021-03-01 Thread Dimaugh Silvestris
I was reading about Extempore, an enviroment for audio and video production 
in Scheme. Well, almost: it uses something similar to SuperCollider's 
client-server architechture, with a Scheme interpreter on the client side 
and a server in a typed Scheme with manual memory management, Xtlang. 
https://extemporelang.github.io/docs/reference/memory-management/

And I was thinking, well, we already have typed Racket, all we need now is 
a #lang where you can turn off the GC and have some way of doing manual 
memory management. Then maybe we can build applications where there is a 
lower level subprocess in realtime/racket and higher level process any of 
the GC #langs.
It just would be nice to be able to do such things without having to switch 
to C or some other low level language.

Probably I'm missing something that makes this harder than it sounds, 
though.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/0fed0528-36b3-49cc-80d3-48e7397cd03en%40googlegroups.com.


Re: [racket-users] racket-launcher-names and easing the user experience

2021-03-01 Thread Matthew Flatt
The path for executables in user-scope installation is always like
that. As far as I know, think there's not a great answer for where to
put user-scope executables, especially across platforms.

One more option to consider: add a `raco` command. That avoids the PATH
issue by changing the PATH search into a raco-tool search as controlled
by "info.rkt" files.

At Mon, 1 Mar 2021 10:52:42 +, Laurent wrote:
> Hi all,
> 
> I want to share a program with non-racketeers, as a package/collection
> named myprog (say), and I want to make it as simple as possible for the
> user.
> 
> [The Racket Installation instructions need some work by the way, it's not
> very user friendly on linux. It could at least say that `[sudo] apt install
> racket` should work on debian/ubuntu (thanks Asumu!), but also say to
> otherwise download the .sh and run it with `$ sh racket-...sh`]
> 
> My first idea was to have the user run:
> $ racket -l- myprog args ...
> 
> but I'm told `racket-launcher-names
>  x._%28gentag._18._%28lib._scribblings%2Fraco%2Fraco..scrbl%29%29%29>`
> may make it even simpler as the user could invoke
> $ myprog args ...
> 
> which is neat. Unfortunately, it doesn't seem to be so straightforward due
> to PATH issues:
> I installed a snapshot/nightly as a unix distribution (as I always do), and
> the myprog launcher is successfully created at
> /home//.racket/snapshot/bin/myprog
> but this isn't in my PATH, so it can't be found and the 'neat'
> invocation above doesn't work.
> 
> Questions:
> * Is this specific to my weird snapshot+Unix-style installation?
> * Can I expect this to work trouble-free on Windows, Mac, Linux (at least
> debian/ubuntu) when installing a release the way a new user would do?
> 
> If it requires any work by the user to make it work, it seems that asking
> to do
> $ racket -l- myprog
> is simpler.
> 
> Thanks,
> Laurent
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email 
> to racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-users/CABNTSaFfh6wio5YwUqjmoCTLPR_CpS14
> C%2BKw8S-pPKdww-ffDg%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/20210301062653.33e%40sirmail.smtps.cs.utah.edu.


[racket-users] racket-launcher-names and easing the user experience

2021-03-01 Thread Laurent
Hi all,

I want to share a program with non-racketeers, as a package/collection
named myprog (say), and I want to make it as simple as possible for the
user.

[The Racket Installation instructions need some work by the way, it's not
very user friendly on linux. It could at least say that `[sudo] apt install
racket` should work on debian/ubuntu (thanks Asumu!), but also say to
otherwise download the .sh and run it with `$ sh racket-...sh`]

My first idea was to have the user run:
$ racket -l- myprog args ...

but I'm told `racket-launcher-names
`
may make it even simpler as the user could invoke
$ myprog args ...

which is neat. Unfortunately, it doesn't seem to be so straightforward due
to PATH issues:
I installed a snapshot/nightly as a unix distribution (as I always do), and
the myprog launcher is successfully created at
/home//.racket/snapshot/bin/myprog
but this isn't in my PATH, so it can't be found and the 'neat'
invocation above doesn't work.

Questions:
* Is this specific to my weird snapshot+Unix-style installation?
* Can I expect this to work trouble-free on Windows, Mac, Linux (at least
debian/ubuntu) when installing a release the way a new user would do?

If it requires any work by the user to make it work, it seems that asking
to do
$ racket -l- myprog
is simpler.

Thanks,
Laurent

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CABNTSaFfh6wio5YwUqjmoCTLPR_CpS14C%2BKw8S-pPKdww-ffDg%40mail.gmail.com.