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

@Admin, в данном:

// Код изменён под ABCNET v0.0.10
using ABCNET.Extensions;
using ABCNET.Utils;

namespace TestProgram
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            Arr.Rand(Base.ReadInteger("N:"), -20, 25).Println().Numerate().MinBy(x => x.Item).Index.Println();
        }
    }
}

примере (и не только) раньше в ранних версиях библиотеки вылетало Undefined FileName из-за вложенных классов внутри partial-классов. Возможно, было связано с лямбда-выражением. В ABCNET есть вложенные классы сейчас, но в других местах. Обратите внимание на них, иначе будет не очень приятно ученикам, например, Вашим, если такая ошибка проявится при использовании библиотеки. Для тестирования пойдёт данная версия ABCNET. Тем более, моя библиотека не единственная, среди всех, которые можно подключать к PascalABC.NET.

Да, понятно.

Приведите минимальный пример с простой dll на C# чтобы можно было тестировать.

Тестировать со сколько-нибудь большим кодом невозможно.

В наши задачи не входит намеренное тестирование каких-либо программных средств. Круг наших обязанностей - написание и тестирование исключительно собственных продуктов. Проблемы, выявленные в каких-либо компиляторах, связанные с использованием наших библиотек передаются соответствующим тестировщикам с приложением примера, в котором проявляется ошибка. Дело передано - дальше Вы, как руководитель проекта PascalABC.NET, вправе распоряжаться тем, как и с кем устранять эту проблему. Из наиболее активных тестировщиков-энтузиастов мне известен только @Sun_Serega.

12 сообщений перенесены в тему Болталка PascalABC.NET

Она проявилась в нашем проекте, но только при использовании PascalABC.NET. Она - лежит на стороне компилятора, для которого затруднительно “разбирать” partial-классы, ещё и вложенные. Как исправлять - дело команды PascalABC.NET, наше - сообщать о том, что такие проблемы существуют.

Кроме того, обращу внимание на данную Issue:

В ней от выявителя ошибки минимальный код не требовался. Почему такое требование предъявляется к другим пользователям - неясно. Либо требуем от всех, либо ни от кого, почему такая избирательность?

9 сообщений перенесены в тему Болталка PascalABC.NET

Всё работает.

1 лайк

Тогда всё хорошо. Но, как я понимаю, у Вас последняя версия. А у меня была не последняя на тот момент. У меня не работало в 3.5.1.2277. Где это было исправлено? В Что нового - не видел по этому поводу заметок. Как понять, когда обновляться? На официальном сайте не даётся ссылок на Issue, чтобы потом перейти на GitHub и посмотреть изменения. В Visual Studio, например, сделаны уведомления по поводу выхода новой версии (не сборки).

12 сообщений перенесены в тему Болталка PascalABC.NET

Сообщение перенесено в тему Болталка PascalABC.NET

type
  MyString = class
    
    static function operator implicit(s: string): MyString := new MyString;
    
  end;
  
begin
  var s: MyString := 'abcde';
end.

Реально ли сделать так, чтоб это работало?

Увидел. Напишите Issue

Исправили

2 лайка

Раз sizeof теперь считается всегда на этапе компиляции, как насчёт разрешить это?

uses System.Runtime.InteropServices;

type
  [StructLayout(LayoutKind.&Explicit, Size = sizeof(integer) + 50)]
  r1 = record
    [FieldOffset(0)] i1: integer;
    [FieldOffset(sizeof(integer))] str: byte; // статичная строка на 49 символов
  end;
  
begin end.

Было бы очень полезно в кодогенераторах OpenCL и OpenGL.

В PascalABC.NET когда-нибудь появится отладка без оболочки?

Это как? Скриптами?

Как в Visual Studio. Там отладка работает и в консольных приложениях

Но настраивается все из оболочки ведь. Какой смысл в том, чтобы делать отладку в консоли? По-моему это такая долботня будет, а насколько востребовано?

Не забывайте что @Kotov - лорд псевдографики. А псевдографику в связке с оболочкой не настроишь.

Ну а конкретно почему он написал - посимвольный ввод. То есть без Enter между символами и с моментальной реакцией на нажатие.

Да не. Просто оболочка падает от методов типа Console.SetCursorPosition.