CEDAR Logic Simulator

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

bar
Senior
Posts: 185
Joined: 07 Aug 2006 17:18

Re: CEDAR Logic Simulator

Post by bar »

Shaos wrote:можно на обычный юниксовый MessageQueue переписать...
=)
Я никогда этой штукой не пользовался, и даже забыл про её существование. Но, да, она бы хорошо вписалась. Если, конечно, она существует в windows. Бегло погуглил -- есть какие-то сорцы датированные 2000'м годом, которые как заявлено реализуют message queue для Windows NT. Есть ещё boost::interprocess, который включает в себя кроссплатформенную реализацию очереди сообщений, которая на самом деле к POSIX message queue имеет весьма косвенное отношение, но в отзывах о boost::interprocess проскакивают фразы "pretty immature" и "hack around some missing features". Правда это относится к тому, что shared memory нельзя resize'ить, а файловый дескриптор message queue не засунуть в select: и то, и это никакого отношения к CEDAR'у не имеет.
Shaos wrote:а вообще мьютекс можно создать так, чтобы один и тот же тред мог его лочить много раз - я с этим сталкивался на экзотических операционках для телевизионных приставок...
Судя по-всему, именно такой мьютекс и используется в wxWidgets под вендовс.
Я поначалу думал, что просто wxGTK отличается иным control-flow, скажем wxYield иначе работает -- но так я думал лишь пока на стеке между двумя фреймами функций CEDAR лочащих мьютекс я всегда видел фрейм функции wxYield или ещё какой-нибудь wxФункции. Но когда я увидел ситуацию где между двумя локами на стеке лишь функции CEDAR, то есть управление было передано напрямую, без посредства wxWidgets (и GTK), я понял что дело нечисто.
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: CEDAR Logic Simulator

Post by Shaos »

Для windows есть ещё cygwin :)
Я собственноручно использовал Message Queue в 2003 году и собирал это под винду в cygwin...
P.S. Вроде бы POSIX message queue несколько отличается от чисто юниховых message queue и поэтому POSIX как-то для этого не используют...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16659
Joined: 21 Oct 2009 15:08
Location: Россия

Re: CEDAR Logic Simulator

Post by Lavr »

Lavr wrote:тут одни школяры забабахали в CEDAR LS
пресловутутю "Машину Мано"!
Вот чорт! :evil: И проект Машины Мано везде запропал... :(
Блин, даже не помню, успел я проект скачать, или не успел...
Cedar я на работе тестил... :-?
iLavr
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: CEDAR Logic Simulator

Post by Shaos »

мне надо архивы свои посмотреть - я вроде скачивал...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: CEDAR Logic Simulator

Post by Shaos »

Shaos wrote:мне надо архивы свои посмотреть - я вроде скачивал...
неа - не нашёл, значит не скачивал :(
Я тут за главного - если что шлите мыло на me собака shaos точка net
bar
Senior
Posts: 185
Joined: 07 Aug 2006 17:18

Re: CEDAR Logic Simulator

Post by bar »

bump.

Это я просто, чтобы вы не думали что я забыл про симулятор. =)
Я отвлёкся просто несколько. А сейчас вернулся к проекту, и что-то сразу пошёл спотыкаться по колдобинам: мне всё никак не придумать как лучше представлять схематику в памяти. Чтобы адресовать элементы геометрическими координатами, и при этом иметь возможность работать со схемой как с графом.

То есть дело не безнадёжно, но мысли о том как должно быть мне пока не удаётся причесать до состояния хотя бы издали напоминающее компилируемое. Пришлось даже забросить C++ и перейти к русскому языку. C++ явно не подходит для записи потока сознания.

Да, кстати, провёл небезынтересное исследование какие же существуют 2D алгоритмы для поиска коллизий между полигонами. Излагать в деталях не буду, но просто подметил такую штуку, что если в 3D варианте алгоритмы поиска коллизий излагаются в умных статьях, доступны исключительно в pdf формате, и в качестве языка изложения используют математический, то в случае с 2D, за редким исключением алгоритмы излагаются либо в псевдокоде либо даже на каком-нибудь C или Pascal'е, и нет ничего близкого к попытке обоснования работоспособности алгоритма. В общем и целом, я пришёл к выводу, что ничего проще и надёжнее, чем итерации по всем парам отрезков и проверки их на пересечение нету. Можно быстрее, можно более простым алгоритмом, но уже с потерей необходимых свойств алгоритма, иногда вплоть до полной неработоспособности, как в случае с идеей проверять каждую вершину одного объекта на предмет попадания в многоугольник другого объекта. То есть, если к поиску коллизий в 3D подход технологический (всякая там робототехника очень заинтересована), то в 2D, по-моему, никто кроме писателей маленьких аркадных игрушек не заинтересован. =)
User avatar
Shaos
Admin
Posts: 23892
Joined: 09 Jan 2003 06:22
Location: Silicon Valley
Contact:

Re: CEDAR Logic Simulator

Post by Shaos »

Копался в старых топиках форума, нашёл этот топик и решил поискать в интернете чего нового есть про этот самый "CEDAR Logic Simulator" - в результате нагуглил вот этот форк, причём даже с Z80 :o

https://github.com/amty/cedar-logic

Там даже кое-где в исходниках комментарии на русском :lol:

Code: Select all

> egrep -R "и|е" *
GUI/library.dtd:<!-- в point должен быть атрибутом, кроме того было бы, пожалуй правильно, 
GUI/library.dtd:     вкладывать внутрь offset'а ещё один shape. Или даже объединить shape с
GUI/library.dtd:     offset'ом во единую сущность, которая может содержать сама себя -->
GUI/unix-glmem.cpp:		GLX_DEPTH_SIZE, 16, /* нахера столько? */
GUI/MainApp.cpp:	timeStepMod = appSettings.timePerStep; /* если меня не гючит, то в
GUI/MainApp.cpp:						* оригинале, timeStepMod
GUI/MainApp.cpp:						* инициализировался
GUI/MainApp.cpp:						* исключительно в случае если
GUI/MainApp.cpp:						* settings.ini был не
GUI/MainApp.cpp:						* найден. Если это так, то
GUI/MainApp.cpp:						* скорее всего это был баг, но
GUI/MainApp.cpp:						* на всякий случай, я оставлю
GUI/MainApp.cpp:						* эту заметку. */
GUI/MainFrame.s:# переданы ключи: 
GUI/MainFrame.s:# активные ключи:  -falign-loops -fargument-alias
GUI/LibraryParse.cpp:			/* NB. В оригинальных сорцах, обрабатывался лишь
GUI/LibraryParse.cpp:			 * enable_input, enable_output просто не
GUI/LibraryParse.cpp:			 * учитывался.  */
GUI/LibraryParse.cpp:// 								// первый элемент внутри offset должен быть point'ом
GUI/LibraryParse.s:# переданы ключи: 
GUI/LibraryParse.s:# активные ключи:  -falign-loops -fargument-alias
tinyxml2/resources/utf8test.xml:    <Russian name="название(имя)" value="ценность">Мир имеет много языков</Russian>
tinyxml2/resources/utf8test.xml:    <Русский название="name" ценность="value">&lt;имеет&gt;</Русский>
tinyxml2/resources/utf8testverify.xml:    <Russian name="название(имя)" value="ценность">Мир имеет много языков</Russian>
tinyxml2/resources/utf8testverify.xml:    <Русский название="name" ценность="value">&lt;имеет&gt;</Русский>
Правда этот проект 13 лет не обновлялся...

P.S. Оппа, а этож наш юзер bar сделал в августе 2012 :o

P.P.S. Надо чтоли все эти сообщения касательно портирования "CEDAR Logic Simulator" перенести оттудава сюдава... перенёс
Я тут за главного - если что шлите мыло на me собака shaos точка net
Post Reply