pike issueshttps://git.lysator.liu.se/pikelang/pike/-/issues2024-01-14T14:40:40Zhttps://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/10146Add support for generic types.2024-03-28T07:18:57ZHenrik (Grubba) GrubbströmAdd support for generic types.Suggested syntax:
```
class Foo (<protected __unknown__ T = mixed>) (T val)
{
...
}
```
**REJECTED**: Due to confusion about semantics the support for modifiers has been rejected, and the type restriction been inverted:
```
class F...Suggested syntax:
```
class Foo (<protected __unknown__ T = mixed>) (T val)
{
...
}
```
**REJECTED**: Due to confusion about semantics the support for modifiers has been rejected, and the type restriction been inverted:
```
class Foo (<mixed T = mixed>) (T val)
{
...
}
```
**IMPLEMENTED**
For top-level classes the following syntax should be sufficient:
```
inherit class (<protected __unknown__ T = mixed>) (T val) {};
```
**REJECTED**: The above complicates inherit semantics and implementation. It is also a syntax that `Tools.AutoDoc.PikeParser` does not like.
Alternative syntax (note that declaration order is significant, or that all generics must be specified in the same statement):
```
__generic__ mixed T = mixed;
```
**IMPLEMENTED**
Binding the generic type:
```
Foo(<string>) foo_string = Foo(<string>)("FOO");
```
**IMPLEMENTED**
Consider also:
```
// Inherit Foo with T set to string.
inherit Foo(<string>);
```
**IMPLEMENTED**
```
// Inherit Foo with T set to the default value (ie mixed).
inherit Foo(<>);
```
**IMPLEMENTED**
**NOTE**: This has identical semantics to:
```
// Inherit Foo with any generics set to their default values.
inherit Foo;
```
**IMPLEMENTED**Pike Nexthttps://git.lysator.liu.se/pikelang/pike/-/issues/10052Consider consolidating the type-checker functions that perform an intersectio...2022-09-08T12:58:29ZHenrik (Grubba) GrubbströmConsider consolidating the type-checker functions that perform an intersection of types.The type checker has three families of functions that intersect two types:
* `and_pike_types()`
* `match_types()`
* `soft_cast()`
This leads to quite a bit of (complex) code duplication.
Investigate the differences and attempt to cons...The type checker has three families of functions that intersect two types:
* `and_pike_types()`
* `match_types()`
* `soft_cast()`
This leads to quite a bit of (complex) code duplication.
Investigate the differences and attempt to consolidate them into one.
It may also be possible to implement `pike_types_le()` with the new function by comparing its result with the first type.https://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/10032Implement support for DTLS2020-04-16T14:41:08ZHenrik (Grubba) GrubbströmImplement support for DTLSDTLS is essentially TLS over UDP.
Extend the SSL module with a class analogous to `Stdio.UDP`.DTLS is essentially TLS over UDP.
Extend the SSL module with a class analogous to `Stdio.UDP`.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 Next