-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathnim.cfg
More file actions
93 lines (77 loc) · 1.7 KB
/
nim.cfg
File metadata and controls
93 lines (77 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Nim configuration for nimsync - optimized for performance
# Default compilation settings
--path:"src"
# Memory management - use ORC for best balance of performance and safety
--mm:orc
--threads:on
# Enable useful warnings and hints
--warning[UnusedImport]:off
--hint[Processing]:off
--hint[Conf]:off
# Release optimizations (can be overridden with -d:debug)
--opt:speed
@if release or danger:
--stackTrace:off
--lineTrace:off
--assertions:off
--debugger:off
--debuginfo:off
@end
@if danger:
--checks:off
--boundChecks:off
--overflowChecks:off
--nilChecks:off
--rangeChecks:off
@end
# Link-time optimization when available
@if lto:
--passC:"-flto"
--passL:"-flto"
@end
# Experimental features for advanced optimization
# Temporarily disabled due to compatibility issues
# --experimental:views
# --experimental:strictFuncs
# Threading optimizations
@if threads:
--threadAnalysis:off
@end
# Performance-focused C compiler flags for GCC
@if gcc and release:
--passC:"-O3"
--passC:"-fno-strict-aliasing"
@end
@if gcc and danger:
--passC:"-O3"
--passC:"-ffast-math"
--passC:"-fno-strict-aliasing"
--passC:"-DNDEBUG"
@end
# Performance-focused C compiler flags for Clang
@if clang and release:
--passC:"-O3"
--passC:"-fno-strict-aliasing"
@end
@if clang and danger:
--passC:"-O3"
--passC:"-ffast-math"
--passC:"-fno-strict-aliasing"
--passC:"-DNDEBUG"
@end
# Performance-focused C compiler flags for MSVC
@if vcc and release:
--passC:"/O2"
@end
@if vcc and danger:
--passC:"/O2"
--passC:"/DNDEBUG"
@end
# Development settings (default when not release/danger)
@if not (release or danger):
--hints:on
--warnings:on
--debuginfo:on
--stackTrace:on
--lineTrace:on
@end