pike issueshttps://git.lysator.liu.se/pikelang/pike/-/issues2024-03-23T16:12:33Zhttps://git.lysator.liu.se/pikelang/pike/-/issues/10149Pike doesn't build against libmysql (on MacOS)2024-03-23T16:12:33ZChris AngelicoPike doesn't build against libmysql (on MacOS)Building Pike against libmysql v10 breaks due to the removal of several deprecated functions such as https://dev.mysql.com/doc/c-api/8.0/en/mysql-shutdown.html (page does not exist in the v10 docs). This is not a problem when building ag...Building Pike against libmysql v10 breaks due to the removal of several deprecated functions such as https://dev.mysql.com/doc/c-api/8.0/en/mysql-shutdown.html (page does not exist in the v10 docs). This is not a problem when building against libmariadb (as is standard on Debian and other Linuxes now).
Have not confirmed whether every deprecated function has a query equivalent (as mysql_shutdown does).
Testing against actual libmysql on Linux was unsuccessful for other reasons and is inconclusive, so this may be a Mac-specific issue?Pike 9.0https://git.lysator.liu.se/pikelang/pike/-/issues/10145Update the set of attributes in later compiler passes2024-02-18T01:01:50ZHenrik (Grubba) GrubbströmUpdate the set of attributes in later compiler passesCurrently the set of attributes is set by `low_add_identifier()`, which is typically only called in the first pass of the compiler. This means that it may get called with placeholder objects.
This can be observed by the following (LysLy...Currently the set of attributes is set by `low_add_identifier()`, which is typically only called in the first pass of the compiler. This means that it may get called with placeholder objects.
This can be observed by the following (LysLysKOM 26239366):
```
// -*- mode: Pike; c-basic-offset: 4; -*-
class Anno(string label) {
inherit Pike.Annotation;
@constant;
protected string _sprintf(int c) {
return sprintf("%O(%O)", object_program(this), label);
}
}
@Anno("foobar"):
void some_func() { }
int main(int argc, array(string) argv)
{
werror("Annotations: %O\n", mkmapping(indices(this), annotations(this)));
}
```
Which currently outputs:
```
Annotations: ([ /* 3 elements */
"Anno": 0,
"main": 0,
"some_func": (< /* 1 element */
/main()->Anno(0)
>)
])
```
Note the `Anno(0)` rather than the expected `Anno("foobar")`.
Thanks to @Rosuav for the example.Pike 9.0https://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/10138gethrvtime() overflow on netbsd2023-11-28T13:44:10ZHenrik (Grubba) Grubbströmgethrvtime() overflow on netbsdFrom 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.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/10123Overloading of getter/setters with plain variables seems broken2023-05-16T16:06:23ZHenrik (Grubba) GrubbströmOverloading of getter/setters with plain variables seems brokenFrom `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.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/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/3505Incorrect paths in dumped modules for .so libraries2022-08-28T16:00:50ZPeter BortasIncorrect paths in dumped modules for .so librariesImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3505
Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=210743
Reported by Marek Habersack, The Caudium Group <grendel@caudium.net>
When building Pike in a fake...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3505
Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=210743
Reported by Marek Habersack, The Caudium Group <grendel@caudium.net>
When building Pike in a fakeroot the modules which reference other modules
implemented as .so libraries will have the full path of the fakeroot stored
in the resulting .o file when referencing the .so modules:
/usr/lib/pike/7.4.27/lib/modules/_Charset.pmod.o:-: Warning: Decode failed:
Failed to decode program
"/tmp/buildd/pike7.4-7.4.27/debian/pike7.4-core/usr/lib/pike/7.4.27/lib/modules/____Charset.so".
/usr/lib/pike/7.4.27/lib/modules/Regexp.pmod.o:-: Warning: Decode failed:
Failed to decode program
"/tmp/buildd/pike7.4-7.4.27/debian/pike7.4-core/usr/lib/pike/7.4.27/lib/modules/___Regexp.so".
The error is probably somewhere in the master resolver, but I'm not sure of
that.Pike 9.0Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7831Unclear http headers case handling in Protocols.HTTP.do_async_method()2022-10-06T12:29:59ZPeter BortasUnclear http headers case handling in Protocols.HTTP.do_async_method()Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7831
Reported by Tobias Liin <liin@roxen.com>
`Protocols.HTTP.do_async_method()` provides default values for http headers `"user-agent"` and `"host"`, if not provided in ...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7831
Reported by Tobias Liin <liin@roxen.com>
`Protocols.HTTP.do_async_method()` provides default values for http headers `"user-agent"` and `"host"`, if not provided in the request_headers variable.
However, it fails to consider the casing of those headers. Consider a call to `do_async_method()` with the following headers mapping:
```
([
"Host": "foo.com",
"User-Agent": "Firefox"
])
```
The mapping provided to `Protocols.HTTP.Query.async_request()` will be:
```
([
"Host": "foo.com",
"User-Agent": "Firefox"
"host": "<some-host-from-the-url>",
"user-agent": "Pike <some-version>",
])
```
The resulting host and user-agent will be random, as `Protocols.HTTP.Query.async_request()` lowercase the indices.
The solution is probably for `Protocols.HTTP.do_async_method()` to lowercase the headers mapping indices before checking for `"host"` and `"user-agent"`.Pike 8.0Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7778HTTP Relay module requires ipv6 if remote server has ipv6.2020-03-01T15:51:42ZPeter BortasHTTP Relay module requires ipv6 if remote server has ipv6.Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7778
Reported by Jonas Lönnberg <lonnberg@roxen.com>
The HTTP Relay module requires ipv6 if remote server has ipv6.
Example settings:
LOCATION /foo CALL http://www.rox...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7778
Reported by Jonas Lönnberg <lonnberg@roxen.com>
The HTTP Relay module requires ipv6 if remote server has ipv6.
Example settings:
LOCATION /foo CALL http://www.roxen.com/
LOCATION /googletest CALL http://www.google.com/
In both these examples the Relay module tries to use the ipv6 adress provided from the DNS. This will not work, when Roxen WebServer doesn't have ipv6 set up.
A typicall error in the browser reads:
504 Gateway Timeout: Connection to remote HTTP host failedPike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7703Inheriting unfinished programs2020-03-01T15:50:14ZPeter BortasInheriting unfinished programsImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7703
Reported by Martin Karlgren <marty@roxen.com>
It's currently not possible to inherit programs that aren't finished yet. This means that you often need to do run-time...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7703
Reported by Martin Karlgren <marty@roxen.com>
It's currently not possible to inherit programs that aren't finished yet. This means that you often need to do run-time indexing rather than compile-time ("Module["Submodule"]->function()" rather than "Module.Submodule.function()"). Also, proper variable typing is not always possible (you need to declare "object var" rather than "Module.Submodule.Type var").
From src/program.c:
```
if (!(p->flags & PROGRAM_FINISHED)) {
/* Require that the inherited program really is finished in pass
* 2. Otherwise we might not have all definitions when we
* fixate our program.
*
* FIXME: Maybe this can be relaxed by registering a dependency
* and delaying compilation here?
*/
yyerror ("Cannot inherit program in pass 2 "
"which is not fully compiled yet.");
yyerror ("(You probably have a cyclic symbol dependency that the "
"compiler cannot handle.)");
}
```
Is it plausible to do what the FIXME says to overcome this limitation? Time estimate?Pike NextHenrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7644Feed Import stalled/stopped in Heap.pike2020-03-01T15:48:37ZPeter BortasFeed Import stalled/stopped in Heap.pikeImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7644
Reported by Erik Allemann <erik@roxen.com>
```
RT#26577 & RT#26578
REP 6.0.92
```
Feed Import had stopped. Debug logged repeatedly reports:
```
2d 8h 8m : Feed Im...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7644
Reported by Erik Allemann <erik@roxen.com>
```
RT#26577 & RT#26578
REP 6.0.92
```
Feed Import had stopped. Debug logged repeatedly reports:
```
2d 8h 8m : Feed Import: periodic_scan threw an error:
: Indexing the NULL value with "value".
: pike/lib/modules/ADT.pmod/Heap.pike:198: ADT.Heap()->peek()
: pike/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1485: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check(UNDEFINED,1000,
: packages/feedimport/modules/feed-import.pike (564e550f):1508: RoxenModule(EP/feed-import#0)->feed_monitor->monitor->check(UNDEFINED,1000,@
12:09:10 : packages/feedimport/modules/feed-import.pike (564e550f):2231: RoxenModule(EP/feed-import#0)->feed_monitor->periodic_scan()
2d 8h 8m : packages/feedimport/modules/feed-import.pike (564e550f):2281: RoxenModule(EP/feed-import#0)->feed_monitor->periodic_scan_dispatch()
```Pike 8.0Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7630Potential deadlock in Pike 8.0.1432020-03-01T15:48:03ZPeter BortasPotential deadlock in Pike 8.0.143Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7630
Reported by Martin Karlgren <marty@roxen.com>
My Roxen/EP (devel) process locked up. I haven't analysed the backtraces too much, but I'd expect a deadlock. Pike and ...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7630
Reported by Martin Karlgren <marty@roxen.com>
My Roxen/EP (devel) process locked up. I haven't analysed the backtraces too much, but I'd expect a deadlock. Pike and C backtraces attached.Pike 8.0Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7578Filesystem.Monitor checks all monitors synchronously on startup2020-03-01T15:46:23ZPeter BortasFilesystem.Monitor checks all monitors synchronously on startupImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7578
Reported by Martin Karlgren <marty@roxen.com>
Filesystem.Monitor sometimes blocks the backend thread for quite a while on startup because eventstream_callback calls ...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7578
Reported by Martin Karlgren <marty@roxen.com>
Filesystem.Monitor sometimes blocks the backend thread for quite a while on startup because eventstream_callback calls check_all() synchronously.
```
: >> ### Thread 0x7fff74f56300 - Backend:
8:04:21 : >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:869: Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN/2013-03-16/page_43(E1)/pp_103729.jpg", 15, next: Wed Oct 21 08:04:21 2015, st: Stat(-rw-r--r-- 119226b))->check(UNDEFINED)
0d16h46m : >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1352: FSGarb("/Users/marty/projects/REP-5.2-test/roxen/backup", 432000)->check_monitor(Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN/2013-03-16/page_43(E1)/pp_103729.jpg", 15, next: Wed Oct 21 08:04:21 2015, st: Stat(-rw-r--r-- 119226b)),UNDEFINED)
: >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:874: Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN/2013-03-16/page_43(E1)", 15, next: Sat Oct 17 08:04:20 2015, st: Stat(drwxr-xr-x 238b))->check(UNDEFINED)
: >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1352: FSGarb("/Users/marty/projects/REP-5.2-test/roxen/backup", 432000)->check_monitor(Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN/2013-03-16/page_43(E1)", 15, next: Sat Oct 17 08:04:20 2015, st: Stat(drwxr-xr-x 238b)),UNDEFINED)
: >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:874: Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN/2013-03-16", 15, next: Sat Oct 17 08:04:20 2015, st: Stat(drwxr-xr-x 1768b))->check(UNDEFINED)
: >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1352: FSGarb("/Users/marty/projects/REP-5.2-test/roxen/backup", 432000)->check_monitor(Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN/2013-03-16", 15, next: Sat Oct 17 08:04:20 2015, st: Stat(drwxr-xr-x 1768b)),UNDEFINED)
8:04:21 : >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:874: Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN", 15, next: Sat Oct 17 08:04:08 2015, st: Stat(drwxr-xr-x 3570b))->check(UNDEFINED)
0d16h46m : >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1352: FSGarb("/Users/marty/projects/REP-5.2-test/roxen/backup", 432000)->check_monitor(Monitor("/Users/marty/projects/REP-5.2-test/roxen/backup/SN", 15, next: Sat Oct 17 08:04:08 2015, st: Stat(drwxr-xr-x 3570b)),UNDEFINED)
: >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1379: FSGarb("/Users/marty/projects/REP-5.2-test/roxen/backup", 432000)->check_all(UNDEFINED)
: >> /Users/marty/projects/Pike/8.0/lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:764: FSGarb("/Users/marty/projects/REP-5.2-test/roxen/backup", 432000)->eventstream_callback("/Users/marty/projects/REP-5.2-test/roxen/backup/AT/2013-06-07/page_2A",1116416,7162257960850217034)
: >> -:1: Pike.Backend(0)->`()(3600.0)
: >> /Users/marty/projects/Pike/8.0/build/darwin-14.5.0-x86_64/master.pike:3619: master()._main(({"/Users/marty/projects/Pike/8.0/build/darwin-14.5.0-x86_64/pike","-DPRECOMPILED_SEARCH_MORE","-m/Users/marty/projects/Pike/8.0/build/darwin-14.5.0-x86_64/master.pike","-DMODULE_DEBUG","-DRAM_CACHE",,,11}))
```Pike 8.0Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7363Compat resolver related crash.2020-03-01T15:42:02ZPeter BortasCompat resolver related crash.Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7363
Reported by Martin Nilsson <nilsson@opera.com>
Create a file with
```
#pike 8.1
inherit Crypto.BlockCipher;
class _Buffer {
inherit ::this_program;
}
```
as lib/...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7363
Reported by Martin Nilsson <nilsson@opera.com>
Create a file with
```
#pike 8.1
inherit Crypto.BlockCipher;
class _Buffer {
inherit ::this_program;
}
```
as lib/8.0/modules/Crypto.pmod/CompatProxy.pmod and run hilfe, you'll get the following crash.
```
Pike v8.1 release 0 running Hilfe v3.5 (Incremental Pike Frontend)
(running in Pike 8.0 compat mode)
> Crypto.CompatProxy;
Program received signal SIGSEGV, Segmentation fault.
low_clone (p=0xd46288) at /home/nilsson/pike/src/object.c:167
167 LOW_PARENT_INFO(o,p)->parent=0;
(gdb) bt
#0 low_clone (p=0xd46288) at /home/nilsson/pike/src/object.c:167
#1 0x00000000004bc16d in parent_clone_object (p=0xd46288,
parent=parent@entry=0x8be8f0,
parent_identifier=parent_identifier@entry=19, args=args@entry=0)
at /home/nilsson/pike/src/object.c:395
#2 0x000000000042b0f4 in lower_mega_apply (args=0, o=0x8be8f0, fun=19)
at /home/nilsson/pike/src/interpret.c:2196
#3 0x000000000042d674 in mega_apply_low (args=<optimized out>,
arg1=<optimized out>, arg2=<optimized out>)
at /home/nilsson/pike/src/interpret.c:2715
#4 0x00002aaaad13e241 in init_Nettle_BufferedCipher_struct ()
at /home/nilsson/pike/src/post_modules/Nettle/cipher.cmod:1036
#5 Nettle_BufferedCipher_event_handler (ev=0)
at /home/nilsson/pike/src/post_modules/Nettle/cipher.cmod:1048
#6 0x00000000004bb9d5 in call_c_initializers (o=0x8be8f0)
at /home/nilsson/pike/src/object.c:278
#7 0x00000000004e99dd in run_pass1 (c=0xae2970)
at /home/nilsson/pike/src/program.c:9143
#8 f_compilation_compile (args=<optimized out>)
at /home/nilsson/pike/src/program.c:9669
```Pike 8.0Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/7063The kqueue backend doesn't support out of band data.2020-03-01T15:39:35ZPeter BortasThe kqueue backend doesn't support out of band data.Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7063
Reported by @grubba
The socktest.pike test "Testing out-of-band data" times out when waiting for the sent out of band data to arrive.
With OOB_DEBUG enabled on a pi...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=7063
Reported by @grubba
The socktest.pike test "Testing out-of-band data" times out when waiting for the sent out of band data to arrive.
With OOB_DEBUG enabled on a pike compiled with BACKEND_DEBUG, the following is output:
```
Child: Testing out-of-band data
originator: Stdio.File("socket", "127.0.0.1:62128", 777 /* fd=9 */)
loopback: Stdio.File("socket", "127.0.0.1 62129", 777 /* fd=10 */)
[2085229328]BACKEND[0]: hook_fd_callback_box: fd 9, events 0xc, object 0x1008227d0
[2085229328]BACKEND[0]: pdb_update_fd_set(.., 9, 0, 12):
[2085229328]BACKEND[0]: fd:9 READ, ADD, [OOBAND]
[2085229328]BACKEND[0]: fd:9 WRITE, ADD
BACKEND: EV_ADD fd:9, filter:-2
BACKEND: EV_ENABLE fd:9, filter:-2
[2085229328]BACKEND[0]: hook_fd_callback_box: fd 10, events 0x4, object 0x1008227a0
[2085229328]BACKEND[0]: pdb_update_fd_set(.., 10, 0, 4):
[2085229328]BACKEND[0]: fd:10 READ, ADD, [OOBAND]
[2085229328]BACKEND[0]: Doing poll on fds:
=> 1 (timeout was: 3600)
[2085229328]BACKEND[0]: fd:9 filter:-2 flags:0x00000001 EVFILT_WRITE(146988)
[2085229328]BACKEND[0]: POLLWRBAND on 9
[2085229328]BACKEND[0]: POLLOUT on 9
[2085229328]BACKEND[0]: hooking in box for fd 9
[2085229328]BACKEND[0]: Examining box for fd 9 revents:0x000a
[2085229328]BACKEND[0]: write_oob_callback(9, 0x1008227d0)
[2085229328]BACKEND[0]: set_fd_callback_events: fd 9, events from 0xc to 0x4, object 0x1008227d0
[2085229328]BACKEND[0]: pdb_update_fd_set(.., 9, 12, 4):
[2085229328]BACKEND[0]: fd:9 WRITE, DISABLE
BACKEND: EV_DISABLE fd:9, filter:-2
S[2085229328]BACKEND[0]: set_fd_callback_events: fd 9, events from 0x4 to 0xc, object 0x1008227d0
[2085229328]BACKEND[0]: pdb_update_fd_set(.., 9, 4, 12):
[2085229328]BACKEND[0]: fd:9 WRITE, ADD
BACKEND: EV_ADD fd:9, filter:-2
BACKEND: EV_ENABLE fd:9, filter:-2
[2085229328]BACKEND[0]: set_fd_callback_events: fd 9, events from 0xc to 0x4, object 0x1008227d0
[2085229328]BACKEND[0]: pdb_update_fd_set(.., 9, 12, 4):
[2085229328]BACKEND[0]: fd:9 WRITE, DISABLE
BACKEND: EV_DISABLE fd:9, filter:-2
[2085229328]BACKEND[0]: set_fd_callback_events: fd 10, events from 0x4 to 0x4, object 0x1008227a0
[2085229328]BACKEND[0]: pdb_update_fd_set(.., 10, 4, 4):
[2085229328]BACKEND[0]: Examining box for fd -1 revents:0x0000
[2085229328]BACKEND[0]: Doing poll on fds:
[*timeout*]^C
What we can see above is that a single byte is sent on fd #9 ("S" above), but not notified on fd #10 even though it has PIKE_BIT_FD_READ_OOB (4) set.
```Pike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/6513Fix diagnostic decode_value2020-03-01T15:34:10ZPeter BortasFix diagnostic decode_valueImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6513
Reported by Martin Stjernholm <mast@roxen.com>
For debugging it is sometimes necessary to be able to decode data structures containing programs without a correct res...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6513
Reported by Martin Stjernholm <mast@roxen.com>
For debugging it is sometimes necessary to be able to decode data structures containing programs without a correct resolver. This is currently enabled by the ENCODE_DEBUG define in encode.c, and then passing a hidden third argument to decode_value. It should be available in normal pike builds, preferably through a separate debug_decode_value function.
This does not mean that the other debug aspects of ENCODE_DEBUG, i.e. all the stderr logging, should be available.Pike 7.6Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/6284Add utime() support for directories on WIN32.2020-03-01T15:31:06ZPeter BortasAdd utime() support for directories on WIN32.Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6284
Reported by @grubba
_utime() on WIN32 doesn't support directories. From MSDN:
A return value of –1 indicates an error, in which case errno is set to one of the foll...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6284
Reported by @grubba
_utime() on WIN32 doesn't support directories. From MSDN:
A return value of –1 indicates an error, in which case errno is set to one of the following values:
EACCES
Path specifies directory or read-only file
Try to find an alternative API.
See also [bug #6220].Pike 8.0Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbströmhttps://git.lysator.liu.se/pikelang/pike/-/issues/6201MinGW: Modifications needed to compile Pike 7.8.352 under MinGW2020-03-01T15:30:33ZPeter BortasMinGW: Modifications needed to compile Pike 7.8.352 under MinGWImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6201
Reported by @grubba
From the Pike mailinglist 12879:
```
From: <zenothing@hotmail.com>
Date: Thu, 2 Feb 2012 18:42:19 +0800
Subject: RE: Cannot compile pike 7.8 fro...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=6201
Reported by @grubba
From the Pike mailinglist 12879:
```
From: <zenothing@hotmail.com>
Date: Thu, 2 Feb 2012 18:42:19 +0800
Subject: RE: Cannot compile pike 7.8 from git
Thanks very much.
Compile Pike-v7.8.352 under mingw successful.
following actions are needed:
* replace PIDLIST_ABSOLUTE with ITEMIDLIST* in module system/nt.c
* remove line __declspec(dllimport) void __cdecl _dosmaperr(unsigned long);
in src/fdlib.c
* insert line #define STRUNCATE 80 into src/fdlib.c
* use this cmdline to make: CONFIGUREARGS="--without-COM
--without-machine-code" make
```
Guo XuesongPike 7.8Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbström