› Форумы › Другие компиляторы PL/I › Iron Spring
Помечено: PL/I compiler
- В этой теме 14 ответов, 2 участника, последнее обновление 5 лет, 4 месяца назад сделано admin.
-
АвторСообщения
-
01.07.2019 в 19:27 #742
На мой вопрос о том, что давно не было новостей о компиляторе, сразу последовала реакция в виде новой версии и разработчик подтвердил, что проект продолжается и приближается к финалу.
theriodont Надо бы ему о проблемах сообщать, если Вы их обнаруживали. На info@iron-spring.com
02.07.2019 в 03:19 #745Основная проблема там, что на более-менее сложных текстах компилятор тупо зависает (на 64-разрядных системах), либо вылетает с неким дампом (на 32-разрядных), но я думаю, что авторам об этом известно. Ну и «Deferred feature», что не напиши.
02.07.2019 в 03:28 #746Новую версию попробую потестить на этой неделе.
02.07.2019 в 13:04 #751Так давайте вышлем ему эти ошибки. Так и нам лучше, и ему стимул. Если Вам неудобно, я без проблем могу перевести и послать.
02.07.2019 в 13:20 #753Потестил — не увидел никаких изменений в лучшую сторону, мож я что-то делаю не так или линукс какой неправильный. Хотя по наблюдениям зашивается он когда ему подсовывают что-то существующее, но не поддерживаемое, а не просто ошибки в синтаксисе — может во временных заглушках где-то ошибки.
В принципе проблем нет, соберу все кляузы, отправлю, заодно пусть тоже с ufl поразбирается.02.07.2019 в 15:27 #769Странно, я думал, что он выводит соодщения типа «не поддерживается пока или постоянно».
Я послал Вам по почте проект для тетирования. Если нетрудно и будет время потестируйте, пожалуйста его с IS. Ну, и результаты мне пришлите.02.07.2019 в 18:15 #772Отправил. Писать пишет, как видно в листингах, но не всегда.
03.07.2019 в 00:54 #782Спасибо, посмотрел. Действительно, когда есть много отложенных (нереализованных пока) возможностей, он падает на втором проходе.
Из непонятных мне ошибок:
1. Оператор free
allocate a;
allocate a, b;
free a;
принимает, а вот
free a, b;
не принимает:
635 FREE YK0RC, PYK0RC, JK0RC, PJK0RC;
636 (ERR222)Invalid syntax in FREE statement at «YK0RC,PYK0RC,JK0RC,PJK0RC».
636 (INF249)-input flushed to next «;».
а вот это место непонятно вообще тут принимает?
808 IF N2^=0B THEN
809 FREE JJ1A, YY1A, JJD, YYD, PJ1A, PY1A, DJ1A, PDJ1A, DY1A, PDY1A,
810 PJD, PYD;
811 (ERR222)Invalid syntax in FREE statement at «JJ1A,YY1A,JJD,YYD».
811 (INF249)-input flushed to next «;».
811 IF KEYW THEN FREE JJA, YYA, PJA, PYA, DJA, PDJA, DYA, PDYA;
812
813 (ERR222)Invalid syntax in FREE statement at «JJA,YYA,PJA,PYA».
813 (INF249)-input flushed to next «;».
Или это все следствие комплексности некоторых массивов?
2. PUT DATA
оператор put data; не принимает, хорошо бы проверить, примет ли put data();
3. Непонятно, почему не нравится:
479 (ERR208)Unrecognized keyword GMS.
479 LOCATE GMS FILE(F1) SET(PR);
и сообщение тоже противоречивое
4. Не поддерживается встроенная функция secs
5. Не нравится некрасивое, но нормальное объявление:
62 DCL(M INIT(1d10),M1 INIT(1e-10),X00 INIT(1e-20),X0I INIT(18.0e0),
63 X0K1 INIT(1.5e0),X0K2 INIT(17.5e0),E1 INIT(1.0e-17),
64 PI INIT(3.14159265358979324e0),D(5),A,B,C,T,H,A1,AX,Z,GM,S,X1,X2,
65 QN,QC,I1,I0,K1,K0,BX,DX,B0,B1,B2,B3,B4,C0,$,#,#0,#2,#3,#4,#8,
62 (ERR222)Invalid syntax in INITIAL list at «1 D10».
6. То же странно:
10 DCL S(0:59) CHAR(80) VAR CONNECTED;
10 (ERR254)Invalid attribute CONNECTED.
11 S( 0)=’P E З У Л Ь T A T Ы P A C Ч E T A’;
12 S( 1)=’PACЧET ПAPAMETPOB ЦИЛИHДPИЧECKOЙ AHTEHHOЙ PEШETKИ’;
13 S( 2)=’ЧИCЛO ЭЛEMEHTOB (CEKTOPИAЛЬHЫX BOЛHOBOДOB) B ПEPEДAЮЩEЙ’;
и потом:
11 (INF684)Array argument for S assumed to be CONNECTED.
12 (INF684)Array argument for S assumed to be CONNECTED.
13 (INF684)Array argument for S assumed to be CONNECTED.
Надо будет собрать и послать. Если у Вас что-нибудь есть — шлите — я отработаю.03.07.2019 в 06:41 #787Ок, вечером посмотрю.
По п. 5 — там d осталось в порядке, видимо поэтому.03.07.2019 в 13:14 #795В общем put data() принимается, но ничего не выводит:
theriodont@lm2:~/old$ cat pdtest.lst
Jul 3, 2019 10:10 pdtest:proc options (main);
0.9.10b Source Listing Page 1
1 pdtest:proc options (main);
2 dcl (a,b,c)float, i fixed, sysprint file output print;
3 a=1;b=2;c=3;i=4;
4 put skip data();
5 put skip data(a,i);
6 end pdtest;
theriodont@lm2:~/old$ ./pdtest.moduleA= 1.00000E+0000 I= 4;
theriodont@lm2:~/old$Свои баг-репорты вышлю чуть позже.
03.07.2019 в 16:39 #798Давайте тогда набирать баг-репорты. Вот чуть отредактированный по put data.
Можете скомпилировать его с максимальных числом отладочных опций?
Результаты вышлю Питеру.testputdata: proc options (main);
/* Iron Spring does not like put data; but it accept IBM compiler, and
IBM compiler does not accept put data(); and Iron Spring accept it,
but outputs nothing.
*/
dcl (a,b,c)float, i fixed, sysprint file output print;
a=1;
b=2;
c=3;
i=4;
put skip edit(‘put data()————————‘)(a);
put skip data();
/*
put skip data;
*/
put skip edit(‘put data(a, b, c, i)—————‘)(a);
put skip data(a,i);
end testputdata;03.07.2019 в 16:49 #805Аналогично, для проверки FREE
testfree: proc options (main);
/* Iron Spring does not accept free with more than one variable */
dcl (a(n,n), b(n)) float ctl, n fixed;
n=2;allocate a, b;
free a, b;end testfree;
03.07.2019 в 18:36 #808Для проверки secs:
testsecs: proc options (main);
/* Iron Spring does not support builtin function sces */
dcl (secs, sin) builtin, sysprint file output print, i fixed, x float,
start float bin(53);start = secs();
x = 5.0e0;do i = 1, 10000;
x = sin(i*x);
end;put list (‘time: ‘, decimal(secs()-start), ‘ seconds’);
end testsecs;
04.07.2019 в 03:35 #855Ошибка, не туда запостил. Как сделать, чтобы можно было копировать текст хотя бы в форуме?
04.07.2019 в 07:59 #869Оно копируется, мы просто из-за цветовой гаммы не видим этого.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.