mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-04 12:07:51 +00:00
add posix uint changes to changelog + fix Nlink, Dev on FreeBSD (#24088)
refs #24078, refs #24076 Since these changes are potentially breaking, add them to changelog, also add Nlink as mentioned in https://github.com/nim-lang/Nim/issues/24076#issuecomment-2337666555.
This commit is contained in:
@@ -52,6 +52,15 @@
|
||||
const bar = a # error
|
||||
let baz = a # error
|
||||
```
|
||||
- The following POSIX wrappers have had their types changed from signed to
|
||||
unsigned types on OSX and FreeBSD/OpenBSD to correct codegen errors:
|
||||
- `Gid` (was `int32`, is now `uint32`)
|
||||
- `Uid` (was `int32`, is now `uint32`)
|
||||
- `Dev` (was `int32`, is now `uint32` on FreeBSD)
|
||||
- `Nlink` (was `int16`, is now `uint32` on OpenBSD and `uint16` on OSX/other BSD)
|
||||
- `sin6_flowinfo` and `sin6_scope_id` fields of `Sockaddr_in6`
|
||||
(were `int32`, are now `uint32`)
|
||||
- `n_net` field of `Tnetent` (was `int32`, is now `uint32`)
|
||||
|
||||
|
||||
## Standard library additions and changes
|
||||
|
||||
@@ -122,7 +122,11 @@ type
|
||||
## used for block sizes
|
||||
Clock* {.importc: "clock_t", header: "<sys/types.h>".} = int
|
||||
ClockId* {.importc: "clockid_t", header: "<sys/types.h>".} = int
|
||||
Dev* {.importc: "dev_t", header: "<sys/types.h>".} = int32
|
||||
Dev* {.importc: "dev_t", header: "<sys/types.h>".} = (
|
||||
when defined(freebsd):
|
||||
uint32
|
||||
else:
|
||||
int32)
|
||||
Fsblkcnt* {.importc: "fsblkcnt_t", header: "<sys/types.h>".} = int
|
||||
Fsfilcnt* {.importc: "fsfilcnt_t", header: "<sys/types.h>".} = int
|
||||
Gid* {.importc: "gid_t", header: "<sys/types.h>".} = uint32
|
||||
@@ -135,7 +139,7 @@ type
|
||||
else:
|
||||
uint16
|
||||
)
|
||||
Nlink* {.importc: "nlink_t", header: "<sys/types.h>".} = int16
|
||||
Nlink* {.importc: "nlink_t", header: "<sys/types.h>".} = uint16
|
||||
Off* {.importc: "off_t", header: "<sys/types.h>".} = int64
|
||||
Pid* {.importc: "pid_t", header: "<sys/types.h>".} = int32
|
||||
Pthread_attr* {.importc: "pthread_attr_t", header: "<sys/types.h>".} = int
|
||||
|
||||
@@ -131,7 +131,11 @@ type
|
||||
## used for block sizes
|
||||
Clock* {.importc: "clock_t", header: "<sys/types.h>".} = int
|
||||
ClockId* {.importc: "clockid_t", header: "<sys/types.h>".} = int
|
||||
Dev* {.importc: "dev_t", header: "<sys/types.h>".} = int32
|
||||
Dev* {.importc: "dev_t", header: "<sys/types.h>".} = (
|
||||
when defined(freebsd):
|
||||
uint32
|
||||
else:
|
||||
int32)
|
||||
Fsblkcnt* {.importc: "fsblkcnt_t", header: "<sys/types.h>".} = int
|
||||
Fsfilcnt* {.importc: "fsfilcnt_t", header: "<sys/types.h>".} = int
|
||||
Gid* {.importc: "gid_t", header: "<sys/types.h>".} = uint32
|
||||
@@ -139,7 +143,7 @@ type
|
||||
Ino* {.importc: "ino_t", header: "<sys/types.h>".} = int
|
||||
Key* {.importc: "key_t", header: "<sys/types.h>".} = int
|
||||
Mode* {.importc: "mode_t", header: "<sys/types.h>".} = uint32
|
||||
Nlink* {.importc: "nlink_t", header: "<sys/types.h>".} = int16
|
||||
Nlink* {.importc: "nlink_t", header: "<sys/types.h>".} = uint32
|
||||
Off* {.importc: "off_t", header: "<sys/types.h>".} = int64
|
||||
Pid* {.importc: "pid_t", header: "<sys/types.h>".} = int32
|
||||
Pthread_attr* {.importc: "pthread_attr_t", header: "<pthread.h>".} = int
|
||||
|
||||
@@ -6,3 +6,9 @@ when defined(macosx) or defined(freebsd) or defined(openbsd) or defined(netbsd):
|
||||
var y: uint32
|
||||
let myUid = geteuid()
|
||||
discard myUid == uid(y)
|
||||
proc dev(x: uint32): Dev = Dev(x)
|
||||
let myDev = 1.Dev
|
||||
discard myDev == dev(y)
|
||||
proc nlink(x: uint32): Nlink = Nlink(x)
|
||||
let myNlink = 1.Nlink
|
||||
discard myNlink == nlink(y)
|
||||
Reference in New Issue
Block a user