{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/crosscodeeval-a-diverse-and-multilingual","title":"CrossCodeEval: A Diverse and Multilingual Benchmark for Cross-File Code Completion","arxiv_id":"2310.11248","date":"2023-10-17","proceeding":"NeurIPS 2023 11","authors":[],"abstract":"Code completion models have made significant progress in recent years, yet current popular evaluation datasets, such as HumanEval and MBPP, predominantly focus on code completion tasks within a single file. This over-simplified setting falls short of representing the real-world software development scenario where repositories span multiple files with numerous cross-file dependencies, and accessing and understanding cross-file context is often required to complete the code correctly. To fill in this gap, we propose CrossCodeEval, a diverse and multilingual code completion benchmark that necessitates an in-depth cross-file contextual understanding to complete the code accurately. CrossCodeEval is built on a diverse set of real-world, open-sourced, permissively-licensed repositories in four popular programming languages: Python, Java, TypeScript, and C#. To create examples that strictly require cross-file context for accurate completion, we propose a straightforward yet efficient static-analysis-based approach to pinpoint the use of cross-file context within the current file. Extensive experiments on state-of-the-art code language models like CodeGen and StarCoder demonstrate that CrossCodeEval is extremely challenging when the relevant cross-file context is absent, and we see clear improvements when adding these context into the prompt. However, despite such improvements, the pinnacle of performance remains notably unattained even with the highest-performing model, indicating that CrossCodeEval is also capable of assessing model's capability in leveraging extensive context to make better code completion. Finally, we benchmarked various methods in retrieving cross-file context, and show that CrossCodeEval can also be used to measure the capability of code retrievers.","url_abs":"https://arxiv.org/abs/2310.11248v2","url_pdf":"https://arxiv.org/pdf/2310.11248v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"crosscodeeval-a-diverse-and-multilingual","repo_url":"https://github.com/amazon-science/cceval","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"code-completion","task_name":"Code Completion"},{"task_slug":"humaneval","task_name":"HumanEval"},{"task_slug":null,"task_name":"mbpp"}],"methods":[{"method_slug":"codegen","method_name":"CodeGen"},{"method_slug":"focus","method_name":"Focus"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.11248","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.11248"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/amazon-science/cceval","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":3,"ran_violates":1,"unverified":2},"by_repo_kind":{"listed":{"samples":6,"ran":4,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"5360966f8b969a41","entry":"file_distance","repo":"amazon-science/cceval","repo_kind":"listed","path":"prompt_builder/utils.py","file_url":"https://github.com/amazon-science/cceval/blob/HEAD/prompt_builder/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5360966f8b969a41"}},{"code_sha256_prefix":"ae5ed04d466c8051","entry":"jaccard_similarity","repo":"amazon-science/cceval","repo_kind":"listed","path":"prompt_builder/rerank_utils.py","file_url":"https://github.com/amazon-science/cceval/blob/HEAD/prompt_builder/rerank_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ae5ed04d466c8051"}},{"code_sha256_prefix":"c4f21c731c1fa2ba","entry":"read_project_files","repo":"amazon-science/cceval","repo_kind":"listed","path":"prompt_builder/augment_with_cfc.py","file_url":"https://github.com/amazon-science/cceval/blob/HEAD/prompt_builder/augment_with_cfc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c4f21c731c1fa2ba"}},{"code_sha256_prefix":"8605dc8a088f3db8","entry":"str2bool","repo":"amazon-science/cceval","repo_kind":"listed","path":"prompt_builder/utils.py","file_url":"https://github.com/amazon-science/cceval/blob/HEAD/prompt_builder/utils.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8605dc8a088f3db8"}},{"code_sha256_prefix":"56069a93fc646a4f","entry":"tokenize_corpus","repo":"amazon-science/cceval","repo_kind":"listed","path":"prompt_builder/rerank_utils.py","file_url":"https://github.com/amazon-science/cceval/blob/HEAD/prompt_builder/rerank_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"56069a93fc646a4f"}},{"code_sha256_prefix":"7886a2e5c5db8511","entry":"tokenize_nltk","repo":"amazon-science/cceval","repo_kind":"listed","path":"prompt_builder/utils.py","file_url":"https://github.com/amazon-science/cceval/blob/HEAD/prompt_builder/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7886a2e5c5db8511"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}