On Fri, May 13, 2011 at 10:21 AM, Peter Lobsinger <[email protected]> wrote: > On Fri, May 13, 2011 at 7:24 AM, Jonathan Worthington > <[email protected]> wrote: >> Hi, >> >> The deprecated 't' parameter in NCI broke Zavolaj (the Perl 6 native call >> interface). This in turn broke various modules, including MiniDBI. Looking >> at: >> >> https://github.com/parrot/parrot/commit/75e2b4c94d602d3d7e8af4b679c325c8ec8d3fd9#src/nci/extra_thunks.nci >> >> It seems that the signatures for e.g. mysql database connection were >> removed, not updated! The deprecation notice doesn't provide anything that >> seems to help with our use case. Replacing t with S seems to lead to >> segfaults; a further look shows that seems not to be passing a C string or >> even the string buffer, but the STRING * pointer. None of the examples that >> use the 't' parameter have been updated. > > The signatures were removed with the intent that they be replaced > latter with their equivalents as needed. All code that was exercised
Added in ebf2de7f (Christoph Otto 2010-07-28 02:39:31 +0000 85) - > HLLs, libraries and other users of Parrot will inevitably find that we > deprecate some core features which they depend on. In order to minimize the > pain caused by this deprecation and the subsequent "upgrade tax" (i.e. the > time > users must spend to keep their code working after an upgrade), we now forbid > the removal of any deprecated feature until an appropriate upgrade path has > been documented. Any deprecated features that are removed without an > appropriate notification are subject to reversion until such notifications > have > been added. The single (rare) exception to this rule is any core feature > which > is broken or incomplete to the point that it is deemed unusable by any user. This seems to fall under this clause, and I heartily agree. Let's bring this back, fix Zavolaj, document the upgrade path, IMPLEMENT IT, and then we can worry about deleting the old stuff. > by tests (pcre, pg) was updated. It is regrettable that we have so > much untested code being used as examples of NCI. > > To update your code, I would recommend making use of > Parrot_str_to_cstring/Parrot_str_free_cstring. These can be accessed > from HLL code using the NCI interface. > >> Seriously, what the hell? I'm all for improvements. I'm fine with >> deprecations if I'm given a clue what to do to get things wroking again. But >> a removal of a feature used by *Perl 6 database access* with no instructions >> or updated examples that I can find, or maybe not even an actual >> replacement? Please tell me I'm missing something obvious somewhere.... Or >> just revert the patch that removed it. > > Some of the code that was updated did make use of the 't' signature > type. These updates usually followed the advice given above. pcre, for > example, would be useless if not for its ability to operate on > strings. > >> Thanks, >> >> /jnthn >> >> >> >> >> >> >> _______________________________________________ >> http://lists.parrot.org/mailman/listinfo/parrot-dev >> > _______________________________________________ > http://lists.parrot.org/mailman/listinfo/parrot-dev > -- Will "Coke" Coleda _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
