pike issues
https://git.lysator.liu.se/pikelang/pike/-/issues
2023-11-28T13:44:10Z
https://git.lysator.liu.se/pikelang/pike/-/issues/10138
gethrvtime() overflow on netbsd
2023-11-28T13:44:10Z
Henrik (Grubba) Grubbström
gethrvtime() overflow on netbsd
From the Pike developers mailinglist/LysLysKOM 26092611:
```
26092611 2023-11-24 04:29 /35 rader/ <william@welliver.org>
Sänt av: SRS0=LsSK=HF=lists.lysator.liu.se=pike-devel-bounces@lysator.liu.se
Importerad: 2023-11-24 04:29 av Brevbär...
From the Pike developers mailinglist/LysLysKOM 26092611:
```
26092611 2023-11-24 04:29 /35 rader/ <william@welliver.org>
Sänt av: SRS0=LsSK=HF=lists.lysator.liu.se=pike-devel-bounces@lysator.liu.se
Importerad: 2023-11-24 04:29 av Brevbäraren
Extern mottagare: pike-devel@lists.lysator.liu.se
Mottagare: Pike (-) developers forum <21444>
Ärende: gethrvtime() overflow on netbsd
------------------------------------------------------------
```
Hello all,
I've been working on a new stable release and in the course of the usual
checks, I noticed that pike farm builds are failing on netbsd (9.3). A
little investigation shows that the benchmark is effectively timing out.
I think this failure is caused by the code that limits a test to a given
amount of time.
Basically, the elapsed time is calculated as final_time - start_time as
returned by `gethrvtime()`, and it appears that on netbsd, there's (I'm
assuming) an overflow that causes the elapsed time to become negative.
It happens often enough that the total amount of time spent on a given
set of test runs becomes increasingly negative, essentially running any
test forever.
I"m sure that there's a better solution but I'd like to suggest that in
the interim, a simple check be added to ignore any negative times:
In `Tools.Shoot.run_sub()`:
From:
```
tg += (hrt - start_cpu) / 1000000.0;
```
To:
```
int te = hrt - start_cpu;
if(te < 0 ) te = 0;
tg += te / 1000000.0;
```
Does anyone have any objection to me making this change in 9.0 and 8.0?
Bill
```
(26092611) /<william@welliver.org>/-----------------
```
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10129
System.TM timezone confusion
2023-11-04T09:09:09Z
Henrik (Grubba) Grubbström
System.TM timezone confusion
From LysLysKOM 26017901:
```
26017901 2023-10-12 17:13 /39 rader/ ceder (-) Per Cederqvist
Mottagare: Pike (-) developers forum <21425>
Ärende: System.TM timezone confusion
------------------------------------------------------------
``...
From LysLysKOM 26017901:
```
26017901 2023-10-12 17:13 /39 rader/ ceder (-) Per Cederqvist
Mottagare: Pike (-) developers forum <21425>
Ärende: System.TM timezone confusion
------------------------------------------------------------
```
System.TM does not work as advertised. The documentation says that
the timezone will be UTC when you supply a number to the constructor,
but that does not appear to be the case. Note how the timezone is
CEST no matter how I initialize the TM object, but the reported hours
differ:
```
$ pike
Pike v9.0 release 1 running Hilfe v3.5 (Incremental Pike Frontend)
> mixed t = System.TM(1697121800);
> t;
(1) Result: System.TM(Thu Oct 12 15:43:20 2023 CEST)
> t->gmtime(1697121800);
(2) Result: 1
> t;
(3) Result: System.TM(Thu Oct 12 15:43:20 2023 CEST)
> t->localtime(1697121800);
(4) Result: 1
> t;
(5) Result: System.TM(Thu Oct 12 16:43:20 2023 CEST)
```
The result (5) makes sense: it matches what I would expect. But
the hour should be set to 14, not 15:
```
> mixed c = Calendar.ISO.Second(1697121800);
> c->set_timezone("UTC");
> c;
(5) Result: Second(Thu 12 Oct 2023 16:43:20 CEST)
> mixed u = c->set_timezone("UTC");
> u;
(6) Result: Second(Thu 12 Oct 2023 14:43:20 UTC)
```
This also agrees with my private utility for converting a time_t value
to the local timezone and UTC (this one is written in Python):
```
$ time_t2date 1697121800
2023-10-12 16:43:20 CEST
2023-10-12 14:43:20 GMT
```
Tested on the current master, and a few older Pike versions.
```
(26017901) /ceder (-) Per Cederqvist/---------------
```
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10127
Fix QA complaints from Gentoo Ebuild of Pike 8.0.1738
2023-06-29T10:13:14Z
Henrik (Grubba) Grubbström
Fix QA complaints from Gentoo Ebuild of Pike 8.0.1738
```
* QA Notice: Binary files linked to libcrypt.so found
* But a dependency on virtual/libcrypt is not declared!
*
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/image/usr/bin/pike
*
* Please add virtual/libcrypt:= dependency
*...
```
* QA Notice: Binary files linked to libcrypt.so found
* But a dependency on virtual/libcrypt is not declared!
*
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/image/usr/bin/pike
*
* Please add virtual/libcrypt:= dependency
* Gentoo bug: https://bugs.gentoo.org/699422
* Tracker bug: https://bugs.gentoo.org/798963
* See: https://wiki.gentoo.org/wiki/Project:Toolchain/libcrypt_implementation
* QA Notice: Found the following implicit function declarations in configure logs:
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:739 - _bswap
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:817 - _bswap64
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:895 - _bit_scan_reverse
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:973 - _bit_scan_forward
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:1359 - _byteswap_ulong
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:1439 - _byteswap_uint64
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:1519 - __cntlz4
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:1597 - __cntlz8
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:1675 - __cnttz4
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:1753 - __cnttz8
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:2046 - yylex
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:2057 - yylex
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:13522 - pthread_yield_np
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:14227 - getpid
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:23768 - infnan
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:24033 - _isnan
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:26347 - fpsetmask
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:26635 - fpsetround
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/config.log:26954 - GetSystemTimeAsFileTime
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/Fuse/config.log:203 - exit
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/HTTPLoop/config.log:723 - sendfile
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/HTTPLoop/config.log:729 - sendfile
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/Mysql/config.log:883 - mysql_connect
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/Mysql/config.log:1016 - mysql_connect
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/Wnotify/config.log:466 - FindFirstChangeNotification
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/_Stdio/config.log:2071 - sendfile
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/_Stdio/config.log:2077 - sendfile
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/_math/config.log:747 - fpsetround
* /var/tmp/portage/dev-lang/pike-8.0.1738-r1/work/Pike-v8.0.1738/build/linux-5.16.2-gentoo-x86_64/modules/system/config.log:3221 - setprgp
* Check that no features were accidentally disabled.
* See https://wiki.gentoo.org/wiki/Modern_C_porting.
```
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10123
Overloading of getter/setters with plain variables seems broken
2023-05-16T16:06:23Z
Henrik (Grubba) Grubbström
Overloading of getter/setters with plain variables seems broken
From `jonasw` @ Roxen Slack:
```
class Op
{
object `data() {}
string _sprintf() {
return sprintf("%s(%O)",
function_name(object_program(this)),
data || "-");
}
}
class Op1(object mupp)
{
...
From `jonasw` @ Roxen Slack:
```
class Op
{
object `data() {}
string _sprintf() {
return sprintf("%s(%O)",
function_name(object_program(this)),
data || "-");
}
}
class Op1(object mupp)
{
inherit Op;
object `data() { return mupp; }
}
class Op2(object data)
{
inherit Op;
// object `data() { return this::data; }
}
class Data()
{
string _sprintf() { return "DATA"; }
}
void main()
{
object data = Data();
werror("op1: %O, op2: %O\n", Op1(data), Op2(data));
}
```
When the above is run (Pike 8.0.1832 or 9.0.1), the following is output:
```
op1: Op1(DATA), op2: Op2("-")
```
The comment in `Op2` triggers a compilation error due to the name clash between the variable `data` and the getter of the same name.
It looks like the reference to `data` in `Op()->_sprintf()` has a `local`/`inline` scope even though `data` has not been declared as such.
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10094
Standards.IIM.get_information() returns ([]) for some files that have IPTC-II...
2022-11-16T10:16:08Z
Henrik (Grubba) Grubbström
Standards.IIM.get_information() returns ([]) for some files that have IPTC-IIM metadata.
```
Pike v8.0 release 1783 running Hilfe v3.5 (Incremental Pike Frontend)
> Stdio.File fd = Stdio.File("iim.jpg", "rb");
> Standards.IIM.get_information(fd);
(1) Result: ([ ])
```
Enabling the `werrors` in `decode_photoshop_data()` gives...
```
Pike v8.0 release 1783 running Hilfe v3.5 (Incremental Pike Frontend)
> Stdio.File fd = Stdio.File("iim.jpg", "rb");
> Standards.IIM.get_information(fd);
(1) Result: ([ ])
```
Enabling the `werrors` in `decode_photoshop_data()` gives:
```
> Standards.IIM.get_information(fd);
blocks: ({ /* 1 element */
"\4iptc\0\0\0\1\265\34\2\5\0.Britain Scotland Ukraine Nations League Soccer\34\2\n"
"\0\1""5\34\2\17\0\1S\34\2\24\0\bSOC WSOC\34\2""7\0\b20220921\34\2<\0\v152917+0000\34\2P\0\rScott Heppell\34\2U\0\3STR\34\2Z\0\aGlasgow\34\2e\0\3GBR\34\2n\0\2AP\34\2s\0\2AP\34\2t\0""8Copyright 2022 The Associated Press. All rights reserved\34\2x\0\307Ukrainian fans cheer prior to the star of the UEFA Nations League soccer match between Scotland and Ukraine, at Hampden Park, in Glasgow, Scotland, Wednesday, Sept. 21, 2022. (AP Photo/Scott Heppell)\34\2z\0\2HA\0"
})
block: "046970746300000001b51c0205002e4272697461696e2053636f746c616e6420556b7261696e65204e6174696f6e73204c656167756520536f636365721c020a0001351c020f0001531c02140008534f432057534f431c0237000832303232303932311c023c000b3135323931372b303030301c0250000d53636f74742048657070656c6c1c025500035354521c025a0007476c6173676f771c026500034742521c026e000241501c0273000241501c02740038436f70797269676874203230323220546865204173736f6369617465642050726573732e20416c6c207269676874732072657365727665641c027800c7556b7261696e69616e2066616e73206368656572207072696f7220746f207468652073746172206f66207468652055454641204e6174696f6e73204c656167756520736f63636572206d61746368206265747765656e2053636f746c616e6420616e6420556b7261696e652c2061742048616d7064656e205061726b2c20696e20476c6173676f772c2053636f746c616e642c205765646e65736461792c20536570742e2032312c20323032322e202841502050686f746f2f53636f74742048657070656c6c291c027a0002484100"
dsclen: 4
block_length: 1
actual length: 1
info: "\265"
Short info "\265"
(1) Result: ([ ])
```
The cause seems to be that there is an extra byte of NUL-padding after the Photoshop 6.0 header description text ("iptc"). https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/ says that the pascal string should be padded to an even length (ie including the length byte).
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10090
Hilfe does not like anonymous classes with implicit create().
2022-09-06T08:56:08Z
Henrik (Grubba) Grubbström
Hilfe does not like anonymous classes with implicit create().
```
Pike v8.0 release 1738 running Hilfe v3.5 (Incremental Pike Frontend)
> class (string bar){}("foo")->bar;
Compiler Error: 2: syntax error, unexpected ';'
Compiler Error: 2: Missing ')'.
Compiler Error: 3: Missing ';'.
Compiler Error:...
```
Pike v8.0 release 1738 running Hilfe v3.5 (Incremental Pike Frontend)
> class (string bar){}("foo")->bar;
Compiler Error: 2: syntax error, unexpected ';'
Compiler Error: 2: Missing ')'.
Compiler Error: 3: Missing ';'.
Compiler Error: 3: Unexpected end of file.
Compiler Error: 3: Missing '}'.
Compiler Error: 3: Opening '{' was here.
Compiler Error: 3: Unexpected end of file.
Compiler Error: 1: Got : string(102..111).
Compiler Error: 1: Index : string(97..114).
> dump wrapper
Last compiled wrapper:
001: mapping(string:mixed) ___hilfe = ___Hilfe->variables;
002: # 1
003: mixed ___HilfeWrapper() { return ("foo")->bar; ; }
004:
```
The same code wrapped in a lambda works fine:
```
> lambda() { return class (string bar){}("foo")->bar; }();
(1) Result: "foo"
```
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10084
reverse() on strings with offset is broken.
2022-07-06T11:04:39Z
Henrik (Grubba) Grubbström
reverse() on strings with offset is broken.
```
Pike v8.0 release 1738 running Hilfe v3.5 (Incremental Pike Frontend)
> reverse("foobar", 2, 4);
(1) Result: "fof\0\0r"
```
The expected result is `"foabor"`.
The bug seems to have been introduced in commit 2b888e46f63e90ec2b21eedc...
```
Pike v8.0 release 1738 running Hilfe v3.5 (Incremental Pike Frontend)
> reverse("foobar", 2, 4);
(1) Result: "fof\0\0r"
```
The expected result is `"foabor"`.
The bug seems to have been introduced in commit 2b888e46f63e90ec2b21eedc1926e2a30703b837 (when the feature was added).
Pike 7.8
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/10081
Protocols.DNS.client should also consider /etc/hosts.
2022-03-23T11:33:17Z
Henrik (Grubba) Grubbström
Protocols.DNS.client should also consider /etc/hosts.
Sometimes hosts are hidden behind proxies or need to be simulated. In those cases it is useful to be able to add corresponding entries to `/etc/hosts` (or equivalent). Currently it is complicated to access stuff that needs correct host h...
Sometimes hosts are hidden behind proxies or need to be simulated. In those cases it is useful to be able to add corresponding entries to `/etc/hosts` (or equivalent). Currently it is complicated to access stuff that needs correct host headers but via an alternative IP-number.
Adjust `Protocols.DNS.client()->gethostbyname()` et al to also consider `/etc/hosts`.
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10072
SIGSEGV in Crypto.AES.CCM
2021-12-03T17:43:18Z
Henrik (Grubba) Grubbström
SIGSEGV in Crypto.AES.CCM
From LysLysKOM
```
25080935 igår 21:18 /27 rader/ Niels Möller (entering a radioactive zone)
Mottagare: Pike (-) developers forum <21270>
Mottagare: Niels Möller (entering a radioactive zone) <104958>
Mottaget: igår 21:18
Ärende: Bu...
From LysLysKOM
```
25080935 igår 21:18 /27 rader/ Niels Möller (entering a radioactive zone)
Mottagare: Pike (-) developers forum <21270>
Mottagare: Niels Möller (entering a radioactive zone) <104958>
Mottaget: igår 21:18
Ärende: Bug in ccm glue?
```
------------------------------------------------------------
Hi, I've received a bug report (from someone at Opera) about a crash
when using Crypto.AES.CCM. Example
```
int main() {
mixed state1 = Crypto.AES.CCM.State();
state1->set_encrypt_key(String.hex2string("bedcfb5a011ebc84600fcb296c15af0d"));
state1->set_iv(String.hex2string("438a547a94ea88dce46c6c85"));
state1->update(String.hex2string(""));
string ct = state1->crypt(String.hex2string(""));
state1->digest();
return 0;
}
```
When I try it (with Pike v8.0, installed as a debian package on
x86_64) it segfaults in nettle_memxor3. As far as I can tell from 5
minutes of printf debugging, crash is inside the call to ->digest().
The set_iv method looks a bit suspicious to me, it doesn't include the
required arguments for the nettle function ccm_set_nonce (and ccm is
generally a bit messier to setup than most other modes). See
http://www.lysator.liu.se/~nisse/nettle/nettle.html#index-ccm_005fset_005fnonce
There may of course be some problem in the nettle library too, in
particular, I would be happier if api misuse resulted in an assert
failure rather than a segfault.
```
(25080935) /Niels Möller (entering a radioactive zone)/
```
Pike 8.0
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/10070
pthread_cond_timedwait() does not normalize tv_nsec
2021-11-26T17:10:22Z
Henrik (Grubba) Grubbström
pthread_cond_timedwait() does not normalize tv_nsec
`pthread_cond_timedwait()` on several OSes (including Linux and MacOS X) apparently does not normalize `tv_nsec`. A timeout with a `tv_sec` of `0` and a `tv_nsec` value above `1000000000` seems to give a zero timeout.
Make `co_wait_time...
`pthread_cond_timedwait()` on several OSes (including Linux and MacOS X) apparently does not normalize `tv_nsec`. A timeout with a `tv_sec` of `0` and a `tv_nsec` value above `1000000000` seems to give a zero timeout.
Make `co_wait_timeout()` normalize `tv_nsec`.
Pike 8.0
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/10065
Build of Pike dist failed to push release tag
2021-09-02T15:29:28Z
Henrik (Grubba) Grubbström
Build of Pike dist failed to push release tag
Observed during an automated build:
```
$ /usr/local/bin/pike /home/dist/tmp/build/pike/bin/export.pike --srcdir="/home/dist/tmp/build/pike.srcbuild/../pike/src" --exportlist="/home/dist/tmp/build/pike.srcbuild/../pike/src/export_list" -...
Observed during an automated build:
```
$ /usr/local/bin/pike /home/dist/tmp/build/pike/bin/export.pike --srcdir="/home/dist/tmp/build/pike.srcbuild/../pike/src" --exportlist="/home/dist/tmp/build/pike.srcbuild/../pike/src/export_list" --name=Pike-v%maj.%min.%bld --tag
Bumping release number.
Bumping release number.
Git command "git push origin refs/tags/v8.0.1660:refs/tags/v8.0.1660" failed.
ssh_exchange_identification: Connection closed by remote host
fatal: The remote end hung up unexpectedly
make[1]: *** [full_export] Error 128
```
This seems to have been due to an intermittent network issue.
Pike 8.0
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/10060
Add support for STARTTLS (RFC 3207) and Implicit TLS (RFC 8314) to Protocols....
2021-03-05T16:22:12Z
Henrik (Grubba) Grubbström
Add support for STARTTLS (RFC 3207) and Implicit TLS (RFC 8314) to Protocols.SMTP.Client
Some MSA's require submitted messages to be over TLS.
Implement support for RFC 3207 and RFC 8314 to solve this.
Some MSA's require submitted messages to be over TLS.
Implement support for RFC 3207 and RFC 8314 to solve this.
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10059
Race condition in Filesystem.Monitor.basic.InotifyMonitor()->register_path()
2021-02-03T15:49:32Z
Henrik (Grubba) Grubbström
Race condition in Filesystem.Monitor.basic.InotifyMonitor()->register_path()
Observed on Ubuntu 18.04:
```
inotify_add_watch failed: No such file or directory
pike/lib/modules/System.pmod/_Inotify.so:1: System._Inotify._Instance()->add_watch("/.../feeds/testdir0/test_move_col_depth_header_infinity/A/X/Y",53688315...
Observed on Ubuntu 18.04:
```
inotify_add_watch failed: No such file or directory
pike/lib/modules/System.pmod/_Inotify.so:1: System._Inotify._Instance()->add_watch("/.../feeds/testdir0/test_move_col_depth_header_infinity/A/X/Y",536883150)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1102: FeedImportMonitor("/.../feeds/testdir0/test_move_col_depth_header_infinity/A/X/Y", 15, next: Thu Jan 1 01:00:00 1970, st: 0)->register_path(1)
packages/feedimport/modules/feed-import.pike (4e82006b):955: FeedImportMonitor("/.../feeds/testdir0/test_move_col_depth_header_infinity/A/X/Y", 15, next: Thu Jan 1 01:00:00 1970, st: 0)->register_path(1)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:298: FeedImportMonitor("/.../feeds/testdir0/test_move_col_depth_header_infinity/A/X/Y", 15, next: Thu Jan 1 01:00:00 1970, st: 0)->create("/.../feeds/testdir0/test_move_col_depth_header_infinity/A/X/Y",15,UNDEFINED,UNDEFINED,UNDEFINED)
```
Pike 8.0
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/10058
Xcode12 fails to ./configure due to -Wimplicit-function-declaration
2021-12-10T14:57:04Z
Mitchell Blank
Xcode12 fails to ./configure due to -Wimplicit-function-declaration
Compiling Pike-v8.0.702 on MacOS 11 with Xcode 12 one encounters an issue common to a lot of autoconf scripts -- broken tests due to the change to `-Werror,-Wimplicit-function-declaration`
Xcode 12 decided to make this warning an error ...
Compiling Pike-v8.0.702 on MacOS 11 with Xcode 12 one encounters an issue common to a lot of autoconf scripts -- broken tests due to the change to `-Werror,-Wimplicit-function-declaration`
Xcode 12 decided to make this warning an error by default in C code. One place this tends to bite in a subtle way is inside of autoconf scripts, since there a failure will usually be silent unless it causes something to be misdetected. Indeed, when building pike the build ends up failing with:
```
Configuration error: No way to set nonblocking I/O
```
If you search for `Werror` in the config.log lines you see lots and lots of examples:
```
./build/darwin-20.1.0-x86_64/modules/_Image_JPEG/config.log:conftest.c:27:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Image_TIFF/config.log:conftest.c:48:26: error: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:116:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:134:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:141:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:135:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:103:63: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:136:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:116:14: error: implicit declaration of function 'setprgp' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:118:3: error: implicit declaration of function 'gethostbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:118:7: error: implicit declaration of function 'gethostbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:117:3: error: implicit declaration of function 'getservbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:118:7: error: implicit declaration of function 'getservbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/sybase/config.log:conftest.c:32:11: error: implicit declaration of function 'cs_ctx_alloc' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/sybase/config.log:conftest.c:33:11: error: implicit declaration of function 'ct_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_math/config.log:conftest.c:28:5: error: implicit declaration of function 'fpsetround' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Image_XFace/config.log:conftest.c:45:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Wnotify/config.log:conftest.c:33:3: error: implicit declaration of function 'FindFirstChangeNotification' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Wnotify/config.log:conftest.c:34:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bswap' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bswap64' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bit_scan_reverse' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bit_scan_forward' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:64:12: error: implicit declaration of function '_byteswap_ulong' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:64:12: error: implicit declaration of function '_byteswap_uint64' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cntlz4' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cntlz8' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cnttz4' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cnttz8' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:59:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1206:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.y:42:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1206:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.y:42:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1208:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1208:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:61:14: error: implicit declaration of function 'bar' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:174:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:168:30: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:239:3: error: implicit declaration of function 'mkdir' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:225:17: error: implicit declaration of function 'infnan' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:228:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:224:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:224:8: error: implicit declaration of function '_isnan' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:225:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:234:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:25: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:249:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicit declaration of function 'fpsetmask' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:252:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:255:3: error: implicit declaration of function 'fpsetround' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:256:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:253:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:253:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:259:24: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:250:3: error: implicit declaration of function 'GetSystemTimeAsFileTime' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:253:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:249:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:42: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:33: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:260:17: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:19: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:258:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:261:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:258:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:261:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:255:3: error: implicit declaration of function 'write' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:289:8: error: implicit declaration of function 'getpid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:292:10: error: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:250:3: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:252:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:341:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:351:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:360:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:367:29: error: implicit declaration of function 'inet_addr' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:416:4: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:439:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:276:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:258:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:254:14: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:8:3: error: implicit declaration of function 'testfunc2' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
```
The number one cause of this type of failure is calling `exit()` without `#include <stdlib.h>` first. However, in my experience the fastest way to solve *that* particular one is to adjust the tests to just `return` from `main()` instead. E.g. here is one recent PR I made for a smaller project: https://github.com/jca02266/lha/pull/18/files
However in the case of pike there are a lot of other functions that are called without the proper header inclusion. For the time being I am going to work around it in Homebrew by adding `CFLAGS=-Wno-implicit-function-declaration` but long-term the configure.in files should be cleaned up to not generate these errors.
Pike 8.0
https://git.lysator.liu.se/pikelang/pike/-/issues/10057
Improve error handling in Protocols.DNS
2021-03-04T15:07:09Z
Henrik (Grubba) Grubbström
Improve error handling in Protocols.DNS
`Protocols.DNS` complains the following if the originator has gone away:
```
18:01:07 : DNS: Failed to read UDP packet. Connection refused?
18:01:07 29m28.8s : Attempt to call the NULL-value
18:01:07 : Unknown pro...
`Protocols.DNS` complains the following if the originator has gone away:
```
18:01:07 : DNS: Failed to read UDP packet. Connection refused?
18:01:07 29m28.8s : Attempt to call the NULL-value
18:01:07 : Unknown program: 0("foo.example.coms","127.0.0.1",0,80)
18:01:07 : pike/lib/modules/Protocols.pmod/DNS.pmod:2028: Protocols.DNS.global_async_client->generic_get("foo.example.com",mapping[21],-1,0,1,"a","foo.example.com",0,0,80)
18:01:07 : pike/lib/modules/Protocols.pmod/DNS.pmod:1991: Protocols.DNS.global_async_client->rec_data(mapping[3])
18:01:07 : pike/lib/modules/Stdio.pmod/module.pmod:3671: Protocols.DNS.global_async_client->_read_callback()
18:01:07 29m28.8s : -:1: Pike.Backend(0)->`()(3600.0)
```
More reasonable would be to ignore the callback if it is NULL, and to complain about a broken callback if the call fails.
Pike 8.0
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/10056
Performance issues with Protocols.HTTP.Server
2021-03-04T15:07:09Z
Henrik (Grubba) Grubbström
Performance issues with Protocols.HTTP.Server
`Protocols.HTTP.Server.Request` uses string addition to accumulate the received data. On some platforms this can be very inefficient. Change to using `Stdio.Buffer` instead.
`Protocols.HTTP.Server.Request` uses string addition to accumulate the received data. On some platforms this can be very inefficient. Change to using `Stdio.Buffer` instead.
Pike 8.0
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström
https://git.lysator.liu.se/pikelang/pike/-/issues/10054
Type mark stack underflow
2022-09-21T10:01:20Z
Henrik (Grubba) Grubbström
Type mark stack underflow
`compiler_bug.pike`:
```
int(0..0) array(mapping) foobar() {
return ({});
}
```
```
$ pike --version
Pike v8.0 release 702 Copyright © 1994-2018 Linköping University
Pike comes with ABSOLUTELY NO WARRANTY; This is free software and you...
`compiler_bug.pike`:
```
int(0..0) array(mapping) foobar() {
return ({});
}
```
```
$ pike --version
Pike v8.0 release 702 Copyright © 1994-2018 Linköping University
Pike comes with ABSOLUTELY NO WARRANTY; This is free software and you are
welcome to redistribute it under certain conditions; read the files
COPYING and COPYRIGHT in the Pike distribution for more details.
$ pike compiler_bug.pike
compiler_bug.pike:1:array is a reserved word.
/var/tmp/portage/dev-lang/pike-8.0.702/work/Pike-v8.0.702/src/pike_types.c:707: Fatal error:
Type mark stack underflow
/var/tmp/portage/dev-lang/pike-8.0.702/work/Pike-v8.0.702/src/pike_types.c:707: Fatal error:
Type mark stack underflow
Aborted
```
Pike 7.8
https://git.lysator.liu.se/pikelang/pike/-/issues/10012
Several autodoc typos in Standards.X509.
2020-03-20T10:40:09Z
Henrik (Grubba) Grubbström
Several autodoc typos in Standards.X509.
`failes` ==> `fails`
`it's child` ==> `its child`
Pike 8.0 only:
`oredered` ==> `ordered`
`srevers` ==> `servers`
Also: Is the lack of strict mode for `verify_certificate_chain()` in Pike master intentional?
`failes` ==> `fails`
`it's child` ==> `its child`
Pike 8.0 only:
`oredered` ==> `ordered`
`srevers` ==> `servers`
Also: Is the lack of strict mode for `verify_certificate_chain()` in Pike master intentional?
Pike Next
Henrik (Grubba) Grubbström
Henrik (Grubba) Grubbström