ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· DMD 2.112, ΡΡΠ°Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠ·ΡΠΊΠ° D. ΠΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSL (Boost Software License). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Linux, Windows, macOS ΠΈ FreeBSD.
Π―Π·ΡΠΊ D ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΡΡ ΠΎΠΆΠΈΠΌ Ρ C/C++, ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ·ΡΠΊΠΎΠ². Π―Π·ΡΠΊ D ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΈΠΌΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°: Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ², Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΡΡΠ΅Π΄ΡΡΠ² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ D ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ C, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° C++ ΠΈ Objective-C.
Π‘ΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²ΡΠΏΡΡΠΊΠ΅ 2.112:
- ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ (Ρ ΡΡΠΌΠ°ΠΏ) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ΅ΡΠ΅Π· ΡΠ°Π±Π»ΠΎΠ½Ρ.
- ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠ·ΡΠΊ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Β«-preview=bitfieldsΒ».
- ΠΠΈΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Β«elseΒ», ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π±Π΅Π· Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΡΠΈΠ³ΡΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ: int i, j; if (i) if (j) return 1; else // Error: else is dangling, add { } after condition `if (i)` return 2;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ Β«-extIΒ» Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΡΡΠ΅ΠΉ ΠΈΠΌΠΏΠΎΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° (-I), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΉ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π Windows ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ dllimport ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΡΠΎΠΌΠ΅ Β«noneΒ», ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ DllImport.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ C-ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Β«__importΒ», ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Β«__moduleΒ» ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈΠ· ΡΠ·ΡΠΊΠ° D Π² ΡΠ·ΡΠΊ C. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ C-ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, hello/utils.c ΠΈ world/utils.c), ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π° ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ import utils, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠΊΠ°Π·Π°Π½Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ. βhello/utils.c: #if __IMPORTC__ __module hello.utils; #endif int sqr(int x) { return x * x; } βworld/utils.c: #if __IMPORTC__ __module world.utils; #endif int max(int a, int b) { return a > b ? a : b; } βapp.d: import hello.utils; import world.utils; static assert(sqr(3) == 9); static assert(max(3, 5) == 5);
- ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» Π² ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° Β«int op= floatΒ». ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Β«op=Β» Π½Π΅ΡΠ²Π½ΠΎ ΠΎΠ±ΡΠ΅Π·Π°Π΅Ρ ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎ Π½ΡΠ»Ρ. uint a; float b = 0.1; a += b; // Deprecation: `uint += float` is performing truncating conversion
- Π runtime Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ.
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ABI macOS 15.4.
- Π‘-ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Β«ImportCΒ»: import core.sys.posix.stdlib; import core.sys.posix.unistd; extern(C) int main() { int status, pid = vfork(); if (pid == 0) { // β¦ return 0; } waitpid(pid, &status, 0); if (WIFEXITED(status)) { // β¦ } return 0; }
- Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Β«lazyCacheΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Ρ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΎΠΉ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ cache, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, lazyCache ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½ΠΊΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ²Π½ΠΎ Π·Π°ΠΏΡΠΎΡΠ΅Π½Ρ. auto result = iota(-4, 5).map!(a => tuple(a, expensiveComputation(a)))().lazyCache(); // No computations performed at this point auto firstElement = result.front; // First element is now evaluated
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Β«getrandom()Β» Π½Π° ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡΡ Linux ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
- Β«std.uniΒ» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π΄ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Unicode 17.
- Π Β«std.uuidΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° uuid v7 .
- ΠΠΎΠ²ΡΠΉ API Π΄Π»Ρ Β«std.convΒ», Π³Π΄Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Β«writeTextΒ», Β«writeWTextΒ» ΠΈ Β«writeDTextΒ».
- Π ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ dub Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«-dest ΠΈ ΠΊΠ»ΡΡ frameworks. βΠΡΠ»ΠΎ: lflags Β«-frameworkΒ» Β«CocoaΒ» βΠ’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ: frameworks Β«CocoaΒ» Β«OpenGLΒ»
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠ΄Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ D:
- Π ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³Ρ (GameDev) Π±ΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ: Π² dvn, Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ Π½ΠΎΠ²Π΅Π»Π», Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π ΠΏΠΎΡΡ Π΄Π²ΠΈΠΆΠΊΠ° Godot Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΡΠΏΠΎΡΡΠ° Π² Web. Π Steam Π²ΡΠΏΡΡΠ΅Π½Π° ΠΈΠ³ΡΠ° The Art of Reflection, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ D ΠΈ DirectX Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅.
- Π ΠΎΠ±Π»Π°ΡΡΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ°ΠΉΠ±Π΅ΡΠΎΠ² photon, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π» Π²ΡΡΠΎΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅ΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ TechEmpower ΠΈ Π²ΠΎΡΡΠ» Π² ΡΠΎΠΏ 10 ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠ΅ΡΡΠ°ΠΌ (Plaintest, JSON). ΠΠ°Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π±ΡΠ» ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ Π² ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π²Π΅Π±-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Vibe.D, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΈΡΠΎΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
- ΠΠΎΡΠ»Π΅ Π°Π½ΠΎΠ½ΡΠ° ΠΎ Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Dconf (Π²ΠΈΠ΄Π΅ΠΎ1, Π²ΠΈΠ΄Π΅ΠΎ2), Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΡΠ»ΠΎ Π² Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ·. ΠΠΎΠ²ΡΠΉ GC ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° x86_64 Π΄Π»Ρ OC Linux ΠΈ Windows. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ macOS ΠΈ Π΄ΡΡΠ³ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru

