Автор Тема: Чем Вирту WITH не угодил?  (Прочитано 85764 раз)

DIzer

  • Гость
Re: Чем Вирту WITH не угодил?
« Ответ #225 : Май 08, 2012, 04:53:18 am »
2 ilovb Коль скоро занимаетесь "ворошением дерьма" - т разумно будет создать ветку "Известные недостатки реализаций Обероно подобных систем" - и закрепив ее в шапке форума копипастить туда примеры с комментариями... :( крайне полезно для новичков попавших под действие коровьей пропаганды... да и зарвавшихся ушлых коровят макать мордой туда  можно будет...

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Чем Вирту WITH не угодил?
« Ответ #226 : Май 08, 2012, 05:10:07 pm »
2 ilovb Коль скоро занимаетесь "ворошением дерьма" - т разумно будет создать ветку "Известные недостатки реализаций Обероно подобных систем" - и закрепив ее в шапке форума копипастить туда примеры с комментариями... :( крайне полезно для новичков попавших под действие коровьей пропаганды... да и зарвавшихся ушлых коровят макать мордой туда  можно будет...

Че ж так злобно-то? :) Просто "мифы и факты". Обрисовать границы пресловутой герметичности типов и ограничения дизайна известных оберон систем (почему они такие простые, а виндовс/линукс такие сложные). Без фанатизму :)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Чем Вирту WITH не угодил?
« Ответ #227 : Май 08, 2012, 07:38:31 pm »
Продублирую ценный пост:
Цитата: Peter Almazov
Вы почитайте диссертацию Шиперски, там есть вещи и похуже. Например, в операторе WITH есть дефект. Там не гарантируется сохранность указателя, у которого уже определили тип, внутри тела WITH. Стр. 210:
...

Ссылка на диссертацию:
http://research.microsoft.com/en-us/um/people/cszypers/books/Insight-EthOS.pdf

DIzer

  • Гость
Re: Чем Вирту WITH не угодил?
« Ответ #228 : Май 09, 2012, 07:02:22 am »
2 ilovb Коль скоро занимаетесь "ворошением дерьма" - т разумно будет создать ветку "Известные недостатки реализаций Обероно подобных систем" - и закрепив ее в шапке форума копипастить туда примеры с комментариями... :( крайне полезно для новичков попавших под действие коровьей пропаганды... да и зарвавшихся ушлых коровят макать мордой туда  можно будет...

Че ж так злобно-то? :) Просто "мифы и факты". Обрисовать границы пресловутой герметичности типов и ограничения дизайна известных оберон систем (почему они такие простые, а виндовс/линукс такие сложные). Без фанатизму :)
В смысле ? злобное название? - с моей точки зрения -"Известные недостатки реализаций Обероно подобных систем" по делу а "мифы и факты" - это "творчество" со всеми возможными последствиями...
Насчет коровят - "есть такая буква" суть претензий
1. СОЗНАТЕЛЬНОЕ извращение сути оригинальных источников.
2. Попытки манипулирования сознанием "неофитов" с использованием заведомо ложных (и им известных) аргументов и этически-недопустимых  методов.
3. Неадекватность коровят (пример - ВСЕ сообщения Ильи и других функционеров-коровцев на ЭТОМ форуме - на замечания - уход в сторону, и сообщения в стиле "срал, сру и буду срать" - в коровнике ответ один - эцилоп Темиргалеев ). Вы считаете что они не заслужили подобного ответа?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Чем Вирту WITH не угодил?
« Ответ #229 : Май 09, 2012, 04:15:17 pm »
Насчет коровят - "есть такая буква" суть претензий
1. СОЗНАТЕЛЬНОЕ извращение сути оригинальных источников.

Ну это из серии "я так вижу". С этим ничего не сделаешь и это всегда так будет.

2. Попытки манипулирования сознанием "неофитов" с использованием заведомо ложных (и им известных) аргументов и этически-недопустимых  методов.

Это да, коробит. Если "не говорить правду до конца" я могу списать на педагогические соображения, то вранье - не может быть оправдано.

3. Неадекватность коровят (пример - ВСЕ сообщения Ильи и других функционеров-коровцев на ЭТОМ форуме - на замечания - уход в сторону, и сообщения в стиле "срал, сру и буду срать" - в коровнике ответ один - эцилоп Темиргалеев ).

Илья самый адекватный оппонент "с той стороны" и я рад, что он навещает нас на нашем форуме. При том, что я с ним, как правило, не согласен :) Причем он имеет непосредственное отношение к производству ПО и с ним можно обсуждать технические вопросы. Эдакая противоположность info21, который не имеет отношения к производству и с которым нельзя ничего обсудить (даже при нормальном модерировании). И, кстати, Илья более чем спокойно реагирует на эмоциональные нападки.

Вы считаете что они не заслужили подобного ответа?

Я считаю, что все бурные эмоции со срывом масок alexus'а и т.п. (которые я очень даже понимаю) можно уже было выплеснуть и использовать форум для чего-то более конструктивного. Благо теперь есть альтернативная площадка для людей, которым интересно критически посмотреть на современное программирование - без какой-то генеральной линии партии.
Я бы не хотел делить людей на "оттуда" и "отсюда", даже если сюда придет сам Темиргалеев :) Здесь другой форум, другой формат общения, а не только прямая оппозиция "тому" форуму и сведение счетов.

DIzer

  • Гость
Re: Чем Вирту WITH не угодил?
« Ответ #230 : Май 10, 2012, 06:06:00 am »

Ну это из серии "я так вижу". С этим ничего не сделаешь и это всегда так будет.

 Это из серии - "нех мочиться в бочку из которой пьешь" - Откуда вы думаете в основном  берутся "умные" книги на которые любите ссылаться - как обобщение исследовательских статей... а их пишут в общем то обычные люди, которые могут ошибаться и ошибаются...многие жалеют об ошибках- но, как говориться, что написано пером - трудно вырубить топором... Но глумиться над работами, так как это делают в коровнике... ИМХО слишком жестоко по отношению к авторам.(хотя я не высокого мнения о творениях команды Вирта).
]
Илья самый адекватный оппонент "с той стороны" и я рад, что он навещает нас на нашем форуме. При том, что я с ним, как правило, не согласен :) Причем он имеет непосредственное отношение к производству ПО и с ним можно обсуждать технические вопросы. Эдакая противоположность info21, который не имеет отношения к производству и с которым нельзя ничего обсудить (даже при нормальном модерировании). И, кстати, Илья более чем спокойно реагирует на эмоциональные нападки.
офигеть , какое достижение - впрочем, если сравнивать с Темиргалеевым....И действительно по сравнению с Инфо21 - небо и земля, последний не смотря на свою мезантропичность, умеет связать вместе пару предложений... и единственный кто в коровнике делает что то для развития ББ- в рамках своего видения. А насчет отношения к  производству... - тем больше я слушаю Илью , тем больше сомневаюсь в этом.. как и в других вещах им же самодекларируемых..
Я считаю, что все бурные эмоции со срывом масок alexus'а и т.п. (которые я очень даже понимаю) можно уже было выплеснуть и использовать форум для чего-то более конструктивного. Благо теперь есть альтернативная площадка для людей, которым интересно критически посмотреть на современное программирование - без какой-то генеральной линии партии.
Я бы не хотел делить людей на "оттуда" и "отсюда", даже если сюда придет сам Темиргалеев :) Здесь другой форум, другой формат общения, а не только прямая оппозиция "тому" форуму и сведение счетов.
Это не ответ на вопрос... По поводу Вашего взгляда на вещи - Ну так делайте (ВЫ) - этот форум более конструктивным-в чем проблема? -никто Вас здесь не  затыкает  ;)

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Чем Вирту WITH не угодил?
« Ответ #231 : Май 10, 2012, 02:09:53 pm »
даже если сюда придет сам Темиргалеев :)
Кстати, на днях Термигалеев бессмысленно и беспощадно забанил Петра Алмазова за то, что Пётр посмел написать:

Из архива достать изволили?
Так может и удалять не надо было?


http://forum.oberoncore.ru/viewtopic.php?p=72579#p72579

Peter Almazov давал ссылку на Шиперского про ошибку в WITH, этот материал был удалён, а сейчас Термигалеев неподумавши достал копию из "подвала", а чтобы не оправдываться перед Алмазовым просто забанил его.

Так что нет, если Термигалеев не мазохист, то на форум где он не модератор ему своё свинячье рыло лучше не совать.

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Чем Вирту WITH не угодил?
« Ответ #232 : Май 14, 2012, 09:50:09 am »
Проверил древный, клятый всеми Pow! - там многоветочный WITH - компилятор честно выдаёт предупреждение Warning 9: guarded variable can be side-effected

Эх, если бы в Pow! линкер был написан на обероне, а так опять переписывать ((

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Чем Вирту WITH не угодил?
« Ответ #233 : Май 14, 2012, 10:15:59 am »
Эх, если бы в Pow! линкер был написан на обероне, а так опять переписывать ((
А зачем компоновщик на обероне?
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Чем Вирту WITH не угодил?
« Ответ #234 : Январь 26, 2013, 08:08:44 am »
Цитировать
The WITH statement:
This [compiler error] has to be a bug, correct me if I'm wrong! (I'm going nuts over this)
TYPE
    Obj* = POINTER TO Empty;
    Empty = RECORD (*nothing*) END;

    OpObj = POINTER TO OpNode;
    OpNode = RECORD (Empty)
        name : CHAR;
        left, right : Obj;
    END;

PROCEDURE doeval (ex: Obj): REAL;
    BEGIN
        WITH ex : OpObj DO
            CASE ex.name OF
                "+" : RETURN doeval(ex.left (* err 113 *))
                    + doeval(ex.right (* err 113 *));
                "-" : (* clever code here *)
                "*" : (* more clever code *)
                "/" : (* you get the idea *)
            END;
            (* et cetera *)
        END;
    END doeval;
Error #133 is an "incompatible assignment". ex.left and ex.right certainly seem to be of type Obj. Why won't doeval accept them?
As thutt@clark.net (Taylor Hutt) points out,
This is not a bug. The WITH statement actually changes the static type of the WITHed variable for the entire duration of the WITH statement. A workaround to this problem is to assign the parameter to a temporary variable and to use the WITH on the temp. A type guard will not work properly in this case, do not attempt to use it.
Some people on Comp.lang.oberon think that the WITH statement should be avoided entirely because of its non-local effects. They point out that a programmer can use individual type guards or, if a guarded variable is used very many times, can pass the variable to a procedure.
http://users.cms.caltech.edu/~cs140/140a/Oberon/language_faq.html

trurl

  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Чем Вирту WITH не угодил?
« Ответ #235 : Январь 29, 2013, 01:14:18 pm »
Сомнения у меня по поводу этого
TYPE
  P = POINTER TO R;   
  R = RECORD END;   
  P1= POINTER TO R1;   
  R1 = RECORD (R) x: INTEGER END;   
PROCEDURE F;   
  VAR p:P; p1:P1;   
  PROCEDURE G;   
  BEGIN NEW(p) END G;   
BEGIN NEW(p1);p:=p1;   
  WITH p: P1 DO   
    p.x:=0;  (*legal, since p has been   guarded to P1 *)
    G;       (*this destroys the assertion of the WITH guard*)   
    p.x := 42 (*havoc!!*)   
  END   
END F;
Цитировать
With statements execute a statement sequence depending on the result of a type test and apply a type guard to every occurrence of the tested variable within this statement sequence.
Т.е. p внутри WITH должно заменяться на p(P1) и на  p.x := 42 программа должна рухнуть.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Чем Вирту WITH не угодил?
« Ответ #236 : Январь 29, 2013, 01:33:49 pm »
В каком смысле "рухнуть"? Трап?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Чем Вирту WITH не угодил?
« Ответ #237 : Январь 29, 2013, 01:55:27 pm »
Т.е. p внутри WITH должно заменяться на p(P1)

Можно, конечно, и так трактовать. Но, во-первых, это неэффективно. А во-вторых:

и на  p.x := 42 программа должна рухнуть.

это не то, что ожидается от такой конструкции.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Чем Вирту WITH не угодил?
« Ответ #238 : Январь 29, 2013, 04:23:30 pm »
... на  p.x := 42 программа должна рухнуть.

В Обероне-07 в реализации от akron1 действительно падает в этом месте.
MODULE TypeCrashTest;

IMPORT RTL, In, Out;

TYPE
  P  = POINTER TO R;
  R  = RECORD END;
  P1 = POINTER TO R1;
  R1 = RECORD (R) x: INTEGER END;

VAR p:P; p1:P1;

BEGIN
  NEW(p1);
  p := p1;
  p(P1).x := 1;
  p1.x := 2;
  NEW(p);
  p(P1).x := 42; (*havoc!!*)
END TypeCrashTest.
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Чем Вирту WITH не угодил?
« Ответ #239 : Январь 29, 2013, 04:29:26 pm »
Ну тык у akron1 и язык другой :)