rbx.cp 0.5.73__py3-none-any.whl → 0.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. rbx/annotations.py +21 -1
  2. rbx/box/cli.py +10 -1
  3. rbx/box/code.py +140 -3
  4. rbx/box/contest/build_contest_statements.py +44 -34
  5. rbx/box/contest/schema.py +52 -8
  6. rbx/box/contest/statements.py +53 -25
  7. rbx/box/fields.py +35 -0
  8. rbx/box/lang.py +27 -0
  9. rbx/box/package.py +1 -1
  10. rbx/box/packaging/boca/packager.py +48 -5
  11. rbx/box/packaging/contest_main.py +13 -0
  12. rbx/box/packaging/main.py +13 -2
  13. rbx/box/packaging/packager.py +4 -4
  14. rbx/box/packaging/pkg/packager.py +142 -0
  15. rbx/box/packaging/polygon/packager.py +2 -24
  16. rbx/box/packaging/polygon/upload.py +35 -17
  17. rbx/box/remote.py +2 -2
  18. rbx/box/schema.py +68 -18
  19. rbx/box/solutions.py +6 -1
  20. rbx/box/statements/build_statements.py +44 -27
  21. rbx/box/statements/builders.py +18 -10
  22. rbx/box/statements/expander.py +49 -0
  23. rbx/box/statements/latex_jinja.py +61 -4
  24. rbx/box/statements/schema.py +33 -9
  25. rbx/box/testcase_utils.py +19 -47
  26. rbx/box/tooling/__init__.py +0 -0
  27. rbx/box/tooling/boca/__init__.py +0 -0
  28. rbx/box/tooling/boca/main.py +13 -0
  29. rbx/box/tooling/boca/scrape.py +34 -0
  30. rbx/box/{packaging/boca/upload.py → tooling/boca/scraper.py} +77 -8
  31. rbx/box/tooling/main.py +8 -0
  32. rbx/box/ui/widgets/interaction_box.py +19 -1
  33. rbx/grading/caching.py +18 -2
  34. rbx/grading/judge/sandbox.py +48 -5
  35. rbx/grading/judge/sandboxes/isolate.py +1 -0
  36. rbx/grading/judge/sandboxes/stupid_sandbox.py +11 -5
  37. rbx/grading/judge/sandboxes/timeit.py +36 -15
  38. rbx/grading/processing_context.py +62 -78
  39. rbx/grading/steps.py +91 -40
  40. rbx/resources/packagers/boca/checker.sh +4 -1
  41. rbx/resources/packagers/boca/compile/c +2 -6
  42. rbx/resources/packagers/boca/compile/cc +2 -6
  43. rbx/resources/packagers/boca/compile/cpp +2 -6
  44. rbx/resources/packagers/boca/compile/java +1 -6
  45. rbx/resources/packagers/boca/compile/kt +24 -28
  46. rbx/resources/packagers/boca/compile/py2 +2 -6
  47. rbx/resources/packagers/boca/compile/py3 +2 -6
  48. rbx/resources/packagers/boca/interactive/c +15 -83
  49. rbx/resources/packagers/boca/interactive/cc +15 -83
  50. rbx/resources/packagers/boca/interactive/cpp +15 -83
  51. rbx/resources/packagers/boca/interactive/java +15 -88
  52. rbx/resources/packagers/boca/interactive/kt +15 -88
  53. rbx/resources/packagers/boca/interactive/py2 +15 -88
  54. rbx/resources/packagers/boca/interactive/py3 +15 -88
  55. rbx/resources/packagers/boca/interactor_compile.sh +5 -2
  56. rbx/resources/packagers/boca/interactor_run.sh +174 -0
  57. rbx/resources/packagers/boca/safeexec.c +530 -0
  58. rbx/resources/packagers/boca/safeexec_compile.sh +49 -0
  59. rbx/resources/presets/default/contest/contest.rbx.yml +9 -8
  60. rbx/resources/presets/default/problem/problem.rbx.yml +27 -26
  61. rbx/resources/templates/rbx.h +2 -3
  62. {rbx_cp-0.5.73.dist-info → rbx_cp-0.6.0.dist-info}/METADATA +2 -1
  63. {rbx_cp-0.5.73.dist-info → rbx_cp-0.6.0.dist-info}/RECORD +66 -55
  64. rbx/resources/packagers/boca/compile/pas +0 -172
  65. {rbx_cp-0.5.73.dist-info → rbx_cp-0.6.0.dist-info}/LICENSE +0 -0
  66. {rbx_cp-0.5.73.dist-info → rbx_cp-0.6.0.dist-info}/WHEEL +0 -0
  67. {rbx_cp-0.5.73.dist-info → rbx_cp-0.6.0.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rbx.cp
3
- Version: 0.5.73
3
+ Version: 0.6.0
4
4
  Summary:
5
5
  Author: Roberto Sales
6
6
  Requires-Python: >=3.9,<4.0
@@ -16,6 +16,7 @@ Requires-Dist: beautifulsoup4 (>=4.13.4,<5.0.0)
16
16
  Requires-Dist: chardet (>=5.2.0,<6.0.0)
17
17
  Requires-Dist: colour (>=0.1.5,<0.2.0)
18
18
  Requires-Dist: dateparser (>=1.2.1,<2.0.0)
19
+ Requires-Dist: deepmerge (>=2.0,<3.0)
19
20
  Requires-Dist: fastapi (>=0.115.8,<0.116.0)
20
21
  Requires-Dist: filelock (>=3.14.0,<4.0.0)
21
22
  Requires-Dist: gitpython (>=3.1.43,<4.0.0)
@@ -1,77 +1,86 @@
1
1
  rbx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- rbx/annotations.py,sha256=LXbVOSkE9kwcxEirsOMo10cEnvol854QvaCBIjhWyE8,3047
2
+ rbx/annotations.py,sha256=qcJGL_INONSirH7LTrEma5RsweAIbO6QlRHVvRvb9ao,3521
3
3
  rbx/autoenum.py,sha256=cusv8ClXRlDVvhZ8eDrtYcL_2peXlHugAey_ht8roXk,12025
4
4
  rbx/box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  rbx/box/builder.py,sha256=MDm2qqmhedAbhn3rWP6cDwbBsGhV6sz_2sg1zLkPDw0,3613
6
6
  rbx/box/cd.py,sha256=KGaqXHnv2hCumZS2VdMezFfwFEQcSq0rt05_KZtuQAo,1570
7
7
  rbx/box/checkers.py,sha256=0r_9cdRfZJlDuBuBB7xrzMJixcVL2JdBe4dmWAQym04,12828
8
- rbx/box/cli.py,sha256=jWL-Tws_74d0WFuHymk_VSTWTy8MGgmroBD0o5sqGxo,27767
9
- rbx/box/code.py,sha256=2oC1JbZiwfeg53ZICPig-KJYchqFRIZz-inlM-cLc7Q,19911
8
+ rbx/box/cli.py,sha256=NRx9Fs6lMnQMPPFVSxqEk8WNPDgfneRKF2rP0_fbKtE,28001
9
+ rbx/box/code.py,sha256=m9bWdeseb87QbSbVgRRqdVzDrCT3JXEvNKzhjyKkLe4,24312
10
10
  rbx/box/compile.py,sha256=Kzn5mEQu4vb91W9vjyt0DS6cfPJzFLTUoowFj7uHLUo,2539
11
11
  rbx/box/conftest.py,sha256=sEmciXSeDC-wmrZ1JSxbsUenKNP_VWW32mrCun2pY3I,1070
12
12
  rbx/box/contest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- rbx/box/contest/build_contest_statements.py,sha256=DtbzLShc8zzbjE-1sBFtPY3JGhSwm48q6eSOPYWSVxQ,11399
13
+ rbx/box/contest/build_contest_statements.py,sha256=643LJY1XEgevitbnzc05Cgo8wcLp7w91Z1K4D5XKcqA,12016
14
14
  rbx/box/contest/contest_package.py,sha256=OaUbpBtkhkgOPzJ1ccI_Vq4FMSaJvZm3gMOKfVY8oy4,3032
15
15
  rbx/box/contest/contest_utils.py,sha256=fsWHG1e65wq9zvRY3tdf32VF0nU1yzGTOBX5yjXiNk4,1102
16
16
  rbx/box/contest/main.py,sha256=5IRdTRxk4u7wSFgmcC18mefuuLfgsJGRlYWl3pLg-v8,8416
17
- rbx/box/contest/schema.py,sha256=OOoQUPYAHzu78aQfRbrqGepiUdGxSVRR1VQKFbKHjkE,6111
18
- rbx/box/contest/statements.py,sha256=Or8gFb6P_oViGdeiVgepXsvd_W84mA7LRaVmiAXWWSg,2977
17
+ rbx/box/contest/schema.py,sha256=eb7xtyq078YYWYHueximNhyHFINzwgLMFm1j9U3LxBQ,7461
18
+ rbx/box/contest/statements.py,sha256=wTLmCO3VlGUcN-CzBf-uKUSOAbLUnDeZhdMcsIuF63A,3803
19
19
  rbx/box/creation.py,sha256=Evz7K6JoarD-4JJQsZsgoxU9FgCF9Z7-LfuroG4Cqls,2444
20
20
  rbx/box/deferred.py,sha256=II3X9e87JCOZtmspnHh-n4PFqh-FsH_oc0XJHZ9ZYVQ,691
21
21
  rbx/box/download.py,sha256=tLW5gLVeLk0gHMEMwScSoHIXQPkXuPsqXzItsrsnUZY,3070
22
22
  rbx/box/dump_schemas.py,sha256=3j5t47_vJmXj0BCczxDX6ByOcsfolGEDNCBXlPpk86w,593
23
23
  rbx/box/environment.py,sha256=Kp69MekUwwoVpupnafUcN5KAbP-ZTCwe0OQXt1h0FN8,11859
24
24
  rbx/box/extensions.py,sha256=Von8kIeXvNFTkGlMRMTvL2HIHPwlkuiMswr-ydbGV1w,519
25
+ rbx/box/fields.py,sha256=lc1OHpo_AC8RxzNasipULGkRmToAiXBGzWDeb14L_ss,1092
25
26
  rbx/box/formatting.py,sha256=drxGLRS-uh_5j0GTmk8kAq0NlWpM5WoSBJoDHh9KXNI,1222
26
27
  rbx/box/generators.py,sha256=0HiNZfZXvEpXLHP1D0cJp-fgSujOm4jPDdniWyy8HrI,13824
27
28
  rbx/box/generators_test.py,sha256=J7aBfuJhU84MWDWzgReRoOuQw_hVa09B8gTKAvL2XVo,1987
28
29
  rbx/box/git_utils.py,sha256=VlUgzuHOCnrjjiJQnDB32qDHbHw_zkwgA7wm4bloibc,750
29
30
  rbx/box/header.py,sha256=ifErXcIxG5lM5AyRiHDr7JE401vR4ORNXCNpHXxN_ls,2001
31
+ rbx/box/lang.py,sha256=GaWvf4rgukflIZ9ti4MUKSJcz9wm2mIVuFcrO-pA8L8,669
30
32
  rbx/box/lazy_importing_main.py,sha256=6Z8As7qVFFT619xHH9Xt8VCH57NjC4aDxfAgkWiUwT8,116
31
33
  rbx/box/lazy_importing_test.py,sha256=B0-b3y_DkxEmtVfu4NfmVsgVdFl6kRCsEL6GLMHJISo,628
32
34
  rbx/box/main.py,sha256=a8CYi77kOywPFly4-ucEIJLXQW-1NFp91kK2fA42YTE,86
33
35
  rbx/box/naming.py,sha256=pOG37X_wQM9CCSYwJIUf-b-ZHEs_nchO7wQEdP_quJg,1367
34
- rbx/box/package.py,sha256=1V2uKjHqgIpzSeMv6nHcZCxDkDvsAt5gEBY6cw5aleQ,15012
36
+ rbx/box/package.py,sha256=Qx63gi9wcaucBSmYmAA3m7HMZIvtdyMZSs1qZUyEPzY,15017
35
37
  rbx/box/packaging/boca/extension.py,sha256=EQALNEOv4zVDXSKs_dk11n92y7cBZVn8TogIK683lE0,890
36
- rbx/box/packaging/boca/packager.py,sha256=kiCcP9roRCiDU0Xr5PDKO83W1yN6cyg-EKMF9fxE0EY,11950
37
- rbx/box/packaging/boca/upload.py,sha256=_YSPlaz-E57dtt4mOFcTQB9UfyGWeXAW-mXg3YoDQn0,10795
38
- rbx/box/packaging/contest_main.py,sha256=UsRfIdNmOf0iLUbzgjxzyECfMuCQINstG1SCClGHaUQ,2808
39
- rbx/box/packaging/main.py,sha256=NgFBoqkSRyOwA9srXoUwzrI0F6qxjsmjGAFZ-un8j0M,4073
38
+ rbx/box/packaging/boca/packager.py,sha256=MEVXTGtMWxcXetvXZ4td-AtOUTM68WeRqy5yt-7Lg28,13675
39
+ rbx/box/packaging/contest_main.py,sha256=7YQWmzl1rOdO7cWFc_D6zhywIE12lKJY1O6hnrxkOLs,3168
40
+ rbx/box/packaging/main.py,sha256=J0wPj9gNOJRUWtIRncspBmYVCkdzyUOHDCWmQ7qSqsc,4352
40
41
  rbx/box/packaging/moj/packager.py,sha256=FjghOe5CPlaF1GqK0NZgWVV_eYWpdTmz88bh04yeAyI,8708
41
- rbx/box/packaging/packager.py,sha256=da2haC1L9cG30myneMrRIAdGubtid0Xmy38BHKPCZZ4,3633
42
- rbx/box/packaging/polygon/packager.py,sha256=GfZ-Dc2TDKkb3QNnfOy8yxldho2L401Ao06oWg--Gcs,11714
42
+ rbx/box/packaging/packager.py,sha256=4WASooYT3VQvDM4M0gNrg9SS7nS-deLQeZWV4c-YLV0,3669
43
+ rbx/box/packaging/pkg/packager.py,sha256=4pt4cZa_MU9gsWNVvh5Um1KEIh_axBHlXmPf6rpFoHg,4904
44
+ rbx/box/packaging/polygon/packager.py,sha256=ANF1wbnvLmmNiovc7COj90fw8nxinuH1zQdlD24cKwM,11163
43
45
  rbx/box/packaging/polygon/polygon_api.py,sha256=mPKEqiwANJ1nr-JhOgzGMaDhnbljsAgzzPHW6kkf7R4,41016
44
46
  rbx/box/packaging/polygon/test.py,sha256=bgEju5PwudgyfwxXJagm8fM6CJVlWM6l_-2q1V-oKaQ,3069
45
- rbx/box/packaging/polygon/upload.py,sha256=s9AHYe_utRFL681AmDbSaoc-t0PD6TdrIhnoVGa-Xwc,12429
47
+ rbx/box/packaging/polygon/upload.py,sha256=6dIbjwygKtirLBkbh40UgtHU1NHGxSMoFAtg2BcC2II,12902
46
48
  rbx/box/packaging/polygon/xml_schema.py,sha256=ZgcLyvxggMUccbTNdzflue5G-FTN2_ZmOGGF7FD0Y5A,2851
47
49
  rbx/box/presets/__init__.py,sha256=9S7AyCop5aopr5U2ttXxOmvfBU0LHrgg5reyskfhbds,21316
48
50
  rbx/box/presets/fetch.py,sha256=900aq9S8e12TlgSenG0iHgtF4OWgqavZsptgI_a1YKM,2508
49
51
  rbx/box/presets/lock_schema.py,sha256=6sRPnyePOC8yy-5WcD5JRZdDJHf8loqbvpQ1IPiOU9s,349
50
52
  rbx/box/presets/schema.py,sha256=mZmSPkQsw7eQM0lQN6er1MO_LiW1ObwwAZFDK0F5fxE,1962
51
- rbx/box/remote.py,sha256=Hujnl4bmIoemrFgAdCcz_MZo09iS-YJgKxu1to_ujr8,4574
53
+ rbx/box/remote.py,sha256=2xN0XSWoRyDY0-FNKejK0x8iKhRuVsluIMKKb-gD7bI,4572
52
54
  rbx/box/retries.py,sha256=70n2avWa7GYSyNcmhml8qp1K21Fmp-JNjvYC9b_UaNg,4721
53
55
  rbx/box/sanitizers/warning_stack.py,sha256=RI97_GJgdjTKIXY_r0EKp5h0qQQSDSdNDh5K7zINrqs,2861
54
- rbx/box/schema.py,sha256=bJgO0KV75mGzCXv24jASFvZFP1peM_qP23_H5MpXM5M,16670
56
+ rbx/box/schema.py,sha256=mL9muaV4F2C3QnYDSHkMKjXMfkd1kLtXq9KYBTqsaW4,18518
55
57
  rbx/box/setter_config.py,sha256=9iObg6BwxQhFAhIOk31Jc0BDDpRYVGf3SyLIOsWIltM,4393
56
- rbx/box/solutions.py,sha256=VLd-v8Ns0qgJ0-wMD9AIW0v4Jiw3dvWzpLrhV1u9P1s,50900
58
+ rbx/box/solutions.py,sha256=vtLGpZZMPllfhaifNYpvWQtAaQlllIv64tORupKlycc,51101
57
59
  rbx/box/solutions_test.py,sha256=PX1TQoRzNd9mi1SGsG7WFrpqFgNrNX5Kwt0mkwFdoOA,1749
58
60
  rbx/box/state.py,sha256=MMf3DvfQji0jKEliCHct2Tpp_0epL1tvP8HbHNArQIc,166
59
61
  rbx/box/statements/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- rbx/box/statements/build_statements.py,sha256=lu3mwm-ZID0N_t_6FIrCcMFjlqa5JR49PQ28dq2C3s8,12169
61
- rbx/box/statements/builders.py,sha256=6lYV-cnC-NXMnJf1wasbq_AMbjdIuPpMirm7QsjZI6s,11825
62
+ rbx/box/statements/build_statements.py,sha256=KFPfX9IglaPW17B4hSTPXiaylV-kt6j3eWUIS1ddJZI,12685
63
+ rbx/box/statements/builders.py,sha256=tEC8IRMa_RxoUTXubIrJlbYOVO9Kkeud9-OtGqg2KRw,12102
64
+ rbx/box/statements/expander.py,sha256=sdbMtNcJQCbXGIkFIl9h24pGr77vhFLnM31V5AfuduI,1715
62
65
  rbx/box/statements/joiners.py,sha256=jItNXkAbTjFQpPMgfDMW86n3vMTbaE8sgo9I8Yf4Txg,2886
63
66
  rbx/box/statements/latex.py,sha256=LkcHwXjMFxbw--Gj9T1VkFKQFsXhY9dN7xZHpZycNW8,1346
64
- rbx/box/statements/latex_jinja.py,sha256=7WBfn1h8DpqCAmSE6Av64HfURMnJ2AO4QX1CD72sz5E,7096
65
- rbx/box/statements/schema.py,sha256=ES8EUE9JE_uJlDwQx1kZd_5nQJyABtlnjP5IjbWaJ-0,3897
67
+ rbx/box/statements/latex_jinja.py,sha256=6whLCIHzPjq7oeDwzUgdvirpLA4Y3G-w319DhzPwPUI,8960
68
+ rbx/box/statements/schema.py,sha256=QIUkQhrLb3rqAdvzDSwL3r4uAvDv-mKsWRtfCEH2L7Y,4685
66
69
  rbx/box/stresses.py,sha256=SOfYhJxge3ykuLlBMALM0IAmpZuOZFS9EP8Jmn6yHiw,12923
67
70
  rbx/box/stressing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
71
  rbx/box/stressing/finder_parser.py,sha256=jXpYNa4FyugzmHi3r96Uv4rU1krRQJc5Ihr9jf1cvNo,11918
69
72
  rbx/box/stressing/generator_parser.py,sha256=oHZryjR3YohgaSO9WEirQ7b2e-98WgZStF0N99W4Thw,7380
70
73
  rbx/box/tasks.py,sha256=sVPR6a3CSU28pN6bMjZcZATYZBV7JlZvhvxcPRH8-MI,10514
71
74
  rbx/box/testcase_extractors.py,sha256=J43eG7vpxc5nP_2yhrXJODkd4EYlV4WiYVbM6hzipY4,11944
72
- rbx/box/testcase_utils.py,sha256=0HydSzmy1Olqws6iPMkX6dnPnl45sPZf83SlrjQxs40,7816
75
+ rbx/box/testcase_utils.py,sha256=epal6TFd2PK3dbEvTTr9tCebfmbF-rQD0d3xW8umriA,6860
73
76
  rbx/box/testcases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
77
  rbx/box/testcases/main.py,sha256=_I7h_obRcpNLRQ6dDJDIE5NAvTyn5nBOhdsBhRA_PvU,5442
78
+ rbx/box/tooling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
+ rbx/box/tooling/boca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
+ rbx/box/tooling/boca/main.py,sha256=knl1rpaHIwA63KkzMJMZQrejzMpbTPBhYqGx1IpuNm4,289
81
+ rbx/box/tooling/boca/scrape.py,sha256=q1BoVstfLbw5CwB9e2hQnseBv6HQMnXq2z_tk18ui6M,1024
82
+ rbx/box/tooling/boca/scraper.py,sha256=ISz8kfEN6srnjJHPdG87wOJgNstEcqrkXF-4PFE8UDg,12686
83
+ rbx/box/tooling/main.py,sha256=4nVXUprVUFcqtHU5SMSsOvPlOV9d0fZFPndRUvHrB5I,205
75
84
  rbx/box/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
85
  rbx/box/ui/captured_log.py,sha256=HPoV6LZohuECmjoqOdM_xFZbpICzQnI4n3rF-lf_b1Q,11634
77
86
  rbx/box/ui/css/app.tcss,sha256=yArFcQlehLoVYPN4AzZnekOnKTEaNdbC-SERSwopxg8,2426
@@ -92,7 +101,7 @@ rbx/box/ui/utils/run_ui.py,sha256=aOIF-84TbLe7KN3JeppANPuxJ1U4jHAaxDBnnFBQZcE,37
92
101
  rbx/box/ui/widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
102
  rbx/box/ui/widgets/diff_box.py,sha256=4OxgwOvdm9nSVUKeKLzOQBlBweFu8LiTfp6g4ZkS5nM,1125
94
103
  rbx/box/ui/widgets/file_log.py,sha256=3wlrmkWR-EMibwlwXOJ5sGpTFwFEkRaGYo5fdmf8L3w,1704
95
- rbx/box/ui/widgets/interaction_box.py,sha256=WDHmpO5ck21y6hNdUVxvJ81jEg9TVJh39hFJUc5-Dos,1572
104
+ rbx/box/ui/widgets/interaction_box.py,sha256=mJoQjHegxkIL00OgiCULmV0_w-2ZcwsQEa-Y8NrDlZM,2252
96
105
  rbx/box/ui/widgets/rich_log_box.py,sha256=mF565c_Y3RYUZ_GJEFj5Eb86SFjsib31wE5qu1K0UBM,91
97
106
  rbx/box/ui/widgets/test_output_box.py,sha256=yqeAb-JFvVx1Q7w_qJbDMWQigyGy4ofGECDxQ7P0_2s,3864
98
107
  rbx/box/ui/widgets/two_sided_test_output_box.py,sha256=L-ORiDwd6CP5DFpavrKGBaX0ZHkSoQqbJrGZ4BdFUWc,2289
@@ -107,22 +116,22 @@ rbx/console.py,sha256=X8EJy68OROgh6ao3ZcUjZm5Y56VFMzen58ywAuQ7pAU,990
107
116
  rbx/create.py,sha256=ezUq9KiSA-88ASd8CtjWXw8UB4LCaQ3Gib3OgvsLK-Q,986
108
117
  rbx/edit.py,sha256=Zqnx_Pt06ijCxV-pZKGCJhjKB-nVO0QCM6xSBwPWGoE,798
109
118
  rbx/grading/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- rbx/grading/caching.py,sha256=tnCQl08kUC0IYx5XKxfvaUGJIvEC_C2LPJHNv90clOw,12029
119
+ rbx/grading/caching.py,sha256=tUDkhCaH8vA82_Iv-LRBhFjUQY13YWOSKG_3B2DhXpA,12573
111
120
  rbx/grading/conftest.py,sha256=iN9LUG1IQqhK5JjkctcP68v6675oYsiD2sQSgyLMTqw,960
112
121
  rbx/grading/judge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
122
  rbx/grading/judge/cacher.py,sha256=TDgYDhehnJIv64EFiXxPAtVADD8q9WcJa_BE9TsE-JM,17669
114
123
  rbx/grading/judge/digester.py,sha256=gtOIe_iL4PEWA7OKelW1gjSI-nBvbOpDPJGV8VQyjSg,912
115
- rbx/grading/judge/sandbox.py,sha256=0ILirjd9xQTDH2mycRYAKvad-rMqDHrK72fjX3sBRBw,24868
124
+ rbx/grading/judge/sandbox.py,sha256=Jpl4lYhlTfXbJebPnruFpSfmhKqhJMcPNt0T_n5jnHA,25844
116
125
  rbx/grading/judge/sandboxes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
- rbx/grading/judge/sandboxes/isolate.py,sha256=oLFcbOXsuIjbI2G58i9UrGk_h7k32OgL_8yvZybshhQ,25936
118
- rbx/grading/judge/sandboxes/stupid_sandbox.py,sha256=d0ZrMDFg8P1aDyyvk_dKauP1eAGPMbxgwb3GF_FhuUk,11122
119
- rbx/grading/judge/sandboxes/timeit.py,sha256=0qs3RD2LmFMg0wolGPSl5sg8HRMHsnZEgUEvBuhGyT4,10865
126
+ rbx/grading/judge/sandboxes/isolate.py,sha256=L-h2_GZfFGYQEsGjd-lyzqzpsl6_ytJZ5myVyQCxerk,25961
127
+ rbx/grading/judge/sandboxes/stupid_sandbox.py,sha256=PSPQUBSSsP2OfEBbcLjx4m2rUlSxLZ-hKyMYP8zJWhI,11310
128
+ rbx/grading/judge/sandboxes/timeit.py,sha256=RTfkL5eyjs0ci2c7r9szza7guexKcNWoPjrEFBzkR_4,11359
120
129
  rbx/grading/judge/storage.py,sha256=3vv0HvtenbUZBH33CB5ZzX66ppL22G6munBaAA9BgwQ,9418
121
130
  rbx/grading/judge/test.py,sha256=ll0Iw7zyOpGdKPD_PGH7dvUkb4stQLu-ikbQnqJvuAc,944
122
131
  rbx/grading/judge/testiso.py,sha256=v14DtkWiZFJ9AKMzrb0_vZKPWDt8jz8iIw1Z2O-Advk,1397
123
132
  rbx/grading/limits.py,sha256=ev312UTOo8S4-3AAVibQdXZclWCxS96CdbZxqW4y1kE,770
124
- rbx/grading/processing_context.py,sha256=EOxsRTKB_JEgcKNodDWPIYaBramANU-6QnDkqdF8tEk,2556
125
- rbx/grading/steps.py,sha256=uhEL5_cEkZdb6-euxHthcL5Zi_sLCfJQKohXsURtnmU,27522
133
+ rbx/grading/processing_context.py,sha256=Jg9kNnkH3hi2hiE6Gh23QwS89r9Zj230NMl1CUEHSfo,1866
134
+ rbx/grading/steps.py,sha256=p43pDnY2tCBhx1kvN-t3_230eQFxUOEOYmsTGedIDik,28964
126
135
  rbx/grading/steps_with_caching.py,sha256=nez2YwgauGXKRjhk6tQxTDGQ-HEk7KfZOeAPhsxi5iw,3150
127
136
  rbx/grading/steps_with_caching_run_test.py,sha256=mh4DRInrOGhnQFWD1SlcjDm_HvcSDFTDMSpAlG-Q5SI,15570
128
137
  rbx/grading_utils.py,sha256=lL2KtSkOsMElqrRoApQTbFcqVOeHVWUDTMCa3IsLpC4,4484
@@ -139,24 +148,24 @@ rbx/resources/default_setter_config.mac.yml,sha256=i28xwAUDg-kuxx19knCiYkh-NR7Qe
139
148
  rbx/resources/default_setter_config.yml,sha256=oy6fbuQyYaJS2Cw2zcbYcBBGt6138CyB3-bLl45_QqY,1000
140
149
  rbx/resources/envs/default.rbx.yml,sha256=8gl4DXc5mVISx__1libPQfmuHYdW32xjysfqpNESIAo,853
141
150
  rbx/resources/envs/isolate.rbx.yml,sha256=VZAJ-Mu-A5Rt4m0VtMygOXA7eLLvCCmoorv_0acDmXQ,870
142
- rbx/resources/packagers/boca/checker.sh,sha256=nNif_PIHriktliHI-N2_PxLEO3T1zXbTGnM58ok0G1g,1218
151
+ rbx/resources/packagers/boca/checker.sh,sha256=kesoIYeCttAtuQBq-7HvfXK8cAFTJhFbqHm9rNd_udg,1272
143
152
  rbx/resources/packagers/boca/compare.sh,sha256=a6AmQqwrIq616DHjp_S2l95wO7UiMVy0LQ9EajZKDDk,1201
144
- rbx/resources/packagers/boca/compile/c,sha256=7bx47zeZB5nJl2WmYmt2jjhQGgBnQnFwGFziL2p_Q-Y,4510
145
- rbx/resources/packagers/boca/compile/cc,sha256=B_18QkUGcjUg6yrTFlTQuMWnHpTWUKPZmFuk7Y0l1VA,4561
146
- rbx/resources/packagers/boca/compile/cpp,sha256=_1pJTSC7uADu-IIdQCaZyMbH8x01wfgxcdZ36oxXncI,4496
147
- rbx/resources/packagers/boca/compile/java,sha256=vh3IeWzvPWrEX0n9AmAHFlpQrq7MX1feLhHfdBP7onU,5259
148
- rbx/resources/packagers/boca/compile/kt,sha256=3B900QSD4jSXnX91gJbvI4ZmNELHSiBb584Tmx7XtOc,4026
149
- rbx/resources/packagers/boca/compile/pas,sha256=C5IwZzmZpIos49FrLGafRbdGPODNJn7N5JbnLX_FT_4,4576
150
- rbx/resources/packagers/boca/compile/py2,sha256=UJknN4xiKP8oMN8tRZ92tDlESXgBfRO69QfyUyjijvA,4739
151
- rbx/resources/packagers/boca/compile/py3,sha256=L5Yzl_G5kTdmx7N7-oW3Dm_sq4uQJleRmFq84WNfZXo,4739
152
- rbx/resources/packagers/boca/interactive/c,sha256=gLuJ9heX00i-8bmj5J1j4RcHaksMEDv-z3ykDoYqqZs,6360
153
- rbx/resources/packagers/boca/interactive/cc,sha256=gLuJ9heX00i-8bmj5J1j4RcHaksMEDv-z3ykDoYqqZs,6360
154
- rbx/resources/packagers/boca/interactive/cpp,sha256=gLuJ9heX00i-8bmj5J1j4RcHaksMEDv-z3ykDoYqqZs,6360
155
- rbx/resources/packagers/boca/interactive/java,sha256=seoD4td8n85l7v-8rqDuwEKhl3ekHnHkZ_Z3ypNVoJA,7327
156
- rbx/resources/packagers/boca/interactive/kt,sha256=L5-hTrQ9VblO0d1hBOjbHVzEp1GEELWo0N8AceULnCU,7261
157
- rbx/resources/packagers/boca/interactive/py2,sha256=ceNObaszmSzAxfK7CuXdjO-8XoR3PNa0kxieoJBlJFg,6524
158
- rbx/resources/packagers/boca/interactive/py3,sha256=htrTvWHoAulWV2e-Y9AlcpWNsq0_rv0ktrbTzxO96aE,6524
159
- rbx/resources/packagers/boca/interactor_compile.sh,sha256=5dvF_eYuAJS3wlxyjUIJvu9HUNiMvET17rgoPq-WIlc,1082
153
+ rbx/resources/packagers/boca/compile/c,sha256=DZ9PWjgDTuauwY4my8Y8WXz0gZCBd4I7n0k0QxBaAUs,4466
154
+ rbx/resources/packagers/boca/compile/cc,sha256=jxPjE9UDspBcEJV4kG7wkYbiadXCBePiMq4M9zvp5vE,4517
155
+ rbx/resources/packagers/boca/compile/cpp,sha256=Fla9Ld6niiZT-0tRiekb2PS18dB2k0e8QmRFepMASag,4452
156
+ rbx/resources/packagers/boca/compile/java,sha256=UrgpcwCtrJsMAEF0B7gDRl2VCZgtBocassleN3Jxw7o,5192
157
+ rbx/resources/packagers/boca/compile/kt,sha256=C_EZGs19irFFmMGg_UHA64hAitXglx18hYG4EkeXSJM,3953
158
+ rbx/resources/packagers/boca/compile/py2,sha256=eFJIzpRuE7XtI1CzE44njnRUU7tQNgK_wNbIslh9I0Q,4695
159
+ rbx/resources/packagers/boca/compile/py3,sha256=HWA_yQ6B8VQ_WYVRZWPclbxv7BRiEJTTc9H9oWl1bGU,4695
160
+ rbx/resources/packagers/boca/interactive/c,sha256=HVEyQ4uHyqkuzopWvOKtju1J45sulgC-zNioJg-_mgE,4856
161
+ rbx/resources/packagers/boca/interactive/cc,sha256=HVEyQ4uHyqkuzopWvOKtju1J45sulgC-zNioJg-_mgE,4856
162
+ rbx/resources/packagers/boca/interactive/cpp,sha256=HVEyQ4uHyqkuzopWvOKtju1J45sulgC-zNioJg-_mgE,4856
163
+ rbx/resources/packagers/boca/interactive/java,sha256=NgtrKg5sTFQO589QTfEVSYYQOMsKTn7RQ2A4lCxBnFc,5595
164
+ rbx/resources/packagers/boca/interactive/kt,sha256=p2Nz1Tnn0n55umH-cX1NBnkfMoB0sHPBndRmkkht2_o,5516
165
+ rbx/resources/packagers/boca/interactive/py2,sha256=A-4GgaIFvt3-8c8MeYzeT19I4MztAY6uyy3VDnaOyII,4829
166
+ rbx/resources/packagers/boca/interactive/py3,sha256=1Kgj-zy4e8hk1583wNZUxnCBvmfyCkPDV9WMhyshyLw,4829
167
+ rbx/resources/packagers/boca/interactor_compile.sh,sha256=ZsUjQAtLSSwfZsYEs200lSdSrRbGrEFgAmRBmLOzI48,1161
168
+ rbx/resources/packagers/boca/interactor_run.sh,sha256=_hNr_0BIBNy0sedmx21xVKoYF6tJBfI316MfDqsMtqw,4246
160
169
  rbx/resources/packagers/boca/run/bkp,sha256=xyDkZDaxgUrW-K2I0YJs8a8dJMuF-k8_ganDGxqhvUQ,4218
161
170
  rbx/resources/packagers/boca/run/c,sha256=bhB-I-mJ4xNa6lr0OwC1O-eiMVTE_bdAd13nmySiT8A,3687
162
171
  rbx/resources/packagers/boca/run/cc,sha256=bhB-I-mJ4xNa6lr0OwC1O-eiMVTE_bdAd13nmySiT8A,3687
@@ -165,6 +174,8 @@ rbx/resources/packagers/boca/run/java,sha256=rAcvpriBr3NAuzzjMzIrtTBTgD9dLVr49dW
165
174
  rbx/resources/packagers/boca/run/kt,sha256=0nTcFhEtGSJXLkPmGCqOx58XpTdoGn0qL5niePGDEdo,4673
166
175
  rbx/resources/packagers/boca/run/py2,sha256=2IobOou2k6oYIa_mw0DjeZaqJgw9ZQc69e6XYnRS-fo,4917
167
176
  rbx/resources/packagers/boca/run/py3,sha256=_w9IBoDhAThrABcvWfZQ0wOaqnzeiqwG5AL-eAQrVSU,4917
177
+ rbx/resources/packagers/boca/safeexec.c,sha256=HcZyfnCoIRY8Q7HjT6ohUdNBcP4h6jd5A4uoXXNPzYw,17377
178
+ rbx/resources/packagers/boca/safeexec_compile.sh,sha256=MX_lRM2wnBh9MyXRRMcnZlqlnB41BuIbGXrwXkBPM1s,1094
168
179
  rbx/resources/packagers/moj/scripts/c/compile.sh,sha256=d6IFuVf_EmUhkHg5urrv3G4e8AFFYgHqEYJ_ROs-A-M,231
169
180
  rbx/resources/packagers/moj/scripts/c/prep.sh,sha256=it1e07QRpsnku3-rXOO1ovaw-RJlVVPy9R3I6WWwgMM,126
170
181
  rbx/resources/packagers/moj/scripts/c/run.sh,sha256=w_DAapoBVMZj7uiA4TMcNi2D5S243Cvsa4VQ_OoHGtY,187
@@ -183,14 +194,14 @@ rbx/resources/packagers/moj/scripts/py2/run.sh,sha256=qshf-K3mKP4c7b45S3D82Wj0Ai
183
194
  rbx/resources/packagers/moj/scripts/py3/compile.sh,sha256=XPn8qDR_gPAAZD9h5lVEMdBkrSogRZvpT4MAaNNp9nk,96
184
195
  rbx/resources/packagers/moj/scripts/py3/prep.sh,sha256=it1e07QRpsnku3-rXOO1ovaw-RJlVVPy9R3I6WWwgMM,126
185
196
  rbx/resources/packagers/moj/scripts/py3/run.sh,sha256=LrMi7Tap9no8gh64QNGUXbWauP6ZpSl-wEwXZ2qhPo0,197
186
- rbx/resources/presets/default/contest/contest.rbx.yml,sha256=aThSvWG0Nv4BKoucQG6Q0KpS20hsT46BHyVCQTdvtUM,424
197
+ rbx/resources/presets/default/contest/contest.rbx.yml,sha256=8Eb5DI3RAX_0x9KO9xDS-L1PHYaNujcLOGQijFfTsPg,449
187
198
  rbx/resources/presets/default/contest/statement/contest.rbx.tex,sha256=3YDQo5c-SGbwXcd4uytyY_Mc7UriAditgdJnbN8UdHg,3062
188
199
  rbx/resources/presets/default/contest/statement/olymp.sty,sha256=k4TCQz1IeXV75oZ2_dcWEQ3ziTDegOEdnYn4Xb4vzsU,6766
189
200
  rbx/resources/presets/default/contest/statement/template.rbx.tex,sha256=XSGtd8JJKfOmU7yTWcC02x6NND9GUlj9uXOEJC168Lg,834
190
201
  rbx/resources/presets/default/preset.rbx.yml,sha256=hYesK08n17FBNThr4iaGrDfC0L3us_pzGDkhD33Ryt4,313
191
202
  rbx/resources/presets/default/problem/.gitignore,sha256=zc-lnGQQZsLBaXpSshesA_QfxhiZdNCSJDEuKqlPtjw,29
192
203
  rbx/resources/presets/default/problem/gen.cpp,sha256=rn6sGRjZ1sFE1Rq02r6488iquY9xTrutcvLv4d1sohA,178
193
- rbx/resources/presets/default/problem/problem.rbx.yml,sha256=sgOTa7LedlY3nFOno28XHAgUN89w9p5dl0aIafq1dQs,1379
204
+ rbx/resources/presets/default/problem/problem.rbx.yml,sha256=zw6-WISdsdiULYpOVJPDsTksNoVHNmQBPjzw1DBm-Xw,1400
194
205
  rbx/resources/presets/default/problem/random.py,sha256=-iPorU24QHfp39EYRJX9jMKcTIxxz5ejKoAzPLIuu1g,98
195
206
  rbx/resources/presets/default/problem/random.txt,sha256=oDS_a9LdKSTKj4MvGLWvHSljI3AjRY6MclaxEwK794I,23
196
207
  rbx/resources/presets/default/problem/sols/main.cpp,sha256=AW-j65DiFYUN18rddTKCWc_VyYCMgCbjZ0jAJ-0JLuA,124
@@ -204,7 +215,7 @@ rbx/resources/presets/default/problem/tests/samples/000.in,sha256=w66OEtCJGqjUNj
204
215
  rbx/resources/presets/default/problem/tests/samples/001.in,sha256=P4QInDX87xXoDWu4PVIzUeNW5LtTlUKbMCvJ9uZOPGw,20
205
216
  rbx/resources/presets/default/problem/validator.cpp,sha256=VwZZUVq8GZHB07eOb6AoQirrYttPfTpF6P5m6I9nsLI,333
206
217
  rbx/resources/presets/default/problem/wcmp.cpp,sha256=gbjJe3Vf9-YzHCEqBUq30aI3jMZXhqBDn3jjecYOn-w,902
207
- rbx/resources/templates/rbx.h,sha256=7v-dm4cwP6trsJR-Ixk3_JNfaG1dwM_Lm8FcVPaA0YA,2180
218
+ rbx/resources/templates/rbx.h,sha256=Iwtmr2gdDYmZ2VlIurmleBb_uEpriWd4EX0dJta8xUA,2179
208
219
  rbx/resources/templates/template.cpp,sha256=xXWpWo7fa7HfmPNqkmHcmv3i46Wm0ZL-gPmkRfGvLn4,317
209
220
  rbx/run.py,sha256=8WsEAdj7FwYSc9itfJ977n5HN5CYN63T__HRYI6IB1A,1515
210
221
  rbx/schema.py,sha256=qcxuuxUJ0KwHR03CEYvdoP1SYW7yes3QyuI_0lnVMl0,1494
@@ -217,8 +228,8 @@ rbx/testcase.py,sha256=yKOq3CAJZ1YTmInvnoIs0u1iJnRj_X85XiWbLI-p9d8,1951
217
228
  rbx/testcase_rendering.py,sha256=nfmv6dSEqd4aR3TsaODwkKGK6AXty_DDKtWf_ejiQpI,2084
218
229
  rbx/testing_utils.py,sha256=x_PqD8Zd2PkN91NxVHUnSTs044-1WK5KKtttKQBXpFs,2083
219
230
  rbx/utils.py,sha256=SfR844_i0ebRDMkmS_w1YdZiWPc6h2RGADygewlWRbA,4845
220
- rbx_cp-0.5.73.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
221
- rbx_cp-0.5.73.dist-info/METADATA,sha256=NK12BtXCVWjzZWL9Dnvo0R3zsd8pZSgRqL2xwng11-A,3604
222
- rbx_cp-0.5.73.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
223
- rbx_cp-0.5.73.dist-info/entry_points.txt,sha256=qBTLBOeifT1F00LWaEewRRE_jQPgvH7BUdJfZ-dYsFU,57
224
- rbx_cp-0.5.73.dist-info/RECORD,,
231
+ rbx_cp-0.6.0.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
232
+ rbx_cp-0.6.0.dist-info/METADATA,sha256=l6XMZkU3dLX62zyDmsorRmShVuxZSge0dpBw8knMmxA,3641
233
+ rbx_cp-0.6.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
234
+ rbx_cp-0.6.0.dist-info/entry_points.txt,sha256=qBTLBOeifT1F00LWaEewRRE_jQPgvH7BUdJfZ-dYsFU,57
235
+ rbx_cp-0.6.0.dist-info/RECORD,,
@@ -1,172 +0,0 @@
1
- #!/bin/bash
2
- # ////////////////////////////////////////////////////////////////////////////////
3
- # //BOCA Online Contest Administrator
4
- # // Copyright (C) 2003-2012 by BOCA System (bocasystem@gmail.com)
5
- # //
6
- # // This program is free software: you can redistribute it and/or modify
7
- # // it under the terms of the GNU General Public License as published by
8
- # // the Free Software Foundation, either version 3 of the License, or
9
- # // (at your option) any later version.
10
- # //
11
- # // This program is distributed in the hope that it will be useful,
12
- # // but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- # // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- # // GNU General Public License for more details.
15
- # // You should have received a copy of the GNU General Public License
16
- # // along with this program. If not, see <http://www.gnu.org/licenses/>.
17
- # ////////////////////////////////////////////////////////////////////////////////
18
- #Last modified: 28/aug/2012 by cassio@ime.usp.br
19
- #
20
- # parameters are:
21
- # $1 source_file
22
- # $2 exe_file (default run.exe)
23
- # $3 timelimit (optional, limit to run all the repetitions, by default only one repetition)
24
- # $4 maximum allowed memory (in MBytes, default 512M)
25
- #
26
- # the output of the submission should be directed to the standard output
27
- #
28
- # the return code show what happened (according to safeexec):
29
- # 0 ok
30
- # 1 compile error
31
- # 2 runtime error
32
- # 3 timelimit exceeded
33
- # 4 internal error
34
- # 5 parameter error
35
- # 6 internal error
36
- # 7 memory limit exceeded
37
- # 8 security threat
38
- # 9 runtime error
39
- # other_codes are unknown to boca: in this case BOCA will present the
40
- # last line of standard output to the judge
41
-
42
- umask 0022
43
-
44
- if [ "$1" == "" ]; then
45
- echo "parameter problem"
46
- exit 43
47
- fi
48
- if [ ! -r "$1" ]; then
49
- echo "$1 not found or it's not readable"
50
- exit 44
51
- fi
52
- name="$1"
53
- if [ ! -r "$1" ]; then
54
- echo "$1 not found or it's not readable"
55
- exit 44
56
- fi
57
- mkdir -p src
58
- if [ "${name##*.}" == "zip" -a "${name##*.}" == "ZIP" ]; then
59
- unzip "$name" -d src
60
- name="*.c"
61
- else
62
- cp "$name" src
63
- fi
64
- id -u bocajail >/dev/null 2>/dev/null
65
- if [ $? == 0 ]; then
66
- bocau=`id -u bocajail`
67
- bocag=`id -g bocajail`
68
- chown bocajail.nogroup .
69
- else
70
- bocau=`id -u nobody`
71
- bocag=`id -g nobody`
72
- chown nobody.nogroup .
73
- fi
74
- if [ "$bocau" == "" -o "$bocag" == "" ]; then
75
- echo "error finding user to run script"
76
- exit 43
77
- fi
78
-
79
- # this script makes use of safeexec to execute the code with less privilegies
80
- # make sure that directories below are correct.
81
- sf=`which safeexec`
82
- [ -x "$sf" ] || sf=/usr/bin/safeexec
83
- if [ ! -x $sf ]; then
84
- echo "$sf not found or it's not executable"
85
- exit 46
86
- fi
87
- maxm=512000
88
- if [ "$4" != "" ]; then
89
- if [ "$4" -gt "512" ]; then
90
- maxm=${4}000
91
- fi
92
- fi
93
-
94
- # setting up the timelimit according to the problem
95
- if [ "$3" == "" ]; then
96
- time=5
97
- else
98
- time=$3
99
- fi
100
- let "ttime = $time + 30"
101
-
102
- if [ "$2" == "" ]; then
103
- exe=run.exe
104
- else
105
- exe=$2
106
- fi
107
-
108
- rm -f $exe compileit.retcode runit.retcode 2>/dev/null
109
- cat <<EOF > compileit.sh
110
- #!/bin/bash
111
- cc=\`which fpc\`
112
- [ -x "\$cc" ] || cc=/usr/bin/fpc
113
- if [ ! -x "\$cc" ]; then
114
- echo "\$cc not found or it's not executable"
115
- exit 47
116
- fi
117
- cd src
118
- "\$cc" -Xt -XS -O2 -o../$exe $name
119
- echo \$? > ../compileit.retcode
120
- exit 0
121
- EOF
122
- chmod 755 compileit.sh
123
-
124
- cdir=`pwd`
125
- echo "Current directory is $cdir" >&2
126
- echo $cdir | grep -q "/bocajail"
127
- if [ $? == 0 ]; then
128
- cdir=`echo $cdir | sed "s/.*\/bocajail//"`
129
- echo "Internal directory is $cdir"
130
- cat <<EOF > runit.sh
131
- #!/bin/bash
132
- cd "$cdir"
133
- [ -f /proc/cpuinfo ] || /bin/mount -t proc proc /proc
134
- #/bin/mount --bind /dev /dev
135
- [ -d /sys/kernel ] || /bin/mount -t sysfs sysfs /sys
136
- $sf -r1 -F1000 -n0 -U$bocau -G$bocag -C. -ostdout0 -estderr0 -d$maxm -m$maxm -f20000 -t$ttime -T$ttime ./compileit.sh
137
- echo \$? > runit.retcode
138
- if [ ! -d /bocajail ]; then
139
- /bin/umount /proc 2>/dev/null
140
- #/bin/umount /dev
141
- /bin/umount /sys 2>/dev/null
142
- fi
143
- EOF
144
- chmod 755 runit.sh
145
- chroot /bocajail "$cdir/runit.sh"
146
- if [ -r runit.retcode ]; then
147
- ret=`cat runit.retcode`
148
- else
149
- ret=99
150
- fi
151
- else
152
- echo "COMPILATION IS NOT BEING CHROOTED -- THIS IS NOT AN IDEAL SETTING"
153
- $sf -r1 -F1000 -n0 -U$bocau -G$bocag -C. -ostdout0 -estderr0 -d$maxm -m$maxm -f20000 -t$ttime -T$ttime ./compileit.sh
154
- ret=$?
155
- fi
156
- if [ -f "stdout0" ]; then
157
- cat "stdout0"
158
- fi
159
- if [ -f "stderr0" ]; then
160
- cat "stderr0"
161
- fi
162
- rm -rf src/
163
- if [ "$ret" != "0" ]; then
164
- echo "Compilation Error: $ret"
165
- exit $ret
166
- fi
167
- ret=`cat compileit.retcode`
168
- if [ "$ret" != "0" ]; then
169
- echo "Compilation Error: $ret"
170
- ret=1
171
- fi
172
- exit $ret