Hi Tom,

On Mon, February 17, 2014 14:30, Tom Gates wrote:
> Hello Anatol,
>
>
>
> So C++ style comments are not allowed?   No problem. I can change them to
>  use C style comments.
There's coding styles
http://git.php.net/?p=php-src.git;a=blob;f=CODING_STANDARDS regading this,
whereby C++ is of course another story.

>
> What is suspicious about those global variables?  They are initialized in
>  pdo_nuodb_handle_factory().  Is there some risk in that?  Is there a
> preferred way to do it?
Yeah, that factory function is called on each and every
PDO::__construct(), that means it'll overwrite the descriptor. Plus a
thread safe variant and it'll be leaking descriptors even more. Here's the
relevant code

http://lxr.php.net/xref/PHP_5_6/ext/pdo/pdo_dbh.c#383

I'd anyway suggest to use the PHP streams IO routines for this,
php_stream_fopen() and co, and move the custom logging initialization into
the MINIT phase (and closing descriptors in MSHUTDOWN). Actually global
variables are always suspicious :)

> Thanks,
> -tom
>
>
>
>
> On Thu, Feb 13, 2014 at 3:14 PM, Anatol Belski <anatol....@belski.net
> <mailto:anatol....@belski.net> > wrote:
>
>
>
> Hi Tom,
>
>
>
> On Thu, February 13, 2014 20:11, Tom Gates wrote:
>
>>> Some can compile, but from the experience most of users prefer just
>>> to have it. That's why that build system was brought to life (since
>>> like early spring 2013). The binaries are then available from the PECL
>>> site along with the tarballs, like here for instance
>
>>> http://pecl.php.net/package/oci8 <http://pecl.php.net/package/oci8> .
>>>
>
>>>
>>
>> Yes.  We would like the do the same as other drivers.
>>
>>
>>
>> Is there something else that I need to do, or should I apply for an
>> account now?
>>
>
> as for me yes. From the code perspective there are some minor issues like
>  c++ style comments and presence of confirm_pdo_nuodb_compiled()
> function. Also the global variables here
> https://github.com/nuodb/nuodb-php-pdo/blob/master/nuodb_driver.c#L74 look
>  suspicious to me.
>
>
>> -tom
>>
>>
>>
>>
>>
>> On Thu, Feb 13, 2014 at 1:53 PM, Anatol Belski
>> <anatol....@belski.net <mailto:anatol....@belski.net> >wrote:
>>
>>
>>
>>> Hi Tom,
>>>
>>>
>>>
>>> On Thu, February 13, 2014 19:15, Tom Gates wrote:
>>>
>>>
>>>> Hello Anatol,
>>>>
>>>>
>>>>
>>>>
>>>> I see.  The build of the NuoDB PHP PDO Driver depends on a NuoDB
>>>> client libraries and header files.  Just like the MySQL PHP PDO
>>>> Driver
>>>> depends
>>> on
>>>> the MySQL client libraries and header files.  Our product: NuoDB
>>>> contains the library NuoRemote.lib (which is built using VC10), and
>>>>  NuoRemote_vc9.lib (which is built using VC9).  We choose to name
>>>> it that way on Windows. Because the major distribution for PHP 5.3 &
>>>> 5.4
>>>> is built using VC9, then the PDO driver must "link" to the "_vc9"
>>>> version of our library (to avoid MSVCRT skew).
>>>>
>>> That's a smart decision anyway not to mix CRT. Also with the naming -
>>>  if it's distributed that way, so the main thing is that config.w32
>>> works.
>>>
>>>> Yes, The build system won't be able to build the NuoDB PHP PDO
>>>> Driver
>>>> without the NuoDB client libraries and header files.  Just like the
>>>> MySQL
>>>> PHP PDO Driver can't be built without the MySQL client libraries and
>>>>  header files.  I can provide a NuoDB dependency package for
>>>> http://windows.php.net/downloads/pecl/deps/
>>>>
>>>>
>>>>
>>> We actually don't have to redistribute it there, just have it on the
>>> build box. That's how it also being done for several extensions with
>>> dependencies in binary form only. Given there's no legal issue, of
>>> course.
>>>
>>>> We expect that NuoDB customers will download the NuoDB PHP PDO
>>>> Driver
>>>> extension from PECL and build it on their local machines.
>>>>
>>> Some can compile, but from the experience most of users prefer just
>>> to have it. That's why that build system was brought to life (since
>>> like early spring 2013). The binaries are then available from the PECL
>>> site along with the tarballs, like here for instance
>>> http://pecl.php.net/package/oci8 .
>>>
>>>
>>>
>>>> NuoDB does not (yet) provide a VC11 version of our client library.
>>>> When
>>>> it does, then the NuoDB PHP PDO driver can be modified to use the
>>>> VC11
>>>> version of NuoRemote for PHP 5.5.
>>>>
>>>> Does that sound ok?
>>>>
>>>>
>>>>
>>> Yes, if we only have VC9 dependencies, the corresponding extension
>>> builds only will succeed. When the VC11 deps are there, they can be
>>> added and in this case probably config.w32 will have to be brought
>>> inline. And we can anyway do some snapshots before the release to
> ensure
>>> it'll succeed.
>>>
>>>>
>>>> -tom
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Feb 13, 2014 at 12:39 PM, Anatol Belski
>>>> <anatol....@belski.net <mailto:anatol....@belski.net> >wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> Hi Tom,
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, February 13, 2014 17:18, Tom Gates wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Hello Anatol,
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thank you for looking at the driver.  We currently don't
>>>>>> support PHP
>>>>>>
>>>>>>
>>>>>>
>>>> 5.5
>>>>
>>>>
>>>>
>>>>>> on Windows because NuoDB does not yet have client library
>>>>>> support for
>>>>>>
>>>>> VC11.
>>>>>
>>>>>
>>>>>
>>>>>> However, we do support PHP 5.5 on Linux.  I don't see the
>>>>>> hardcoded
>>>>>>
>>>> VC9
>>>>
>>>>
>>>>
>>>>>> lib you are talking about in config.w32. What line number do
>>>>>> you see
>>>> that
>>>>>> on?
>>>>>>
>>>>> I was looking at these lines
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> if (CHECK_LIB("NuoRemote_vc9.lib", "pdo_nuodb", PHP_PDO_NUODB +
>>>> "\\lib32")
>>>>
>>>>
>>>>
>>>>> && CHECK_HEADER_ADD_INCLUDE('NuoDB.h', 'CFLAGS_PDO_NUODB',
>>>>> PHP_PDO_NUODB + "\\include")
>>>>> && CHECK_HEADER_ADD_INCLUDE('stdint.h', 'CFLAGS_PDO_NUODB',
>>>>> "include_extras\\VC9"))
>>>>> {
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> and saw names with hardcoded "vc9", so basically my guess was
>>>>> correct :) We usually pack the deps by CRT+platform into separated
>>>>> zips. There is also usual naming for the subdirs like lib, include
>>>>> and bin. You can
>>>> look
>>>>> at the dependency packages for other extensions opening any from
>>>>> here http://windows.php.net/downloads/pecl/deps/  . So ideally it
>>>>>  should be like NuoRemote.lib. Also, you could use
>>>>> win32/php_stdint.h which is present starting with PHP-5.3 IRRC.
>>>>>
>>>>> But I meant that only if you plan to make use of the build
>>>>> system, as
>>>>>
>>>> once
>>>>> a release tarball is uploaded, it will try to build it. For that
>>>>> to succeed we'd need the dependency library to be present in the
>>>>> build
>>>> system
>>>>> before and perhaps meet some additional config.
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Anatol
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Tom Gates
>>>> Software Engineer
>>>> *www.nuodb.com <http://www.nuodb.com> * <http://www.nuodb.com/>
>>>> c: 603-490-4013 <tel:603-490-4013>
>>>> e: tga...@nuodb.com <mailto:tga...@nuodb.com>
>>>>
>>>>
>>>>
>>>>
>>>> The information contained in this email is confidential and
>>>> proprietary and intended for the sole use of the intended recipient.
>>>>  If the reader of
>>>> this message is not the intended recipient, you are hereby notified
>>>> that any dissemination, distribution or copying of this
>>>> communication is strictly prohibited. If you have received this
>>>> email in error, please notify the sender and delete all copies.
>>>>
>>>
>>> Regards
>>>
>>>
>>>
>>> Anatol
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Tom Gates
>> Software Engineer
>> *www.nuodb.com <http://www.nuodb.com> * <http://www.nuodb.com/>
>> c: 603-490-4013 <tel:603-490-4013>
>> e: tga...@nuodb.com <mailto:tga...@nuodb.com>
>>
>>
>>
>> The information contained in this email is confidential and proprietary
>>  and intended for the sole use of the intended recipient. If the reader
>>
> of
>> this message is not the intended recipient, you are hereby notified
>> that any dissemination, distribution or copying of this communication is
>>  strictly prohibited. If you have received this email in error, please
>> notify the sender and delete all copies.
>>
>
> Regards
>
>
> Anatol
>
>
>
>
>
>
> --
>
>
> Tom Gates
> Software Engineer
> <http://www.nuodb.com/> www.nuodb.com
>
>
> c: 603-490-4013
>
>
> e: tga...@nuodb.com <mailto:tga...@nuodb.com>
>

Regards

Anatol


-- 
PECL development discussion Mailing List (http://pecl.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to