new procedural language - PL/R - Mailing list pgsql-hackers

From Joe Conway
Subject new procedural language - PL/R
Date
Msg-id 3E3E8FEF.4080702@joeconway.com
Whole thread Raw
List pgsql-hackers
I'm nearing completion of a new procedural language, PL/R. It provides an 
interface to the R Statistical Computing language. R is similar to the 
commercial package S-Plus; for more on R see:  http://www.r-project.org/

Here is the first paragraph of their intro:
"R is a language and environment for statistical computing and graphics. It is 
a GNU project which is similar to the S language and environment which was 
developed at Bell Laboratories (formerly AT&T, now Lucent Technologies) by 
John Chambers and colleagues. R can be considered as a different 
implementation of S. There are some important differences, but much code 
written for S runs unaltered under R."

Before I post the source somewhere, I have a few questions:

1) R itself is under GPL, and as far as I can tell the shared library libR.so 
is also under GPL, not LGPL. I assume that means I need to release plr under 
GPL -- does that sound correct?

2) Knowing the trend to move stuff *out* of the PostgreSQL source tarball, and 
assuming plr is released under GPL, is there any chance that it would be 
accepted into src/pl or contrib, or should I start a gborg project (I'd prefer 
if it could at least live in contrib)? If I am somehow able to release it 
under a BSD license, would that change the answer (if so, I'll at least ask 
the r-devel list about LGPL on the shared library)?

3) The only major feature not yet developed is the ability to handle triggers. 
Any strong feelings on whether this is necessary for a first release? I see 
that pl/perl doesn't handle triggers. It seems like using a plpgsql trigger to 
call a plr function is a reasonable workaround.

Thanks for any thoughts or comments.

Joe



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: constraint defaults still print
Next
From: "Dave Page"
Date:
Subject: Re: Interactive Documentation - how do you want ittowork?