Для языка D прСдставлСн runtime для программирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²

Π”ΠΈΠ»Π°Π½ Грэм (Dylan Graham) прСдставил лСгковСсный runtime LWDR для программирования Π½Π° языкС D ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², оснащённых ОБ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (RTOS). ВСкущая вСрсия Π½Π°Ρ†Π΅Π»Π΅Π½Π° Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ARM Cortex-M. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ ставит Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ всСх возмоТностСй D, Π½ΠΎ прСдоставляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ срСдства. РаспрСдСлСниС памяти производится Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (new / delete), сборщик мусора Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½, Π½ΠΎ имССтся ряд Ρ…ΡƒΠΊΠΎΠ² для использования срСдств RTOS.

Π’ прСдставлСнной вСрсии ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½Ρ‹:

  • Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ экзСмпляров классов ΠΈ ΠΊΡƒΡ‡ΠΈ для структур;
  • ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹;
  • assert-Ρ‹;
  • ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ срСдства RTTI (Π·Π° счёт срСдств Typeinfo);
  • интСрфСйсы;
  • Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;
  • абстрактныС ΠΈ статичСскиС классы;
  • статичСскиС массивы;
  • Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅, освобоТдСниС ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° динамичСских массивов;
  • Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² динамичСский массив ΠΈ конкатСнация динамичСских массивов.

Π’ статусС ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй: ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Throwables (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ мусорщика).

НС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹:

  • конструкторы ΠΈ дСструкторы ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ;
  • ModuleInfo;
  • Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° (TLS);
  • Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρ‹ ΠΈ замыкания;
  • ассоциативныС массивы;
  • раздСляСмыС ΠΈ синхронизированныС Π΄Π°Π½Π½Ρ‹Π΅;
  • Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru