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/10148Update the Sql.Promise API to return proper Concurrent.Future objects2024-03-20T11:21:01ZHenrik (Grubba) GrubbströmUpdate the Sql.Promise API to return proper Concurrent.Future objects`__builtin.Sql.Connection()->promise_query()` currently returns a `__builtin.Sql.Promise` object rather than a `Concurrent.Future`. It seems this is mostly due to typing issues, and should now be solvable by using generics.`__builtin.Sql.Connection()->promise_query()` currently returns a `__builtin.Sql.Promise` object rather than a `Concurrent.Future`. It seems this is mostly due to typing issues, and should now be solvable by using generics.Pike 9.0https://git.lysator.liu.se/pikelang/pike/-/issues/10143Update the COM module to use the *W()-APIs.2024-01-24T09:57:48ZHenrik (Grubba) GrubbströmUpdate the COM module to use the *W()-APIs.The `COM` module appears to currently use the LP-string wrapper functions, and does not support wide strings.
Update the module to instead use the *W-functions and add support for wide strings.The `COM` module appears to currently use the LP-string wrapper functions, and does not support wide strings.
Update the module to instead use the *W-functions and add support for wide strings.Pike Nexthttps://git.lysator.liu.se/pikelang/pike/-/issues/10142Add support for RFC 8785 to Standards.JSON.2024-01-17T09:40:00ZHenrik (Grubba) GrubbströmAdd support for RFC 8785 to Standards.JSON.[RFC 8785](http://pike.lysator.liu.se/rfc8785) describes a canonicalization scheme for JSON.[RFC 8785](http://pike.lysator.liu.se/rfc8785) describes a canonicalization scheme for JSON.Pike Nexthttps://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/10140Unify the APIs for ADT.Queue, Thread.Fifo and Thread.Queue.2023-12-21T09:35:09ZHenrik (Grubba) GrubbströmUnify the APIs for ADT.Queue, Thread.Fifo and Thread.Queue.Currently it is a bit cumbersome to eg switch between using `ADT.Queue` and `Thread.Queue`, since the former uses `get()` & `put()` while the latter uses `read()` & `write()`.
Note also that there are two implementations each for `Threa...Currently it is a bit cumbersome to eg switch between using `ADT.Queue` and `Thread.Queue`, since the former uses `get()` & `put()` while the latter uses `read()` & `write()`.
Note also that there are two implementations each for `Thread.Fifo` and `Thread.Queue`.Pike Nexthttps://git.lysator.liu.se/pikelang/pike/-/issues/10116Implement System.RegSetValue() and/or System.RegSetKeyValue() on NT2023-05-02T12:46:44ZHenrik (Grubba) GrubbströmImplement System.RegSetValue() and/or System.RegSetKeyValue() on NTIt is currently possible to traverse the registry (using eg `System.RegGetKeyNames()` and `System.RegGetValues()`), but not to alter it.
Implement `System.RegSetValue()` and/or `System.RegSetKeyValue()`.It is currently possible to traverse the registry (using eg `System.RegGetKeyNames()` and `System.RegGetValues()`), but not to alter it.
Implement `System.RegSetValue()` and/or `System.RegSetKeyValue()`.Pike Nexthttps://git.lysator.liu.se/pikelang/pike/-/issues/10115Add autodoc markup for tagging OS-specific symbols.2023-05-01T12:32:01ZHenrik (Grubba) GrubbströmAdd autodoc markup for tagging OS-specific symbols.There are several symbols (eg `System.RegGetValue()` or `System.getpwent()`) that are OS-specific.
Add support for a semantic markup that can indicate that the former is **WIN32** and the latter is **POSIX**.
It is likely that an hierarc...There are several symbols (eg `System.RegGetValue()` or `System.getpwent()`) that are OS-specific.
Add support for a semantic markup that can indicate that the former is **WIN32** and the latter is **POSIX**.
It is likely that an hierarchy of OSes may be needed in case the presentation wants to support filtering (eg **MacOS X** is a **BSD** which in turn is a subset of **POSIX**).
Having a dedicated markup makes for a consistent formatting of the information.
The initial implementation needs to:
* Document the markup.
* Parse the markup.
* Save the information in the generated `*.xml` files.
* Render the information.
NB: There might be a similar issue with respect to CPU/architecture dependent symbols so consider having a markup that supports both (or generic) restrictions. Eg:
```
@requires __OS__.POSIX
@requires __CPU__.IA64
@requires Nettle.GCM
```Pike Nexthttps://git.lysator.liu.se/pikelang/pike/-/issues/10108Implement error callbacks in Stdio.Fd et al.2023-05-09T08:47:08ZHenrik (Grubba) GrubbströmImplement error callbacks in Stdio.Fd et al.In April 2004 the backend(s) got support for signalling error conditions on a dedicated callback `PIKE_FD_ERROR`, but no way to add such a callback was added to `Stdio.Fd`, so everything uses the "temporary compat stuff".
Add analogous ...In April 2004 the backend(s) got support for signalling error conditions on a dedicated callback `PIKE_FD_ERROR`, but no way to add such a callback was added to `Stdio.Fd`, so everything uses the "temporary compat stuff".
Add analogous functions to `set_read_callback()` et al for handling the error callback.Pike Nexthttps://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/10090Hilfe does not like anonymous classes with implicit create().2022-09-06T08:56:08ZHenrik (Grubba) GrubbströmHilfe 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.0https://git.lysator.liu.se/pikelang/pike/-/issues/10061Add Stdio.File()->accessat() and extend predef::access() to support EUID checks2021-03-12T11:50:37ZHenrik (Grubba) GrubbströmAdd Stdio.File()->accessat() and extend predef::access() to support EUID checks`predef::access()` performs access control with the *real* uid and gid.
Sometimes you want to perform the corresponding checks, but for the *effective* uid and gid.
The `predef::access()` euid checks may be implemented with `eaccess(2/...`predef::access()` performs access control with the *real* uid and gid.
Sometimes you want to perform the corresponding checks, but for the *effective* uid and gid.
The `predef::access()` euid checks may be implemented with `eaccess(2/3)`, `eiudaccess(3)` or `faccessat(2)`, or emulated via calling of `test(1)` with suitable arguments, and should be selected via a third argument containing the character `"e"`. A suitable detection flag should also be added.
`Stdio.File()->accessat()` should be implemented with `faccessat()`. An availability flag `Stdio.__HAVE_ACCESSAT__` with a value of `1` should also be added when `Stdio.File()->accessat()` is available. The symlinks mode of `faccessat(2)` should be selectable via the third argument containing the character `"l"`.Pike Nexthttps://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/3672[PATCH] C replacement for Array.dim_sort_func2023-05-15T10:07:48ZPeter Bortas[PATCH] C replacement for Array.dim_sort_funcImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3672
Reported by Dan Nelson <dnelson_1901@yahoo.com>
Attached is a patch/tarball that replaces the pike dwim_sort_func with the
C implementation at http://www.sourcefrog....Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3672
Reported by Dan Nelson <dnelson_1901@yahoo.com>
Attached is a patch/tarball that replaces the pike dwim_sort_func with the
C implementation at http://www.sourcefrog.net/projects/natsort/ .
Extract the tarball in src/modules (it will create an _Array directory).Pike 7.6Henrik (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/10088Add modifier to %O that prints strings as %q would2023-03-10T12:52:50ZPeter BortasAdd modifier to %O that prints strings as %q wouldAfter discussion in #2578 we decided that %O would not print 8+bit characters unescaped, but instead prescribe %q. However, %O would do well with a modifier to print 8+bit chars so that inspection of more complex datatypes would be easie...After discussion in #2578 we decided that %O would not print 8+bit characters unescaped, but instead prescribe %q. However, %O would do well with a modifier to print 8+bit chars so that inspection of more complex datatypes would be easier. Overquoted example:
```
> mapping lunch_votes = ([ "Räkmacka" : 4, "Smörgåsbord" : 17 ]);
> write("%O\n", lunch_votes);
([ /* 2 elements */
"R\344kmacka": 4,
"Sm\366rg\345sbord": 17
])
```https://git.lysator.liu.se/pikelang/pike/-/issues/10067documentation has no useful GTK examples2021-11-15T17:04:41Zcurt mayerdocumentation has no useful GTK examplesthe GTK example hello world uses an Alert Class that is not present.
pike is such a great language for building GUI's, there ought to be a cookbook or at least examples of
each of the API's.the GTK example hello world uses an Alert Class that is not present.
pike is such a great language for building GUI's, there ought to be a cookbook or at least examples of
each of the API's.https://git.lysator.liu.se/pikelang/pike/-/issues/10034Consider restructuring the Stdio fd-handling classes.2020-04-28T08:56:25ZHenrik (Grubba) GrubbströmConsider restructuring the Stdio fd-handling classes.There's a bit of code-duplication between `Stdio.Fd`, `Stdio.Port` and `Stdio.UDP`. Consider making a common base-class with the common code for fd-handling.There's a bit of code-duplication between `Stdio.Fd`, `Stdio.Port` and `Stdio.UDP`. Consider making a common base-class with the common code for fd-handling.https://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/3842Editor breaks rxml:edit-lock2022-10-06T10:22:27ZPeter BortasEditor breaks rxml:edit-lockImported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3842
Reported by Marcus Wellhardh <wellhard@roxen.com>
The following locked part of a component:
```
<variant rxml:edit-lock='yes'>7</variant>
```
Transformes to the fo...Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=3842
Reported by Marcus Wellhardh <wellhard@roxen.com>
The following locked part of a component:
```
<variant rxml:edit-lock='yes'>7</variant>
```
Transformes to the following after edit and save in the insite editor:
```
<variant NS0:edit-lock='yes' xmlns:NS0='rxml:'>7</variant>
```
The lock is no longer effective. The problem happens on both IE and Firefox.
```
Reported in [RT#5819].
```Henrik (Grubba) GrubbströmHenrik (Grubba) Grubbström