pike issueshttps://git.lysator.liu.se/pikelang/pike/-/issues2020-03-05T17:26:11Zhttps://git.lysator.liu.se/pikelang/pike/-/issues/8063Thread.Thread->id_number() sometimes returns same value for different threads2020-03-05T17:26:11ZPeter BortasThread.Thread->id_number() sometimes returns same value for different threadsImported from https://youtrack.roxen.com/issue/PIKE-63
Reported by KG Sterneberg <kg@roxen.com>
Encountered this problem when writing and running tests for the new Edition Purger.
Tried to reproduce the problem in an isolated test but ...Imported from https://youtrack.roxen.com/issue/PIKE-63
Reported by KG Sterneberg <kg@roxen.com>
Encountered this problem when writing and running tests for the new Edition Purger.
Tried to reproduce the problem in an isolated test but failed.
In order to reproduce, checkout branch kg/PIKE-X-thread-id-number-issue in Print and Roxen repos. Then run the the PurgerTest by executing:
`TEST_SUITE=PurgerTest ./start --self-test --tests=rep_archive -DARCHIVE_DEBUG`
NB: You need to have Elasticsearch installed and configured on localhost:9200 and test-indices created. Go to the directory `scripts` in the Archive repo and execute `sh create_indices.sh test` (NB: You must stand in directory 'scripts').
In the debug-log you will see stuff like this:
TRACE: Clearing cache. thread id: 140735632249664, Thread: Thread.Thread(0x70000c65a000)
TRACE: Clearing cache. thread id: 140735632249664, Thread: Thread.Thread(0x70000c14b000)
TRACE: Clearing cache. thread id: 140735632249664, Thread: Thread.Thread(0x70000c351000)
TRACE: Clearing cache. thread id: 140735632249664, Thread: Thread.Thread(0x70000c24e000)https://git.lysator.liu.se/pikelang/pike/-/issues/8010Pike.identify_cycle doesn't handle declared-only __hash member2023-11-05T10:13:18ZPeter BortasPike.identify_cycle doesn't handle declared-only __hash memberImported from https://youtrack.roxen.com/issue/PIKE-10
Reported by Martin Karlgren <marty@roxen.com>
Pike.identify_cycle throws when a class has a declared, but not defined, __hash member. (Not sure if the problem really is in hash_sva...Imported from https://youtrack.roxen.com/issue/PIKE-10
Reported by Martin Karlgren <marty@roxen.com>
Pike.identify_cycle throws when a class has a declared, but not defined, __hash member. (Not sure if the problem really is in hash_svalue?)
```
> class Foo { mixed bar; int __hash(); }
> class Bar { mixed foo; }
> Foo foo = Foo();
> Bar bar = Bar();
> foo->bar = bar;
(1) Result: HilfeInput()->Bar()
> bar->foo = foo;
(2) Result: HilfeInput()->Foo()
> Pike.identify_cycle(foo);
Calling undefined function.
HilfeInput:1: HilfeInput()->Foo()->__hash()
-:1: __builtin.identify_cycle(HilfeInput()->Foo())
```Pike 8.0https://git.lysator.liu.se/pikelang/pike/-/issues/7684Feed: Recursive mutex locks2022-11-06T09:16:07ZPeter BortasFeed: Recursive mutex locksImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7684
Reported by Marcus Wellhardh <wellhard@roxen.com>
Noticed this backtrace when debugging [RT 26947]:
```
: Server start command:
: /usr/local/...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7684
Reported by Marcus Wellhardh <wellhard@roxen.com>
Noticed this backtrace when debugging [RT 26947]:
```
: Server start command:
: /usr/local/roxen/server-6.0.130/bin/roxen
: -DLOG_GC_TIMESTAMPS
: -DINHIBIT_INOTIFY_MONITOR
: -DDEBUG_ADMANAGER
: -DRAM_CACHE
: -DHTTP_COMPRESSION
: -M/usr/local/roxen/server-6.0.130/etc/modules
: -M/usr/local/roxen/local/pike_modules
: -I/usr/local/roxen/server-6.0.130/etc/include
: -I/usr/local/roxen/server-6.0.130/base_server
: -P/usr/local/roxen/server-6.0.130/base_server
: -P/usr/local/roxen/server-6.0.130
: base_server/roxenloader.pike
: --pid-file=../configurations/_roxen_pid
pike/lib/modules/___Oracle.so:-: Warning: Failed to load library: libclntsh.so.12.1: kan inte öppna delad objektfil: Filen eller katalogen finns inte
pike/lib/modules/Odbc.so:-: Warning: Failed to load library: libodbc.so.2: kan inte öppna delad objektfil: Filen eller katalogen finns inte
5:00:02 : Support for IPv6 enabled.
0m 0.0s : Adding package /usr/local/roxen/local.
: Adding package packages/feedimport (Version 6.0.130).
: Adding package packages/imageproc (Version 6.0.130).
: Adding package packages/logview (Version 6.0.130).
: Adding package packages/print (Version 6.0.130).
5:00:02 : Adding package packages/search (Version 6.0.130).
0m 0.1s : Adding package packages/sitebuilder (Version 6.0.130).
: -----------------------------------------------------------------
: Pike version: Pike v8.0 release 232
: Product version: Roxen EP 6.0.130-r1
: Operating system: Linux 3.10.0-327.13.1.el7.x86_64 (x86_64)
5:00:02 : Starting MySQL ... Was running 10.1.12-MariaDB [10.1ms]
0m 0.1s : Installed patches:
: 2016-04-20T143129
: 2016-04-22T141034
: 2016-04-22T141702
: 2016-04-22T142057
5:00:02 : 2016-04-25T103337
0m 0.1s : 2016-04-25T112131
: 2016-04-25T112359
: 2016-04-28T160526
: 2016-04-29T103046
:
5:00:02 : Loading Pike modules ... Done [303.0ms]
0m 0.6s : Loading Roxen ...
: Server version ... 6.0.130
: Dist version ... 6.0.130
: Platform ... rhel7_x86_64
: Product code ... rep
5:00:03 : Done [522.3ms]
```
[...]
```
: GC runs at Sun May 8 09:11:12 2016
: GC done after 159117us
9:11:13 : Internal server error: Recursive mutex locks!
-:1: _static_modules.Builtin()->mutex()->lock()
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:221: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/2861ead4434a45ac83fbde5823204688", 7, next: Sun May 8 06:39:09 2016, st: 0)->unregister_path(1)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1100: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/2861ead4434a45ac83fbde5823204688", 7, next: Sun May 8 06:39:09 2016, st: 0)->unregister_path(1)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:722: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/2861ead4434a45ac83fbde5823204688", 7, next: Sun May 8 06:39:09 2016, st: 0)->destroy()
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:227: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/346a6eaebe9749a88c8ac6b4662ecb31/0db6bd0f667a476199d3f65d3c86957f-f9490.jpg", 15, next: Sun May 8 10:01:12 2016, st: Stat(-rw-r--r-- 2698881
b))->`>(1462716675)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:226: Monitor("/usr/local/roxen/feeds/wirefeeds/universal/XML/notas_N", 15, next: Sun May 8 09:11:15 2016, st: Stat(drwxr-xr-x 77824b))->`<(,,,0)
pike/lib/modules/ADT.pmod/Heap.pike:65: ADT.Heap(14618 elements, top: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/ebb750fff66e4d5ab3250f0ee50b48fc/80f3e1042f963517980f6a7067008cd4-6b2c1.jpg", 15, next: Sun May 8 09:11:06 2016, st: Stat(-rw-r--r--
783813b)))->adjust_down(1535)
pike/lib/modules/ADT.pmod/Heap.pike:143: ADT.Heap(14618 elements, top: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/ebb750fff66e4d5ab3250f0ee50b48fc/80f3e1042f963517980f6a7067008cd4-6b2c1.jpg", 15, next: Sun May 8 09:11:06 2016, st: Stat(-rw-r--r-
- 783813b)))->adjust(,,,0)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1233: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->adjust_monitor(@0)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:437: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/346a6eaebe9749a88c8ac6b4662ecb31/0db6bd0f667a476199d3f65d3c86957f-f9490.jpg", 15, next: Sun May 8 10:01:12 2016, st: Stat(-rw-r--r-- 2698881
b))->update(Stat(-rw-r--r-- 2698881b))
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:583: Monitor("/usr/local/roxen/feeds/wirefeeds/ap/PHOTOSTREAM - MX (MEXICO GROUP)/346a6eaebe9749a88c8ac6b4662ecb31/0db6bd0f667a476199d3f65d3c86957f-f9490.jpg", 15, next: Sun May 8 10:01:12 2016, st: Stat(-rw-r--r-- 2698881
b))->check(UNDEFINED)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1420: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check_monitor(@0,UNDEFINED)
pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1524: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check(UNDEFINED,1000,([]))
packages/feedimport/modules/feed-import.pike (ef807040):1508: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check(UNDEFINED,1000,@1=([]))
packages/feedimport/modules/feed-import.pike (ef807040):2245: RoxenModule(EP/feed-import#0)->feed_monitor->periodic_scan()
packages/feedimport/modules/feed-import.pike (ef807040):2295: RoxenModule(EP/feed-import#0)->feed_monitor->periodic_scan_dispatch()
```Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/5965XML parser accepts text before top-level tag if provided in entity form2022-10-06T10:41:05ZPeter BortasXML parser accepts text before top-level tag if provided in entity formImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5965
Reported by Jonas Wallden <jonasw@roxen.com>
```
> Parser.XML.Simple()->parse(" A <foo/>", lambda(mixed ...foo) { werror("%O\n", foo); });
({ /* 5 elements */...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5965
Reported by Jonas Wallden <jonasw@roxen.com>
```
> Parser.XML.Simple()->parse(" A <foo/>", lambda(mixed ...foo) { werror("%O\n", foo); });
({ /* 5 elements */
"error",
0,
0,
"All data must be inside tags",
([ /* 1 element */
"location": 2
])
})
({ /* 5 elements */
"<>",
"foo",
([ ]),
0,
([ /* 1 element */
"location": 11
])
})
> Parser.XML.Simple()->parse(" A <foo/>", lambda(mixed ...foo) { werror("%O\n", foo); });
({ /* 5 elements */
"",
0,
0,
"A",
([ /* 1 element */
"location": 9
])
})
({ /* 5 elements */
"<>",
"foo",
([ ]),
0,
([ /* 1 element */
"location": 15
])
})
```
(Haven't checked the XML spec but I doubt it's the intended behavior.)Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/4059Graphics.Graph.graph() doesn't set legend colors.2022-10-06T09:57:46ZPeter BortasGraphics.Graph.graph() doesn't set legend colors.Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4059
Reference: http://www.siriushosting.com/test.png
Reported by Adam Montague, Sirius Hosting <amontague@siriushosting.com>
When creating a graph with Graphics.Graph.p...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=4059
Reference: http://www.siriushosting.com/test.png
Reported by Adam Montague, Sirius Hosting <amontague@siriushosting.com>
When creating a graph with Graphics.Graph.pie() or bar(), if you set
legend_texts to something, then a legend will be created with appropriately
colored boxes. If you do the same with Graphics.Graph.graph(), then the
little boxes in the legend are all white.Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/3532Filesystem.Base->find() calls cause backtrace because of Filesystem.Stat->cd(...2023-05-15T18:11:55ZPeter BortasFilesystem.Base->find() calls cause backtrace because of Filesystem.Stat->cd() failingImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3532
Reported by Emils Klotins, Public Affairs Section, US Embassy Riga <emils@tvnet.lv>
I noticed the behaviour and Johan Sundström helped debug it and he put it
in bett...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3532
Reported by Emils Klotins, Public Affairs Section, US Embassy Riga <emils@tvnet.lv>
I noticed the behaviour and Johan Sundström helped debug it and he put it
in better words:
"It seems Filesystem.System (or some other Filesystem component) is
bugged here; find() will in turn call stat->cd() to recurse into
directories, which fails trying to call filesystem->cd(fullpath),
where fullpath for some reason lacks a leading slash. I do not know
which of these involved parts is doing something wrong, though, but
at least one of them is working on broken assumptions.
The problem exists in recent 7.5:s and has probably always been there."
I noticed this when trying to develop a module for Roxen 3.3, Pike 7.2,
which would need to traverse directory tree and get file & directory list.
so essentially:
```
// need to have some kind of masking defined,
// this one should simply filter out dirs.
int mask(Stat fobj)
{
if (fobj->isdir())
return 1;
return 0;
}
...
Filesystem.System fs=Filesystem.System("any_dir");
return sprintf("%O", fs->find(mask));
```
will cause:
Attempting to index NULL value.
Would be nice if could be fixed in 7.2, as there are no other ways to
traverse Filesys there...Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/10005The fdlib changes in Pike 8.0.606 broke support for sprshd on NT.2023-01-01T13:02:07ZHenrik (Grubba) GrubbströmThe fdlib changes in Pike 8.0.606 broke support for sprshd on NT.`sprshd` works as usual with Pike 8.0.604.
In Pike 8.0.606 and later it hangs when spawning the first external binary.`sprshd` works as usual with Pike 8.0.604.
In Pike 8.0.606 and later it hangs when spawning the first external binary.Pike 8.0https://git.lysator.liu.se/pikelang/pike/-/issues/10001The type for predef::`&() is wrong is some cases.2022-10-06T12:34:15ZHenrik (Grubba) GrubbströmThe type for predef::`&() is wrong is some cases.typeof(17 & 18) gives int(17)|int(18) instead of int(16).typeof(17 & 18) gives int(17)|int(18) instead of int(16).Pike 9.0https://git.lysator.liu.se/pikelang/pike/-/issues/8016The Inotify accelerated filesystem monitor may lose acceleration in some cases.2020-03-08T13:54:07ZPeter BortasThe Inotify accelerated filesystem monitor may lose acceleration in some cases.Imported from https://youtrack.roxen.com/issue/PIKE-16
Reported by @grubba
The MacOS X Finder is apparently fond of the access pattern when copying files:
```mermaid
graph LR
C1[Create]==>Delete
Delete==>C2[Create]
```
The monito...Imported from https://youtrack.roxen.com/issue/PIKE-16
Reported by @grubba
The MacOS X Finder is apparently fond of the access pattern when copying files:
```mermaid
graph LR
C1[Create]==>Delete
Delete==>C2[Create]
```
The monitor for the resulting file may get lost if the second create comes before the parent directory has been scanned.https://git.lysator.liu.se/pikelang/pike/-/issues/10141Add support for fftw 3.x (Math.Transforms.FFT)2024-01-14T14:40:40ZHenrik (Grubba) GrubbströmAdd support for fftw 3.x (Math.Transforms.FFT)The API in fftw 3.x seems to have changed drastically.
Superficial changes:
* There is now only a single header-file named `<fftw3.h>`.
* There is now only a single library named `fftw3`.
* Many of the API functions have been renamed or...The API in fftw 3.x seems to have changed drastically.
Superficial changes:
* There is now only a single header-file named `<fftw3.h>`.
* There is now only a single library named `fftw3`.
* Many of the API functions have been renamed or restructured.Pike Nexthttps://git.lysator.liu.se/pikelang/pike/-/issues/10087Pike HTTPS server timeout issue with Chrome2022-09-08T13:21:02ZMartin NilssonPike HTTPS server timeout issue with ChromeA Protocols.HTTP.Server using SSLFile can end up in a bad state with a Chrome browser if the browser loads a page with many sub resources and then wait a short while followed by a reload. Some of the resources will then stall until the s...A Protocols.HTTP.Server using SSLFile can end up in a bad state with a Chrome browser if the browser loads a page with many sub resources and then wait a short while followed by a reload. Some of the resources will then stall until the server is rebooted. Issue didn't exist in Pike 8.0.Pike 9.0https://git.lysator.liu.se/pikelang/pike/-/issues/10127Fix QA complaints from Gentoo Ebuild of Pike 8.0.17382023-06-29T10:13:14ZHenrik (Grubba) GrubbströmFix 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.0https://git.lysator.liu.se/pikelang/pike/-/issues/8004Standards.URI obsolete list of reserved characters2020-03-25T10:06:18ZPeter BortasStandards.URI obsolete list of reserved charactersImported from https://youtrack.roxen.com/issue/PIKE-4
Reported by Martin Karlgren <marty@roxen.com>
Standards.URI doesn't encode e.g. exclamation marks ("!"), as mandated by [RFC 3986](http://pike.lysator.liu.se/docs/ietf/rfc/39/rfc398...Imported from https://youtrack.roxen.com/issue/PIKE-4
Reported by Martin Karlgren <marty@roxen.com>
Standards.URI doesn't encode e.g. exclamation marks ("!"), as mandated by [RFC 3986](http://pike.lysator.liu.se/docs/ietf/rfc/39/rfc3986.xml). Indeed, Standards.pmod/URI.pike references the outdated [RFC 1738](http://pike.lysator.liu.se/docs/ietf/rfc/17/rfc1738.xml).Pike 8.0https://git.lysator.liu.se/pikelang/pike/-/issues/10104Define the behavior of catch vis a vis local variables defined in the block.2022-12-21T15:42:21ZHenrik (Grubba) GrubbströmDefine the behavior of catch vis a vis local variables defined in the block.There exists code (eg `Parser.Tabular`) that uses exceptions for control flow, and expects variables defined in the catch block to be cleared when the catch returns. Having the variables be cleared at a later time or out of order may cau...There exists code (eg `Parser.Tabular`) that uses exceptions for control flow, and expects variables defined in the catch block to be cleared when the catch returns. Having the variables be cleared at a later time or out of order may cause the code to fail.
Consider:
```
int bangers;
#if __VERSION__ < 9.0
#define _destruct destroy
#endif
class Bang
{
inherit Pike.DestructImmediate;
protected void create()
{
bangers++;
}
protected int _destruct()
{
bangers--;
error("Bang!\n");
}
}
mixed a(int i)
{
mixed err = catch {
Bang bang = Bang();
if (i) error("Other!\n");
};
werror("#%d: Bangers: %d\n", i, bangers);
if (err) {
werror("Error: %O\n", err = describe_error(err));
} else {
werror("No error.\n");
}
return err;
}
int main()
{
for (int i = 0; i < 2; i++) {
mixed err = catch {
mixed val = a(i);
werror("#%d: bangers: %d, val: %O\n", i, bangers, val);
};
if (err) {
werror("#%d: a(%d) failed: %O\n", i, i, describe_error(err));
}
}
}
```
This issue causes the `Parser.Tabular` testsuite to hang.Pike 9.0https://git.lysator.liu.se/pikelang/pike/-/issues/10139RSA PKCS1 v1.5 decryption implementation does not detect ciphertext modificat...2024-01-26T13:03:11ZJoshua RogersRSA PKCS1 v1.5 decryption implementation does not detect ciphertext modification by prepending \0-bytes to ciphertextsHi there,
Another issue in RSA PKCS1 v1.5. Pike does not bork on ciphertexts that have been modified with prepended 0-bytes in their ciphertext.
A small test-case:
```
int main() {
string key = "30820943020100300d06092a864886f70d010...Hi there,
Another issue in RSA PKCS1 v1.5. Pike does not bork on ciphertexts that have been modified with prepended 0-bytes in their ciphertext.
A small test-case:
```
int main() {
string key = "30820943020100300d06092a864886f70d01010105000482092d308209290201000282020100f601be0dccd04aa40b12f3f191ae17c1f9c8c0b68e7a77e14be25c3c7907cb1d33a6ef418ef41852f32c98392bc5c9aed91c1a1501c503eab89b3ee6f4f8eb2e0fcfc41bd03609cf6a8eb3aa6f0fbe23187b33db4d34b66d128a8aba0a2abf40bb9d13d8e2554569a57ab1d8c61b8cad2dc88599ae0da5346e15dace1bac7bf69737c22f083be9b46bb8b1eab5957b2da740275e96c87195b96fe11452159dafcfd916cee5d749a77bc3905a5ebd387ae445e8fe70f16e9a086639779ceffbfd41557bd99aea6a371a6b4b160615a1a12bc6958d34bce0c85adcbd8392fa10ceca52209d56196ba3d273ce228f1f111192aa92de2a039798a17bcecb4dc6100e6f8ae8c2643f2ae768b2255f082c978e95ca551555f10608231cf8003bbf807969fff1e51914b9a8c9b8f4564645b9e5d705ffad29663f5dae3d76652b422e43f13e6c1491090805c2d1268a74a251177427e33a9a91175c3670b91746008bce1fd231e6e4f2ad70cb43aca5f07600a6d31dd02915243dfdd943a02165da367a6b7e4dae1dd2e8b836903080795d2585076cc1c15dd9e8d2e5e047526569b1bfd395d957eb9fde325d342d14426e71efdc1887515e53cdea5834921f928629e748eed097ac4024e2bf255d70411f87373948cf8e8aa7effa2b0ab47d5166091e1aedec60568b155bd9c27bc55f3ece35f83d636dbcd5abf4853a051db94d5045020301000102820200065028224431ca35e87f82d97302c9384b4d341385ecd8510f4df94e51facf0dbfa01694139e3f00e34859db09bd087e74b2e1c1229652e73df7e49c2fb2dd9cda7f5b49d81a32e9403e4b97b6eeebfdb6e89e7d8fbf27b95282fca9668e649c68297bf367bcdc21a86dfc22132a177e4591024b5dd49ad091775271fc9d7cb6e8cd8a5858f93f4cf280bf0c1b69d675e6f760ab443fa8ee8ddf89a2a85d46a52c367c27db6d1ec6435e52eb86c7e0ab02b05543865423cc4f25346f55e1db6675e69832e43a04ccc78af3abd68477ed37698ab7f61facbdbcdb32552de5e89d8342aa9f445b8afac81bfc5bc05981ea20b340e948f710f7b3ee85f18b5c3c5832f2336706c5e9c9bd8e43d202e73a0f62776df4b715975eddd31aa643b14145057b4995556de614c57b33297bda0e05a8b8882a29563bf21686ce34c3960f905de73911987eb696e07eac0a63857e2894c3b4629477ecbf1fc76eafbb2ce4a0f00f8cdb6fbd6169e399151460522cf5b365d9bbb9587d07dac8c438982adea9ff243a86bbdf128eaa0d3a88871d8cdf081854258a651ff4226ee9749b4a6add090c159ccea06b9a10804e5fe15120cc63a5972eab0e43980dedaff321fadeea3ca60c3ba1c2980bb597ea783b80ab6eba87feb5754fd1d65d7cad6f81cf52c1a6bfebf9a75e9a316cb364d8cf467d96370871df2ee66ee1c1694a02239583910282010100fc21b855c5ad4ca2b6970516406f71c6e79efc4126e6598772db1e082de6b0dddaaa2a2951f04148e86e0bde28213b7f600f987308301eacea134062bb0c3ddf628da9abf93ef1ce3e75b0953a484dbd3554bd5c0649933dd77e527563e90f05a8013fddac958c329378e94303b304be5f9df1fe5b043a7fdd94700a3f0b1cbbd0516b7cd94c57ca96d9fd2a8ca973991218cba33a1c23d810f7519d1f7702ab72affdb3f84a1b2a88116e4033bc4d0cfc7989c657e0fe94e964476ae58bae6b7876f36c09d32b1a63f8c47c94a74c92eedf75fc27cffe0f8452363e4bc8f7653f3cb55eaf693cec70d13c875de935a8b20439ab7e93f76981c5957fc5bb44d90282010100f9c7f748a505d23ecef9a85f8097c8cf7d7028ef6c90e22a336511582d2cc3636e34ead37204dbd22f142a3fb1d5f857b0310c7a433f51ae14d4608b01b43aa8c7ae67835f7fbe0b9d97948b39e9ba2d3a1687edb8b56ee70ff0536dab4d0551f71ed0daee9e412449f5f099bcc15e4ef0554dc79f87fec5a0dea717c7054392bf444613937401bbef3c22fbf7e738c58779b981609a1f9c11dd6f0bbe9996e2773459e4cef247b02a9fc21296ac57a5b10561824310cfbdecc90e06598370e3698713fdbe2528ec4ef3dccaae701eedc3e54ad6e7af4e68e3b39bd2e97ac9119936c647a503511cb283df984cfd7c07f0f56aa8ae3166948ef3f41b0859934d0282010100815486aab0a0896bf97f13e3eb1f7f5c49195b49cc3b6277412a3688798b18f46422df479cb941b3b54e25964a3d69b897bcc8355160e58b4af29f1745dd2cabb670f634b9c058e6b3514947f2c27de5ed424f73b1e1f1be4a188911a0333f3a6688658b3ee8e3265a512e4deacadc470ee304ebb5224123afb461984fe8524fe0b6b30d32a59f6ed2dc74a96bc7cbfd1bb44e58a7092235c5d6272e12a2c862cb8c8cf5d109aa4fb1c6472875a14460c1ed5207c4b22bc494c7947eb7ca63a8cafd31361d000ddf16a2d79f13dd9140d979149b488cbf44945a5b6aaf13221bf4491ebbb7fca27ca20e221f49c3c37b89fcf2dc0e2cb63f8f8a9b7a142250590282010100b61d84ff934a4e437b16ee1b4b9fdf4ae13370b5385bde7a5464a123c0343df575f9e128ef9df944230d39cc9cf5dc0edb28b7e740b69ef024c1bfee39fcd5340ffaea0010160c535dc0920e7cd81be533d00fa554a1fc4d3e02c461569f5e7ca787f1515edf45b196b759884de652c38d5934cf92524e807b4d3b590bc39bc417ee4885a761d28ddadce6c8fdb3b961d3e7fd48064df9340a967f8b79997438841f48579a476ddb55088c308f68f2b29d01c6597a5a7c8d066284f63e37a68c3879c32aa3836675fd0eb2719883a91944561e9dd7e8aa6bb17157f08c48f8e6fae5c3e5a2bb6b5d580eec6c97ddcd9be0a49ef283a7031ad7aba8d438df4e950282010022fb8e5fcd9b767104e71244db53058c18061e1b0d1f63b73e2d59a95e2a10cd87426a33da13c287cdef8136e5e47e93fb9b30ad92628a7b543f48eb011a86356ab3cb480f27e391b018ca187d97af3d82e31861ecafa663db78aa89c3bd468e6aadefb3a43f78bc00b8014c95db54e9d21a017e8f21f671545edde9a965ea32dfff45cda37fca1aa5132f6c8eed222bd01fed5a6e7d639580c5955777a86544c2c4c939bdb8b4c486dda53072861a0334359bdb3758475e49d90d0539944e78cfcfd8fff55bb31a1cebc65b28f51e790701b2f7912188984f034e6e96e1c5251e33fe38fb221bce7a90a86857c5f56b6ca77307c45d5290b1f088ade082b349";
string privateKeyPkcs8 = String.hex2string(key);
mixed state = Standards.PKCS.parse_private_key(privateKeyPkcs8);
string ret;
string ct = String.hex2string("e4b9d12b1519d15af3a10fef8ed37f918e998c56b7d89fad34cecd08ecb9ae9b3213f1e9686be7ea525882a5f28a594963b4c16ed9207210646d0d5cac26920f92edd61b262a39f0f9a9f889da6f583c6fce47a08b0fd575b4bbd33e64da0eb390703e341ae3c4392b39360a1a623b8701ad51801e63df43237df4e816f2a1e4312099f1070c528fc10803879321e99e76104b2440cb4ca788c2eeda15a673e418ff247f8556a2c5be47bc016fc6a2a6caf4080d6004f4d8d17dae33e23c8bb4046fd91ea85560f9d68949da790ea662e32c3c44538d4a8bd555338ddbf4009a9d8b2cb42337ab138b6841c0f1d34f585ecb9c8be41a037fd79c3db489909da1328a170a4d676d62359166ba641d4ab0e6d56f26903e41dd4307742d6e76c67b88ac2f835a9d5b45de31a5e4b479e76b82b08c184a67f2b917c2f76ba8ebfe98b0071eee383de77cb5b06050eb058a5194eb8170b000b47862bf40c1baacb0e4c58210284556aee1ba1006f25618bece2e9578fb73fd389914db94343b41c407c7778e49b3aa3062c92c63e83d79aac7c7f3d1334f197b8660432f29504c6f1477f9d00a3cf56b6bba97ffbcbb5c68cd60972982bdc910419ec69bcc1cde7cdb1516706e7a51fb23da821754fc2385ccbc85ced7c7a32b9a0fd7fa71b9829a86247d1a0942546b25109079a7be7b2bff81803cd96102cdeead406b2446077b6e00");
array err = catch { ret = state->decrypt(ct); };
if(ret)
write("%s\n", ret);
}
```
This issue is similar to CVE 2020-14967, which also allowed for the prepending of \0-bytes to the ciphertext (which resulted in a buffer overflow due to difference in the expected and real length of the ct).
Cheers,
JoshPike 8.0https://git.lysator.liu.se/pikelang/pike/-/issues/10106Update the Autodoc extractor to support the multi-assign in function calls sy...2023-01-01T12:47:25ZHenrik (Grubba) GrubbströmUpdate the Autodoc extractor to support the multi-assign in function calls syntax.The changes in #10098, #10100 and #10103 need to also be supported by `Tools.AutoDoc.PikeParser`.The changes in #10098, #10100 and #10103 need to also be supported by `Tools.AutoDoc.PikeParser`.Pike 9.0https://git.lysator.liu.se/pikelang/pike/-/issues/10078Crypto.ECC.SECP_521R1 does not verify valid signatures.2023-05-15T08:16:54ZJoshua RogersCrypto.ECC.SECP_521R1 does not verify valid signatures.Hi there,
While conducting some tests of Crypto.ECC.SECP_521R1->ECDSA(), I've come across a testcase which should be successfully verified, but it is not.
The code is as follows:
```
int main() {
string x = "00ee030cdb40abf7072686668...Hi there,
While conducting some tests of Crypto.ECC.SECP_521R1->ECDSA(), I've come across a testcase which should be successfully verified, but it is not.
The code is as follows:
```
int main() {
string x = "00ee030cdb40abf70726866681f7b7fedc534190929c05a650bb928b894a5bbfe9577eea83c6331a796fa27ed9fac95d9ecacdfef6d61c925502b0afddc671463549";
string y = "0155606dd4cab19330c57c2ee740cd9c7c88bd88d95f840f315d525379dfeb7ea9bd3677b2185b92957f374317cc6124aacc8708075c4c05c95cbbc355bd692c3708";
string msg = "313233343030";
string sig = "30818702420090c8d0d718cb9d8d81094e6d068fb13c16b4df8c77bac676dddfe3e68855bed06b9ba8d0f8a80edce03a9fac7da561e24b1cd22d459239a146695a671f81f73aaf02413ee5a0a544b0842134629640adf5f0637087b04a442b1e6a22555dc1d8b93f8784f1ddd0cf90f75944cc2cd7ae373e5c2bac356a60ff9d08adfcdba3fa1b7a9d1d";
mixed state = Crypto.ECC.SECP_521R1->ECDSA();
state->set_public_key(Gmp.mpz(x, 16), Gmp.mpz(y, 16));
if(state->pkcs_verify(String.hex2string(msg), Crypto.SHA3_512, String.hex2string(sig)))
write("Success!\n");
return 0;
}
```
The test codes from https://github.com/google/wycheproof/blob/master/testvectors/ecdsa_secp521r1_sha512_test.json#L4279, and the explanation for the test is as follows: "Some implementations of ECDSA do not handle duplication and points at infinity correctly. This is a test vector that has been specially crafted to check for such an omission"
Please note: I have not tested this in Nettle itself, because I'm not 100% sure how to use the related functions in the C code.
Thank you.https://git.lysator.liu.se/pikelang/pike/-/issues/10058Xcode12 fails to ./configure due to -Wimplicit-function-declaration2021-12-10T14:57:04ZMitchell BlankXcode12 fails to ./configure due to -Wimplicit-function-declarationCompiling 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.0https://git.lysator.liu.se/pikelang/pike/-/issues/10048Extend type-checker to use lfun types when checking efun calls with objects.2022-09-08T13:02:34ZHenrik (Grubba) GrubbströmExtend type-checker to use lfun types when checking efun calls with objects.Currently the type checker resolves typical efun calls with objects to returning mixed, even though it may have knowledge about the object implementing the corresponding lfun(s).
Now that #10033 has been fixed, we get quite a few warnin...Currently the type checker resolves typical efun calls with objects to returning mixed, even though it may have knowledge about the object implementing the corresponding lfun(s).
Now that #10033 has been fixed, we get quite a few warnings due to operators returning mixed.https://git.lysator.liu.se/pikelang/pike/-/issues/10047Warnings in Crypto.Pipe2020-07-12T12:23:51ZHenrik (Grubba) GrubbströmWarnings in Crypto.PipeThe following warnings cause the testsuite to fail:
```
.../lib/modules/Crypto.pmod/Pipe.pike:33: Warning: An expression of type array(array | object | mixed) cannot be assigned to a variable of type array({ CipherState = object(implemen...The following warnings cause the testsuite to fail:
```
.../lib/modules/Crypto.pmod/Pipe.pike:33: Warning: An expression of type array(array | object | mixed) cannot be assigned to a variable of type array({ CipherState = object(implements Nettle.Cipher()->State) }).
.../lib/modules/Crypto.pmod/Pipe.pike:38: Warning: An expression of type array(object) cannot be assigned to a variable of type array({ CipherState = object(implements Nettle.Cipher()->State) }).
```