Skip to content

Commit f70875c

Browse files
committed
Add a global convenience package file
1 parent b905180 commit f70875c

File tree

5 files changed

+99
-3
lines changed

5 files changed

+99
-3
lines changed
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
`import std.experimental.scripting` as a global convenience import
2+
3+
$(MREF std,experimental,scripting) allows to conveniently use all Phobos modules
4+
with one import:
5+
6+
---
7+
import std.experimental.scripting;
8+
void main()
9+
{
10+
10.iota.map!log.sum.writeln;
11+
}
12+
---
13+
14+
For short scripts a lot of imports are often needed to get all the
15+
modules from the standard library.
16+
With this release it's possible to use `import std.experimental.scripting` for importing the entire
17+
standard library at once. This can be used for fast prototyping or REPLs:
18+
19+
---
20+
import std.experimental.scripting;
21+
void main()
22+
{
23+
6.iota
24+
.filter!(a => a % 2) // 0 2 4
25+
.map!(a => a * 2) // 0 4 8
26+
.tee!writeln
27+
.sum
28+
.reverseArgs!writefln("Sum: %d"); // 18
29+
}
30+
---
31+
32+
As before, symbol conflicts will only arise if a symbol with collisions is used.
33+
In this case, $(LINK2 $(ROOT)spec/module.html#static_imports, static imports) or
34+
$(LINK2 $(ROOT)spec/module.html#renamed_imports, renamed imports) can be used
35+
to uniquely select a specific symbol.
36+
37+
Importing entire Phobos costs less than half a second (varying on the system) and
38+
work is in progress to reduce this overhead even further.

posix.mak

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ PACKAGE_std = array ascii base64 bigint bitmanip compiler complex concurrency \
195195
outbuffer parallelism path process random signals socket stdint \
196196
stdio string system traits typecons uni \
197197
uri utf uuid variant xml zip zlib
198-
PACKAGE_std_experimental = checkedint typecons
198+
PACKAGE_std_experimental = checkedint typecons scripting
199199
PACKAGE_std_algorithm = comparison iteration mutation package searching setops \
200200
sorting
201201
PACKAGE_std_container = array binaryheap dlist package rbtree slist util

std/experimental/scripting.d

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/++
2+
Phobos is the D standard library, built on top of druntime.
3+
4+
Convenience file that allows to import entire Phobos in one command.
5+
+/
6+
module std.experimental.scripting;
7+
public import std.algorithm;
8+
public import std.array;
9+
public import std.ascii;
10+
public import std.base64;
11+
public import std.bigint;
12+
public import std.bitmanip;
13+
public import std.compiler;
14+
public import std.complex;
15+
public import std.concurrency;
16+
public import std.container;
17+
public import std.conv;
18+
public import std.csv;
19+
public import std.datetime;
20+
public import std.demangle;
21+
public import std.digest;
22+
public import std.encoding;
23+
public import std.exception;
24+
public import std.file;
25+
public import std.format;
26+
public import std.functional;
27+
public import std.getopt;
28+
public import std.json;
29+
public import std.math;
30+
public import std.mathspecial;
31+
public import std.meta;
32+
public import std.mmfile;
33+
public import std.net.curl;
34+
public import std.numeric;
35+
public import std.outbuffer;
36+
public import std.parallelism;
37+
public import std.path;
38+
public import std.process;
39+
public import std.random;
40+
public import std.range;
41+
public import std.regex;
42+
public import std.signals;
43+
public import std.socket;
44+
public import std.stdint;
45+
public import std.stdio;
46+
public import std.string;
47+
public import std.system;
48+
public import std.traits;
49+
public import std.typecons;
50+
//public import std.typetuple; // this module is undocumented and about to be deprecated
51+
public import std.uni;
52+
public import std.uri;
53+
public import std.utf;
54+
public import std.uuid;
55+
public import std.variant;
56+
public import std.xml;
57+
public import std.zip;
58+
public import std.zlib;

win32.mak

+1-1
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ SRC_STD_INTERNAL_WINDOWS= \
284284
std\internal\windows\advapi32.d
285285

286286
SRC_STD_EXP= \
287-
std\experimental\checkedint.d std\experimental\typecons.d
287+
std\experimental\checkedint.d std\experimental\typecons.d std\experimental\scripting.d
288288

289289
SRC_STD_EXP_ALLOC_BB= \
290290
std\experimental\allocator\building_blocks\affix_allocator.d \

win64.mak

+1-1
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ SRC_STD_INTERNAL_WINDOWS= \
309309
std\internal\windows\advapi32.d
310310

311311
SRC_STD_EXP= \
312-
std\experimental\checkedint.d std\experimental\typecons.d
312+
std\experimental\checkedint.d std\experimental\typecons.d std\experimental\scripting.d
313313

314314
SRC_STD_EXP_ALLOC_BB= \
315315
std\experimental\allocator\building_blocks\affix_allocator.d \

0 commit comments

Comments
 (0)