forked from blackav/ejudge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS.RUS
8279 lines (7181 loc) · 562 KB
/
NEWS.RUS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-*- mode: text; mode: auto-fill; coding: utf-8 -*-
$Id$
Версия 3.2.2 (r8803) (20141228)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.2.2
Версия 3.2.1 (r8798) (20141220)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.2.1
Версия 3.2.0 (r8787) (20141201)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.2.0
Версия 3.1.0 (r8684) (20141025)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.1.0
Версия 3.0.2 (r8625) (20140917)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.0.2
Версия 3.0.1 (r8587) (20140903)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.0.1
Версия 3.0.0 (r8569) (20140828)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.0
Версия 2.3.29 (r7680) (20131214)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.29
Версия 2.3.28 (r7518) (20131031)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.28
Версия 2.3.27 (r7368) (20130213)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.27
Версия 2.3.26 (r7266) (20121220)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.26
Версия 2.3.25 (r7190) (20121124)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.25
Версия 2.3.24 (r7019) (20120901)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.24
Версия 2.3.23 (r6909) (20120622)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.23
Версия 2.3.22 (r6849) (20120523)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.22
Версия 2.3.21 (r6728) (20120406)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.21
Версия 2.3.20 (r6602) (20111228)
================================
См. http://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_2.3.20
Версия 2.3.19 (r6397) (20110706)
================================
В исходные файлы системы добавлены файлы для пробного турнира.
Файлы находятся в каталоге contest-1. Файлы пробного турнира
используют новую раскладку по каталогам. В пробном турнире по
умолчанию доступ к CGI-программам открыт для всех IP-адресов.
При выполнении настроечного скрипта, сгенерированного программой
ejudge-setup, выводится предупреждение о том, что все существовавшие
настройки будут уничтожены.
При сборке системы автоматически генерируется настроечный скрипт
ejudge-install.sh со значениями по умолчанию. Ранее необходимо
было запускать ejudge-setup. При необходимости изменить
параметры по умолчанию все равно может использоваться
ejudge-setup.
В конфигурационный файл турнира contest.xml добавлены два новых
элемента <logo_url> и <css_url>, которые позволяют
специфицировать URL для логотипа данного турнира и URL для
стилевого файла данного турнира.
Везде, где требуется вводить e-mail, он проверяется на
соответствие правилам формирования e-mail.
Добавлена поддержка GNU Haskell (ghc). Данный язык пока помечен
как небезопасный. Спасибо vrandik.
Добавлена поддержка архивов программ и утилит сборки, таких как
make.
ej-compile
----------
Лог-файл для программы переименован в ej-compile.log. Он
по-прежнему находится в каталоге CONTESTS_HOME_DIR/compile/var.
Вывод программы проверки стиля на стандартный поток вывода сохраняется
для последующего показа.
ej-contests
-----------
Лог-файл для программы переименован в ej-contests.log.
Текст, выведенный на стандартный вывод программой проверки стиля,
отображается при просмотре исходного кода посылки привилегированным
пользователем.
ejudge-contests-cmd
-------------------
Добавлены команды 'dump-languages', 'get-contest-status',
'get-contest-sched', 'get-contest-duration',
'get-contest-description' на основе патча от germanilyin.
ej-jobs
-------
Лог-файл для программы переименован в ej-jobs.log.
ej-super-server
---------------
Лог-файл для программы переименован в ej-super-server.log.
Добавлена возможность редактирования базы пользователей через
веб-интерфейс. Консольная программа ejudge-edit-users более
поддерживаться не будет.
В таблицу турниров добавлены прямые ссылки на редактирование
пользователей и редактирование настроек турнира.
ej-users
--------
Лог-файл для программы переименован в ej-users.log.
style_archive
-------------
Добавлена поддержка для архивов для сборки программ с помощью
утилит сборки таких, как make. Поддерживаются следующие новые
переменные окружения и параметры командной строки:
EJ_MAKE_MODE (-m) включить режим проверки архива для
сборки. По умолчанию включен режим
проверки архива тестов.
EJ_PROGRAM_DIR (-p) имя каталога с файлами для сборки,
который должен находится в
архиве. Значение по умолчанию -
solution.
EJ_SCRIPT_NAME (-s) название скрипта для сборки, который
должен находиться в архиве. Значение по
умолчанию - Makefile.
Версия 2.3.18 (r6245) (20110410)
================================
Добавлена поддержка языка Кумир. При настройке компиляторов
автоматически находится интерпретатор ckumir.
Усовершенствовано определение версии интерпретатора языка perl.
Для компиляции ejudge более не требуется библиотека reuse. Все
необходимые файлы интегрированы в исходный код ejudge.
ej-batch
--------
Новая программа для пакетного тестирования. Программе передаётся
ZIP-файл, сформированный по определенным правилам, который
содержит исходные коды программ на тестирование и XML-файл
описания. Тестирование выполняется в пакетном режиме, и на
выходе формируется ZIP-файл с результатами тестирования, который
содержит XML-файл описания результатов и протоколы
тестирования.
ej-compile
----------
Для компиляторов поддерживается установка ограничений на максимальный
размер адресного пространства и стека. В раздел описания языковых
процессоров добавлены конфигурационные переменные 'max_vm_size' и
'max_stack_size'. Эти переменные могут устанавливаться как в
конфигурационном файле турнира, так и в глобальном конфигурационном
файле сервера компиляции (${CONTESTS_DIR}/compile/conf/compile.cfg).
Значение, установленное в конфигурационном файле турнира, имеет
приоритет перед значением, заданным в конфигурационном файле сервера
компиляции.
Конфигурационная переменная 'max_vm_size' задает максимальный размер
виртуального адресного пространства процесса компиляции. Например,
max_vm_size=256M
ограничивает размер виртуального адресного пространства 256
мегабайтами (точнее, 256*1024*1024 байт). Размер виртуального
адресного пространства определяется как сумма размера кода программы,
глобальных переменных, подгружаемых динамических библиотек, кучи и
стека. По умолчанию размер виртуального адресного пространства не
ограничен, если только не установлено ограничение на уровне системы
(см. вывод команды 'ulimit -a').
Конфигурационная переменная 'max_stack_size' задает максимальный
размер системного стека. По умолчанию этот размер равен 8 мегабайтам.
Конфигурационная переменная 'max_file_size' задает максимальный размер
файлов, которые смогут создавать компиляторы.
Поддерживаются глобальные конфигурационные переменные
'compile_max_vm_size', 'compile_max_stack_size',
'compile_max_file_size', позволяющие задавать ограничения на ресурсы
для всех компиляторов одновременно. Эти глобальные конфигурационные
переменные могут задаваться как в конфигурационном файле сервера
компиляции, так и в конфигурационном файле турнира.
Значения ограничений, установленные для конкретного языкового
процессора, имеют приоритет над значениями, установленными глобально.
Значения ограничений, установленные в конфигурационном файле турнира,
имеют приоритет над значениями, установленными в конфигурационном
файле сервера компиляции.
ej-contests
-----------
При сдаче исходного кода в кодировке UCS2 файл автоматически
конвертируется в кодировку UTF8. Для определения кодировки UCS2
используется эвристический алгоритм.
Добавлена новая глобальная конфигурационная переменная
'separate_user_score'. Если данная конфигурационная переменная
установлена в 1, турнир работает в режиме одновременного хранения
предварительных и окончательных результатов тестирования
программ. Предварительные (или пользовательские - user)
результаты тестирования - это результаты тестирования программы
на подмножестве всех тестов. Предварительные результаты
тестирования доступны участникам во время турнира. Окончательные
результаты тестирования - результаты тестирования программы на
всех тестах. Во время турнира окончательные результаты
тестирования участникам недоступны, но отображаются в качестве
результатов тестирования для административных пользователей. В
любой момент проведения турнира или после его окончания
администратор турнира может включить отображение окончательных
результатов тестирования для участников, тогда участники вместо
предварительных результатов будут видеть окончательные.
Этот режим работы доступен только для турниров по системе KIROV.
Режим работы предназначен для турниров, на которых решения во
время тура тестируются только на некоторых тестах (так
называемых on-line тестах), а после окончания тура - на всех
тестах. В системе ejudge решения всегда тестируются на всех
тестах, но участники будут получать информацию о результатах
тестирования только на части тестов, хотя администраторам
доступна и полная информация.
В раздел описания задачи добавлена конфигурационная переменная
'full_user_score'. Данная переменная позволяет указывать, сколько
предварительных баллов получает решение, которое прошло все нескрытые
тесты, либо получило предварительный статус тестирования OK. Данная
конфигурационная переменная аналогична переменной 'full_score', но
задает максимальное количество баллов для предварительного
тестирования. Данная переменная используется только для турниров типа
KIROV, которые работают в режиме 'separate_user_score'. Значение
данной переменной наследуется из абстрактной задачи, если не задано в
задаче. Если ни в конкретной, ни в абстрактной задаче значение поля не
задано, оно полагается равным 0.
Расширена поддержка правил видимости тестов, задаваемых с помощью
конфигурационной переменной 'open_tests' раздела описания задачи.
Теперь допускается указывать тип видимости теста. Поддерживаются
следующие типы видимости тестов:
normal правила видимости тестов определяются общими настройками
турнира, данный тип видимости является типом по
умолчанию, для тестов, для которых тип видимости не
указан.
full полная видимость теста: показываются входные данные,
результат работы программы, вердикт проверки, балл за
тест
fullifmarked полная видимость, но только если данная посылка имеет
статус marked, а в противном случае тест является
невидимым
brief показывается вердикт проверки и балл за тест. Это -
стандартный режим показа тестов для турниров KIROV.
exists существование. Показывается, что такой тест существует,
но ни вердикт проверки, ни балл за тест.
hidden тест полностью скрыт. Не показывается ни вердикт
проверки, ни балл, ни факт самого существования теста
Спецификация видимости записывается после диапазона тестов через
двоеточие. Пример спецификации тестов:
open_tests="1-3:full,4-10:brief,11-15:hidden"
тесты 1-3 показываются полностью, тесты 4-10 показываются в краткой
форме, а тесты 11-15 являются скрытыми
Добавлена конфигурационная переменная 'final_open_tests' секции
определения задачи. Данная переменная задает видимость тестов в режиме
финального показа тестов. Турнир может быть переключен в режим
финального показа тестов администратором турнира (см. ниже). Например,
final_open_tests="1-10:full,11-15:fullifmarked"
Тесты 1-10 показываются полностью, а тесты 11-15 показываются
полностью только для решений, имеющих статус marked. Значение данной
переменной не наследуется из абстрактной задачи.
Добавлена конфигурационная переменная 'score_latest_or_unmarked',
которая модифицирует способ подсчета баллов за задачу следующим
образом. Если среди посылок данного пользователя по данной задаче
имеются посылки со статусом marked (отмеченные), то оценивается
последняя такая посылка. В противном случае оценивается посылка,
набравшая максимальное количество баллов. Значение данной переменной
наследуется из абстрактной задачи.
Добавлена конфигурационная переменная 'extid', позволяющая задать
"внешний" идентификатор задачи. Внешний идентификатор задачи
используется программой тестирования пакетного режима ej-batch.
В административный интерфейс new-master добавлена новая страница
настройки режима работы турнира "Contest settings". С ее помощью
можно включать или выключать видимость исходных кодов посылок
для участников, видимость протоколов тестирования участниками,
видимость основных результатов тестирования участниками (в
режиме отображения предварительных результатов тестирования) и
режим видимости тестов. Теперь для выполнения этих действий не
требуется модифицировать конфигурационный файл serve.cfg.
В раздел описания задачи добавлены конфигурационные переменные,
позволяющие устанавливать ограничения на ресурсы, доступные процессу.
'max_core_size' Максимальный размер core-файла, который будет
создан ядром ОС в случае, если выполнение
процесса завершилось аварийно. Как правило, этот
размер установлен в 0.
'max_file_size' Максимальный размер файлов, с которыми может
работать процесс. В случае попытки записи в файт
так, что его размер превысит максимальный
разрешенный, процесс будет прерван сигналом, то
есть завершится аварийно.
'max_open_file_count' Максимальное количество файловых дескрипторов,
доступных одному процессу. Если это ограничение
превышено, попытка открытия файла будет
завершаться с ошибкой.
'max_process_count' Максимальное количество процессов/нитей,
доступных одному пользователю. Если это
ограничение будет превышено, попытка создания
нового процесса с помощью системного вызова
fork() завершится ошибкой.
ej-run
------
При работе турнира в режиме 'separate_user_score' при запуске
программы оценивания (valuer) устанавливается переменная окружения
EJUDGE_USER_SCORE.
Помимо балла за пройденные тесты и флага marked в режиме турнира
'separate_user_score' программа оценивания должна возвращать три целых
числа: предварительный статус тестирования (OK или PE), балл за
предварительные тесты, количество пройденных предварительных тестов.
Вместо каждого из этих чисел программа оценивания может вывести -1,
тогда соответствующее значение будет вычислено по стандартным
правилам.
Добавлена опция командной строки -s, которая позволяет задавать
игнорируемые для тестирования архитектуры из командной строки.
В командной строке можно указать опцию несколько раз, например,
ej-run -s win32 -s dos conf/serve.cfg
В этом случае игнорируется значение конфигурационной переменной
skip_testing раздела [tester], но для указанных в опциях -s
архитектурах флаг skip_testing устанавливается.
libchecker
----------
Добавлена функция valuer_parse_input для чтения входных данных
программы оценивания решения.
serve-control
-------------
На формах редактирования настроек турнира добавлены ссылки на страницы
wiki-справочника ejudge.
style_c
-------
Программа проверки стиля форматирования программ на языках Си и
Си++. В настоящий момент программа выполняет только совсем
базовые проверки на отсутствие управляющих символов в коде
программы (в том числе табуляции), на кратность величин отступов
значению 4, на максимальную длину строки кода.
Версия 2.3.17 (r6036) (20101104)
================================
Исправления ошибок. В частности, работоспособны интерактивные задачи.
ej-contests
-----------
Добавлена новая конфигурационная переменная 'interactor_time_limit'
раздела определения задач. Данная конфигурационная переменная
позволяет устанавливать ограничение процессорного времени на работу
программы-интерактора для интерактивных задач.
Версия 2.3.16 (r5984) (20100817)
================================
Добавлена концепция групп пользователей. Каждая группа имеет
уникальный числовой идентификатор (group_id) и уникальное имя
(group_name). Пользователи могут объединяться в группы по
произвольному принципу. Каждая группа может включать более
одного пользователя и каждый пользователь может состоять членом
более одной группы. Группы пользователей могут использоваться при
фильтрации посылок для ограничения времени сдачи отдельных задач.
ej-compile
----------
Поддерживается режим "только проверка стиля", при котором
поступивший файл не компилируется, а запускается программа
проверки стиля. Результат работы программы проверки стиля
считается результатом компиляции.
ej-contests
-----------
У каждой посылки может быть установлен флаг "отмечена"
(marked). Флаг может быть установлен как вручную, как и
проверяющей программой.
В выражении фильтра поддерживается предикат "marked", который
выбирает только "отмеченные" посылки. Поддерживается предикат
"latest_marked", который выбирает последнюю отмеченную посылку
для пары (пользователь,задача).
В выражении фильтра поддерживается предикат inusergroup(GROUP_NAME),
который выбирает пользователей, принадлежащих указанной группе
пользователей.
Поддерживается новый тип задач "tests". Для этого типа задач
требуется написание тестов по заданному условию задачи. Тесты
проверяются на наборе программ, среди которых есть как
правильные, так и неправильные. Правильные программы должны
пройти все тесты, а неправильные - не пройти хотя бы один тест
каждая. Документация по новому типу задач доступна на
EjudgeWiki.
Поддерживается альтернативная раскладка файлов. В альтернативной
раскладке файлы группируются по задачам вместо группировки
файлов по назначению. Документация по альтернативной раскладке
файлов доступна на EjudgeWiki.
Поддерживается выполнение произвольной программы в момент завершения
турнира. Имя программы задается с помощью глобальной конфигурационной
переменной contest_stop_cmd.
Добавлены глобальные конфигурационные переменные
advanced_layout, disable_auto_refresh, problems_dir, contest_stop_cmd.
Документация по новым конфигурационным переменным доступна на
EjudgeWiki.
Добавлены конфигурационные переменные binary,
valuer_sets_marked, ignore_unmarked, style_checker_env,
test_checker_env, style_checker_cmd, test_checker_cmd,
open_tests раздела описания задач. Документация по новым
конфигурационным переменным доступна на EjudgeWiki.
Добавлена конфигурационная переменная style_checker_env раздела
описания языкового процессора. Документация по новым
конфигурационным переменным доступна на EjudgeWiki.
Добавлена глобальная конфигурационная переменная 'load_user_group'.
Добавлены конфигурационные переменные раздела описания задач
'group_start_date', 'group_deadline'.
При просмотре таблицы текущих результатов привилегированный
пользователь может задать выражение фильтра посылок для задач,
пользователей и посылок. Таким образом можно ограничивать таблицу
текущих результатов определенными пользователями или определенным
временем.
Турниры корректно загружаются и работают, даже если в
конфигурационном файле турнира не определен ни один языковой
процессор.
Исправлена ошибка добавления записи в середину журнала посылок
при хранении журнала посылок в БД MySQL.
Конфигурационная переменная 'enable_text_form' раздела описания задачи
работает и для обычных (STANDARD) задач на сдачу программ. Если
значение переменной установлено в 1, на странице сдачи отображается
как окно для непосредственного ввода текста программы, так и диалог
для выбора файла для сдачи. Пользователь может сдать программу на
проверку либо скопировав ее текст в окно, либо приложив файл.
Сдать и текст программы, и приложенный файл одновременно нельзя.
ej-nwrun
--------
При тестировании под win32 корректно работает одновременный
ввод/вывод в файлы и стандартные потоки. Для этого в
конфигурационный файл турнира добавлены конфигурационные
переменные combined_stdin и combined_stdout.
ej-super-server
---------------
При выполнении операции "Check contests settings" в режиме
альтернативной раскладки файлов в каждом каталоге задачи
запускается утилита make, если в этом каталоге присутствует
Makefile.
При выполнении операции "Check contests settings" выполняется
проверка тестов с помощью проверяющей программы для тестов, если
она указана в секции описания задачи.
ejudge-edit-users
-----------------
Поддерживается редактирование групп пользователей.
libchecker
----------
Добавлен новый заголовочный файл checkutils.h, предназначенный
для использования в случае, когда программа не является
проверяющей программой, но использует функции библиотеки
libchecker.
Добавлены новые функции checker_in_open, checker_out_open,
checker_corr_open, checker_eof, checker_eoln,
checker_skip_eoln_ex, checker_read_file_by_line_ex,
checker_read_line_ex, checker_read_buf_ex, checker_read_int_ex,
checker_read_unsigned_int_ex, checker_read_long_long_ex,
checker_read_unsigned_long_long_ex, checker_read_double_ex,
checker_read_long_double_ex. Описание новых функций доступно на
EjudgeWiki.
Все функции чтения данных, кроме checker_read_file контролируют
допустимость управляющих символов во входных данных. В текстовом
файле могут появляться только пробельные управляющие символы.
Символы, для которых выполняется условие
((c < ' ' && !isspace(c)) || c == 127)
являются недопустимыми в текстовом файле и в случае обнаружения
таких символов выдается соответствующая ошибка.
Функции чтения вещественных чисел проверяют, что каждое число
является отдельным элементом ввода (то есть последовательностью
непробельных символов, ограниченной пробельными символами,
началом или концом файла). В предыдущих версиях строка "-1-1"
считывалась как два числа -1 и -1, в этой версии будет выдана
ошибка.
style_archive
-------------
Новая программа для проверки корректности архивов, сдаваемых на
проверку для задач типа "tests". Описание программы доступно на
EjudgeWiki.
Версия 2.3.15 (r5762) (20100131)
================================
Реализована поддержка тестирования программ на платформе
Windows. Описание процедуры добавления поддержки компиляторов
Windows находится по адресу:
http://www.ejudge.ru/wiki/index.php/Win32-%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
ejudge.xml
----------
Поддерживаются элементы <default_clardb_plugin>,
<default_rundb_plugin>, которые позволяют устанавливать
плагины по умолчанию для хранения базы посылок и базы
сообщений. Например,
<default_rundb_plugin>mysql</default_rundb_plugin>
по умолчанию для хранения базы посылок будет использоваться
MySQL.
ejudge-setup
------------
Добавлена поддержка настройки элементов <default_clardb_plugin>,
<default_rundb_plugin>.
ej-contests
-----------
При щелчке мышкой по номеру строки в административном интерфейсе
просмотра текста программы в окно комментария вставляется номер
строки.
В административный интерфейс просмотра текста программы
добавлены кнопки "Проигнорировать посылку" и "Пометить посылку
как успешную".
В раздел описания задачи конфигурационного файла serve.cfg
добавлена переменная `disable_ctrl_chars'. Если переменная
установлена в 1, при сдаче текстов программ запрещается
использование управляющих символов, кроме \r и \n.
В частности, запрещается использование \t.
Добавлен новый статус посылок: STYLE_ERR (Coding style
violation), предназначенный для отслеживания нарушений правил
оформления программ. Этот статус подобен статусу COMPILE_ERR, то
есть программы со статусом Coding style violation не
тестируются.
Добавлена поддержка автоматической проверки стиля оформления
программ. Для этого в раздел языков программирования добавлена
конфигурационная переменная `style_checker_cmd'. В этой
переменной можно указать имя программы, которая выполняет
проверку стиля оформления программ. Проверка стиля оформления
программы выполняется до компиляции программы. Если программа
проверки стиля завершается успешно, тестируемая программа
передается на компиляцию. Если программа проверки стиля
завершается неуспешно, диагностируется "Ошибка оформления
программы".
По умолчанию скрипты проверки стиля оформления программы
размещаются в каталоге проверяющих программ, то есть `checkers'
в каталоге турнира.
Поддерживается несколько серверов компиляции программ.
С помощью глобальной переменной extra_compile_dirs указываются
каталоги обмена для серверов компиляции. Например,
extra_compile_dirs = "win32_compile"
extra_compile_dirs = "compile2"
указывает, что каталог обмена с сервером компиляции с номером 1
называется CONTESTS_HOME_DIR/win32_compile/var/compile, а
каталог обмена с сервером компиляции с номером 2 называется
CONTESTS_HOME_DIR/compile2/var/compile
Сервер компиляции с номером 0 - это основной сервер компиляции,
каталог обмена которого указывается в переменной compile_dir.
В разделе описания языков программирования поддерживается
переменная `compile_dir_index', которая позволяет указать номер
используемого сервера компиляции.
В разделе описания языков программирования добавлена
конфигурационная переменная `disable_security'. Если эта
переменная установлена в 1, то для посылок на этом языке
программирования отключаются ограничения безопасности.
В выражение фильтра добавлен примитив "group". Он возвращает
строку из поля `group' первого участника регистрационной
записи.
В выражение фильтра добавлен примитив "arch". Он возвращает
строку архитектуры текущего языка программирования.
В административный интерфейс добавлены средства управления
очередью тестирования. Просмотр текущего состояния очереди
тестирования доступен по ссылке "View testing queue" наверху
главной страницы административного интерфейса.
С очередью тестирования поддерживаются следующие команды:
* снять одну посылку с тестирования
* повысить приоритет одной посылки
* понизить приоритет одной посылки
* снять все посылки с тестирования
* повысить приоритет всех посылок
* понизить приоритет всех посылок
При снятии посылки с тестирования она получает статус
"Pending check".
Добавлены конфигурационные переменные секции описания задачи
`combined_stdin', `combined_stdout'. Если установлена какая-либо
из этих переменных, то включается режим комбинированного ввода
или вывода: стандартный поток и файл.
В протоколе тестирования сохраняется максимальное количество
использованной памяти, если такая информация доступна со стороны
ОС.
Оптимизирована генерация таблицы текущих результатов.
ej-super-server
---------------
Поддерживается редактирование конфигурационной переменной
`disable_ctrl_chars'.
При добавлении нового компилятора в турнир при редактировании
турнира идентификатор языка программирования всегда
устанавливается равным идентификатору языка в сервере
компиляции. В предыдущих версиях идентификатор языка назначался
по-другому, в каждом турнире независимо от других, поэтому при
хранении посылок в БД один и тот же идентификатор языка мог
означать разные языки программирования в зависимости от
турнира. Начиная с данной версии вновь добавляемые в турнир
языки имеют идентификаторы, заданные в конфигурационном файле
сервера компиляции. Для нормализации существующих турниров
предназначена новая программа `ej-fix-db'.
При редактировании турнира с помощью CGI-программы serve-control
поддерживается включение дополнительных серверов компиляции (в
частности, сервера компиляции на Win32). На страницу
"Global settings (serve.cfg)" добавлен параметр
"Enable Win32 languages". Если его значение установлено в YES,
то поддежка Win32-компиляторов активируется.
Обратите внимание, что для того, чтобы в список поддерживаемых
компиляторов при редактировании турнира добавились
Win32-компиляторы после установки параметра "Enable Win32
languages" необходимо сохранить турнир, а потом снова его
открыть.
ej-fix-db
---------
Эта новая программа предназначена для нормализации
идентификаторов языков программирования в таблице runs базы
данных MySQL.
Программа изменяет идентификаторы языков программирования в
конфигурационных файлах всех турниров таким образом, чтобы они
соответствовали идентификаторам языков в конфигурационном файле
сервера компиляции. Одновременно модифицируется таблица runs в
БД.
Программа может запускаться произвольное число раз. Если все
конфигурационные файлы и таблица runs уже корректна, никаких
изменений не проиходит.
ej-nwrun
--------
Эта новая программа предназначена для запуска тестируемых
программ. Программа `ej-nwrun' получает параметры запуска,
исполняемый файл программы и тестовые данные, запускает
тестируемую программу, а затем передает результат работы
программы.
Для обмена с другими частями системы ejudge используются
разделяемые каталоги.
В настоящее время с программой ej-nwrun взаимодействует только
программа ej-run и только в синхронном режиме. Поэтому
распараллеливание тестирования с помощью ej-nwrun пока не
поддерживается.
ej-compile
----------
Добавлена опция командной строки -r, которая позволяет указать
строку, которая будет заменять строку CONTESTS_HOME_DIR в путях
в конфигурационном файле.
Например, если при конфигурировании ejudge значение
CONTESTS_HOME_DIR было установлено в /home/judges, то если
указать в командной строке параметр запуска
ej-compile -r j:
то все префиксы /home/judges в путях в конфигурационном файле
compile.cfg будут заменены на j:
Таким образом, путь /home/judges/compile будет заменен на путь
j:/compile
В конфигурационном файле поддерживается префикс /TMPDIR в
путях. При запуске программы он заменяется на текущий путь к
каталогу временных файлов системы.
Версия 2.3.14 (r5589) (20090905)
================================
В основном исправления ошибок.
contest.xml
-----------
Обрабатываются элементы <file_group>, <file_mode>, <dir_group>,
<dir_mode>, которые позволяют настраивать права доступа и
идентификатор группы для создаваемых системой файлов и каталогов.
В конфигурационных элементах, задающих анкету пользователя,
поддерживается возможность выбора значения из набора фиксированных
значений.
<field id="field3" separator=":" options="значение 1:значение 2:
значение 3">Выберите значение</field>
Атрибут options перечисляет возможные значения, которые разделяются
символом, определенным в атрибуте `separator'.
ej-contests
-----------
Таблица текущих результатов недоступна из интерфейса
непривилегированного пользователя ни при каких условиях.
В интерфейсе привилегированного пользователя доступна операция
изменения времени окончания турнира.
При просмотре исходного кода в интерфейсе привилегированного
пользователя доступны новые операции:
Submit a comment and mark OK прокомментировать программу и отметить
ее как OK
Just ignore the run Отметить посылку как IGNORED
Jusk OK the run Отметить посылку как OK
Улучшено форматирование исходного кода посылок в интерфейсе
привелигированного пользователя.
В конфигурационном файле турнира поддерживается новая глобальная
конфигурационная переменная `memoize_user_results'. Если она
установлена в 1, в фильтре посылок становится возможным использование
конструкции `total_score', возвращающей целое значение - суммарный
балл участника.
В фильтре посылок поддерживается бинарная операция `~=' -
сопоставление с образцом. Слева от знака операции записывается
строковое выражение, а справа - образец. В образце допускаются
регулярные выражения.
Версия 2.3.13 (r5532) (20081229)
================================
Улучшен запуск и остановка ejudge. Программы проверяют, что они уже
запущены, по списку процессов и никогда не запускаются, если уже
работают.
Для единообразия переименованы многие программы:
командный интерфейс пользователя:
new-server-cmd -> ejudge-contests-cmd
edit-userlist -> ejudge-edit-users
execute -> ejudge-execute
job-server-cmd -> ejudge-jobs-cmd
серверные программы:
compile -> ej-compile
compile-control -> ej-compile-control
new-server -> ej-contests
new-server-control -> ej-contests-control
convert-clars -> ej-convert-clars
convert-runs -> ej-convert-runs
job-server -> ej-jobs
job-server-control -> ej-jobs-control
run -> ej-run
serve -> ej-serve
super-serve -> ej-super-server
super-serve-control -> ej-super-server-control
userlist-server -> ej-users
userlist-server-control -> ej-users-control
ej-contests
-----------
Добавлены новые переменные `stand_column', `stand_name',
`internal_name' секции описания задачи.
Переменная `stand_name' позволяет задавать название столбца задачи в
таблице текущих результатов турнира. Если переменная не определена, то
в качестве названия столбца используется короткое имя задачи
`short_name'.
Переменная `stand_column' позволяет отображать результаты по данной
задаче в столбце, относящемся к другой задаче, имя которой задается в
значении переменной. Столбец, относящийся к задаче с установленным
значением `stand_column', не показывается. Значением `stand_column'
должно быть либо значение `stand_name', либо значение `short_name'
некоторой другой задачи, у которой не должна быть установлена
`stand_column'. Например:
[problem]
short_name = "A-1"
stand_name = "A"
[problem]
short_name = "A-2"
stand_column = "A"
[problem]
short_name = "A-3"
stand_column = "A"
Результаты по задачам "A-1", "A-2" и "A-3" будут отображены в столбце
"A". Отдельных столбцов для "A-2" и "A-3" в таблице не будет.
Переменной `stand_name' соответствует форматная подстановка %PS.
Значение переменной `internal_name' может использоваться в качестве
компоненты пути к тестам или проверяющим программам. Этой переменной
соответствует форматная подстановка %PL. Пример использования:
[problem]
short_name = "A"
internal_name = "abc"
long_name = "An Abc problem"
test_dir = "%PL"
В этом случае файлы с тестами будут размещаться не в каталоге
`tests/A', а в каталоге `tests/abc'.
На странице привилегированных пользователей доступны ссылки
"View users for IP addresses" и "View IP addresses for users".
По первой ссылке отображается таблица, в которой для каждого IP-адреса
в турнире перечисляется список пользователей, входивших с этого
адреса. По второй ссылке отображается таблица, в которой для каждого
пользователя перечисляется список IP-адресов, с которых он заходил в
турнир.
Добавление новых записей по CSV-таблице (ссылка "Add new runs in CSV
format") возможно в трех режимах:
"Create new submits, fail if a submit already exists" - в котором
добавляются только новые записи
"Modify existing submits, fail if a submit does not exist" - в котором
только модифицируются существующие записи
"Create non-existing submits and modify existing submits" - если
запись существует, то она модифицируется, а в противном случае
создается.
При ручной установке статуса посылки в OK автоматически
устанавливается максимальное количество баллов за задачу.
На странице просмотра непривилегированных пользователей выводится
информация о суммарном числе посылок и о суммарном размере посылок.
В XML-условиях задач поддерживаются подстановки переменных в вариантах
ответов.
Поддерживаются интерактивные задачи. В интерактивных задачах ход
тестирования определяется не только фиксированными тестовыми данными,
но и выводом тестируемой программы. Для интерактивных задач
параллельно с тестируемой программой запускается
программа-интерактор. Стандартный вывод тестируемой программы
направляется на стандартный ввод программы-интерактора, а стандартный
ввод тестируемой программы соединяется со стандартным выводом
программы-интерактора. Правила описания программы-интерактора описаны
на странице:
http://ejudge.ru/wiki/index.php/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D1%8B
Для интерактивных задач должна быть установлена переменная
`interactor_cmd' раздела описания задачи. Кроме того, может быть
установлена переменная `interactor_env' для установки массива
переменных окружения.
ej-super-server
---------------
Полностью реализовано новое редактирование настроек турнира.
Особенность нового режима редактирования - не нужно нажимать на кнопку
"Change" при изменении значения параметра.
Версия 2.3.12 (r5351) (20081118)
================================
Корректно поддерживаются Google Chrome и другие браузеры на движке
WebKit.
Упрощены конфигурационные настройки для использования MySQL. Теперь
общие параметры подключения к БД, такие как имя базы, логин, пароль
задаются в секции конфигурирования плагина mysql_common следующим
образом:
<plugins>
<plugin type="common" name="mysql" load="yes">
<config>
<password_file>ejudge_password.txt</password_file>
<database>ejudge</database>
</config>
</plugin>
<plugin type="rldb" name="mysql" load="yes">
<config/>
</plugin>
<plugin type="cldb" name="mysql" load="yes">
<config/>
</plugin>
<plugin type="uldb" name="mysql" load="yes" default="yes">
<config/>
</plugin>
</plugins>
Обратите внимание, что пароли для доступа к БД могут быть вынесены в
отдельный файл с помощью <password_file>. Указанный файл может быть
доступен на чтение только пользователю, из-под которого работают
серверные программы ejudge. Если не указан абсолютный путь к файлу, он
ищется в том же каталоге, в котором расположен ejudge.xml.
Файл пароля должен содержать две строки: в первой строке записывается
логин пользователя для доступа к MySQL, во второй строке записывается
пароль.
Для всех конфигурационных переменных, требующих задания времени,
например, <registration_deadline> и пр., поддерживаются различные
форматы задания времени:
2008/11/18 16:20:33 (формат по умолчанию)
16:20:33 2008/11/18
16:20 (если дата опущена, подразумевается сегодня)
2008/11/18 (если время опущено, подразумевается 00:00:00)
2008-11-18 16:20:33 (формат дат MySQL)
16:20 18/11 (подразумевается текущий год)
Клиентская часть теперь использует dojo-1.2 вместо dojo-0.4.
Исправлены несколько ошибок при разборе IP-адресов и масок.
ejudge-upgrade-web
------------------
Этот скрипт обновляет каталог ejudge веб-сервера, необходимый
для работы клиентской веб-части. Скрипт скачивает dojo-1.2,
инсталлирует его в каталоге $(HTDOCS)/ejudge, а также создает
необходимые символические ссылки на файлы и CGI-программы. Если
на веб-сервере не используются виртуальные хосты, и при
конфигурировании ejudge были правильно указаны значения опций
--with-httpd-htdocs-dir и --with-httpd-cgi-bin-dir, скрипт можно
запускать без аргументов:
ejudge-upgrade-web
В противном случае можно указать каталог корня документов и
CGI-программ, например так:
ejudge-upgrade-web /var/www/html /var/www/cgi-bin
У пользователя, запускающего скрипт должно быть достаточно прав
для записи в эти каталоги. Скачанный архив dojo-1.2 сохраняется
в домашнем каталоге пользователя и не скачивается повторно, если
он уже существует там.
contest.xml
-----------
Добавлен новый элемент <sched_time>, который позволяет задавать
запланированное время старта турнира в конфигурационном файле. При
создании таблиц турнира запланированное время старта копируется в
таблицы турнира, после чего может изменяться администратором турнира.
Добавлен атрибут "disable_member_delete" элемента <contest> вместо
флага DISABLE_MEMBER_DELETE. Элемент <client_flags> поддерживается для
совместимости при чтении, но при записи XML-файла элемент
<client_flags> уничтожается.
Флаг IGNORE_TIME_SKEW удален, но поддерживается при чтении.
Флаг DISABLE_TEAM удален, но поддерживается при чтении.
Атрибут "enable_forgot_password" переименован в
"enable_password_recovery". Атрибут "enable_forgot_password"
поддерживается для совместимости, но при записи XML-файла заменяется
на "enable_password_recovery".
Атрибут "new_managed" переименован в "managed".
В правах пользователей поддерживаются специальные множества прав
OBSERVER_SET, JUDGE_SET, MASTER_SET, которые заменяют собой