Pharo 5.0 Released!

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
46 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: Pharo 5.0 Released!

Denis Kudriashov

27 октября 2016 г., 10:20 пользователь Denis Kudriashov <[hidden email]> написал:
Ладно, это всё детали. А что мне очень не понравилось, так это то, что через некоторое время рухнула VM, а я от подобного давно отвык.

А есть ли crash.dmp?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Pharo 5.0 Released!

vvm13xyz xyz
Винда-10 (x64), тот компьютер сегодня вне пределов досягаемости.

On Thursday, October 27, 2016 at 1:32:12 PM UTC+5, Denis Kudriashov wrote:

27 октября 2016 г., 10:20 пользователь Denis Kudriashov <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="NKl87wHMBwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">dioni...@...> написал:
Ладно, это всё детали. А что мне очень не понравилось, так это то, что через некоторое время рухнула VM, а я от подобного давно отвык.

А есть ли crash.dmp?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Pharo 5.0 Released!

vvm13xyz xyz
In reply to this post by Denis Kudriashov
Не, ну, в Smalltalk'е я обычно ожидаю, что параметр - это параметр, а значение - это значение. Правда, я догадался, как и почему было сделано так, как сделано, но всё-таки это не Smalltalk, а хакинг байт-кода, который было бы желательно описывать в документации. Но, правда, та pdf-ка, которой я пользовался в качестве документации, не была дописана.

А VM у меня рухнула не прямо во время экспериментов с FFI, а минутами позже. Что, конечно, не отменяет полностью эту связь.

On Thursday, October 27, 2016 at 1:20:38 PM UTC+5, Denis Kudriashov wrote:

27 октября 2016 г., 8:54 пользователь Victor Metelitsa <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="oWbNJmDLBwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">vvm...@...> написал:
Покопался немного в том FFI, что есть, выполнил самые простые примеры "из книжки" - с clock, abs и getEnv. Третья функция, getEnv, не заработала - типа, в msvcrt.dll такой функции нет.

В принципе, синтаксис мне понравился, хотя не совсем smalltalk'чьий. Ну, в смысле, как это Symbol в массиве-литерале и переменная с таким именем оказываются одним и тем же? и с именем модуля странность - кешируется.

Но это именно смолтоковский синтаксис, ничего более. Сравните с синтаксисом примитивов/прагм.
И что важно, такой подход позволяет использовать ситное объявление функции как есть (в большинстве случаев), либо с минимальным изменением. 
 
Ну, надо думать, что во время выполнения происходит однократный хак байткода метода.

Да, при первом исполнении генерируется стандартный примитивный "FFI-метод". При этом аргументы метода, переменные экземпляра, self (его тоже можно использовать) связываются с объявленными переменными в FFI-вызове. Эта логика на стороне смолтолка, что позволяет "легко" расширять данный механизм без изменения компилятора или виртуалки.
 

Ладно, это всё детали. А что мне очень не понравилось, так это то, что через некоторое время рухнула VM, а я от подобного давно отвык. "Ничего такого" не делал, с указателями в явном виде не работал (abs и clock работают с числами, а getEnv нет). Ещё пробовал обратиться к несуществующий DLL - такая ситуация тоже не должна была быть опасной.

Это странно, проблемы ожидаемы при сильном использовании callback-ов, поскольку после их поддержки виртуалкой никто их реально не юзал. Сейчас это изменилось, они начали активно использовать в Pharo, так что ошибки постепенно будут исправляться.
Я так понимаю, вы Pharo 5 тестируете? Какая OS?
Попробуйте обновить виртулку. В пятой версии еще было разделение PharoVM и основой VM от Eric Miranda. Сейчас все перешли на git. И код виртуалкок один и тот же. Многие баги VM из Pharo5 уже исчезли, например, ввод некоторых русских заглавных.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Pharo 5.0 Released!

Denis Kudriashov

27 октября 2016 г., 11:02 пользователь Victor Metelitsa <[hidden email]> написал:
Правда, я догадался, как и почему было сделано так, как сделано, но всё-таки это не Smalltalk, а хакинг байт-кода

Все таки не могу не возразить:). В итоге, код выполняемся по правилам синтаксиса смолтолка - ничего кроме этого, никакой магии. Иначе можно было бы сказать, что любое метапрограммирование в смолтолке - это уже не смолтолк, а хакинг.  
А вот например, если взглянуть на вызов FFI как примитива, то вот здесь уже точно семантика смолтолка кончается. Куча странных ключевых слов типа apicall, cdecl, __threaded (в VW).
В текущем варианте вы можете продебажить первичный вызов и увидеть конкретно, что за всем этим скрывается.  А скрывается очень простая логика: создается экземпляр ExternalFunction с определенными свойствами. Вы можете тоже самое проделать в workspace и вызвать внешнюю функцию без какого-либо FFI синтаксиса. С примитивами в принципе не было возможности проинспектировать систему до такого уровня. А это, на мой взгляд, главная фишка смолтолка.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Pharo 5.0 Released!

vvm13xyz xyz
Не могу согласится. В синтаксисе ST нет такого, чтобы переменная и имя переменной в литерале были как-то связаны.

On Thursday, October 27, 2016 at 4:29:35 PM UTC+5, Denis Kudriashov wrote:

27 октября 2016 г., 11:02 пользователь Victor Metelitsa <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="z-Ry3a_VBwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">vvm...@...> написал:
Правда, я догадался, как и почему было сделано так, как сделано, но всё-таки это не Smalltalk, а хакинг байт-кода

Все таки не могу не возразить:). В итоге, код выполняемся по правилам синтаксиса смолтолка - ничего кроме этого, никакой магии. Иначе можно было бы сказать, что любое метапрограммирование в смолтолке - это уже не смолтолк, а хакинг.  
А вот например, если взглянуть на вызов FFI как примитива, то вот здесь уже точно семантика смолтолка кончается. Куча странных ключевых слов типа apicall, cdecl, __threaded (в VW).
В текущем варианте вы можете продебажить первичный вызов и увидеть конкретно, что за всем этим скрывается.  А скрывается очень простая логика: создается экземпляр ExternalFunction с определенными свойствами. Вы можете тоже самое проделать в workspace и вызвать внешнюю функцию без какого-либо FFI синтаксиса. С примитивами в принципе не было возможности проинспектировать систему до такого уровня. А это, на мой взгляд, главная фишка смолтолка.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Pharo 5.0 Released!

Denis Kudriashov

28 октября 2016 г., 12:50 пользователь Victor Metelitsa <[hidden email]> написал:
Не могу согласится. В синтаксисе ST нет такого, чтобы переменная и имя переменной в литерале были как-то связаны.

Они и не связаны синтаксически. Метапрограммирование позволяет получить имя и его использовать. И все это в рамках смолтолк синтаксиса

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
123