-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Description
Summary / 概要
oj-bundle command no longer works for me with files that contain #pragma GCC target("avx2,tune=native"), as it triggers assert len(lines) == len(uncommented_lines).
When trying to see the difference between them, it seems that lines look as follows:
#pragma GCC target("avx2,tune=native")While uncommented_lines, for some reason, unwrap to
#pragma GCC target("avx2,tune=native")
#undef __code_model_small__
#undef __MMX_WITH_SSE__
#define __code_model_small__ 1
#define __SSE3__ 1
#define __SSSE3__ 1
#define __SSE4_1__ 1
#define __SSE4_2__ 1
#define __AVX__ 1
#define __AVX2__ 1
#define __CRC32__ 1
#define __POPCNT__ 1
#define __XSAVE__ 1
#define __MMX_WITH_SSE__ 1I assume it might be related to a GCC update, as it was running fine previously:
$ g++ --version
g++ (GCC) 14.1.1 20240507
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Steps to reproduce / 再現方法
- Create a file consisting of a single line
#pragma GCC target("avx2,tune=native"). - Run
oj-bundleon it.
environments:
$ cat .verify-helper/config.toml
[[languages.cpp.environments]]
CXX = "g++"
CXXFLAGS = ["-std=c++20", "-Wall", "-Wextra", "-O2", "-mavx2"]- version: (please write the versions of related things, e.g.
$ oj --version)
online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1)
Expected behavior / 期待される挙動
INFO:onlinejudge_verify.config:config file loaded: .verify-helper/config.toml: {'languages': {'cpp': {'environments': [{'CXX': 'g++', 'CXXFLAGS': ['-std=c++20', '-Wall', '-Wextra', '-O2', '-mavx2']}]}}}
#line 1 "main.test.cpp"
#pragma GCC target("avx2,tune=native")Actual behavior / 実際の挙動
INFO:onlinejudge_verify.config:config file loaded: .verify-helper/config.toml: {'languages': {'cpp': {'environments': [{'CXX': 'g++', 'CXXFLAGS': ['-std=c++20', '-Wall', '-Wextra', '-O2', '-mavx2']}]}}}
Traceback (most recent call last):
File "/home/adamant/.local/bin/oj-bundle", line 8, in <module>
sys.exit(main())
^^^^^^
File "/home/adamant/.local/lib/pypy3.10/site-packages/onlinejudge_bundle/main.py", line 30, in main
sys.stdout.buffer.write(language.bundle(parsed.path, basedir=parsed.iquote[0], options={'include_paths': parsed.iquote}))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/adamant/.local/lib/pypy3.10/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
bundler.update(path)
File "/home/adamant/.local/lib/pypy3.10/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 295, in update
assert len(lines) == len(uncommented_lines)
AssertionErrorOther notes / その他
- Will you try to create a pull request?
- no
koba-e964 and tatyam-prime
Metadata
Metadata
Assignees
Labels
No labels