Skip to content

Instantly share code, notes, and snippets.

View Eliah-Lakhin's full-sized avatar

Ilya Lakhin Eliah-Lakhin

View GitHub Profile
@Eliah-Lakhin
Eliah-Lakhin / script-system-design.md
Last active January 7, 2023 20:28
Черновик дизайна встраиваемого скриптового языка для Rust

Встраиваемый скриптовый языка для Rust

Компиляторы системных языков программирования, таких как C, С++, D, Rust, порождают ассемблерный код программы, приближенный к вычислительной модели самой системы, на которой выполняется ассемблер. Эти компиляторы способны статически глубоко анализировать исходный код программы, и создают исполняемые модули с минимальными накладными расходами по производительности в сравнении с не-системными языками программирования с более абстрактной вычислительной моделью. Например, в сравнении со скриптовыми языками вроде JavaScript и Python, или в сравнении с классическими JIT-компилируемыми языками, такими как Java и C#.

Системные языки программирования подходят для таких задач, в которых важна вычислительная производительность создаваемой программы. Практическим недостатком системных языков программирования, с точки зрения удобства разработки, является низкая скорость компиляции, поскольку глубокий статический анализ исходного кода это, как правило, ресурсозатратная задача.

К

@Eliah-Lakhin
Eliah-Lakhin / gist:9514b4798a2aed84615dbde807dbafa5
Created August 13, 2019 15:49
Waking up Tokio Blocking Thread attempt
#![feature(async_await)]
use std::error::Error;
use tokio::spawn;
use tokio::prelude::*;
use tokio::future::poll_fn;
use tokio_threadpool::blocking;
use tokio::sync::oneshot::{Sender, Receiver, channel};
#[tokio::main]
@Eliah-Lakhin
Eliah-Lakhin / deconstruct.scala
Last active August 29, 2015 14:00
Scala vs Erlang deconstruction
val (x, y) = (1, 2) // compiles, no errors in runtime
val a = (100, 200, 300)
val (z, w) = a // I doesn't throw an exception, it just will not compile, since the code syntactically incorrect.
// However Erlang/Elixir will compile it, but throw an exception in runtime.
@Eliah-Lakhin
Eliah-Lakhin / dirty-hack.js
Last active June 29, 2016 05:51
Dirty Hack to map Ctrl key to the F15 in the Google Chrome Secure Shell extension. So you can type "F15+c" instead "Ctrl+c".
/*
Copyright (C) 2014 Ilya Lakhin (Илья Александрович Лахин) eliah.lakhin [at] gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM