Замечания и предложения

В смысле Visual Studio? У меня как и в .bat, C:\Program Files (x86)\Microsoft Visual Studio\, но в этой папке только 1 файл - C:\Program Files (x86)\Microsoft Visual Studio\COMMON\IDE\IDE98\ASP.TLB, и папок кроме COMMON, IDE и IDE98 нету. Больше отсутствующих путей не нашёл в .bat файле (я не проверял файлы с PABC в названии).

Ищите папку, в которой у Вас устанолена Visual Studio 2017. И перепропишите пути в bat-файле. Если Вы этого не сможете сделать, то дальше двигаться нельзя

У меня через bat давно не получалось, так что просто открываю Visual Studio, выбираю проект pabcnetc.sln, компилирую, закрываю, открываю PascalABCNET.sln, компилирую, потом выхожу из Studio и запускаю PascalABCNET.exe. Можно ещё перед компиляцией Debug на Release заменить.

Надо разобраться чтобы получалось

Ладно тогда как то в другой раз, я сейчас оптимизацией 3D графики голову забиваю так что в студию устанавливать и разбираться не буду лучше… Ну если кто то для меня файл установщика кинет - я протестирую с радостью. Вот изменённый PABCSystem.

Изменения рассматриваются и принимаются только через пулл-реквесты.

Студия не установлена

Это да, но сначала надо же протестировать, а я не могу собрать релиз с изменением, с этим загвоздка. Или вы бы приняли не протестированный? Всм добавить изменения и если что откатить?

Ну, ставьте Community-студию и тестируйте. Без студии никуда…

Увидел, что в сборке 1602 от 28.12.2017 наконец-то закрыли issure по поводу введения синонима ** для Power(). Увидел также перегрузки для . Но пока что не удалось воспользоваться этой операцией. Выражение Writeln(210) напрочь бракуется компилятором c выдачей сообщения “Встречено ‘*’, а ожидалось выражение”. Я что-то неверно понял?

Похоже, что в сборку 1602 попало не все, что сейчас отмечено исправленным на ГитХаб. В самом деле, там изменения датированы даже 30.12.2017. Собственно, это то, о чем уже не раз говорилось: когда выходит новая сборка, очень непросто понять, что в ней нового или исправленного по сравнению с предыдущей сборкой.

закрыли только вчера, а вчера было 29-е

Да вот купился на то, что новая версия от 28-го появилась 30-го. Непринципиально, что пока нет **, главное - вопрос полуторагодичной давности решился)))

Странно, а я вроде раньше её скачать смог… Насчёт реализации - для всех ** было использовано обычное Power(real,real):real. Может стоит для integer сделать Power(integer,integer):int64? Я мог бы реализовать 1 из быстрых алгоритмов для целочисленного возведения в степень и сделать пулл реквест. Есть какие то принципиальные возражения почему это не подходит паскалю?

Это нельзя сделать, так как степень может быть отрицательная. А ограничителей where T: integer and T > 0 у нас нет.

Главное, чтобы появилась операция **, а уж перегрузить её, если что, можно и самостоятельно. Конечно, приятнее, привычнее и короче было бы видеть не , а ^, но уж коль Н.Вирт закрепил за ^ указатели - тут уж не попляшешь. У меня вот чешутся руки на возведение в степень матриц и простых дробей, потому что через Power() некрасиво смотрится. Ведь тогда можно определить для матрицы a(-1) как операцию нахождения обратной матрицы и это куда ближе к принятой в линейной алгебре нотации, чем a.Inv или Inv(a).

Ну да действительно… Кстати новая версия только что вышла.

Кстати, интересно, когда в PascalABC.NET появятся refinement types…

1 лайк

Ну, были тут обсуждения:

Julbin считает, что это затратно. А у нас эффективный компилятор :slight_smile:

В таком случае может сделать директиву на это?

Ну да: Вы сделаете, а мы - директиву :smiling_imp: