4 views
cs341-illinois/coursebook
Open Source Introductory Systems Programming Textbook for the University of Illinois
TeX★ 3,187+572 that day#8 on trending
C57.1/100
Duplication94
0.5% in latex, bash, python, perlDead coden/a
the languages dead code reads are under 5% of the codeComplexity35
81.9% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
1.6%duplicated code · 26 of 1,630 lines
2clones in code
20code files of 120 scanned
58.84%duplicated over all files · 564 clones
Most complex files
- synchronization/synchronization.tex419 cx
- ipc/ipc.tex343 cx
- processes/processes.tex320 cx
- appendix/appendix.tex295 cx
- background/background.tex269 cx
- review/review.tex249 cx
- malloc/malloc.tex201 cx
- networking/networking.tex192 cx
- deadlock/deadlock.tex189 cx
- filesystems/filesystems.tex175 cx
Dead code 1.69% unused · 10 findings
- _scripts/gen_wiki.py:globunused-import
- _scripts/pandoc_epub_filter.py:Headerunused-import
- _scripts/pandoc_epub_filter.py:Linkunused-import
- _scripts/pandoc_epub_filter.py:Mathunused-import
- _scripts/pandoc_epub_filter.py:RawInlineunused-import
- _scripts/pandoc_epub_filter.py:sysunused-import
- _scripts/pandoc_epub_filter.py:reunused-import
- _scripts/pandoc_wiki_filter.py:Headerunused-import
- _scripts/pandoc_wiki_filter.py:sysunused-import
- _scripts/pandoc_wiki_filter.py:reunused-import
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 18 lines in 2 placespython92 tokens
17def replace_suffix(content, suffix_old, suffix_new): 18 ret = content 19 if content.endswith(suffix_old): 20 ret = content[:-len(suffix_old)] + suffix_new 21 return ret 22 23def deserialize(x): 24 """ 25 Takes a panflute element x and returns 26 a basic stringified version of that elementFirst 10 of 18 lines.
- 8 lines in 2 placespython59 tokens
34if type(elem) == Image: 35 # Get the number of chars for the alt tag 36 alt_name = ''.join(map(deserialize, elem._content.list)) 37 alt_length = len(elem._content) 38 # No alt means no compile 39 # Accessibility by default 40 if alt_length == 0 or alt_name.lower() == default_image_alt: 41 raise NoAltTagException(elem.url)
Largest clones over all files, tests and data included
- 2344 lines in 3 placesmarkupmarkup8,225 tokensdeadlock/drawings/dining_arbitrator.svg:38–2381deadlock/drawings/dining_livelock.svg:38–2381deadlock/drawings/dining_partial.svg:38–2381
38 inkscape:current-layer="svg8" 39 fit-margin-top="0" 40 fit-margin-left="0" 41 fit-margin-right="0" 42 fit-margin-bottom="0" /> 43<defs 44 id="defs2"> 45 <inkscape:path-effect 46 effect="bspline" 47 id="path-effect3001"First 10 of 2344 lines.
- 1208 lines in 4 placesmarkupmarkup4,300 tokensipc/drawings/level_split.svg:19–1226ipc/drawings/level_split_filled.svg:19–1226ipc/drawings/multi_level_filled.svg:19–1226ipc/drawings/multi_level_split.svg:19–1226
19 inkscape:export-xdpi="96" 20 inkscape:export-ydpi="96"> 21<defs 22 id="defs2"> 23 <inkscape:path-effect 24 effect="bspline" 25 id="path-effect19165" 26 is_visible="true" 27 weight="33.333333" 28 steps="2"First 10 of 1208 lines.
- 1266 lines in 3 placesmarkupmarkup4,314 tokensscheduling/drawings/fcfs.svg:19–1284scheduling/drawings/psjf.svg:22–1287threads/drawings/thread_nonrace_timing.svg:19–1284
19 sodipodi:docname="fcfs.svg"> 20<defs 21 id="defs2"> 22 <inkscape:path-effect 23 effect="bspline" 24 id="path-effect2726" 25 is_visible="true" 26 weight="33.333333" 27 steps="2" 28 helper_size="0"First 10 of 1266 lines.
- 2346 lines in 2 placesmarkupmarkup8,235 tokens
- 1041 lines in 3 placesmarkupmarkup3,524 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 5 | 593 | 2 | 26 | 4.38% |
| bash | 14 | 863 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| markup | 52 | 79,082 | 553 | 57,782 | 73.07% |
| latex | 34 | 16,818 | 8 | 73 | 0.43% |
| python | 5 | 593 | 2 | 26 | 4.38% |
| yaml | 3 | 174 | 1 | 27 | 15.52% |
| bash | 14 | 863 | 0 | 0 | 0% |
| markdown | 10 | 698 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
| text | 1 | 17 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 30, 2026 | #8 | 3,187 (+572) | 120 | 98,419 | 564 | 58.84% | 1.6% | C 57.1 | 61c706f |
| Sep 29, 2026 | #4 | 2,615 (+195) | 120 | 98,419 | 564 | 58.84% | 1.6% | C 57.1 | 61c706f |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.