Renha
stm32 bug stm STM32 CubeMX — офигенно крутое ПО, генерит проекты для используемого мной EWARM.

Однако, собака такая, неправильно — добавляет в сборку один лишний файл и не добавляет один нужный. Причём это не исправляется просто так, в итоге самое быстрое решение — после генерации перенести содержимое нужного файла в ненужный, благо название не роялит.

Хотел в STM зарепортить это, зашёл в онлайн саппорт, а оно мне такое:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
ndtimofeev
stm Haskell Внезапно осознал что не могу придумать красивую STM-транзакцию вычитывающую содержимое TChan'а до тех пор пока не вычитается нужное значение. Всё время упираюсь в то что в случае retry'а придётся перечитывать все значения заново. Пока думаю что лучше: забить болт или завести разные TChan'ы для разных подмножеств событий.
ndtimofeev
stm Haskell Насколько я понял, тред проваливший транзакцию выпадает из очереди до тех пор пока кто-то не перезапишет какую-то из переменных которые он в транзакции читает. Я правильно понимаю, что если определить MVar как newtype MVar a = MVar (TVar (Maybe a)) никаких преимуществ у встроенного MVar'а не будет?
qnikst
stm mvar ? Haskell как называется то свойство, что процессы лочащиеся на mvar получат его в том порядке, в котором они лочились? stm при том, что там оно не выполняется.
qnikst
stm Haskell а я не заметил когда TBChan окончательно в stm из stm-chans переехал, а ещё появились WeakTVar, а ещё newBroadCastTChan, в общем много годноты
Krin-San
hard stm programming Свершилось! Рабочий способ сбора данных с GPIO через DMA для камней STM32F1* от ST:
st.com

Долгим гуглением я пришёл примерно к этому же решению, НО зыбал убрать оптимизацию для буфера данных — в итоге у меня по UART приходила какая-то каша, где только первый байт был правильным ._.
Подошёл бы и volatile, но тут наткнулся на префикс _IO.
segfault
C stm ? Есть джва потока, первый слушает сообщения из сокета, у воторого структурка с которой он в цикле выполняет вычисления (сама структура не меняется, данные из нее используются для вычислений). Нужно организовать атомарное обновление этой структуры из первого потока (асинхронно, при приходе сообщения), так, чтобы не мешать второму потоку с ней работать. В хаскеле идеально решилось бы с STM.
Как ?
qnikst
stm ? Haskell а ни кто не подскажет как можно на stm сделать точку рандеву, т.е. чтобы 2 потока гарантировано обменялись данными
composability не нужно, т.к. оно не сильно реально в этом варианте. (Возможно это и просто я просто пока не начинал думать, просто
в статьях SPJ было описано, что данный шаблон в STM нормально не реализуется)
qnikst
stm ? Haskell а какие вы знаете хорошие способы делать безопасные STM транзакции, где нужно ещё и выполнить IO.
т.е. 1). stm проверка наличия объекта 2). io действие создающее объект 3). коммит в STM?
qnikst
stm Haskell есть какие-нибудь примеры правильного совмещения STM с IO, т.е. когда с полученными данными из STM нужно ещё делать какие-нибудь действия в IO, кроме haskell.org
qnikst
test stm ? Haskell кстати интересный вопрос про STM. насколько "горизонтально расширяемо" STM том в смысле если у меня есть N независимых секций (тредов взаимодействующих только друг с другом), то будет ли замедляться вся система в целом.
qnikst
stm Haskell а stm то не слишком большой overhead добавляет; так обычные bounded closable каналы в stm работают быстрее, чем io closable bounded queue, в котором 2 QSem и 1 лок.
а обычные каналы в IO ущербны по стравнению с STM чуть более, чем полностью. Для того, чтобы пользоваться ими в той же задаче или нужно предположить, что они
никогда не будут закрываться (что в общем-то уместно во многих задачах, но это криво), или оборачивать QSem-ами, что тоже сделает их менее производительными. Такие дела