Re: plruby: rb_iterate symbol clash with libruby.so

From: Pavel Raiskup <praiskup(at)redhat(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Devrim GÜNDÜZ <devrim(at)gunduz(dot)org>
Subject: Re: plruby: rb_iterate symbol clash with libruby.so
Date: 2018-11-06 15:41:16
Message-ID: 1630033.SqB3vyA3BZ@nb.usersys.redhat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tuesday, November 6, 2018 3:49:46 PM CET Tom Lane wrote:
> Pavel Raiskup <praiskup(at)redhat(dot)com> writes:
> > On Monday, November 5, 2018 9:06:41 PM CET Robert Haas wrote:
> >> On Sat, Nov 3, 2018 at 2:20 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> >>>> Is it realistic we could rename red-black tree methods from 'rb_*' to e.g.
> >>>> 'rbt_*' to avoid this clash?
>
> >>> I don't have a huge objection to renaming the rbtree functions, other
> >>> than the precedent it sets ...
>
> >> Maybe prefixing with pg_ would better than rb_ to rbt_. ...
> >> It's certainly not very surprising that Ruby has symbols starting with
> >> rb_...
>
> > I now realized that there's rb_block_call() alternative for rb_iterate()
> > Ruby call -- which fortunately doesn't collide with PostgreSQL internals.
> > It means that for sufficiently new Ruby there exists some solution (not
> > that something similar can not re-appear elsewhere).
>
> Yeah. The long and short of this is that we're trampling on namespace
> that reasonably belongs to Ruby --- if they had some functions named
> "pg_something" and complained about a collision with libpq, would we
> change? Nope. So really we should rename these.
>
> After looking at the code a bit I like the idea of s/rb/rbt/g
> better than s/rb/pg_rb/g. The latter seems verbose, and it would
> also open the question of whether we need to rename rbtree.h/.c,
> which would be an additional level of complication I don't want.
> The rbt approach will allow skipping some other renamings that
> would be needed for consistency if we use pg_rb.
>
> Barring objections I'll go make this happen shortly.
>
> It's too late for this week's releases, but Pavel could pick up the commit
> once it happens and carry it as a Fedora patch until the next releases.

Thanks for looking at that, and no problem with this release. To make
plruby work against supported PostgreSQL versions we'll have to first fix
quite a few _other_ legacy problems first.

Pavel

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jesper Pedersen 2018-11-06 15:41:58 Re: pread() and pwrite()
Previous Message Tom Lane 2018-11-06 15:32:02 Re: pread() and pwrite()