OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 13 Ноябрь, 2018 01:09

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Понедельник, 13 Март, 2017 22:46 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Странно конечно... LLVM ведь.

Но меня больше интересует есть ли такая возможность:
Цитата:
A Flame About 64-bit Pointers

It is absolutely idiotic to have 64-bit pointers when I compile a program that uses less than 4 gigabytes of RAM. When such pointer values appear inside a struct, they not only waste half the memory, they effectively throw away half of the cache.

The gcc manpage advertises an option "-mlong32" that sounds like what I want. Namely, I think it would compile code for my x86-64 architecture, taking advantage of the extra registers etc., but it would also know that my program is going to live inside a 32-bit virtual address space.

Unfortunately, the -mlong32 option was introduced only for MIPS computers, years ago. Nobody has yet adopted such conventions for today's most popular architecture. Probably that happens because programs compiled with this convention will need to be loaded with a special version of libc.

Please, somebody, make that possible.

http://www-cs-faculty.stanford.edu/~uno/news08.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Вторник, 14 Март, 2017 01:23 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 722
Откуда: Киев
OCTAGRAM писал(а):
Вот целая Mac OS X с кучей родных программ, TGC объявлен устаревшим, и не надо париться, тормоза из-за TGC или нет.
...
Я считаю, что всё хорошее должно быть не в прошлом и не только для тех, кто думает different, а по умолчанию.
Как пользователь Mac Mini и iPad (извините, не знаю как там на Хакинтош) я, конечно, с превеликим удовольствием послушаю про лучшие решения в "лучшей в мире ОС" (с), но без особого сочувствия, потому что в работе с памятью у них всё далеко не так гладко, и я частенько восстанавливал живительным Reset работоспособность Мака, ушедшего в глубокий обмен данными с диском. Обновление на новые версии ОС мне заблокированы по одной очень банальной причине - памяти не хватает. Что же её так жрёт? Может быть .NET или Java? А нет, там решающий ВСЕ проблемы динамической памяти ARC.

Цитата:
Что касается YotaPhone, в статье приводятся результаты эксперимента, что для нормальной работы TGC нужно в 5 раз больше доступной памяти, чем задействовано.
Какой статье, какого эксперимента?
Цитата:
- Что, 300?
- А что приборы?

Я заинтересован в проверке концепций с помощью своего транслятора, это, определённо, полезно. Предложите, пожалуйста, не надуманную показательную задачу, воплощаемую за адекватное время (не более 4-8 часов). Я сделаю её на "безнадёжно испорченном" (с) Обероне, возможно, для нескольких менеджеров памяти, а Вы сделаете на самом лучшем, что найдёте. Затем сравним предметно, во сколько раз "хирургически точная программа" (с) окажется эффективней по памяти и скорости моей развалюхи.

Цитата:
При консервативном аллокаторе, как меня учили, из-за фрагментации требуется в два раза больше доступной памяти, чем задействовано, то есть, при одинаковых задачах программы с TGC будут работать быстрее, только если им дать в 2,5 раз больше RAM, чем аналогу на ARC.
Что-то мы поплыли куда-то не туда, куда-то на "юго-север" (с). Фрагментация возникает при любом способе освобождения, и скорее зависит от стратегии распределения и количества циклов выделения-освобождения. Таким образом, большей фрагментации с GC можно достичь при обильном производстве бесполезного мусора, о чём я уже упоминал, как главной проблеме Java, а не из-за наличия GC как такового.

Цитата:
Может быть, 2Гб хватает, чтобы залить ошибки разработчиков вычислительными ресурсами.
Давайте посмотрим на количество памяти на iPhone 7, на котором, как нам достоверно известно, всё сделано правильно - 2 Gb. Это что же получается, неужели они заливают ошибки разработчиков вычислительными ресурсами, или, может, iPhone работает 10 дней от одного заряда?
Цитата:
Пока что всё, что написано в статье, замечательно согласуется с наблюдениями.
А всё что замечательно не согласуется - игнорируем. Об этой проблеме я тоже уже писал. Никто не уникален - ни Вы, ни я. Только ежедневная борьба с самим собой и... тестовая задача.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Вторник, 14 Март, 2017 01:31 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 722
Откуда: Киев
Илья Ермаков писал(а):
Т.е. огромный оверхед по труду в масштабах всей экономики.
Облицовщики, конечно, довольны - всё время при работе.

Тут задействован куда более широкий закон. По большому счёту неважно, где именно будут накладные расходы по труду. И если их не будет в производстве WEB-интерфейсов, они обязательно будут в другом месте. И так будет до тех пор, пока мы не изменим социальный порядок. А пока мы будем усердно трудиться в производстве ненужных вещей для того, чтобы иметь возможность купить другие ненужные вещи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Вторник, 14 Март, 2017 12:36 

Зарегистрирован: Пятница, 13 Март, 2015 16:40
Сообщения: 228
prospero78 писал(а):
Похоже, коллега там из C# интерпретатор python вызывает.
> компилируется "ТестПривет" 24 0
Если кто из мамонтов ещё живой, то помнит, что под MS DOS на ассемблере эта программа занимала 29 байт!!!

За "мамонта" отдельное спасибо, вы сами такой, сударь… :)
29 байт + сколько там ещё из BIOSа… Его, BIOS, нынче как-то используют? ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Вторник, 14 Март, 2017 14:57 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1089
Илья Ермаков писал(а):
Первый раз вижу такую аббревиатуру, обычно просто reference counting. Это либо с ObjC повелось?

Ну да, просто reference counting. Automatic добавили потому, что в ObjC есть еще manual с явным выписыванием retain/release.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Вторник, 14 Март, 2017 16:15 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9033
Откуда: Россия, Орёл
Comdiv писал(а):
Тут задействован куда более широкий закон. По большому счёту неважно, где именно будут накладные расходы по труду. И если их не будет в производстве WEB-интерфейсов, они обязательно будут в другом месте. И так будет до тех пор, пока мы не изменим социальный порядок. А пока мы будем усердно трудиться в производстве ненужных вещей для того, чтобы иметь возможность купить другие ненужные вещи.


Ну дык про то и речь.
Просто в ИТ иллюстраций пруд пруди этому.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Среда, 14 Февраль, 2018 21:00 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 39
ilovb писал(а):
Так вот же идеальный инструмент для вас: https://www.rust-lang.org ...

А реально в BB, не трогая компилятор, разработать FFI (foreign function interface)? Например, чтобы вызывать код BB из JS, как это возможно в RUST.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Пятница, 16 Февраль, 2018 04:31 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9033
Откуда: Россия, Орёл
А чуть подробнее? Какой режим сосуществования процессов? Взаимодействия? Просто процедурный вызов аля DLL?
Или речь о каком-то более сильном склеивании?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Суббота, 17 Февраль, 2018 00:22 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 39
Илья Ермаков писал(а):
А чуть подробнее? Какой режим сосуществования процессов? Взаимодействия? Просто процедурный вызов аля DLL?
Или речь о каком-то более сильном склеивании?

Вопрос о возможности встраивания в код JS у меня возник, когда я прошёл по ссылке для Rust
https://doc.rust-lang.org/book/first-edition/ffi.html
- - -
"аля DLL" - можно было бы использовать уже существующие возможности в Node.js

Есть пример языка Idris, для которого можно транслировать код в JS, и это уже возможно и для ВВ. Но там же есть пример "склеивания" как пишите:
https://media.readthedocs.org/pdf/idris/v0.99/idris.pdf

Цитата:
CHAPTER 1. THE IDRIS TUTORIAL v0.99
Using the FFI
To write a useful application we need to communicate with the outside world. Maybe we want to
manipulate the DOM or send an Ajax request. For this task we can use the FFI. Since most JavaScript
APIs demand callbacks we need to extend the FFI so we can pass functions as arguments.
The JavaScript FFI works a little bit differently than the regular FFI. It uses positional arguments to
directly insert our arguments into a piece of JavaScript code.
One could use the primitive addition of JavaScript like so:
module Main
primPlus : Int -> Int -> IO Int
primPlus a b = mkForeign (FFun "%0 + %1" [FInt, FInt] FInt) a b
main : IO ()
main = do
a <- primPlus 1 1
b <- primPlus 1 2
print (a, b)
Notice that the %n notation qualifies the position of the n-th argument given to our foreign function
starting from 0. When you need a percent sign rather than a position simply use %% instead.
Passing functions to a foreign function is very similar. Let’s assume that we want to call the following

function from the JavaScript world:

function twice(f, x) {
return f(f(x));
}
We obviously need to pass a function f here (we can infer it from the way we use f in twice, it would
be more obvious if JavaScript had types).
The JavaScript FFI is able to understand functions as arguments when you give it something of type
FFunction. The following example code calls twice in JavaScript and returns the result to our Idris
program:
module Main
twice : (Int -> Int) -> Int -> IO Int
twice f x = mkForeign (
FFun "twice(%0,%1)" [FFunction FInt FInt, FInt] FInt
) f x
main : IO ()
main = do
a <- twice (+1) 1
print a
The program outputs 3, just like we expected.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Воскресенье, 18 Февраль, 2018 07:30 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 528
arlean1 писал(а):
.....

как некий пример и отправная точка:
Diss. ETH No. 15022
Using Oberon’s Active Objects for Language Interoperability and Compilation
A dissertation submitted to the
SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH
(ETH ZUЁRICH)


Вложения:
eth-26497-02.pdf [746.64 КБ]
Скачиваний: 72
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Modula-2+
СообщениеДобавлено: Воскресенье, 18 Февраль, 2018 12:24 

Зарегистрирован: Среда, 31 Январь, 2018 19:54
Сообщения: 39
Kemet писал(а):
как некий пример и отправная точка ...

Спасибо, очень интересно и познавательно для меня.

Там ещё был эпиграф к Introduction:
"Улучшение найдёт только тот, кто знает что что-то недостаточно хорошо".
Фридрих Ницше


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 51 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB