Последние сообщения

Страницы: [1] 2 3 ... 10
1
Общий раздел / Re: Расширенный тест на производительность.
« Последний ответ от kkkk Май 16, 2017, 09:38:10 am »
Какие выводы? Умение писать алгоритмы позволяет писать более эффективные решения, чем умение пользоваться стандартными библиотеками. В некоторых случаях сложность использования библиотек может быть на уровне или превышать сложность написания алгоритмов.
2
Общий раздел / Re: Расширенный тест на производительность.
« Последний ответ от Geniepro Май 12, 2017, 06:51:44 am »
Полгода прошло, какие выводы-то?
Сам я так и не осилил решение на Расте. Вроде на нём можно сделать вполне шустрый код, но выглядит он как говно, смотреть страшно, аж глаза кровоточат...
3
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 21, 2017, 05:50:36 am »
https://models.molpit.org/model/49

У тебя глобальный String перекрывается твоей собственной функцией String. Обратиться к глобальному можно так: JS.String.fromCharCode
Спасибо! Поправил. Буду бдителен на этот счет впредь.
4
Общий раздел / Re: OberonJS
« Последний ответ от vlad Март 20, 2017, 01:22:39 pm »
https://models.molpit.org/model/49

У тебя глобальный String перекрывается твоей собственной функцией String. Обратиться к глобальному можно так: JS.String.fromCharCode
5
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 10:43:51 am »
Приведи весь сгенеренный код или минимальный пример, где оно не работает.
Вот погляди.
https://models.molpit.org/model/49
6
Общий раздел / Re: OberonJS
« Последний ответ от vlad Март 20, 2017, 03:12:30 am »
Еще прошу поделиться опытом, как быть с динамическими объектами. Скажем, если мне надо создать массив под данные из файла.
NEW нельзя получается, массивы объявить тоже только по константе возможно.
Только статические типы получается? То есть заранее делать огномный буфер под предполагаемый размер?
Или есть какие-то варианты?

1. Eberon (я там сделал поддержку динамических массивов).
2. Системный модуль JS: Вызвать RTL$.makeArray c нужным размером.

Вообще если ты собрался что-то читать из файла, то тебе все равно без JS не обойтись. Там же в биндинге сделай и массив нужного размера.

По подводу "как с этим жить" тебе Info21 расскажет на oberoncore  8) По мне так никакого глубинного смысла в этом нет вообще - Вирт сэкономил в очередной раз на простоте компилятора при том, что динамические массивы ему все равно не нужны были для очередной задачи.
7
Общий раздел / Re: OberonJS
« Последний ответ от vlad Март 20, 2017, 03:04:16 am »
Firefox почему-то ругается
String.fromCharCode is not a function

Должно быть. Вот мозилловская документация: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

Приведи весь сгенеренный код или минимальный пример, где оно не работает.
8
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 02:26:24 am »
Еще прошу поделиться опытом, как быть с динамическими объектами. Скажем, если мне надо создать массив под данные из файла.
NEW нельзя получается, массивы объявить тоже только по константе возможно.
Только статические типы получается? То есть заранее делать огномный буфер под предполагаемый размер?
Или есть какие-то варианты?
9
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 02:24:40 am »
Модуль JS вместо SYSTEM. Но в твоем случае можно обойтись обычным обероном:
    result := b1 + LSL(b2, 8) + LSL(b3, 16) + LSL(b4, 24);
Спасибо, попдправил
PROCEDURE GetInt4(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
  RETURN ORD(a[pos]) + LSL(ORD(a[pos+1]), 8) + LSL(ORD(a[pos+2]), 16) + LSL(ORD(a[pos+3]), 24)
END GetInt4;

  PROCEDURE GetInt2(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
  RETURN ORD(a[pos]) + LSL(ORD(a[pos+1]), 8)
END GetInt2;
10
Общий раздел / Re: OberonJS
« Последний ответ от Ivan Denisov Март 20, 2017, 02:04:56 am »
Столкнулся с тем, что CHAR транслятор понимает как числа.

На это были причины. Для твоего случая надо просто сделать String.fromCharCode(arg)
Firefox почему-то ругается
String.fromCharCode is not a function
Страницы: [1] 2 3 ... 10