<div dir="ltr">As far as I understand, they are not related to Sparc anymore.   It was some time ago, but they have made progress and now it is different.<div><br></div><div><br></div><div>About usage: it is not very clear, because they are very young as a commercial product and haven't got wide distribution. But if you don't want NSA backdoor, Elbrus is definitely worthy to look at =)</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 4, 2016 at 12:52 PM, Alex Arnon <span dir="ltr"><<a href="mailto:alex.arnon@gmail.com" target="_blank">alex.arnon@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Very very cool!!!<br><div><br></div><div>Do they still make SPARC compatible machines?</div><div>Where are Elbrus machines used? Have they achieved a wide distribution?</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Thu, Nov 3, 2016 at 2:47 PM, Max Lapshin <span dir="ltr"><<a href="mailto:max.lapshin@gmail.com" target="_blank">max.lapshin@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><br><div>Hi.</div><div><br></div><div>We have successfully compiled erlang 19.0 under Elbrus 2K.  It is russian computer with VLIW architecture and transparent support for amd64 instructions execution.</div><div><br></div><div>







<p class="m_3192845913583040907m_-2911762699005603996gmail-p1"><span class="m_3192845913583040907m_-2911762699005603996gmail-s1">$ uname -a</span></p>
<p class="m_3192845913583040907m_-2911762699005603996gmail-p1"><span class="m_3192845913583040907m_-2911762699005603996gmail-s1">Linux EL2S4-53-31 3.14.46-elbrus.314.1.14 #1 SMP Mon Sep 21 22:13:08 GMT 2015 e2k E2S EL2S4 GNU/Linux</span></p></div><div><br></div><div><br></div><div>Right now we have tested how it works in amd64 emulation and had to make some trivial hacks for it to compile (patch in the end of email), because compiler is lcc:</div><div><br></div><div>







<p class="m_3192845913583040907m_-2911762699005603996gmail-p1"><span class="m_3192845913583040907m_-2911762699005603996gmail-s1">$ lcc -v</span></p>
<p class="m_3192845913583040907m_-2911762699005603996gmail-p1"><span class="m_3192845913583040907m_-2911762699005603996gmail-s1">lcc:1.20.09:Aug-27-2015:e2k-4c<wbr>-linux</span></p>
<p class="m_3192845913583040907m_-2911762699005603996gmail-p1"><span class="m_3192845913583040907m_-2911762699005603996gmail-s1">Thread model: posix</span></p>
<p class="m_3192845913583040907m_-2911762699005603996gmail-p1"><span class="m_3192845913583040907m_-2911762699005603996gmail-s1">gcc version 4.4.0 compatible.</span></p></div><div><br></div><div>Stackoverflow couldn't help us with compiling under elbrus, so I decided to make two dirty patches =)</div><div><br></div><div><br></div><div>Erlang and thus our Flussonic can run on this architecture. Thank you for portable code!</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div>diff --git a/erts/emulator/beam/erl_bif_r<wbr>e.c b/erts/emulator/beam/erl_bif_r<wbr>e.c</div><div>index ff7746c..e83c762 100644</div><div>--- a/erts/emulator/beam/erl_bif_r<wbr>e.c</div><div>+++ b/erts/emulator/beam/erl_bif_r<wbr>e.c</div><div>@@ -31,7 +31,7 @@</div><div> #include "big.h"</div><div> #define ERLANG_INTEGRATION 1</div><div> #define PCRE_STATIC</div><div>-#include "pcre.h"</div><div>+#include "../pcre/pcre.h"</div><div> </div><div> #define PCRE_DEFAULT_COMPILE_OPTS 0 </div><div> #define PCRE_DEFAULT_EXEC_OPTS 0 </div><div>diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h</div><div>index dfe82ca..872a7df 100644</div><div>--- a/erts/emulator/beam/sys.h</div><div>+++ b/erts/emulator/beam/sys.h</div><div>@@ -235,7 +235,7 @@ __decl_noreturn void __noreturn erl_assert_error(const char* expr, const char *f</div><div>  * Compile time assert</div><div>  * (the actual compiler error msg can be a bit confusing)</div><div>  */</div><div>-#if ERTS_AT_LEAST_GCC_VSN__(3,1,1)</div><div>+#if false && ERTS_AT_LEAST_GCC_VSN__(3,1,1)</div><div> # define ERTS_CT_ASSERT(e) \</div><div>     do { \</div><div> <span class="m_3192845913583040907m_-2911762699005603996gmail-Apple-tab-span" style="white-space:pre-wrap">      </span>enum { compile_time_assert__ = __builtin_choose_expr((e),0,(v<wbr>oid)0) }; \</div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>
<br></div></div>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/list<wbr>info/erlang-questions</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>