Ошибки PascalABC.NET


#1442

Ну, в #884 вы тоже сказали что это слишком сложно для вашего анализатор кода, но оказалось просто. Давайте всё же разберёмся перед тем как говорить что вы не сможете это реализовать.


#1443

Но это сбивает с толку. И какой массив получается на выходе? С подмассивами одинаковой длины “отнормированными” по первому? А зачем? Вся фишка массива массивов в том, что у него внутренние массивы разной длины, а так получается, что, в лучшем случае, их дополняет нулями. И что же делать? Инициализировать другими способами можно, но что с этим способом? Уберете его?


#1444

ibond у нас ответственный за Intellisense. А где я говорил, что не будем реализовывать?


#1445

А может вспомнить, что основная ниша - это обучение и не оглядываться постоянно на Delphi там, где это вредит языку?

Как пример, была такая настольная СУБД - FoxPro. Еще в ДОС-версиях, тогда еще Microsoft и не думал ее приобретать. Кроме совершенно новых и продвинутых инструментов, она содержала в себе все, что было у предшественников - dBASE и FoxBASE, как и PasalABC.NET содержит в себе “наследие предков”. Это было понятно: имелось большое количество старых наработок и надо было дать возможность безболезненного портирования. Потом появились версии Visual FoxPro (VFP в народе), которые по-прежнему тащили в себе груз еще от dBASE - но это оправдывалось тем, что "а вот люди перешли со старых программ на FoxPro/DOS и теперь им надо обеспечить портирование под VFP. Выходили новые версии VFP, впечатленная производительностью, эту СУБД приобрела Microsoft. А старое наследие в языке так и оставалось. И только в последних версиях, когда уже ясно стало, что сохранение “старья” тормозит новые концепции, от него начали избавляться. Да и то в виде полумеры: директивным переключением движка СУБД между разными синтаксисами.

Может, пора бы и в PascalABC.NET кое от чего избавиться, если оно сильно мешает, а не воевать с этими ветряными мельницами? А то может получиться, как старом анекдоте.

Посетитель небольшого кафе делает заказ и в ожидании разглядывает интерьер. Его внимание привлекает большой транспарант: “Война мухам!”. Между тем мухи с немалым энтузиазмом в заведении присутствуют. Посетитель интересуется у официанта, как это соотносится с лозунгом о войне и получает ответ: “Да, война была. Но мы проиграли…”

Не хотелось бы проиграть войну из-за вопроса совместимости чего-то там с какой-то устаревшей Delphi.


#1446

Вы сказали что это не ошибка. не_ошибка, в моём понимании, это то что так и задумано, а значит и не должно быть исправлено. Ну ладно, тогда тоже закину в issue.


#1447

Нет, это я сказал по поводу разного количества элементов во вложенных массивах.


#1448

Модуль Graph3D. Не работает анимация масштабирования при задании параметра времени выполнения. “Ошибка времени выполнения: System.InvalidProgramException: Среда выполнения Common Language Runtime обнаружила недопустимую программу.”


#1449

Ошибка действительно не правильная, но приведите пожалуйста код. Из описания словами не понятно.


#1450

Пример программы есть в папке “Samples”. Вот этот тоже не работает:

uses Graph3D;
begin
  var b := Sphere(Origin,0.2,Colors.red);
  var c:=b.AnimScale(3,1);
  c.Begin;
end.`

Если вместо " var c:=b.AnimScale(3,1)" написать просто “var c:=b.AnimScale(3)”, то ошибки не будет.


#1451

У меня не воспроизводится (ваша программа и все программы из Samples, содержащие AnimScale). Возможно это уже исправили в последней версии? Попробуйте обновиться.


#1452

intellisence показывает массив целых после Power

begin
  var n := 10;
  var a := Range(1, n).Select(el -> Power(2, el)).ToArray;
  a.Println;
end.

Скрин там


#1453

В том то и дело, что версия последняя (3.4 от 01.07.2018) + Microsoft .NET Framework 4.7.1. Ошибка повторяется на двух разных компьютерах.


#1454

Попробуйте скачать сейчас и отпишитесь, заработало ли.


#1455

да


#1456

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

Из решений на пока что - вижу только:

begin
  var n := 10;
  var a: array of real := Range(1, n).Select(el -> Power(2, el)).ToArray;
  a.Println;
end.

По крайней мере, после этого анализатор кода работает правильно для a.


#1457

Ошибка времени выполнения: System.BadImageFormatException: Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)

begin
  var tupl := (1,2,[3,4,5]);
  Print(tupl.Item1);
end.

Помощь новичкам
#1458

У меня не воспроизводится.


#1459

У меня воспроизвелось


#1460

#1461

А так работает:

begin
 var tupl := new System.Tuple<integer,integer,TypedSet>(1,2,[3,4,5]);
 Print(tupl.Item1);
end.

?