Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - vlad

Страницы: 1 2 3 [4] 5 6 ... 93
46
Добавил оптимизированный по скорости вариант, на больших файлах показывает прирост ~2.5 раза, исходник увеличился в 3 раза.
- буферизированные ввод/вывод (некрасиво, но быстро)
- модифицировал сам алгоритм - меньше байт читается/пишется
- заиспользовап boost - можно без него, но будет больше кода

https://github.com/valexey/bigbench/blob/master/vlad/fast/sort.cpp

47
Дык может сразу лучше finally как в жабе? Т.е. секцию в процедуре которая выполняется всегда при выходе из процедуры.

Да, finally лучше. Но если не трогать O7 совсем, то я все равно считаю, что множествнный RETURN решал бы больше проблем, чем создавал. Вирт его выпили скорее из желания по максимуму нагрузить грамматику, чтоб компилятор проще был.

48
Не, там прямо через веб-морду в браузере можно нажать на кнопку "New pull request". Без установки и запуска каких-либо приложений десктопных.

Я нажимал эту кнопку и не понял чего от меня хотели. Похоже я должен был сначаоа бранч сделать или ХЗ что еще. А у меня на руках был просто clone твоего репозитория.

49
Как Вы думаете, в каком случае проще упустить нужную зачистку(и не только)?

Допустим у нас O7. "Зачистки" не так актуальны, потому что 95% зачисток берет на себя GC. В 5% я согласен написать вложенный IF. Но GOTO лучше :) (можно с контролем, что только в конец процедуры, как раз для зачисток).

50
Там браузера кошерного совсем нема?
Так то конечно дам доступ.

Под виндой у них была страшная поделка на .net. Сомневаюсь, что на юбунте будет лучше.
Спасибо.

51
А через гитхаб-гуйню не вариант?

К меня старый еее PC с юбунтой. Может ты мне дашь доступ пушать?

53
Машина little-endian?
Да. Т.е. в самой исходной задаче (на которой базируется наша) это сказано не было, но по факту - да, little endian. Тем более что так просто найти машину с bigendian'ом не получится.

OK, т.е. можно сразу читать в 32-битный int.

Пулреквестом в этот репозиторий: https://github.com/valexey/bigbench

А как сделать pull request из CLI?

54
Зачем же Вы с плеча так рубите про труЪ Оберонщиков? Это ценится не только у них, но и, например, у людей, пишущих защищённый код. В таких задачах нередко возникает потребность в зачистке важных данных в уже неиспользуемых переменных https://www.securecoding.cert.org/confluence/display/c/MEM03-C.+Clear+sensitive+information+stored+in+reusable+resources. Угадайте, где больше шансов пропустить очистку.

Вы сами читали там по ссылке? :) Там постоянно упоминатеся некий /* Handle error */, а вот что там внутри очень интересно применительно к "структурности". Cудя по коду внутри там или goto (привет линукс-стайл) или какой-нибудь abort (аварийное завершение программы) или return :) Четвертого не дано, потому что оно крэшиться будет сразу после такого if'а :)

Это, конечно, лишь частный случай большой картины, но переубеждать не берусь, я за свободу религий.

Картина такая, что люди пытаются избежать многоуровневых if'ов. В разных языках по-разному. В С с помощью goto. В С++ RAII. В джавах/шарпах return/finally. И только в оберонах влолженные if'ы готовый считать чем-то хорошим, лишь бы не множественый return.

Цитировать
Во-вторых, я целый компилятор написал и так и не привык
Вы это серьёзно? А сколько до, во время и после написания транслятора Вы написали кода не так? Привычка подразумевает стабильность и отсутствие предубеждённости, естественно.

До компилятора тоже пытался пару недель соблюдать в рамках работы (C++). Убедился что не, херня получается.

55
mmap противоречит ограничению по памяти (весь файл нельзя мэпнуть).
Не противоречит. Нужна ведь не память, а адресное пространство.

Да. Ладно, пусть valexey прояснит. Но я подозреваю, что оно все равно быстро не будет. Если только в частном случае - когда памяти в ОС реально дофига (под файловый кэш), а задче искуственно выставлено ограничение в размере хипа.

56
Машина little-endian?
Куда класть исходник?

57
А что, файлы предполагаются многогигабватными? Ну, можно на вторую наминацию и не претендовать. А банальный mmap+qsort трудно будет переплюнуть.

mmap противоречит ограничению по памяти (весь файл нельзя мэпнуть).

58
Если не привыкать к обратному, то и не возникает желания писать неструктурно. В MISRA C есть похожие, но не доведённые до логического конца требования.

Во-первых, оно только у труЪ оберонщиков считается "неструктурно", за пределами оберон-сообщества никто не комплексует по поводу множественного RETURN.
Во-вторых, я целый компилятор написал и так и не привык. Будет еще одно расширение в ебероне.
В-третьих, единственный RETURN порождает объективную проблему - увеличивает вложенность кода, что крайне хреново сказывается на читабельности.

59
Да, а для таких ЯП и сред, как AO и BB нужно что-то придумать с автоматической сборкой консольных stand alone приложений (собственно там stdin/out и не нужны, программа тут ведь работает только с файлами).

Это само по себе задача покруче оригинальной :) Оберонщики не поймут. Хотя може Zorko смогет...

60
Общий раздел / Re: Your Language Sucks
« : Ноябрь 17, 2016, 01:28:16 am »
К сожалению на ней не упомянут Оберон. Считаю, что это упущение и нужно дополнить статью (благо это вики, так что, теоретически, это возможно).

Там даже паскаля нет ;)

Страницы: 1 2 3 [4] 5 6 ... 93