{"id":53001,"date":"2019-11-21T00:00:00","date_gmt":"2019-11-20T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove"},"modified":"2020-02-18T14:00:50","modified_gmt":"2020-02-18T11:00:50","slug":"reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","title":{"rendered":"Lansarea 19.3.0 a Ma\u0219inii Virtuale GraalVM \u0219i a implement\u0103rilor Python, JavaScript, Ruby \u0219i R pe baza acesteia","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Compania Oracle <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/releases\/tag\/vm-19.3.0\">a publicat<\/a><\/noindex> lansarea unei ma\u0219ini virtuale universale <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/\">GraalVM 19.3.0<\/a><\/noindex>, care suport\u0103 rularea aplica\u021biilor \u00een JavaScript (Node.js), Python, Ruby, R, orice limbaj pentru JVM (Java, Scala, Clojure, Kotlin) \u0219i limbaje pentru care poate fi generat cod LLVM (C, C++, Rust). Ramura 19.3 este clasificat\u0103 ca o versiune cu suport pe termen lung (LTS) \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/docs\/release-notes\/19_3\/\">este deosebit\u0103<\/a><\/noindex> cu suport <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=49336\">JDK 11<\/a><\/noindex>, inclusiv cu capacitatea de a compila cod Java \u00een fi\u0219iere executabile (GraalVM Native Image). Codul proiectului <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/\">se r\u0103sp\u00e2nde\u0219te<\/a><\/noindex> sub licen\u021ba GPLv2. De asemenea, au fost lansate versiuni noi ale implement\u0103rilor limbajelor Python, JavaScript, Ruby \u0219i R care folosesc GraalVM -  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/\">GraalPython<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graaljs\/\">GraalJS<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/truffleruby\/\">TruffleRuby<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/fastr\/\">FastR<\/a><\/noindex>. <\/p>\n<p>GraalVM <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=48472\">ofer\u0103<\/a><\/noindex> un compilator JIT care poate executa \u00een JVM cod din orice limbaje de scriptare, inclusiv JavaScript, Ruby, Python \u0219i R, precum \u0219i permite rularea codului nativ \u00een JVM, transformat \u00een cod LLVM. Instrumentele oferite de GraalVM includ un debugger independent de limbaj, un sistem de profilare \u0219i un analizor de distribu\u021bie a memoriei. GraalVM permite crearea de aplica\u021bii combinate cu componente \u00een diferite limbaje, permi\u021b\u00e2nd accesarea obiectelor \u0219i array-urilor din cod \u00een alte limbaje. Pentru limbajele bazate pe JVM exist\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.graalvm.org\/docs\/reference-manual\/aot-compilation\/\">posibilitatea<\/a><\/noindex> capacitatea de a crea fi\u0219iere executabile compilate \u00een cod ma\u0219in\u0103, care pot fi rulante direct cu un consum minim de memorie (gestionarea memoriei \u0219i a thread-urilor este realizat\u0103 prin integrarea framework-ului <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/graal\/tree\/master\/substratevm\">Substrate VM<\/a><\/noindex>).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graaljs\/blob\/master\/CHANGELOG.md\">Modific\u0103ri \u00een GraalJS<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Compatibilitate asigurat\u0103 cu Node.js 12.10.0;\n<li class=\"l\"> Propriet\u0103\u021bile \u0219i func\u021biile globale nestandard sunt dezactivate implicit:<br \/>\n       global (\u00eenlocuit cu globalThis, pentru revenire exist\u0103 setarea js.global-property), performance (js.performance), print \u0219i printErr (js.print);<\/p>\n<li class=\"l\"> Au fost implementate Promise.allSettled \u0219i propunerea de coalescen\u021b\u0103 nullish, care sunt disponibile \u00een modul ECMAScript 2020 ( -js.ecmascript-version=2020);\n<li class=\"l\"> Dependen\u021bele ICU4J actualizate la 64.2, ASM la 7.1.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/blob\/master\/CHANGELOG.md#version-1930\">Modific\u0103ri<\/a><\/noindex> \u00een GraalPython:<\/p>\n<ul>\n<li class=\"l\"> Ad\u0103ugate stub-uri gc.{enable,disable,isenabled}, implementate charmap_build, sys.hexversion \u0219i _lzma;\n<li class=\"l\"> Biblioteca standard Python 3.7.8 actualizat\u0103;\n<li class=\"l\"> Suport ad\u0103ugat pentru NumPy 1.16.4 \u0219i Pandas 0.25.0;\n<li class=\"l\"> Suport ad\u0103ugat pentru timeit;\n<li class=\"l\">  socket.socket a fost adus \u00eentr-o stare care permite rularea 'graalpython -m http.server' \u0219i \u00eenc\u0103rcarea resurselor http nesecurizate (f\u0103r\u0103 TLS);\n<li class=\"l\"> Problemele legate de output-ul obiectelor pandas.DataFrame au fost corectate,<br \/>\n    \u00eentre\u021binerea incorect\u0103 a tuplelor \u00een bytes.startswith,<br \/>\n    atribuirea destructuratoare a iteratoarelor \u0219i utilizarea dict.__contains__ pentru dic\u021bionare;<\/p>\n<li class=\"l\"> A fost ad\u0103ugat\u0103 suport pentru ast.PyCF_ONLY_AST, care <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/53\">a permis<\/a><\/noindex> asigurarea func\u021bion\u0103rii pytest;\n<li class=\"l\"> Ad\u0103ugat <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/85\">suport pentru<\/a><\/noindex> PEP 498 (interpolarea \u0219irurilor \u00een litere);\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graalvm\/graalpython\/issues\/43\">Implementat<\/a><\/noindex>  flagul '--python.EmulateJython' pentru importarea claselor JVM folosind sintaxa standard Python import \u0219i prinderea excep\u021biilor JVM din codul Python;\n<li class=\"l\">  Performan\u021ba parser-ului, cache-ului de excep\u021bii,<br \/>\n      accesului la obiectele Python din codul JVM a fost \u00eembun\u0103t\u0103\u021bit\u0103. Rezultatele \u00een testele de performan\u021b\u0103 pentru codul Python \u0219i extensiile native au fost \u00eembun\u0103t\u0103\u021bite (execu\u021bia extensiilor native peste llvm implic\u0103 faptul c\u0103 bitcode-ul llvm este transmis GraalVM pentru JIT-compilare).\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/truffleruby\/releases\/tag\/vm-19.3.0\">Modific\u0103ri<\/a><\/noindex> \u00een TruffleRuby:<\/p>\n<ul>\n<li class=\"l\"> Pentru compilarea extensiilor native, se utilizeaz\u0103 acum un set de instrumente LLVM \u00eencorporat, care creeaz\u0103 at\u00e2t cod nativ, c\u00e2t \u0219i bitcode. Aceasta \u00eenseamn\u0103 c\u0103 mai multe extensii native ar trebui s\u0103 fie compilabile din cutie, rezolv\u00e2nd majoritatea problemelor legate de linkare;\n<li class=\"l\"> Instalare separat\u0103 LLVM pentru instalarea extensiilor native \u00een TruffleRuby;\n<li class=\"l\"> Pentru instalarea extensiilor C++ \u00een TruffleRuby, nu mai este necesar\u0103 instalarea libc++ \u0219i libc++abi;\n<li class=\"l\">    Licen\u021ba a fost actualizat\u0103 la EPL 2.0\/GPL 2.0\/LGPL 2.1, la fel ca \u00een recentul JRuby;\n<li class=\"l\"> A fost ad\u0103ugat\u0103 suport pentru argumente op\u021bionale \u00een GC.stat;\n<li class=\"l\"> Metoda Kernel#load a fost implementat\u0103 cu o \u00eenf\u0103\u0219urare \u0219i Kernel#spawn cu :chdir;\n<li class=\"l\"> A fost ad\u0103ugat rb_str_drop_bytes, notabil pentru c\u0103 este utilizat de OpenSSL;\n<li class=\"l\">    Au fost incluse extensiile gem-urilor preinstalate necesare pentru rails new \u00een Rails 6;\n<li class=\"l\"> Pentru compilarea extensiilor native, au fost folosite flag-uri, ca \u00een MRI;\n<li class=\"l\"> Au fost f\u0103cute optimiz\u0103ri de performan\u021b\u0103 \u0219i a fost redus consumul de memorie.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/fastr\/releases\/tag\/vm-19.3.0\">Modific\u0103ri<\/a><\/noindex> \u00een FastR:<\/p>\n<ul>\n<li class=\"l\"> A fost asigurat\u0103 compatibilitatea cu R 3.6.1;\n<li class=\"l\"> A fost ad\u0103ugat\u0103 suport preliminar pentru execu\u021bia extensiilor native bazate pe LLVM. La construirea pachetelor native R, FastR este configurat s\u0103 utilizeze setul de instrumente LLVM \u00eencorporat \u00een GraalVM. Fi\u0219ierele binare rezultate vor con\u021bine at\u00e2t cod nativ, c\u00e2t \u0219i LLVM-bitcode.\n<p>Pachetele preinstalate sunt de asemenea construite \u00een acest mod.<br \/>\n FastR \u00eencarc\u0103 \u0219i ruleaz\u0103 codul nativ al extensiilor \u00een mod implicit, dar atunci c\u00e2nd este rulat\u0103 cu op\u021biunea '--R.BackEnd=llvm', se va folosi codul bit. Backend-ul LLVM poate fi utilizat selectiv pentru anumite pachete R, specific\u00e2nd '--R.BackEndLLVM=pkg1,pkg2'. \u00cen caz de probleme la instalarea pachetelor, se poate reveni asupra modific\u0103rilor apel\u00e2nd fastr.setToolchain('native') sau edit\u00e2nd manual fi\u0219ierul $FASTR_HOME\/etc\/Makeconf;<\/p>\n<li class=\"l\"> \u00cen aceast\u0103 versiune, FastR vine f\u0103r\u0103 bibliotecile runtime GCC;\n<li class=\"l\"> Au fost corectate scurgerile de memorie;\n<li class=\"l\"> Au fost remediate problemele legate de lucrul cu vectori mari (&gt;1GB);\n<li class=\"l\"> A fost implementat grepRaw, dar doar pentru fixed=T.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Sursa: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51906\">opennet.ro<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM 19.3.0, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 JavaScript (Node.js), Python, Ruby, R, \u043b\u044e\u0431\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0434\u043b\u044f JVM (Java, Scala, Clojure, Kotlin) \u0438 \u044f\u0437\u044b\u043a\u0430\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0438\u0442\u043a\u043e\u0434 LLVM (C, C++, Rust). \u0412\u0435\u0442\u043a\u0430 19.3 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0430 \u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 (LTS) \u0438 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JDK 11, \u0432 \u0442\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-53001","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 19.3.0 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Python, JavaScript, Ruby \u0438 R \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-20T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:50+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lansarea 19.3.0 a ma\u0219inii virtuale GraalVM \u0219i implement\u0103rile Python, JavaScript, Ruby \u0219i R bazate pe aceasta | ProHoster","description":"Compania Oracle a lansat versiunea universalei ma\u0219ini virtuale","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 19.3.0 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b GraalVM \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Python, JavaScript, Ruby \u0438 R \u043d\u0430 \u0435\u0451 \u043e\u0441\u043d\u043e\u0432\u0435 | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u0432\u044b\u043f\u0443\u0441\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/reliz-19-3-0-virtualnoj-mashiny-graalvm-i-realizatsij-python-javascript-ruby-i-r-na-eyo-osnove","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-20T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:50+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53001","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 05:41:27","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:33:28","updated":"2026-01-24 05:41:27","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/53001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=53001"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/53001\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=53001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=53001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=53001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}