Re: Re: GMP and empty()

From: Date: Mon, 30 Dec 2013 10:02:36 +0000
Subject: Re: Re: GMP and empty()
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-70916@lists.php.net to get a copy of this message
On Mon, Dec 30, 2013 at 6:47 PM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote: > And I was expecting > > [yohgaki@dev php-src]$ ./php-bin -d error_reporting=-1 -r > '$f=2.2;$v=gmp_init($f); var_dump($v);' > > Warning: gmp_init(): Unable to convert variable to GMP - wrong type in > Command line code on line 1 > bool(false) > > this kind of behavior for literal, too. ;) > > Why is PHP not raising error for float literal? > ZEND_FUNCTION(gmp_init) { zval *number_arg; mpz_ptr gmpnumber; long base = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|l", &number_arg, &base) == FAILURE) { return; } if (base && (base < 2 || base > MAX_BASE)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base for conversion: %ld (should be between 2 and %d)", base, MAX_BASE); RETURN_FALSE; } INIT_GMP_RETVAL(gmpnumber); if (convert_to_gmp(gmpnumber, number_arg, base TSRMLS_CC) == FAILURE) { zval_dtor(return_value); RETURN_FALSE; } } Apparently, we need type check and/or float support in GMP. Are there any technical reasons not to support GMP float? https://gmplib.org/manual/Initializing-Floats.html#Initializing-Floats -- Yasuo Ohgaki yohgaki@ohgaki.net

« previous php.internals (#70916) next »