<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kray-G</title>
    <description>The latest articles on DEV Community by Kray-G (@krayg).</description>
    <link>https://dev.to/krayg</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F428114%2Fac93378c-f651-463a-a99a-8837fc234f30.png</url>
      <title>DEV Community: Kray-G</title>
      <link>https://dev.to/krayg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krayg"/>
    <language>en</language>
    <item>
      <title>Amazing Scratch World!</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Wed, 05 Mar 2025 07:23:27 +0000</pubDate>
      <link>https://dev.to/krayg/amazing-scratch-world-4gp2</link>
      <guid>https://dev.to/krayg/amazing-scratch-world-4gp2</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Let me write about &lt;strong&gt;Scratch&lt;/strong&gt;, which is the language created as building-block-based visual language. Honestly, it's so awesome. When I found this, I was so surprised at it because I feel infinite possibility to development. Of course, there're some problems as a programming tool. 😂&lt;/p&gt;

&lt;p&gt;BTW, before talking something, please visit to my works of games that I made, and play it. The link is here below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://scratch.mit.edu/studios/35458610/" rel="noopener noreferrer"&gt;https://scratch.mit.edu/studios/35458610/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So far, the project having the most highest views and being the most popular is Attractive Drivers which is an homage to OutRun from SEGA, and its view is over 4,000. Even this is not that big amount, though.&lt;/p&gt;

&lt;p&gt;Anyway, I'll mention about those at the bottom of this article with each screen image. 😄&lt;/p&gt;

&lt;h2&gt;
  
  
  What is &lt;strong&gt;Scratch&lt;/strong&gt;!?
&lt;/h2&gt;

&lt;p&gt;Okay, at the beginning of all, let's quote from the Scratch Site.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.&lt;/p&gt;

&lt;p&gt;Scratch is the world’s largest coding community for children and a coding language with a simple visual interface that allows young people to create digital stories, games, and animations. Scratch is designed, developed, and moderated by the Scratch Foundation, a nonprofit organization.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That means, Scratch is known as a visual programming language like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9bt4b98ccxgw5iep1gr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9bt4b98ccxgw5iep1gr.png" alt="Scratch Image" width="800" height="716"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I believe that you've got the feeling like building blocks and working all and it's been a new touch to your heart about a programming language that is so different well-known languages.&lt;/p&gt;

&lt;p&gt;To be honest, I started it to teach it to my child, but it's really got me by that feelings.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;BTW, there seems to be so many adults like me, there's a community for those adult people like me in Scratch, and I joined in it now. 😄&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In addition to that, all materias used in Scratch is being licensed under CC-BY-SA2.0, so you can use all materials in Scratch under CC0-BY-SA2.0. In another way, you can't use something in Scratch with not CC0-BY-SA2.0 or that can't make it CC0-BY-SA2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Works
&lt;/h2&gt;

&lt;p&gt;Scratch can work for not only games but also animation, poem, or something like some interactive stuffs. Currently, I tried to make games only, but you will be able to feel its quality and potential.&lt;/p&gt;

&lt;p&gt;So let's show my works. I'll show you a lot of images, so it'd be so nice if you felt we could create such a game and it would be much better than what you think of.&lt;/p&gt;

&lt;h3&gt;
  
  
  G14 Great Fighter Jerrydog
&lt;/h3&gt;

&lt;p&gt;This is my first project. SEGA After Burner inspired me and this is an homage to that.&lt;/p&gt;

&lt;p&gt;As I mentioned above, all materials including music and graphics is provided under CC0-BY-SA2.0, so you can use those under CC0-BY-SA2.0. Especially also for music, all musics are composed by myself, soyou can use those under CC0-BY-SA2.0.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://scratch.mit.edu/projects/1042567369" rel="noopener noreferrer"&gt;https://scratch.mit.edu/projects/1042567369&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1aqop03zmg6plnz7jsum.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1aqop03zmg6plnz7jsum.png" alt="Jerrydog 1" width="630" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Air battle and survive!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqqn4raj9hc48mv4tzto.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqqn4raj9hc48mv4tzto.png" alt="Jerrydog 2" width="800" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhagmgt7siye0vh14wydj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhagmgt7siye0vh14wydj.png" alt="Jerrydog 3" width="800" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqehejngu2xt3uqcj9uf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqehejngu2xt3uqcj9uf0.png" alt="Jerrydog 4" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Attractive Drivers
&lt;/h3&gt;

&lt;p&gt;This is my most popular game and it's an homage to OutRun from SEGA. Of course, all musics are composed by myself. Moreover, I drawed a lot of graphics according to this game scenario.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://scratch.mit.edu/projects/1092360558" rel="noopener noreferrer"&gt;https://scratch.mit.edu/projects/1092360558&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fygwk5zb71wc31dnsgnfj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fygwk5zb71wc31dnsgnfj.png" alt="Attractive Drivers 1" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyeafch26zviz2uddlw63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyeafch26zviz2uddlw63.png" alt="Attractive Drivers 2" width="800" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is OutRun homage, so you can choose the music during driving. But you can select 2 musics for stage 1 to stage 4 and for stage 5 to stage 8.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn0vt8pirrs25vtp1wc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn0vt8pirrs25vtp1wc9.png" alt="Attractive Drivers 3" width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgoaxdn6ro92gqg0cyv59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgoaxdn6ro92gqg0cyv59.png" alt="Attractive Drivers 4" width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzmau9i95u549gmqamdnf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzmau9i95u549gmqamdnf.png" alt="Attractive Drivers 5" width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gnw60riwu7yn2msj98k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gnw60riwu7yn2msj98k.png" alt="Attractive Drivers 6" width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvz87l9hmpo3ba0x6enhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvz87l9hmpo3ba0x6enhx.png" alt="Attractive Drivers 7" width="800" height="152"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each stage has a beautiful scene for driving. Please see that by playing this game.&lt;/p&gt;

&lt;h3&gt;
  
  
  Time Trial On Edge 2
&lt;/h3&gt;

&lt;p&gt;This is 3D Racing game. At first, I created "Time Trial On Edge" by using the technic called Raycasting. I'll write about Raycasting in the future, but I felt it was not good for this type game. That's why I made the new version named as "Time Trial On Edge 2" and reeased by using the same rendering engine as Attractive Drivers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://scratch.mit.edu/projects/1140456987" rel="noopener noreferrer"&gt;https://scratch.mit.edu/projects/1140456987&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6otds0a6sc49i0tc7zs4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6otds0a6sc49i0tc7zs4.png" alt="Time Trial On Edge 2 2" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47k283nhvuah9wboyvo3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47k283nhvuah9wboyvo3.png" alt="Time Trial On Edge 2 1" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select some conditions and go battle on the circuit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F00ozu8eu13o1nueui155.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F00ozu8eu13o1nueui155.png" alt="Time Trial On Edge 2 3" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is another condition, but let's win the race!&lt;/p&gt;

&lt;h3&gt;
  
  
  Galacy Fight
&lt;/h3&gt;

&lt;p&gt;This is a 3rd story of a series.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://scratch.mit.edu/projects/1128422722/" rel="noopener noreferrer"&gt;https://scratch.mit.edu/projects/1128422722/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t58x5zytvr41x3732qf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6t58x5zytvr41x3732qf.png" alt="Galacy Fight 1" width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you press the green flag, the words Galaxy Fight appear, seamlessly connecting from the thumbnail as usual, while the Start, Select Options menu and story appear.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fashd0rgdbkupvxh1np3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fashd0rgdbkupvxh1np3o.png" alt="Galacy Fight 2" width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Finally, we received a report that the Space Imperial Forces had launched an attack on Country B. We heard that several planets have already been invaded by the Space Imparial Forces. Since the communication network you have newly built with Country A is fully functional, you immediately request reinforcements from Country A and head out to rescur the planets. It seems that the Space Imparial Forces operates a huge control device called the Control Circle on each planet.&lt;/p&gt;

&lt;p&gt;It was even discovered that by destroying the control circles on each planet, it was possible to stop the Space Imparial Forces from functioning. The equipment of his own fighter 'ZENO' is already in perfect condition.&lt;/p&gt;

&lt;p&gt;Good luck.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft54jk6nf2n6lwhk41d8d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft54jk6nf2n6lwhk41d8d.png" alt="Galacy Fight 3" width="800" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This scene selection shows the point where this game is an homage to Galaxy Force from SEGA.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53weyv7h0p2ise4zyh54.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53weyv7h0p2ise4zyh54.png" alt="Galacy Fight 4" width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6s40mn0skdn17edbesem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6s40mn0skdn17edbesem.png" alt="Galacy Fight 5" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzhzyzsvshhb40kbbn9df.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzhzyzsvshhb40kbbn9df.png" alt="Galacy Fight 6" width="800" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfj6ftmarij9xqm5sr7u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfj6ftmarij9xqm5sr7u.png" alt="Galacy Fight 7" width="800" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbyw6mgwpfba77xp142s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbyw6mgwpfba77xp142s.png" alt="Galacy Fight 8" width="800" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro9aax3ry4f83eywhgvm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro9aax3ry4f83eywhgvm.png" alt="Galacy Fight 9" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3wft7dd7cdn7hljvj40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv3wft7dd7cdn7hljvj40.png" alt="Galacy Fight A" width="800" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa1ud1hljwg1ozb7a3fsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa1ud1hljwg1ozb7a3fsi.png" alt="Galacy Fight B" width="800" height="189"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are many scenes and you have to fight enemies like fighting in the space, avoiding a prominence or dragon's fire, and tornado or something like that.&lt;/p&gt;

&lt;p&gt;Lastly, after completed all 3 missions, there is the last 4th mission and there are short movie about the story. Please check it out by playing. Of course, Ending also has a short animation, so I want you to play this until the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problems
&lt;/h2&gt;

&lt;p&gt;Okay, Scratch would be so attractive system and we can make a great game and something like interactive stuffs. But there are some problems as a programming language. I want the Scratch Team to improve such point of view and to improve Scratch itself.&lt;/p&gt;

&lt;p&gt;Here are the problems that I think of.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No version control system.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We can't use the version control system like Git and we can't use Git as such tool. I think, by dividing an actual code and a meta data, it should be able to manage on the Git.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No diff-like tool.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's no diff-like tool on Scratch. I don't have any idea right now, but if it was a programming language, everybody thinks that diff tool would be needed on Scratch. However, no.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I strongly feel that the Scratch is a great tool to make games or something like artistic works. In fact, my works that I tried to create makes so good.&lt;/p&gt;

&lt;p&gt;Even though there are some problems, I feel you to try to use it and you to try to make an artistic works and activities!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>scratch</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Kinx v1.0.3 Relaeased.</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Thu, 12 Aug 2021 10:20:05 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-v1-0-3-relaeased-4lde</link>
      <guid>https://dev.to/krayg/kinx-v1-0-3-relaeased-4lde</guid>
      <description>&lt;p&gt;Hello everyone!&lt;/p&gt;

&lt;p&gt;I published Kinx v1.0.3 as an official release. See &lt;a href="https://github.com/Kray-G/kinx/releases"&gt;Release Page&lt;/a&gt; for details or I put the history since v1.0.0 at the bottom of this article.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Any comments are welcome.&lt;br&gt;
And also I'll wait for a star on Github!&lt;/p&gt;

&lt;p&gt;See you!&lt;/p&gt;




&lt;h2&gt;
  
  
  Change Log
&lt;/h2&gt;

&lt;p&gt;Here is a change log since v1.0.0.&lt;/p&gt;

&lt;h3&gt;
  
  
  V1.0.3 (Officially Released) - 2021/08/10
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Improvements

&lt;ul&gt;
&lt;li&gt;  #308: Improvement of the stack usage.&lt;/li&gt;
&lt;li&gt;  Some feedbacks from V1.1.0.

&lt;ul&gt;
&lt;li&gt;  Supported putting a comma at the end of an argument's list for both declaration and calling.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Bug Fixed

&lt;ul&gt;
&lt;li&gt;  #302: Fixed a prblem of the string optimization.&lt;/li&gt;
&lt;li&gt;  #305: Fixed a prblem of no POPC in try.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  V1.0.2 (Officially Released) - 2021/05/21
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Bug Fixed

&lt;ul&gt;
&lt;li&gt;  #284: Fixed a segmentation fault problem on Linux.&lt;/li&gt;
&lt;li&gt;  #288: Incorrect message is displayed when &lt;code&gt;File.open&lt;/code&gt; failed.&lt;/li&gt;
&lt;li&gt;  #289: &lt;code&gt;File.setFiledate&lt;/code&gt; does not work correctly.&lt;/li&gt;
&lt;li&gt;  #293: Fixed a problem of a stack overflow with &lt;code&gt;=~&lt;/code&gt; or &lt;code&gt;!~&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  V1.0.1 (Officially Released) - 2021/04/22
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Improvements

&lt;ul&gt;
&lt;li&gt;  Improved type analysis for the language server.&lt;/li&gt;
&lt;li&gt;  Improved Array.keySet() for &lt;code&gt;Array&lt;/code&gt; itself.&lt;/li&gt;
&lt;li&gt;  #264: Supported to change directory.&lt;/li&gt;
&lt;li&gt;  #265: Supported &lt;code&gt;$pwd&lt;/code&gt; for getting a current directory.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;  Bug Fixed

&lt;ul&gt;
&lt;li&gt;  #235: Crash when using &lt;code&gt;_&lt;/code&gt; outside a function.&lt;/li&gt;
&lt;li&gt;  #236: Can't specify the class as a return type of function.&lt;/li&gt;
&lt;li&gt;  #237: Comparing between variables having a string is failed.&lt;/li&gt;
&lt;li&gt;  #256: Comparison operator will be failed with an integer on LHS and a variable(double) on RHS.&lt;/li&gt;
&lt;li&gt;  #257: Fails a destructuring assignment when declaration with const.&lt;/li&gt;
&lt;li&gt;  #258: There is a case that the bytecode is not outputted.&lt;/li&gt;
&lt;li&gt;  #267: Can't use a variable name using an upper case in debugger.&lt;/li&gt;
&lt;li&gt;  #269: Object item is removed by flatten().&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  V1.0.0 (Official Release) - 2021/03/16
&lt;/h3&gt;

&lt;p&gt;This is 1st official release version.&lt;/p&gt;

</description>
      <category>kinx</category>
      <category>javascript</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Kinx v1.0.1 and v1.0.2, Official Release Update!</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Tue, 25 May 2021 13:31:33 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-v1-0-1-and-v1-0-2-officially-update-release-4j93</link>
      <guid>https://dev.to/krayg/kinx-v1-0-1-and-v1-0-2-officially-update-release-4j93</guid>
      <description>&lt;p&gt;Hello everyone!&lt;/p&gt;

&lt;p&gt;I published Kinx v1.0.1 and v1.0.2 as an official release. See &lt;a href="https://github.com/Kray-G/kinx/releases"&gt;Release Page&lt;/a&gt; for detail.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are minor updates, but I will try to make it stable more and more.&lt;/p&gt;

&lt;p&gt;I hope you'll try this language and it is useful for you. Of course I will welcome any feedback.&lt;/p&gt;

&lt;p&gt;See you!&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>javascript</category>
      <category>kinx</category>
    </item>
    <item>
      <title>Kinx Library - JIT, Just In Time Compilation</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Thu, 18 Mar 2021 11:41:28 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-library-jit-pfj</link>
      <guid>https://dev.to/krayg/kinx-library-jit-pfj</guid>
      <description>&lt;p&gt;Hello, everybody!&lt;/p&gt;

&lt;p&gt;The script language &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt; was published as the version 1.0.0 &lt;a href="https://dev.to/krayg/kinx-v1-0-0-officially-released-5gfn"&gt;here&lt;/a&gt;. The concept is, &lt;em&gt;"Looks like JavaScript, feels like Ruby, and it is a script language fitting in C programmers."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But I realized there has been no article of JIT library in spite of a key feature, so I am going to post about JIT library.&lt;/p&gt;

&lt;p&gt;If you were interested in JIT in Kinx, please see the document of &lt;a href="https://github.com/Kray-G/kinx/blob/v1.0.0/docs/spec/lib/basic/jit.md"&gt;JIT Compiler&lt;/a&gt; and &lt;a href="https://github.com/Kray-G/kinx/blob/v1.0.0/docs/spec/definition/native.md"&gt;Native&lt;/a&gt; for details.&lt;/p&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;You can use JIT in Kinx for performance improvement. There are 2 ways to use JIT compilation below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;native&lt;/code&gt; keyword.&lt;/li&gt;
&lt;li&gt;Use an abstracted assembler library.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I introduced &lt;code&gt;native&lt;/code&gt; in some articles, for example, see &lt;a href="https://dev.to/krayg/mandelbrot-benchmark-1381"&gt;Mandelbrot benchmark&lt;/a&gt;. It is a good start point to improve performance, so I will start this article from trying it with &lt;code&gt;native&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  When Not Using JIT
&lt;/h1&gt;

&lt;p&gt;First of all, when it's the case without JIT, you will normally write the code below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is very simple. Now, this code will be modified to improve performance with JIT.&lt;/p&gt;

&lt;h1&gt;
  
  
  When Using JIT
&lt;/h1&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;native&lt;/code&gt; Keyword
&lt;/h2&gt;

&lt;p&gt;The first try is to replace &lt;code&gt;function&lt;/code&gt; by &lt;code&gt;native&lt;/code&gt;. The &lt;code&gt;native&lt;/code&gt; keyword is a keyword to compile it to the native code directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;native&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will generate an assemble code below on Windows. This is a little long because it's including a type check and exception check. The pros is to write it easily, but the cons is that it can generate a little redundant code and it with some limitations. The code is redundant but necessary.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nasm"&gt;&lt;code&gt;&lt;span class="nl"&gt;fib:&lt;/span&gt; &lt;span class="err"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;native&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;base&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mh"&gt;0x1b96340010&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
       &lt;span class="err"&gt;0:&lt;/span&gt;   &lt;span class="err"&gt;53&lt;/span&gt;                                          &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
       &lt;span class="err"&gt;1:&lt;/span&gt;   &lt;span class="err"&gt;56&lt;/span&gt;                                          &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
       &lt;span class="err"&gt;2:&lt;/span&gt;   &lt;span class="err"&gt;57&lt;/span&gt;                                          &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
       &lt;span class="err"&gt;3:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;57&lt;/span&gt;                                       &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
       &lt;span class="err"&gt;5:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;56&lt;/span&gt;                                       &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
       &lt;span class="err"&gt;7:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;55&lt;/span&gt;                                       &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
       &lt;span class="err"&gt;9:&lt;/span&gt;   &lt;span class="err"&gt;55&lt;/span&gt;                                          &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
       &lt;span class="nl"&gt;a:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;54&lt;/span&gt;                                       &lt;span class="nf"&gt;push&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
       &lt;span class="nl"&gt;c:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="nv"&gt;d9&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;
       &lt;span class="nl"&gt;f:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="nv"&gt;f2&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rdx&lt;/span&gt;
      &lt;span class="err"&gt;12:&lt;/span&gt;   &lt;span class="err"&gt;49&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="nv"&gt;f8&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;r8&lt;/span&gt;
      &lt;span class="err"&gt;15:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="nv"&gt;a8&lt;/span&gt; &lt;span class="nv"&gt;fd&lt;/span&gt; &lt;span class="nv"&gt;ff&lt;/span&gt; &lt;span class="nv"&gt;ff&lt;/span&gt;                     &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mh"&gt;0x258&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;ec&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;sub&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
      &lt;span class="err"&gt;24:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;46&lt;/span&gt; &lt;span class="mi"&gt;08&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="err"&gt;28:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;83&lt;/span&gt; &lt;span class="nf"&gt;c0&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;                                 &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x1&lt;/span&gt;
      &lt;span class="err"&gt;2&lt;/span&gt;&lt;span class="nl"&gt;c:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="err"&gt;46&lt;/span&gt; &lt;span class="err"&gt;08&lt;/span&gt;                                 &lt;span class="nf"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x8&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;
      &lt;span class="err"&gt;30:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;3&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;04&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                           &lt;span class="nv"&gt;cmp&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x400&lt;/span&gt;
      &lt;span class="err"&gt;36:&lt;/span&gt;   &lt;span class="err"&gt;72&lt;/span&gt; &lt;span class="err"&gt;2&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                       &lt;span class="nv"&gt;jb&lt;/span&gt; &lt;span class="mh"&gt;0x63&lt;/span&gt;
      &lt;span class="err"&gt;38:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                     &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="kt"&gt;qword&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rbx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mh"&gt;0x1&lt;/span&gt;
      &lt;span class="err"&gt;40:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt; &lt;span class="mi"&gt;06&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                     &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="kt"&gt;qword&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rbx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x28&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mh"&gt;0x6&lt;/span&gt;
      &lt;span class="err"&gt;48:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="nv"&gt;c0&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;
      &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nl"&gt;f:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;c4&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
      &lt;span class="err"&gt;56:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
      &lt;span class="err"&gt;58:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
      &lt;span class="err"&gt;59:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
      &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nl"&gt;b:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
      &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
      &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nl"&gt;f:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
      &lt;span class="err"&gt;60:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
      &lt;span class="err"&gt;61:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
      &lt;span class="err"&gt;62:&lt;/span&gt;   &lt;span class="nf"&gt;c3&lt;/span&gt;                                          &lt;span class="nv"&gt;ret&lt;/span&gt;
      &lt;span class="err"&gt;63:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;83&lt;/span&gt; &lt;span class="nf"&gt;be&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt;                     &lt;span class="nv"&gt;cmp&lt;/span&gt; &lt;span class="kt"&gt;qword&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x118&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mh"&gt;0x1&lt;/span&gt;
      &lt;span class="err"&gt;6&lt;/span&gt;&lt;span class="nl"&gt;b:&lt;/span&gt;   &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;85&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                           &lt;span class="nv"&gt;jnz&lt;/span&gt; &lt;span class="mh"&gt;0x1a1&lt;/span&gt;
      &lt;span class="err"&gt;71:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x18&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="err"&gt;75:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;89&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nv"&gt;r9&lt;/span&gt;
      &lt;span class="err"&gt;7&lt;/span&gt;&lt;span class="nl"&gt;a:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;74&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="err"&gt;7&lt;/span&gt;&lt;span class="nl"&gt;f:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;89&lt;/span&gt; &lt;span class="nv"&gt;f0&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
      &lt;span class="err"&gt;82:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;83&lt;/span&gt; &lt;span class="nf"&gt;f8&lt;/span&gt; &lt;span class="mi"&gt;03&lt;/span&gt;                                 &lt;span class="nv"&gt;cmp&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x3&lt;/span&gt;
      &lt;span class="err"&gt;86:&lt;/span&gt;   &lt;span class="err"&gt;7&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;jg&lt;/span&gt; &lt;span class="mh"&gt;0xa4&lt;/span&gt;
      &lt;span class="err"&gt;88:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;74&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;89&lt;/span&gt; &lt;span class="nv"&gt;f0&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
      &lt;span class="err"&gt;90:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;c4&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
      &lt;span class="err"&gt;97:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
      &lt;span class="err"&gt;99:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
      &lt;span class="err"&gt;9&lt;/span&gt;&lt;span class="nl"&gt;a:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
      &lt;span class="err"&gt;9&lt;/span&gt;&lt;span class="nl"&gt;c:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
      &lt;span class="err"&gt;9&lt;/span&gt;&lt;span class="nl"&gt;e:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
      &lt;span class="nl"&gt;a0:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
      &lt;span class="nl"&gt;a1:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
      &lt;span class="nl"&gt;a2:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
      &lt;span class="nl"&gt;a3:&lt;/span&gt;   &lt;span class="nf"&gt;c3&lt;/span&gt;                                          &lt;span class="nv"&gt;ret&lt;/span&gt;
      &lt;span class="nl"&gt;a4:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;74&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="nl"&gt;a9:&lt;/span&gt;   &lt;span class="err"&gt;49&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;46&lt;/span&gt; &lt;span class="nv"&gt;fe&lt;/span&gt;                                 &lt;span class="nv"&gt;lea&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;r14&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mh"&gt;0x2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="nl"&gt;ad:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="err"&gt;44&lt;/span&gt; &lt;span class="err"&gt;24&lt;/span&gt; &lt;span class="err"&gt;40&lt;/span&gt;                              &lt;span class="nf"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x40&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;
      &lt;span class="nl"&gt;b2:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="mi"&gt;84&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;         &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="kt"&gt;qword&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x140&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mh"&gt;0x1&lt;/span&gt;
      &lt;span class="nl"&gt;be:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="nl"&gt;c2:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;d8&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
      &lt;span class="nl"&gt;c5:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;08&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="nl"&gt;c9:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;89&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x30&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nv"&gt;r9&lt;/span&gt;
      &lt;span class="nl"&gt;ce:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;38&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x38&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;
      &lt;span class="nl"&gt;d3:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;54&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;                              &lt;span class="nv"&gt;lea&lt;/span&gt; &lt;span class="nb"&gt;rdx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x28&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="nl"&gt;d8:&lt;/span&gt;   &lt;span class="err"&gt;49&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;ca&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;
      &lt;span class="nl"&gt;db:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;c1&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;
      &lt;span class="nl"&gt;de:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="nf"&gt;ff&lt;/span&gt; &lt;span class="nv"&gt;d2&lt;/span&gt;                                    &lt;span class="nv"&gt;call&lt;/span&gt; &lt;span class="nv"&gt;r10&lt;/span&gt;
      &lt;span class="nl"&gt;e1:&lt;/span&gt;   &lt;span class="err"&gt;49&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;c6&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;
      &lt;span class="nl"&gt;e4:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rbx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="nl"&gt;e8:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;83&lt;/span&gt; &lt;span class="nf"&gt;f8&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                                 &lt;span class="nv"&gt;cmp&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;
      &lt;span class="nl"&gt;ec:&lt;/span&gt;   &lt;span class="err"&gt;74&lt;/span&gt; &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                       &lt;span class="nv"&gt;jz&lt;/span&gt; &lt;span class="mh"&gt;0x109&lt;/span&gt;
      &lt;span class="nl"&gt;ee:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="nv"&gt;c0&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;
      &lt;span class="nl"&gt;f5:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;c4&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
      &lt;span class="nl"&gt;fc:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
      &lt;span class="nl"&gt;fe:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
      &lt;span class="nl"&gt;ff:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
     &lt;span class="err"&gt;101:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
     &lt;span class="err"&gt;103:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
     &lt;span class="err"&gt;105:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
     &lt;span class="err"&gt;106:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
     &lt;span class="err"&gt;107:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
     &lt;span class="err"&gt;108:&lt;/span&gt;   &lt;span class="nf"&gt;c3&lt;/span&gt;                                          &lt;span class="nv"&gt;ret&lt;/span&gt;
     &lt;span class="err"&gt;109:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="err"&gt;10&lt;/span&gt;&lt;span class="nl"&gt;e:&lt;/span&gt;   &lt;span class="err"&gt;49&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt; &lt;span class="nv"&gt;ff&lt;/span&gt;                                 &lt;span class="nv"&gt;lea&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;r13&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mh"&gt;0x1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="err"&gt;112:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="err"&gt;44&lt;/span&gt; &lt;span class="err"&gt;24&lt;/span&gt; &lt;span class="err"&gt;40&lt;/span&gt;                              &lt;span class="nf"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x40&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;
     &lt;span class="err"&gt;117:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="mi"&gt;84&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;         &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="kt"&gt;qword&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x140&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mh"&gt;0x1&lt;/span&gt;
     &lt;span class="err"&gt;123:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="err"&gt;127:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;d8&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
     &lt;span class="err"&gt;12&lt;/span&gt;&lt;span class="nl"&gt;a:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;08&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsi&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x8&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="err"&gt;12&lt;/span&gt;&lt;span class="nl"&gt;e:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;89&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x30&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nv"&gt;r9&lt;/span&gt;
     &lt;span class="err"&gt;133:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;38&lt;/span&gt;                              &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x38&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;
     &lt;span class="err"&gt;138:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;54&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;                              &lt;span class="nv"&gt;lea&lt;/span&gt; &lt;span class="nb"&gt;rdx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x28&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="err"&gt;13&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="err"&gt;49&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;ca&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;
     &lt;span class="err"&gt;140:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;c1&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rcx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;
     &lt;span class="err"&gt;143:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="nf"&gt;ff&lt;/span&gt; &lt;span class="nv"&gt;d2&lt;/span&gt;                                    &lt;span class="nv"&gt;call&lt;/span&gt; &lt;span class="nv"&gt;r10&lt;/span&gt;
     &lt;span class="err"&gt;146:&lt;/span&gt;   &lt;span class="err"&gt;49&lt;/span&gt; &lt;span class="err"&gt;89&lt;/span&gt; &lt;span class="nf"&gt;c5&lt;/span&gt;                                    &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;
     &lt;span class="err"&gt;149:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;                                 &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rbx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="err"&gt;14&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;83&lt;/span&gt; &lt;span class="nf"&gt;f8&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                                 &lt;span class="nv"&gt;cmp&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;
     &lt;span class="err"&gt;151:&lt;/span&gt;   &lt;span class="err"&gt;74&lt;/span&gt; &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                       &lt;span class="nv"&gt;jz&lt;/span&gt; &lt;span class="mh"&gt;0x16e&lt;/span&gt;
     &lt;span class="err"&gt;153:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="nv"&gt;c0&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;
     &lt;span class="err"&gt;15&lt;/span&gt;&lt;span class="nl"&gt;a:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;c4&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
     &lt;span class="err"&gt;161:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
     &lt;span class="err"&gt;163:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
     &lt;span class="err"&gt;164:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
     &lt;span class="err"&gt;166:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
     &lt;span class="err"&gt;168:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
     &lt;span class="err"&gt;16&lt;/span&gt;&lt;span class="nl"&gt;a:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
     &lt;span class="err"&gt;16&lt;/span&gt;&lt;span class="nl"&gt;b:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
     &lt;span class="err"&gt;16&lt;/span&gt;&lt;span class="nl"&gt;c:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
     &lt;span class="err"&gt;16&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="nf"&gt;c3&lt;/span&gt;                                          &lt;span class="nv"&gt;ret&lt;/span&gt;
     &lt;span class="err"&gt;16&lt;/span&gt;&lt;span class="nl"&gt;e:&lt;/span&gt;   &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nv"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;04&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt;                                 &lt;span class="nv"&gt;lea&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;r14&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nv"&gt;r13&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
     &lt;span class="err"&gt;172:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;c4&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
     &lt;span class="err"&gt;179:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
     &lt;span class="err"&gt;17&lt;/span&gt;&lt;span class="nl"&gt;b:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
     &lt;span class="err"&gt;17&lt;/span&gt;&lt;span class="nl"&gt;c:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
     &lt;span class="err"&gt;17&lt;/span&gt;&lt;span class="nl"&gt;e:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
     &lt;span class="err"&gt;180:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
     &lt;span class="err"&gt;182:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
     &lt;span class="err"&gt;183:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
     &lt;span class="err"&gt;184:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
     &lt;span class="err"&gt;185:&lt;/span&gt;   &lt;span class="nf"&gt;c3&lt;/span&gt;                                          &lt;span class="nv"&gt;ret&lt;/span&gt;
     &lt;span class="err"&gt;186:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="nv"&gt;c0&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;
     &lt;span class="err"&gt;18&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;c4&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
     &lt;span class="err"&gt;194:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
     &lt;span class="err"&gt;196:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
     &lt;span class="err"&gt;197:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
     &lt;span class="err"&gt;199:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
     &lt;span class="err"&gt;19&lt;/span&gt;&lt;span class="nl"&gt;b:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
     &lt;span class="err"&gt;19&lt;/span&gt;&lt;span class="nl"&gt;d:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
     &lt;span class="err"&gt;19&lt;/span&gt;&lt;span class="nl"&gt;e:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
     &lt;span class="err"&gt;19&lt;/span&gt;&lt;span class="nl"&gt;f:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;a0:&lt;/span&gt;   &lt;span class="nf"&gt;c3&lt;/span&gt;                                          &lt;span class="nv"&gt;ret&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;a1:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt; &lt;span class="mi"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                     &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="kt"&gt;qword&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rbx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mh"&gt;0x1&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;a9:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="mi"&gt;43&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt; &lt;span class="mi"&gt;07&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                     &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="kt"&gt;qword&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;rbx&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mh"&gt;0x28&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="mh"&gt;0x7&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;b1:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="nf"&gt;c7&lt;/span&gt; &lt;span class="nv"&gt;c0&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;mov&lt;/span&gt; &lt;span class="nb"&gt;rax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;b8:&lt;/span&gt;   &lt;span class="err"&gt;48&lt;/span&gt; &lt;span class="err"&gt;81&lt;/span&gt; &lt;span class="nf"&gt;c4&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="mi"&gt;02&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;                        &lt;span class="nv"&gt;add&lt;/span&gt; &lt;span class="nb"&gt;rsp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x258&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;bf:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;c&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r12&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;c1:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbp&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;c2:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;d&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r13&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;c4:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r14&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;c6:&lt;/span&gt;   &lt;span class="err"&gt;41&lt;/span&gt; &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                       &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nv"&gt;r15&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;c8:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;f&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rdi&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;c9:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;e&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rsi&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;ca:&lt;/span&gt;   &lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nf"&gt;b&lt;/span&gt;                                          &lt;span class="nv"&gt;pop&lt;/span&gt; &lt;span class="nb"&gt;rbx&lt;/span&gt;
     &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nl"&gt;cb:&lt;/span&gt;   &lt;span class="nf"&gt;c3&lt;/span&gt;                                          &lt;span class="nv"&gt;ret&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Abstracted Assembler Library
&lt;/h2&gt;

&lt;p&gt;Kinx also has a JIT library to use an abstracted assembler.&lt;br&gt;
That library can be available with &lt;code&gt;using JIT&lt;/code&gt; at the head of source code.&lt;/p&gt;

&lt;p&gt;Let's use it like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Compiler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;entry1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;enter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;jump0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IMM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;l1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;label&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IMM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;entry1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mov&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IMM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;entry1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;jump0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;l1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see the assembled code by &lt;code&gt;code.dump()&lt;/code&gt;. Here it is.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       0:   53                                      push rbx
       1:   56                                      push rsi
       2:   57                                      push rdi
       3:   48 8b d9                                mov rbx, rcx
       6:   48 8b f2                                mov rsi, rdx
       9:   49 8b f8                                mov rdi, r8
       c:   4c 8b 4c 24 d0                          mov r9, [rsp-0x30]
      11:   48 83 ec 30                             sub rsp, 0x30
      15:   48 83 fb 03                             cmp rbx, 0x3
      19:   73 0b                                   jae 0x26
      1b:   48 89 d8                                mov rax, rbx
      1e:   48 83 c4 30                             add rsp, 0x30
      22:   5f                                      pop rdi
      23:   5e                                      pop rsi
      24:   5b                                      pop rbx
      25:   c3                                      ret
      26:   48 8d 43 fe                             lea rax, [rbx-0x2]
      2a:   48 89 c1                                mov rcx, rax
      2d:   e8 ce ff ff ff                          call 0x0
      32:   48 89 c6                                mov rsi, rax
      35:   48 8d 43 ff                             lea rax, [rbx-0x1]
      39:   48 89 c1                                mov rcx, rax
      3c:   e8 bf ff ff ff                          call 0x0
      41:   48 03 c6                                add rax, rsi
      44:   48 83 c4 30                             add rsp, 0x30
      48:   5f                                      pop rdi
      49:   5e                                      pop rsi
      4a:   5b                                      pop rbx
      4b:   c3                                      ret
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should be simpler than the &lt;code&gt;native&lt;/code&gt;. It is very obvious because it is as you write. There is no type check and no exception check. The pros is that it can generate a simple and high-performance code, but the cons is that you have to care for everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Put It All Together and Benchmark
&lt;/h2&gt;

&lt;p&gt;Let's put it all together and benchmark it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cm"&gt;/* ------------------------------------------------------------------------
    JIT
------------------------------------------------------------------------ */&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Compiler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;entry1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;enter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;jump0&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IMM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;l1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;label&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IMM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;entry1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mov&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IMM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;entry1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;S1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ret&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Jit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;R0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;jump0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;l1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;tmr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;SystemTimer&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tmr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;elapsed&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[elapsed:%8.3f] JIT lib  fib(%2d) = %d&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="cm"&gt;/* ------------------------------------------------------------------------
    native
------------------------------------------------------------------------ */&lt;/span&gt;
&lt;span class="nx"&gt;native&lt;/span&gt; &lt;span class="nx"&gt;fibn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;fibn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;fibn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;tmr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fibn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tmr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;elapsed&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[elapsed:%8.3f] native   fib(%2d) = %d&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="cm"&gt;/* ------------------------------------------------------------------------
    normal case
----------------------------------------------------------------------------- */&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;tmr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tmr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;elapsed&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[elapsed:%8.3f] function fib(%2d) = %d&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;elapsed&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is the result.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[elapsed:   0.074] JIT lib  fib(36) = 24157817
[elapsed:   0.158] native   fib(36) = 24157817
[elapsed:   2.472] function fib(36) = 24157817
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Comparison
&lt;/h2&gt;

&lt;p&gt;By the way, the result by &lt;code&gt;cl -O2&lt;/code&gt; without compilation time is below. And the result of &lt;a href="https://github.com/Kray-G/kcs"&gt;my C interpreter by x64 JIT compilation&lt;/a&gt; is also below. By this, I feel the result of the JIT lib is almost same as the case when adding a compilation time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[elapsed:   0.049] fib(36) = 24157817 // =&amp;gt; cl -O2
[elapsed:   0.094] fib(36) = 24157817 // =&amp;gt; kcs -j
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;native&lt;/code&gt; is very simple but there are some limitations. JIT Library will be very useful for some specific situation. You can see the document of &lt;a href="https://github.com/Kray-G/kinx/blob/v1.0.0/docs/spec/lib/basic/jit.md"&gt;JIT Compiler&lt;/a&gt; and &lt;a href="https://github.com/Kray-G/kinx/blob/v1.0.0/docs/spec/definition/native.md"&gt;Native&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;I hope you will find a use case to use this library and it helps you.&lt;/p&gt;

</description>
      <category>kinx</category>
      <category>ruby</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Kinx v1.0.0, Officially Released!</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Tue, 16 Mar 2021 11:54:17 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-v1-0-0-officially-released-5gfn</link>
      <guid>https://dev.to/krayg/kinx-v1-0-0-officially-released-5gfn</guid>
      <description>&lt;p&gt;Hi everyone!&lt;/p&gt;

&lt;p&gt;I released Kinx v1.0.0 officially! Please see &lt;a href="https://github.com/Kray-G/kinx/releases"&gt;Release Page&lt;/a&gt; of &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;The Kinx v1.0.0 is a 1st official release version including all features developed from the beginning of this project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the way, this is a top secret but the next goal is a syntax highlight on GitHub. It's so hard because I hear one of the criteria is that the Kinx is used in hundreds of repository...&lt;/p&gt;

&lt;p&gt;...I hope a little you will create a repository which using Kinx if possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small Description About Kinx
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Concept
&lt;/h3&gt;

&lt;p&gt;The concept is, &lt;strong&gt;"Looks like JavaScript, feels like Ruby, and it is a script language fitting in C programmers."&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Looks like JavaScript ... It provides C family syntax.&lt;/li&gt;
&lt;li&gt;Feels like Ruby ... Enjoy programming.&lt;/li&gt;
&lt;li&gt;Fitting in C programmers ... It is easy to use for many programmers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;"C programmers"&lt;/em&gt; in this context means &lt;em&gt;"almost all programmers."&lt;/em&gt; Because I think almost all programmers have used or known C language at least. And &lt;em&gt;"Providing C Like Syntax"&lt;/em&gt; as well also means &lt;em&gt;"friendly for almost all programmers."&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Features
&lt;/h3&gt;

&lt;p&gt;Mainly there are features below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Dynamic typing&lt;/strong&gt; and &lt;strong&gt;Object-Oriented programming&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Classes&lt;/strong&gt; and inheritance, &lt;strong&gt;Higher order functions&lt;/strong&gt;, &lt;strong&gt;Lexical scoping&lt;/strong&gt;, &lt;strong&gt;Closures&lt;/strong&gt;, &lt;strong&gt;Fiber&lt;/strong&gt;, &lt;strong&gt;Garbage Collection&lt;/strong&gt;, and so on.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Native function&lt;/strong&gt; by JIT compiling supported with some limitations. Very fast.&lt;/li&gt;
&lt;li&gt;  Useful libraries are provided as &lt;strong&gt;All-In-One&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Libraries
&lt;/h3&gt;

&lt;p&gt;Kinx is including useful libraries below in the standard package as &lt;strong&gt;All-In-One&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zip&lt;/strong&gt; ... Zip/Unzip with not only zip password but also AES password.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xml&lt;/strong&gt; ... Supporting XML as DOM structure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;libCurl&lt;/strong&gt; ... Only HTTP has been already implemented.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSH&lt;/strong&gt; ... SSH login and you can execute commands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Socket&lt;/strong&gt; ... Supporting a simple TCP/UDP socket.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iconv&lt;/strong&gt; ... Converting between text encodings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite3&lt;/strong&gt; ... Database class as a useful library wrapping SQLite3.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regular Expression&lt;/strong&gt; ... Regular expression is of course supported.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parser Combinator&lt;/strong&gt; ... Exactly original implementation of Parser Combinator named as &lt;code&gt;Parsek&lt;/code&gt; like &lt;code&gt;Parsec&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF&lt;/strong&gt; ... PDF core library based on HaruPDF.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JIT&lt;/strong&gt; ... JIT library for various platforms by an abstracted assembler library.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Installation
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Windows/Linux&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can download an installer from &lt;a href="https://github.com/Kray-G/kinx/releases"&gt;Releases&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scoop (for Windows)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Or you can also install it by &lt;a href="https://scoop.sh"&gt;scoop&lt;/a&gt;.&lt;br&gt;
Type the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# scoop bucket add is needed only at the first time.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;scoop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bucket&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;kinx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://github.com/Kray-G/kinx&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;scoop&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;kinx&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  How To Run
&lt;/h1&gt;

&lt;p&gt;After confirming the command path of &lt;code&gt;kinx&lt;/code&gt; or &lt;code&gt;kinx.exe&lt;/code&gt;, run your script as follows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# For Windows
$ kinx.exe [options] [&amp;lt;script-file&amp;gt;]

# For Linux
$ kinx [options] [&amp;lt;script-file&amp;gt;]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Specification
&lt;/h1&gt;

&lt;p&gt;Specification will be mostly completed so far for v1.0.0. Please look at this and try to use Kinx.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See &lt;a href="https://github.com/Kray-G/kinx/blob/v1.0.0/docs/index.md"&gt;Kinx Specification (v1.0.0)&lt;/a&gt; for details.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Examples
&lt;/h1&gt;

&lt;p&gt;There are a lot of examples in the document on the repository, but I will only show a small example in this section. Please see &lt;a href="https://github.com/Kray-G/kinx/blob/v1.0.0/docs/index.md"&gt;the document&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  hello, world.
&lt;/h2&gt;

&lt;p&gt;Here is the 1st script that everyone should write.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello, world.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Fibonacci
&lt;/h2&gt;

&lt;p&gt;You will think it seems to be a JavaScript.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fib(34) = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Fibonacci in &lt;code&gt;native&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Replacing &lt;code&gt;function&lt;/code&gt; by &lt;code&gt;native&lt;/code&gt;, that makes faster. Please try it now.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;native&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fib(34) = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;fib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Closure
&lt;/h2&gt;

&lt;p&gt;The function object has a lexical scope and you can use a closure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;newCounter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;          &lt;span class="c1"&gt;// a lexical variable.&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;// an anonymous function.&lt;/span&gt;
        &lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;            &lt;span class="c1"&gt;// a reference to a lexical variable.&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;c1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;newCounter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c1&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// 1&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c1&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// 2&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c1&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// 3&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c1&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// 4&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c1&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// 5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Lambda
&lt;/h2&gt;

&lt;p&gt;Anonymous function is easy to be written.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;func&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;func&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;add = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;_2&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sub = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;_2&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mul = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;_2&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;div = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;_2&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;span class="c1"&gt;// add = 12&lt;/span&gt;
&lt;span class="c1"&gt;// sub = 8&lt;/span&gt;
&lt;span class="c1"&gt;// mul = 20&lt;/span&gt;
&lt;span class="c1"&gt;// div = 5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Class
&lt;/h2&gt;

&lt;p&gt;Of course, a class is available.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;A&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;flag_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// a local private variable.&lt;/span&gt;
    &lt;span class="kr"&gt;public&lt;/span&gt; &lt;span class="nx"&gt;flagOn&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;flagOnActual&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="kr"&gt;public&lt;/span&gt; &lt;span class="nx"&gt;flagOnActual&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;flag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// a public variable.&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;A&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;flagOn&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;flag&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;false&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// =&amp;gt; true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Module
&lt;/h2&gt;

&lt;p&gt;Module can mixin into a class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt; &lt;span class="nx"&gt;M&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kr"&gt;public&lt;/span&gt; &lt;span class="nx"&gt;method1&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;This is a method1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;A&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;mixin&lt;/span&gt; &lt;span class="nx"&gt;M&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;A&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;method1&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;span class="c1"&gt;// =&amp;gt; This is a method1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Fiber
&lt;/h2&gt;

&lt;p&gt;You can use Fiber.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;fiber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Fiber&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fiber 1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;yield&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fiber 2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;main 1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;fiber&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resume&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;main 2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;fiber&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resume&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;main 3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// main 1&lt;/span&gt;
&lt;span class="c1"&gt;// fiber 1&lt;/span&gt;
&lt;span class="c1"&gt;// main 2&lt;/span&gt;
&lt;span class="c1"&gt;// fiber 2&lt;/span&gt;
&lt;span class="c1"&gt;// main 3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Spread/Rest Operator
&lt;/h2&gt;

&lt;p&gt;It was introduced by ES6 of JavaScript. I wanted it so much, and it is so useful. There's a lot of use cases, but here is a simple example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;a2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;a3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// a1 = 1&lt;/span&gt;
    &lt;span class="c1"&gt;// a2 = 2&lt;/span&gt;
    &lt;span class="c1"&gt;// a3 = [3, 4, 5]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;sample&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pattern Matching
&lt;/h2&gt;

&lt;p&gt;It supports an assignment by pattern matching. Of course it can be also used in declaration and a function argument.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;b = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;c = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;d = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;e = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;y = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// =&amp;gt; .y.b requires 300, but it is 3 in actual.&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// a = 1&lt;/span&gt;
&lt;span class="c1"&gt;// b = 2&lt;/span&gt;
&lt;span class="c1"&gt;// c = [4, 5, 6]&lt;/span&gt;
&lt;span class="c1"&gt;// d = 20&lt;/span&gt;
&lt;span class="c1"&gt;// e = 30&lt;/span&gt;
&lt;span class="c1"&gt;// x = 20&lt;/span&gt;
&lt;span class="c1"&gt;// y = {"a":30,"b":300}&lt;/span&gt;
&lt;span class="c1"&gt;// Uncaught exception: No one catch the exception.&lt;/span&gt;
&lt;span class="c1"&gt;// NoMatchingPatternException: Pattern not matched&lt;/span&gt;
&lt;span class="c1"&gt;// Stack Trace Information:&lt;/span&gt;
&lt;span class="c1"&gt;//         at &amp;lt;main-block&amp;gt;(test.kx:14)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pipeline Operator
&lt;/h2&gt;

&lt;p&gt;Pipeline operator is also supported.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;doubleSay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;%{str}, %{str}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toUpper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;doubleSay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)));&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; "Hello, hello!"&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;doubleSay&lt;/span&gt;
  &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt;
  &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; "Hello, hello!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Function Composition Operator
&lt;/h2&gt;

&lt;p&gt;You can also composite functions!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;double&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;increment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Normal case.&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;r1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;double&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;double&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;double&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))));&lt;/span&gt; &lt;span class="c1"&gt;// 42&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Function composition operator is higher priority than a pipeline operator.&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;r2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;double&lt;/span&gt; &lt;span class="o"&gt;+&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;double&lt;/span&gt; &lt;span class="o"&gt;+&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;increment&lt;/span&gt; &lt;span class="o"&gt;+&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;double&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// 42&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I finally release it officially, but of course there may be a bug or some unexpected behavior.&lt;/p&gt;

&lt;p&gt;If you try to use it, I am very appreciated. When you faced a problem, please let me know via &lt;a href="https://github.com/Kray-G/kinx/issues"&gt;Issues&lt;/a&gt; in the &lt;a href="https://github.com/Kray-G/kinx"&gt;repository&lt;/a&gt;. I will welcome any report.&lt;/p&gt;

&lt;p&gt;Again, please see &lt;a href="https://github.com/Kray-G/kinx/blob/v1.0.0/docs/index.md"&gt;Kinx specification&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;Many thanks.&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>javascript</category>
      <category>kinx</category>
    </item>
    <item>
      <title>Kinx v0.22.0 Preview Released</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Wed, 10 Mar 2021 13:38:38 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-v0-22-0-preview-released-33mn</link>
      <guid>https://dev.to/krayg/kinx-v0-22-0-preview-released-33mn</guid>
      <description>&lt;p&gt;Hello everybody!&lt;/p&gt;

&lt;p&gt;I published Kinx v0.22.0 preview release! Please see &lt;a href="https://github.com/Kray-G/kinx/releases"&gt;Release Page&lt;/a&gt; of &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;At the version 0.22.0 it newly supported a pipeline/composition operator and some functional methods.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are mainly 4 updates from v0.21.0.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/pipeline.md"&gt;Pipeline Operator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/function_composition.md"&gt;Function Composition Operator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/lib/basic/functional.md"&gt;Functional Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/lib/basic/clipboard.md"&gt;Clipboard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pipeline Operator
&lt;/h2&gt;

&lt;p&gt;This is based on the proposal of JavaScript. &lt;code&gt;a |&amp;gt; b&lt;/code&gt; means exactly same as &lt;code&gt;b(a)&lt;/code&gt;. In the same as that, &lt;code&gt;a &amp;lt;| b&lt;/code&gt; which means &lt;code&gt;a(b)&lt;/code&gt; is also available.&lt;/p&gt;

&lt;p&gt;Here is a simple example of pipeline.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;doubleSay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;%{str}, %{str}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toUpper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;doubleSay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)));&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; "Hello, hello!"&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;doubleSay&lt;/span&gt;
  &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt;
  &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; "Hello, hello!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Please see &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/pipeline.md"&gt;Pipeline Operator&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Function Composition Operator
&lt;/h2&gt;

&lt;p&gt;The functions can be composited as a new function. &lt;code&gt;a +&amp;gt; b&lt;/code&gt; means &lt;code&gt;{ =&amp;gt; b(a(_1)) }&lt;/code&gt;. And &lt;code&gt;a &amp;lt;+ b&lt;/code&gt; means &lt;code&gt;{ =&amp;gt; a(b(_1)) }&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Let me tell you something a little about the syntax for people who doesn't familiar with Kinx function syntax. &lt;code&gt;{ =&amp;gt; b(a(_1)) }&lt;/code&gt; means &lt;code&gt;function(arg) { return b(a(arg)); }&lt;/code&gt; in JavaScript like syntax. Yes, &lt;code&gt;_1&lt;/code&gt; is a first argument.&lt;/p&gt;

&lt;p&gt;Here is also a simple example of a function composition operator.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;doubleSay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;%{str}, %{str}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toUpper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;capitalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;doubleSay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)));&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; "Hello, hello!"&lt;/span&gt;

&lt;span class="c1"&gt;// Generates a new composed function.&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;doubleSayThenCapitalizeThenExclaim&lt;/span&gt;
   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;doubleSay&lt;/span&gt; &lt;span class="o"&gt;+&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;capitalize&lt;/span&gt; &lt;span class="o"&gt;+&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;exclaim&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;doubleSayThenCapitalizeThenExclaim&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// =&amp;gt; "Hello, hello!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Please see &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/function_composition.md"&gt;Function Composition Operator&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Functional Library
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;Functional&lt;/code&gt; is a global instance to deal with functional methods. In general, when you use a method of some object in pipeline, you should do it as a following example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;// ... and so on.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Functional&lt;/code&gt; instance will wrap the actual function object and pass it into the pipeline.&lt;/p&gt;

&lt;p&gt;For example, you can write it as follows against the example above.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Functional&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_1&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Functional&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="c1"&gt;// Note that it needs a `()` to use an actual function object&lt;/span&gt;
        &lt;span class="c1"&gt;// which receives an object at a first argument.&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;// ... and so on.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Enumerable&lt;/code&gt; is also useful in pipeline. The &lt;code&gt;Enumerable&lt;/code&gt; is not only as a &lt;code&gt;module&lt;/code&gt; but also a global instance having functional enumerable methods which is useful in &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/pipeline.md"&gt;a pipeline&lt;/a&gt;.&lt;br&gt;
For example, when multiple values are passed to the next function via pipeline, a method in &lt;code&gt;Enumerable&lt;/code&gt; can fetch a value one by one and pass the value to a next function in order.&lt;/p&gt;

&lt;p&gt;Therefore, &lt;code&gt;Enumerable&lt;/code&gt; can handle an infinite sequence. This is an example below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;..&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Functional&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;enumerable&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Enumerable&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;drop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Enumerable&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;_1&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Enumerable&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;take&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Enumerable&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toArray&lt;/span&gt;
    &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Functional.enumerable&lt;/code&gt; is a magic function to make a sequence change to an item which &lt;code&gt;Enumerable&lt;/code&gt; methods can use.&lt;/p&gt;

&lt;p&gt;Please see &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/lib/basic/functional.md"&gt;Functional&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clipboard
&lt;/h2&gt;

&lt;p&gt;Reading/Writing of clipboard is supported. Here is a simple usage of reading/writing of clipboard.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Clipboard&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;r&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;read&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Please see &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/lib/basic/clipboard.md"&gt;Clipboard&lt;/a&gt; for details.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I stopped implementing a new feature, and I am going to make Kinx become v1.0.0 soon. I am now working hard on the release!&lt;/p&gt;

&lt;p&gt;I hope you will be a user of &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Many thanks.&lt;/p&gt;

</description>
      <category>kinx</category>
      <category>ruby</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Kinx v0.21.0 Preview Released</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Tue, 16 Feb 2021 02:47:47 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-v0-21-0-preview-released-n2d</link>
      <guid>https://dev.to/krayg/kinx-v0-21-0-preview-released-n2d</guid>
      <description>&lt;p&gt;Hello everybody!&lt;/p&gt;

&lt;p&gt;I published Kinx v0.21.0 preview release! Please see &lt;a href="https://github.com/Kray-G/kinx/releases"&gt;Release Page&lt;/a&gt; of &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;At the version 0.21.0 it newly supported an assignment by a pattern matching, case-when, and switch-when syntax.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pattern Matching
&lt;/h2&gt;

&lt;p&gt;The pattern matching is very useful. For example, you can use it in a declaration like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;b = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;c = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;d = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;e = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;y = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// =&amp;gt; .y.b requires 300, but it is 3 in actual.&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At the last case, the right hand side is not matched by the pattern of the left hand side. Therefore you will see an exception of &lt;code&gt;NoMatchingPatternException&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a = 1
b = 2
c = [4, 5, 6]
d = 20
e = 30
x = 20
y = {"a":30,"b":300}
Uncaught exception: No one catch the exception.
NoMatchingPatternException: Pattern not matched
Stack Trace Information:
        at &amp;lt;main-block&amp;gt;(test.kx:14)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can use a same feature also at an assignment, an argument of a function, and case-when.&lt;/p&gt;

&lt;p&gt;Please look at the description for the related features as follows.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;declaration&lt;/strong&gt; ... &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/declaration.md"&gt;https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/declaration.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;assignment&lt;/strong&gt; ... &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/assign.md"&gt;https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/assign.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;function argument&lt;/strong&gt; ... &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/definition/function.md"&gt;https://github.com/Kray-G/kinx/blob/master/docs/spec/definition/function.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;case-when&lt;/strong&gt; ... &lt;a href="https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/case_when.md"&gt;https://github.com/Kray-G/kinx/blob/master/docs/spec/statement/expression/case_when.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Switch-When
&lt;/h2&gt;

&lt;p&gt;I thought I would like to make a &lt;code&gt;case-when&lt;/code&gt; being not fallthrough be substitute of a &lt;code&gt;switch-case&lt;/code&gt; being fallthrough.&lt;br&gt;
But there was a problem for the performance on it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;case-when&lt;/code&gt; has been designed that the condition is evaluated by a pattern matching. This means the order of evaluating a condition is sequential from the top.&lt;/li&gt;
&lt;li&gt;On the other hand, &lt;code&gt;switch-case&lt;/code&gt; is designed the order of evaluating a condition is not defined. This means, it will be translated to just a &lt;code&gt;if-else&lt;/code&gt;, or it will be translated to a binary search, or it will translated to a jump by table. In particular, a jump by table is important at the point of a performance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore I have introduced &lt;code&gt;switch-when&lt;/code&gt; instead of &lt;code&gt;switch-case&lt;/code&gt;. You can use a &lt;code&gt;when&lt;/code&gt; label instead of a &lt;code&gt;case&lt;/code&gt; label. If you use a &lt;code&gt;when&lt;/code&gt; label, the &lt;code&gt;break&lt;/code&gt; statement will be automatically inserted after the last statement of &lt;code&gt;when&lt;/code&gt; clause.&lt;/p&gt;

&lt;p&gt;Of course you can use an &lt;code&gt;else:&lt;/code&gt; label instead of a &lt;code&gt;default:&lt;/code&gt; label. An &lt;code&gt;else:&lt;/code&gt; label means a &lt;code&gt;default:&lt;/code&gt; with &lt;code&gt;break&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you want to use a fallthrough in &lt;code&gt;when&lt;/code&gt;, you can also use a &lt;code&gt;fallthrough&lt;/code&gt; keyword at the last statement in &lt;code&gt;when&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I sometimes received a reaction like &lt;em&gt;''Why did you select a fallthrough in switch-case?''&lt;/em&gt;, and &lt;em&gt;''It is a bad selection.''&lt;/em&gt; I believe &lt;code&gt;switch-when&lt;/code&gt; will be an answer for that. One of weakpoints in Kinx will be eliminated.&lt;/p&gt;

&lt;p&gt;I hope you will be a user of Kinx and try something with this language. I will welcome any feedback.&lt;/p&gt;

&lt;p&gt;See you!&lt;/p&gt;

</description>
      <category>kinx</category>
      <category>ruby</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Kinx v0.19.3 Preview Released</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Tue, 19 Jan 2021 12:57:01 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-preview-v0-19-3-released-3j35</link>
      <guid>https://dev.to/krayg/kinx-preview-v0-19-3-released-3j35</guid>
      <description>&lt;p&gt;Hello everybody!&lt;/p&gt;

&lt;p&gt;I published Kinx v0.19.3 preview release. It newly supported a Debugger. A Debugger manual is &lt;a href="https://kray-g.github.io/kinx/utility/debugger.html"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have some kind of interest on it and you want to try to use it, don't hesitate to use it.&lt;/p&gt;

&lt;p&gt;Thank you in advance.&lt;/p&gt;

&lt;p&gt;See you!&lt;/p&gt;

</description>
      <category>kinx</category>
      <category>javascript</category>
      <category>ruby</category>
      <category>debugger</category>
    </item>
    <item>
      <title>How to add a path to environment variable?</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Wed, 16 Dec 2020 06:06:12 +0000</pubDate>
      <link>https://dev.to/krayg/how-to-add-a-path-to-environment-variable-1j4l</link>
      <guid>https://dev.to/krayg/how-to-add-a-path-to-environment-variable-1j4l</guid>
      <description>&lt;p&gt;Hello, everyone.&lt;/p&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;How do you add/delete the path to/from &lt;code&gt;Path&lt;/code&gt; environment variable in your installer?&lt;/p&gt;

&lt;p&gt;In fact, I released the version 0.17.0 of &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt; and I implemented an installer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9karfxYM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Kray-G/kinx/raw/master/docs/InstallerWelcome.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9karfxYM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/Kray-G/kinx/raw/master/docs/InstallerWelcome.png" alt="Installer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But the path will &lt;strong&gt;NOT&lt;/strong&gt; be added to the environment variable.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;After wrote this article, I released v0.17.1 which automatically adds the path to the &lt;code&gt;Path&lt;/code&gt; environment variable. I did also write a test code for &lt;code&gt;addpath.exe&lt;/code&gt;, but I will be glad for you to review the source code anyway. Thanks in advance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I researched how to do it on the web, but I didn't find it as I want. I was searching it with...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple Source Code&lt;/li&gt;
&lt;li&gt;Easy to Use&lt;/li&gt;
&lt;li&gt;Useful License&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted to use it in the NSIS script, but there seems to be some problems in NSIS.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I created a simple program. Look at this.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Kray-G/addpath"&gt;https://github.com/Kray-G/addpath&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple Source Code ... &lt;strong&gt;Just one file&lt;/strong&gt; there!&lt;/li&gt;
&lt;li&gt;Easy to Use ... &lt;strong&gt;Simple command line interface&lt;/strong&gt; to use.&lt;/li&gt;
&lt;li&gt;Useful License ... That is &lt;strong&gt;MIT&lt;/strong&gt;! ...did set it by me, although.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  But...
&lt;/h1&gt;

&lt;p&gt;This program will modify the system environment, so I feel a little &lt;strong&gt;scared&lt;/strong&gt;. Therefore I want a lot of people to check the source code and I want to fix a problem if there is a problem.&lt;/p&gt;

&lt;p&gt;If you are interested in it or you have time, I will be very happy for you to look at the source code.&lt;/p&gt;

&lt;p&gt;And also, please let me know if you have any better solution for this problem.&lt;/p&gt;

&lt;p&gt;See you!&lt;/p&gt;

&lt;p&gt;P.S.&lt;br&gt;
If you feel good to &lt;a href="https://github.com/Kray-G/addpath"&gt;this&lt;/a&gt;, please push a star!&lt;/p&gt;

</description>
      <category>windows</category>
      <category>path</category>
      <category>installer</category>
    </item>
    <item>
      <title>How do you test your code?</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Thu, 10 Dec 2020 23:20:59 +0000</pubDate>
      <link>https://dev.to/krayg/how-do-you-test-your-code-3ml7</link>
      <guid>https://dev.to/krayg/how-do-you-test-your-code-3ml7</guid>
      <description>&lt;p&gt;Hello, everyone!&lt;/p&gt;

&lt;p&gt;I am sometimes tired to write a specification.&lt;br&gt;
I am also tired to write a test code.&lt;br&gt;
Don't you think so?&lt;/p&gt;

&lt;h1&gt;
  
  
  SpecTest
&lt;/h1&gt;

&lt;p&gt;That is why I setup a test system that I named &lt;strong&gt;SpecTest&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Look at the following site.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kray-g.github.io/kinx/"&gt;https://kray-g.github.io/kinx/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is published as a specification of my scripting language, but it will also become a test code as is.&lt;/p&gt;

&lt;p&gt;This means that to write a specification with &lt;strong&gt;examples&lt;/strong&gt; is that you can get a test code.&lt;/p&gt;

&lt;p&gt;In almost all cases, there are many examples when people write a document.&lt;br&gt;
SpecTest will test those examples as is.&lt;/p&gt;

&lt;h1&gt;
  
  
  What do you get?
&lt;/h1&gt;

&lt;p&gt;There are 2 good points for developpers.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reduce your cost for creating 2 different documents . All you have to do is to create just 1 document.&lt;/li&gt;
&lt;li&gt;You can check if your examples you write in a document is correct. Sometimes there is an example which does not work correctly in the world.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you think it is good, push a star on Github. It will make me happy. 😄&lt;/p&gt;

&lt;p&gt;And also any pull request, issue, or suggestion will be welcome anytime.&lt;/p&gt;

&lt;p&gt;Thanks for reading this article until the end.&lt;/p&gt;

&lt;p&gt;See you!&lt;/p&gt;

</description>
      <category>testing</category>
      <category>specification</category>
      <category>codequality</category>
    </item>
    <item>
      <title>Updates of KiTTy (Kinx Tiny Typesetting)</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Wed, 14 Oct 2020 00:56:53 +0000</pubDate>
      <link>https://dev.to/krayg/updates-of-kitty-kinx-tiny-typesetting-32jb</link>
      <guid>https://dev.to/krayg/updates-of-kitty-kinx-tiny-typesetting-32jb</guid>
      <description>&lt;p&gt;Hello everyone!&lt;/p&gt;

&lt;p&gt;This is an update of KiTTy. What is KiTTy?&lt;br&gt;
Before going to the main topic, let me start with the introduction as usual.&lt;/p&gt;

&lt;p&gt;The script language &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt; is published with the concept of &lt;strong&gt;Looks like JavaScript, Feels like Ruby, Stable like AC/DC(?)&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's start about KiTTy first.&lt;br&gt;
Yes, you are right, you don't know KiTTy.&lt;br&gt;
It is because I named it recently and I said it to nobody.&lt;/p&gt;

&lt;p&gt;That is &lt;code&gt;Kinx Tiny Typesetting&lt;/code&gt;. What is Kinx?&lt;br&gt;
Please visit to the above linked website, and you will see that.&lt;/p&gt;

&lt;p&gt;I believe you will find KiTTy as an update from &lt;a href="https://dev.to/krayg/what-kind-of-typesetting-system-do-you-want-48n8"&gt;Kinx Tiny Typesetting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is still working in progress.&lt;br&gt;
But I did work and I have got some good result.&lt;/p&gt;

&lt;p&gt;Here is an original Markdown document.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Kray-G/kinx/blob/master/examples/typesetting/KiTTy_en.md"&gt;https://github.com/Kray-G/kinx/blob/master/examples/typesetting/KiTTy_en.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When KiTTy has processed a typesetting for above Markdown document, you will get the PDF file below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Kray-G/kinx/raw/master/examples/typesetting/KiTTy_en.pdf"&gt;https://github.com/Kray-G/kinx/raw/master/examples/typesetting/KiTTy_en.pdf&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please visit to the &lt;a href="https://github.com/Kray-G/kinx/releases/tag/v0.15.2"&gt;Release Page&lt;/a&gt; to see the link to the KiTTy's User Guide generated by KiTTy. The above PDF is also the KiTTy's User Guide in English, though.&lt;/p&gt;

&lt;p&gt;If you feel it is good, please give me a star on GitHub 😄.&lt;/p&gt;

&lt;p&gt;P.S.&lt;br&gt;
By the way, I found a strange point... I have to fix it!&lt;/p&gt;

&lt;p&gt;By the way, the above pdf is generated by the latest commit of master.&lt;br&gt;
Note that there are some updates from the released version on it.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>ruby</category>
      <category>latex</category>
      <category>kinx</category>
    </item>
    <item>
      <title>Kinx Library - Getopt</title>
      <dc:creator>Kray-G</dc:creator>
      <pubDate>Thu, 24 Sep 2020 13:06:59 +0000</pubDate>
      <link>https://dev.to/krayg/kinx-library-getopt-55df</link>
      <guid>https://dev.to/krayg/kinx-library-getopt-55df</guid>
      <description>&lt;p&gt;Hello, everybody!&lt;/p&gt;

&lt;p&gt;The script language &lt;a href="https://github.com/Kray-G/kinx"&gt;Kinx&lt;/a&gt; is published with the concept of &lt;strong&gt;Looks like JavaScript, Feels like Ruby, Stable like AC/DC(?)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This time it is Getopt. It is simple but useful.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reference

&lt;ul&gt;
&lt;li&gt;First motivation ... &lt;a href="https://dev.to/krayg/kinx-as-a-script-language-4iko"&gt;The post of introduction&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Kinx, I wanted a scripting language with a syntax of C family.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Repository ... &lt;a href="https://github.com/Kray-G/kinx"&gt;&lt;/a&gt;&lt;a href="https://github.com/Kray-G/kinx"&gt;https://github.com/Kray-G/kinx&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;I am waiting for pull requests.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also use a long option style.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getopt - &lt;code&gt;System.getopt&lt;/code&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How to use
&lt;/h3&gt;

&lt;p&gt;Look at an example below. You put it in the while condition part, and specify the array of argument, the option string, and the object for long options. You can omit to specify the object for long options.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;check&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;opt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getopt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$$&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;a:df&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;d&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;help&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;do-check&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;               &lt;span class="c1"&gt;// Returns 'a' when a user specified '--add'.&lt;/span&gt;
        &lt;span class="nx"&gt;add&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arg&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;      &lt;span class="c1"&gt;// ':' means the option has an argument.&lt;/span&gt;
        &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;-a with "%{add}"&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;d&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;               &lt;span class="c1"&gt;// Returns 'd' when a user specified '--delete'.&lt;/span&gt;
        &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;-d&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;f&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;               &lt;span class="c1"&gt;// This means that a user specified '-f'.&lt;/span&gt;
        &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;-f&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;help&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;            &lt;span class="c1"&gt;// This means that a user specified '--help'.&lt;/span&gt;
        &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;--help&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;do-check&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;        &lt;span class="c1"&gt;// This means that a user specified '--do-check'&lt;/span&gt;
        &lt;span class="nx"&gt;check&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arg&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;// '=' means the option has an argument.&lt;/span&gt;
        &lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;--do-check with "%{check}"&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;-&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;               &lt;span class="c1"&gt;// This means that the argument is not an option.&lt;/span&gt;
        &lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;arg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Displaying arguments which is not an option.&lt;/span&gt;
&lt;span class="nx"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Program options: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;list&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Details for an option string.
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;If you specify the option with an argument but there is no argument to the option, ArgumentException will be raised.&lt;/li&gt;
&lt;li&gt;When it is an option without an argument, the options can be combine within one option like &lt;code&gt;-df&lt;/code&gt; instead of &lt;code&gt;-d -t&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;When it is an option with an argument, you can combine the option and the argument like &lt;code&gt;-aARG&lt;/code&gt;. This means it is same as &lt;code&gt;-a ARG&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;By above mechanism, you can write &lt;code&gt;-d -a ARG&lt;/code&gt; as either &lt;code&gt;-da ARG&lt;/code&gt; or &lt;code&gt;-daARG&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Details for a long option.
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;If you specified a long option with the option character of an option string, the argument style is following an option string parameter.&lt;/li&gt;
&lt;li&gt;If you specify the option with an argument but there is no argument to the option, ArgumentException will be raised.&lt;/li&gt;
&lt;li&gt;The argument for a long option is specified as the style of &lt;code&gt;--long-option=argument&lt;/code&gt;. When it is a long option, the empty argument is also acceptable. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Execute an example.
&lt;/h3&gt;

&lt;p&gt;Here is an example for some cases.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ./kinx examples/option.kx -d -a arg
-d
-a with "arg"
Program options: ["examples/option.kx"]

$ ./kinx examples/option.kx -da arg
-d
-a with "arg"
Program options: ["examples/option.kx"]

$ ./kinx examples/option.kx -daarg
-d
-a with "arg"
Program options: ["examples/option.kx"]

$ ./kinx examples/option.kx --help something
--help
Program options: ["examples/option.kx", "something"]

$ ./kinx examples/option.kx --do-check=
--do-check with ""
Program options: ["examples/option.kx"]

$ ./kinx examples/option.kx --do-check=abc
--do-check with "abc"
Program options: ["examples/option.kx"]

$ ./kinx examples/option.kx -a
Uncaught exception: No one catch the exception.
ArgumentException: Needs an argument for -a
Stack Trace Information:
        at &amp;lt;main-block&amp;gt;(examples/option.kx:2)

$ ./kinx examples/option.kx --unknown
Uncaught exception: No one catch the exception.
ArgumentException: Unknown option: --unknown
Stack Trace Information:
        at &amp;lt;main-block&amp;gt;(examples/option.kx:2)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;There are a lot of style for analyzing arguments, and &lt;code&gt;getopt&lt;/code&gt; has a long history. But &lt;code&gt;getopt&lt;/code&gt; is still active. I think it is easier to use by the point of view of &lt;strong&gt;Most fitting in C programmers&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To display a help, &lt;code&gt;boost::program_options&lt;/code&gt; is also useful. But &lt;code&gt;getopt&lt;/code&gt; is minimum but very simple and useful for almost all purpose. I might support more useful method in the future.&lt;/p&gt;

&lt;p&gt;See you next time.&lt;/p&gt;

</description>
      <category>kinx</category>
      <category>ruby</category>
      <category>javascript</category>
      <category>getopt</category>
    </item>
  </channel>
</rss>
