I took a quick look (just killing time while Racket 5.92 compiles) at what I believe are the sources for the Guile-RPC you're talking about. Findings:

* The code looks pretty clean, and much better than you might expect (if you know Sun/ONC RPC).

* So far, I didn't see much Guile-isms, nor FFI, and Racket port looks likely doable with less effort than I would've first guessed.

* There was a Lex ".l" file, so you'd have to do a build for Guile and steal the generated Guile code (which might be harder to port), *or* just redo the lexer using Racket "parser-tools" or by hand.

* Looks like they implement their own portmapper, which (because it sits on fixed ports) I suspect would conflict with the default portmapper on the machine. If the machine needs to run the OS's default portmapper (for NFS, NIS, or other RPC programs), but you also need to run this other portmapper code (which is unclear at the moment) on the same ports, then you might have to get fancy with virtual network interfaces or similar. I have not looked into this.

* I have not tried to compile or run Guile-RPC, and I have little information otherwise as to how well Guile-RPC works.

Side comment: I would only get into ONC RPC if I had a legacy interoperation reason to. If I wanted to spec an interprocess-communication mechanism for new development, first picks would use something simple layered atop HTTP (avoiding the bloated Microsoft-style XML-based RPC ones if possible). Or, for unusual situations, maybe Google protobuf or something custom.

This email list can help with questions as you port this. Or, if you have an immediate commercial need, and want to outsource, there are at least a couple Racket consultants with network protocol background.

Neil V.

Steve Byan wrote at 01/27/2014 12:59 PM:
Quite surprisingly, I find myself in need of a ONC RPC package for Racket. I 
didn't see anything on Planet, and pkgs.racket-lang.org seems to be either down 
or not working for me.

I'm a novice Racket programmer; would porting the Guile ONC RPC framework be a 
reasonable way to get a Racket ONC RPC package? What problems would I be likely 
to encounter in such a port?

Best regards,
-Steve

____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to