Files
Iain Buclaw 7e7ebe3e35 d: Merge upstream dmd, druntime e4f8919591, phobos 3ad507b51.
D front-end changes:

    - Import dmd v2.101.0-beta.1.
    - Add predefined version `D_Optimized' when compiling with `-O'.
    - Shortened method syntax (DIP1043) is now enabled by default.
    - Array literals assigned to `scope' array variables are now
      allocated on the stack.
    - Implement `@system' variables (DIP1035), available behind the
      preview feature flag `-fpreview=systemvariables'.

D runtime changes:

    - Import druntime v2.101.0-beta.1.

Phobos changes:

    - Import phobos v2.101.0-beta.1.
    - Added `std.typecons.SafeRefCounted', that can be used in `@safe'
      code with `-fpreview=dip1000'.

gcc/d/ChangeLog:

	* d-attribs.cc (apply_user_attributes): Update for new front-end
	interface.
	* d-builtins.cc (d_init_versions): Predefine `D_Optimized' with
	compiling with optimizations enabled.
	* d-lang.cc (d_handle_option): Update for new front-end interface.
	Handle new option `-fpreview=systemvariables'.
	* dmd/MERGE: Merge upstream dmd e4f8919591.
	* dmd/VERSION: Bump version to v2.101.0-beta.1.
	* expr.cc (ExprVisitor::visit (AssignExp *)): Treat construction of
	static arrays from a call expression as a simple assignment.
	(ExprVisitor::visit (ArrayLiteralExp *)): Handle array literals with
	`scope' storage.
	* gdc.texi: Update documentation of `-fpreview=' options.
	* lang.opt (fpreview=shortenedmethods): Remove.
	(fpreview=systemvariables):  New option.

libphobos/ChangeLog:

	* libdruntime/MERGE: Merge upstream druntime e4f8919591.
	* src/MERGE: Merge upstream phobos 3ad507b51.

gcc/testsuite/ChangeLog:

	* gdc.dg/simd19630.d: Move tests with errors to ...
	* gdc.dg/simd19630b.d: ... here.  New test.
	* gdc.dg/simd19630c.d: New test.
	* gdc.dg/simd_ctfe.d: Removed.
	* gdc.dg/simd18867.d: New test.
	* gdc.dg/simd19788.d: New test.
	* gdc.dg/simd21469.d: New test.
	* gdc.dg/simd21672.d: New test.
	* gdc.dg/simd23077.d: New test.
	* gdc.dg/simd23084.d: New test.
	* gdc.dg/simd23085.d: New test.
	* gdc.dg/torture/simd19632.d: New test.
	* gdc.dg/torture/simd20041.d: New test.
	* gdc.dg/torture/simd21673.d: New test.
	* gdc.dg/torture/simd21676.d: New test.
	* gdc.dg/torture/simd22438.d: New test.
	* gdc.dg/torture/simd23009.d: New test.
	* gdc.dg/torture/simd23077.d: New test.
	* gdc.dg/torture/simd8.d: New test.
	* gdc.dg/torture/simd9.d: New test.
	* gdc.dg/torture/simd_prefetch.d: New test.
2022-10-29 13:02:26 +02:00

60 lines
1.9 KiB
D

module core.sys.linux.fcntl;
public import core.sys.posix.fcntl;
version (linux):
extern(C):
nothrow:
// From linux/falloc.h
/// fallocate(2) params
enum {
/// Allocates and initializes to zero the disk space
/// within the specified range, but the file size
/// will not be modified.
FALLOC_FL_KEEP_SIZE = 0x01,
/// Deallocates space (i.e. creates a hole)
FALLOC_FL_PUNCH_HOLE = 0x02,
/// Newly allocated blocks will be marked as initialized.
FALLOC_FL_NO_HIDE_STALE = 0x04,
/// Removes a byte range from a file, without leaving a hole
FALLOC_FL_COLLAPSE_RANGE = 0x08,
/// Zeroes space in the specified byte range
FALLOC_FL_ZERO_RANGE = 0x10,
/// Increases the file space by inserting a hole
/// without overwriting any existing data
FALLOC_FL_INSERT_RANGE = 0x20,
/// Used to unshare shared blocks within
/// the file size without overwriting any existing data
FALLOC_FL_UNSHARE_RANGE = 0x40
}
// From asm-generic/fcntl.h
/**
Open File Description locks
Usually record locks held by a process are released on *any* close and are
not inherited across a fork().
These cmd values will set locks that conflict with process-associated
record locks, but are "owned" by the open file description, not the
process. This means that they are inherited across fork() like BSD (flock)
locks, and they are only released automatically when the last reference to
the open file against which they were acquired is put.
*/
enum
{
/// Queries the system if the lock could be placed
F_OFD_GETLK = 36,
/// Acquires or releases an open file description lock
F_OFD_SETLK = 37,
/// Same as F_OFD_SETLK, but waits if a conflicting lock is held on the file
F_OFD_SETLKW = 38
}
// Linux-specific fallocate
// (http://man7.org/linux/man-pages/man2/fallocate.2.html)
int fallocate(int fd, int mode, off_t offset, off_t len);