á áá áşááááŻááááşá¸áááşá¸ááŹááŹá ááŹá¸áá áşááŻááźá áşáááˇáş Nim 2.2.8 ááᯠáá˝ááşáážáááŹááźáŽááźá áşáááşá Nim áááş Python ááž áážáŻáśáˇááąáŹáşááąá¸ááąáŹ syntax áážááˇáş Lisp-like metaprogramming á á˝ááşá¸áááşááťáŹá¸ááŤáážáááąáŹ statically typedá compiled ááŻááşááŹá¸ááąáŹ programming language áá áşááŻááźá áşáááşá áááşá¸áááş Cá C++ áážááˇáş JavaScript ááťáŹá¸áááŻáˇ compile ááŻááşáᏠhigh-level language ááťáŹá¸á ááąáŹáşááźáááŻááşá á˝ááşá¸ááźááˇáş C-level á á˝ááşá¸ááąáŹááşáááşááᯠááąá¸ááąáŹááşáááşá áááąáŹááťááşáááŻááşááᯠMIT áááŻááşá ááşáĄáąáŹááşáá˝ááş áááŻááşá ááşááťááŹá¸áááşá
Nim áá˛áˇ features áá˝áąáážáŹ compile time áážáŹ AST ááąáŤáşáážáŹ áĄááŻááşááŻááşáá˛áˇ macro systemá concepts áá˝áąááŤáá˛áˇ generic programming áĄáá˝ááş supportá multiple dispatchá multiple strategy (ARC/ORC, refc, mark-and-sweep) áĄáá˝ááş support ááŤáá˛áˇ deterministic memory managementá asynchronous programming áĄáá˝ááş built-in async/await support áá˛áˇ C/C++/JavaScript áá˛áˇ áĄáá˝ááşááá° integrate ááŻááşáááŻááşáá˛áˇ FFI áááŻáˇ ááŤáááşááŤáááşá Nim ááᯠembedded systems áááą web áĄáá development áĄáá˝ááş áááˇáşááąáŹáşáá˛áˇ systems language áĄááźá áş position ááŻááşááŹá¸ááŤáááşáááŹááŹááťáŹá¸á á˝ááşá¸ááąáŹááşáááşá áážááşááŹááşááąá¸áááşá¸ááąá¸áážááˇáş ááąáŹáˇááşáá˛ááąá¸ááŹá¸áá° áĄáááşááźáąáážáŻááᯠáĄááąá¸ááąá¸áá
ááŹá¸áážááşá¸ á.á.á áá˝ááşáážáááźáŽá¸ ááąá¸ááĄááźáŹáá˝ááş ááźááˇáşááťááááˇáş á.á.á áááş áá˝ááşááąáŤáşááŹáá˛áˇááźáŽá¸ commit áá ááŻáážááˇáşáĄáá° bug ááźááşáááşáážáŻááťáŹá¸áážááˇáş áááŻá¸áááşáážáŻááťáŹá¸áááşá¸ ááŤáááşáááşá ááźááˇáşááťááážáŻá áĄááááááŻá¸áááşáážáŻáážáŹ multithreading ááᯠáááşááźá˝á á˝áŹáĄááŻáśá¸ááźáŻáááˇáşáĄá፠default memory allocator á áááşááźáááşáážáŻááᯠááááááŹáᏠááźážááˇáşáááşááąá¸ááźááşá¸ááźá áşáááşá developer ááťáŹá¸á áĄáááŻáĄá multithreaded code áĄáá˝ááş "-d:useMalloc" workaround áááŻáĄááşáážáŻáááş áĄááááşááĄááŹáá áşáᯠááźá áşáá˝áŹá¸ááŤááźáŽá áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áĄáŹá¸ áĄááźáśááźáŻááťááşááťáŹá¸ ááąá¸áááş áĄáŹá¸ááąá¸ááŤáááşá
ááźááşáááşááźáŽá¸ááąáŹ bug ááťáŹá¸áá˛áá˝ááş-
- ááŹááŽáĄááŹááášááŻááťáŹá¸ áĄááťáááşááááşáᎠááťááşá áŽá¸ááźááşá¸ááźáąáŹááˇáş constant table áá áşááŻááąáŤáşáá˝ááş iterating ááŻááşáááˇáşáĄá፠SIGBUS;
- trailing iterators ááťáŹá¸ááŤáážáááąáŹ SIGSEGV;
- method áá áşááŻáĄáá˝ááşá¸ .global ááᯠinitialize ááŻááşáááˇáşáĄá፠C code generation áážáŹá¸áá˝ááşá¸ááąááŤáááşá
- try..except áá˛áˇ iterator áááŻááááşááŹáážáŹ error processing ááźá áşáá˝áŹá¸ááŤáááş;
- --debuginfo ááᯠáĄááŻáśá¸ááźáŻáááˇáşáĄá፠C++ ááŻáśá áś áĄáááş áážáŹá¸áá˝ááşá¸á á˝áŹ áážáŹá¸áá˝ááşá¸ááąááŤáááşá
- áážááşááŹááşáážááşá¸áááşá¸áážáŻ áĄáá˝ááşáĄááťá˝áśááźáŻááŻááşááźááşá¸ááźáąáŹááˇáş sequence size ááᯠááťážáąáŹáˇááťááąáŹáĄá፠setLen áááş áážáąá¸áá˝áąá¸áááşá
- "âmm:refc" ááŻááşáĄáá˝ááş setLenUninit ááážáááźááşá¸á
- áĄááŻáśá¸áĄáážáŻááşá¸ááźááşáááşááąá¸ááŹá¸ááźááşá¸ááŻááşáááşá¸á ááşáááş áááŻááşááźáŽá¸ááťáŹá¸áá˝ááş áááşáááˇáşááąááŤáááşá
- refc mode áážáŹ object áá˝áąááᯠheap ááŻááşáááŻáˇ assignment áá˛áˇáĄáá° distinct type áá˝áąáááŻááŻáśá¸áá˛áˇáĄá፠SIGSEGV áááŻááŻáśá¸ááŤáááşá
- ARC/ORC/ATOMICARC áĄáąáŹááşáážá generic distinct type ááťáŹá¸áĄáá˝ááş hooks ááťáŹá¸áá˝ááş m_type ááᯠáážáŹá¸áá˝ááşá¸á á˝áŹ áááşááąáŹááşáá˝ááˇáşá
- concept ááž "items" ááťáŹá¸ááźááˇáş tuple ááᯠááźááşáááşá¸áááˇáşáĄá፠compiler ááťááşá áŽá¸áá˝áŹá¸áááşá
- recursive áááąáŹáááŹá¸ááťáŹá¸ááźáąáŹááˇáş compiler segfault ááźá áşááąáŤáşááŹáááşá
- httpclient áá˝ááş HTTP proxy áážáá áşáááˇáş HTTPS ááąáŹááşá¸áááŻáážáŻááťáŹá¸ááᯠáážáŹá¸áá˝ááşá¸á á˝áŹ ááŻááşááŻááşááźááşá¸á
- shl ááŻááşááąáŹááşááťááşáá˝ááş ááááşáážááşááŹá¸ááąáŹ áĄááźáŻáĄáá°;
- áááááąá¸ááťááşááážááᲠáážááşááťáŹá¸ááąáŹ integer literal ááťáŹá¸ááᯠááźááşááąáŹááşááŤá
- compiler áááş áážáŹá¸áá˝ááşá¸ááąáŹ generic instantiations áĄááťáŹá¸áĄááźáŹá¸ááźááˇáş crash ááźá áşáá˝áŹá¸áááşá
- áááˇáşáá˝ááşá¸ááŹá¸ááąáŹ ááŻááş âstyleCheck:warná
source: opennet.ru
