Перевод: пишем простой JIT на Rust


От переводчика
Обновление от 2015-12-05
Создание простого JIT на RustНа днях я набросал простенький Just-In-Time
Продолжить

Рейтинг:  8  (Против: 1 | За: 9)
Добавлено: 2.12.2015 от Oak

Комментарии (18)

Rust и Benchmarking


Оригинальный код бенчмарка на Java выглядел так:
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         int w = 25600;
  4.         int h = 2048;
  5.         int a[] = new int[w*h];
  6.         long stt = System.currentTimeMillis();
  7.         for (int i=0; i<w; i++)
  8.             for (int j=0; j<h; j++)
  9.                 a[i+w*j] = i*j;
  10.         System.out.println(System.currentTimeMillis()-stt);
  11.     }
  12. }
Казалось бы — что сложного просто перенести этот код на другой язык, тем более, что близкий по парадигме. Полный энтузиазма и решительности, я поставил Rust, Cargo и SolidOak (рекламирующую себя как Rust IDE, но на деле представляющую из себя просто NeoVim в окошке) и понял как сильно я ошибался.

Открыть спойлер

Продолжить

Рейтинг:  7  (Против: 0 | За: 7)
Добавлено: 9.11.2015 от Oak

Комментарии (13)

container_of подробно


https://annimon.com/code/?act=comm&id=4693 Поскольку возникли вопросы, как эта магия работает, разберём макрос подробнее.

task.png
Итак, есть задача: зная адрес вложенной структуры child (на рисунке выделен светло-зелёным оттенком, так я обозначаю известный адрес), нужно получить адрес структуры parent (выделено цветом, близким к оранжевому, неизвестный адрес), содержащей child. Можно было бы хранить указать на parent в child, но есть несколько проблем. Для примера были даны простейшие структуры, но в реальных задачах структуры могут содержать много элементов и хуже, если есть полный (или почти полный) граф указателей между ними, тогда можно запросто забыть проинициализировать указатель во вложенной структуре на структуру-контейнер, тем более когда вложенных структур
Продолжить

Рейтинг:  6  (Против: 0 | За: 6)
Добавлено: 5.11.2015 от Freddy

Комментарии (9)

Язык Go и зачем нужен был ещё один язык


Хочу рассказать вам об относительно новом языке Go. Также часто называемый Golang. Искать что-нибудь в интернете нужно искать с приставкой golang, иначе всякие сайты про CS:GO будут))

Ой. Ну короче. Языку Go - 5 лет. Молодой язык взял свое начало в недрах Google. Разработчики языка Си и Unix (Кен Томпсон) и Роб Пайк задумались, а каким должен быть хороший язык программирования. Здесь они решили, что язык будет компилируемый и главной фичей языка будет многопоточность и отдельный синтаксический сахар для потоков и каналов. Почему они так сделали? В текущих реалиях мощности компьютера увеличиваются а программы все еще работают в одном потоке. Нужно было это как-то исправить.

Об остальных фичах коротко - статическая типизация, сборщик мусора, упрощенный
Продолжить

Рейтинг:  2  (Против: 3 | За: 5)
Добавлено: 8.09.2015 от StarTek

Комментарии (18)

Stylus. Знакомство


Если вы frontend разработчик, увлекаетесь вёрсткой или просто посещаете наш форум, то наверняка слышали о препроцессорах CSS. Далее речь пойдёт о Stylus, который позиционирует себя как революционно новый язык, обеспечивающий эффективность, динамичность и элегантность вашего кода. Возможно, он не такой уж и революционный, но действительно несёт в себе интересные идеи.

Организовываем кухнюОгромное количество инструментов для фронтенда написано на Node.js, Stylus не исключение. Это открытый проект, так что вы можете собрать его из исходников, или установить из NPM:
  1. $ npm install stylus -g

Стили должны храниться в файлах
Продолжить

Рейтинг:  5  (Против: 1 | За: 6)
Добавлено: 25.08.2015 от Ксакеп

Комментарии (21)
Всего: 20
<< 1 2 3 4 >>

Мы в соцсетях

vk tw tg yt