Re: mir-linux-kernel 1.0.0: Linux system call numbers for different architectures

2017-11-14 Thread Ilya Yaroshenko via Digitalmars-d-announce

On Tuesday, 14 November 2017 at 13:08:14 UTC, Adrian Matoga wrote:
On Saturday, 11 November 2017 at 08:54:54 UTC, Nicholas Wilson 
wrote:
On Saturday, 11 November 2017 at 08:43:32 UTC, Adrian Matoga 
wrote:

On Friday, 10 November 2017 at 18:27:36 UTC, Nathan S. wrote:

About package
--
Linux system call numbers for different architectures. 
That's all.


[...]


Was there anything wrong with 
https://code.dlang.org/packages/syscall-d ?


From it's readme:

Supported Platforms:
Linux-x86_64
Linux-x86
OSX-x86_64
FreeBSD-x86_64

i.e. x86[_64] only.
mir-linux-kernel has all the supported archs.


Still, I would first try to submit a PR to syscall-d, and only 
go for a new package if syscall-d owners refuse to extend the 
list of platforms.
Now we have two different packages that are supposed to do the 
same but have different arbitrary limitations.


The goal of this package is linux support, and the code is 
autogenerated from Linux sources. It may include other linux 
kernel headers in the future.


I don't see any problem here. The syscall-d can import 
mir-linux-kernel if they want to have the best linux support and 
provide something for other OS.


Best,
Ilya


Re: mir-linux-kernel 1.0.0: Linux system call numbers for different architectures

2017-11-14 Thread Adrian Matoga via Digitalmars-d-announce
On Saturday, 11 November 2017 at 08:54:54 UTC, Nicholas Wilson 
wrote:
On Saturday, 11 November 2017 at 08:43:32 UTC, Adrian Matoga 
wrote:

On Friday, 10 November 2017 at 18:27:36 UTC, Nathan S. wrote:

About package
--
Linux system call numbers for different architectures. That's 
all.


[...]


Was there anything wrong with 
https://code.dlang.org/packages/syscall-d ?


From it's readme:

Supported Platforms:
Linux-x86_64
Linux-x86
OSX-x86_64
FreeBSD-x86_64

i.e. x86[_64] only.
mir-linux-kernel has all the supported archs.


Still, I would first try to submit a PR to syscall-d, and only go 
for a new package if syscall-d owners refuse to extend the list 
of platforms.
Now we have two different packages that are supposed to do the 
same but have different arbitrary limitations.


Re: mir-linux-kernel 1.0.0: Linux system call numbers for different architectures

2017-11-11 Thread Nicholas Wilson via Digitalmars-d-announce
On Saturday, 11 November 2017 at 08:43:32 UTC, Adrian Matoga 
wrote:

On Friday, 10 November 2017 at 18:27:36 UTC, Nathan S. wrote:

About package
--
Linux system call numbers for different architectures. That's 
all.


[...]


Was there anything wrong with 
https://code.dlang.org/packages/syscall-d ?


From it's readme:

Supported Platforms:
Linux-x86_64
Linux-x86
OSX-x86_64
FreeBSD-x86_64

i.e. x86[_64] only.
mir-linux-kernel has all the supported archs.


Re: mir-linux-kernel 1.0.0: Linux system call numbers for different architectures

2017-11-11 Thread Adrian Matoga via Digitalmars-d-announce

On Friday, 10 November 2017 at 18:27:36 UTC, Nathan S. wrote:

About package
--
Linux system call numbers for different architectures. That's 
all.


[...]


Was there anything wrong with 
https://code.dlang.org/packages/syscall-d ?


mir-linux-kernel 1.0.0: Linux system call numbers for different architectures

2017-11-10 Thread Nathan S. via Digitalmars-d-announce

About package
--
Linux system call numbers for different architectures. That's all.

https://code.dlang.org/packages/mir-linux-kernel


Motivating Example
--
Linux 3.17 added the getrandom syscall. Using it instead of 
/dev/[u]?random was a win. But we didn't think about all of the 
architectures that people might try building our library on, and 
soon we got a report from a user that our latest and greatest 
release was failing to compile on Raspberry Pi.



Example
--
import mir.linux._asm.unistd: NR_getrandom;

/*
 *   If the GRND_NONBLOCK flag is set, then
 *   getrandom() does not block in these cases, but instead
 *   immediately returns -1 with errno set to EAGAIN.
 */
private ptrdiff_t genRandomImplSysNonBlocking(scope void* ptr, 
size_t len) @nogc nothrow @system

{
return syscall(NR_getrandom, cast(size_t) ptr, len, 
GRND_NONBLOCK);

}