René's URL Explorer Experiment


Title: feat:Implement perf event groups, scaled reads, and group snapshots by SiyuanSun0736 · Pull Request #22 · multikernel/kernelscript · GitHub

Open Graph Title: feat:Implement perf event groups, scaled reads, and group snapshots by SiyuanSun0736 · Pull Request #22 · multikernel/kernelscript

X Title: feat:Implement perf event groups, scaled reads, and group snapshots by SiyuanSun0736 · Pull Request #22 · multikernel/kernelscript

Description: Overview This PR introduces the ability to group multiple perf metrics (e.g., cache misses, branch misses, cycles) into a single scheduling group. This ensures that counters observing the same workload are started and stopped together, solving the issue of misaligned results from independently managed counters. Additionally, it brings comprehensive multiplex-aware read APIs, static PMU slot limit validations, and fixes several internal userspace codegen edges to stabilize snapshot data consumption. Key Features & User-Facing Changes 1. High-Level Grouping API New group field: Added a high-level group field in perf_options to easily attach members to a leader. var cache = attach(prog, perf_options { perf_type: perf_type_hardware, perf_config: cache_misses }, 0) var branch = attach(prog, perf_options { perf_type: perf_type_hardware, perf_config: branch_misses, group: cache }, 0) Compatibility: The lower-level group_fd: leader.perf_fd approach is preserved for backward compatibility. 2. Multiplex-Aware Read APIs read(att): Now returns scaled values by default, corrected via time_enabled / time_running when PMU multiplexing occurs. (Matches raw count if no multiplexing happens). read_raw(att): Returns the uncorrected, raw counter values. read_details(att): Returns a struct containing raw, scaled, time_enabled, and time_running—ideal for manual delta or rate calculations. read_group(leader): Captures an atomic snapshot of the entire group. Returns up to 16 ID/Value pairs (where values[] are pre-scaled according to snapshot timing) and snapshot time fields. 3. Group Lifecycle Management Group Restarts: Dynamically attaching a new member to an existing active group now triggers a disable/reset/enable sequence on the whole group, ensuring counters start from zero together. Cascading Detach: Detaching a group leader no longer conservatively rejects the operation. It now cascades and automatically detaches all active members. 4. Compile-Time PMU Slot Validation Statically visible perf groups are now evaluated during the type-checking phase to calculate hardware PMU slot consumption. Compilation will fail early if the group is too large. The limit defaults to 4 (or dynamically probes sysfs), and can be overridden via the KERNELSCRIPT_PERF_GROUP_MAX_EVENTS environment variable. perf_type_software and perf_type_tracepoint are correctly excluded from hardware PMU slot counts. Internal & Codegen Improvements Array IR Lowering: Fixed array indexing and dereferencing in IR lowering to ensure user-space C code generates correctly when iterating over read_group() snapshot arrays (snapshot.ids[i] / snapshot.values[i]). Array Initialization: Modified non-literal array initializations to "declare first, then memcpy", preventing invalid C generation from snapshot struct fields. Variable Declarations: Fixed an issue where reused for loop counters and subsequent variables of the same name produced duplicate function-level C declarations. Read Helpers: Added raw/details/group perf read helpers, leveraging 128-bit intermediate values for safe multiplex scaling. Documentation & Examples examples/perf_cache_miss.ks: Refactored to use the new group API. Added demonstrations of read_details() for rate calculation and read_group() for iterating through snapshot id/value pairs. examples/perf_page_fault.ks: Extended to demonstrate updated perf read semantics. Docs: Updated README.md, SPEC.md, and BUILTINS.md to reflect group semantics, read interfaces, and PMU slot constraints. Test Coverage Added IR and codegen assertions for both group_fd and high-level group paths. Covered member-attach group restarts, ioctl generation, and cascading leader detaches. Covered multiplex scaling fast/slow paths for read(), and helper generation for read_raw(), read_details(), and read_group(). Covered oversized static group validation during compilation. Added regression tests for for loop counter variable reuse in userspace codegen.

Open Graph Description: Overview This PR introduces the ability to group multiple perf metrics (e.g., cache misses, branch misses, cycles) into a single scheduling group. This ensures that counters observing the same work...

X Description: Overview This PR introduces the ability to group multiple perf metrics (e.g., cache misses, branch misses, cycles) into a single scheduling group. This ensures that counters observing the same work...

Opengraph URL: https://github.com/multikernel/kernelscript/pull/22

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:b46a28e4-3c46-a8a9-b889-2736ad8f21c4
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idEBE8:20F21A:83972:BFAEC:6A621229
html-safe-nonceda908df6181b16f014435e756fb0660ee0d7f6352e203200f6736c8490fa241e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFQkU4OjIwRjIxQTo4Mzk3MjpCRkFFQzo2QTYyMTIyOSIsInZpc2l0b3JfaWQiOiI0ODI4NTA1NDE4MjQyMzMxMTc3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac32e4af0f892e2d5703c71491e5d4f8e3068af8164ff57876f1554bafe631214e
hovercard-subject-tagpull_request:3707309186
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/multikernel/kernelscript/pull/22/files
twitter:imagehttps://avatars.githubusercontent.com/u/100674758?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/100674758?s=400&v=4
og:image:altOverview This PR introduces the ability to group multiple perf metrics (e.g., cache misses, branch misses, cycles) into a single scheduling group. This ensures that counters observing the same work...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonebe9a4d9589756e22b427637ffbf1123a96e067050e57f5cec403e3080a650ca4
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/multikernel/kernelscript git https://github.com/multikernel/kernelscript.git
octolytics-dimension-user_id202362072
octolytics-dimension-user_loginmultikernel
octolytics-dimension-repository_id1019261571
octolytics-dimension-repository_nwomultikernel/kernelscript
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1019261571
octolytics-dimension-repository_network_root_nwomultikernel/kernelscript
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7b5509702f01f876c214a2cbb142690847de0019
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/multikernel/kernelscript/pull/22/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmultikernel%2Fkernelscript%2Fpull%2F22%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmultikernel%2Fkernelscript%2Fpull%2F22%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=multikernel%2Fkernelscript
Reloadhttps://github.com/multikernel/kernelscript/pull/22/files
Reloadhttps://github.com/multikernel/kernelscript/pull/22/files
Reloadhttps://github.com/multikernel/kernelscript/pull/22/files
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
multikernel https://github.com/multikernel
kernelscripthttps://github.com/multikernel/kernelscript
Notifications https://github.com/login?return_to=%2Fmultikernel%2Fkernelscript
Fork 23 https://github.com/login?return_to=%2Fmultikernel%2Fkernelscript
Star 501 https://github.com/login?return_to=%2Fmultikernel%2Fkernelscript
Code https://github.com/multikernel/kernelscript
Issues 2 https://github.com/multikernel/kernelscript/issues
Pull requests 0 https://github.com/multikernel/kernelscript/pulls
Actions https://github.com/multikernel/kernelscript/actions
Projects https://github.com/multikernel/kernelscript/projects
Security and quality 0 https://github.com/multikernel/kernelscript/security
Insights https://github.com/multikernel/kernelscript/pulse
Code https://github.com/multikernel/kernelscript
Issues https://github.com/multikernel/kernelscript/issues
Pull requests https://github.com/multikernel/kernelscript/pulls
Actions https://github.com/multikernel/kernelscript/actions
Projects https://github.com/multikernel/kernelscript/projects
Security and quality https://github.com/multikernel/kernelscript/security
Insights https://github.com/multikernel/kernelscript/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmultikernel%2Fkernelscript%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmultikernel%2Fkernelscript%2Fissues%2Fnew%2Fchoose
congwang-mkhttps://github.com/congwang-mk
multikernel:mainhttps://github.com/multikernel/kernelscript/tree/main
SiyuanSun0736:perf-grouphttps://github.com/SiyuanSun0736/kernelscript/tree/perf-group
Conversation 5 https://github.com/multikernel/kernelscript/pull/22
Commits 5 https://github.com/multikernel/kernelscript/pull/22/commits
Checks 1 https://github.com/multikernel/kernelscript/pull/22/checks
Files changed https://github.com/multikernel/kernelscript/pull/22/files
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
feat:Implement perf event groups, scaled reads, and group snapshots https://github.com/multikernel/kernelscript/pull/22/files#top
Show all changes 5 commits https://github.com/multikernel/kernelscript/pull/22/files
4649696 Add support for perf event group management in BPF SiyuanSun0736 May 19, 2026 https://github.com/multikernel/kernelscript/pull/22/commits/4649696f5952ba33972b7949384ed78d02feb84f
4becf2e Implement performance event group management and reading enhancements SiyuanSun0736 May 19, 2026 https://github.com/multikernel/kernelscript/pull/22/commits/4becf2e29c5d7d2662a88e5cd66c6c387c428cab
68bfab7 Enhanced the output of cache miss counts and branch miss counts for p… SiyuanSun0736 May 19, 2026 https://github.com/multikernel/kernelscript/pull/22/commits/68bfab773383095a0e7878ec71c364327183bdf5
d1062ed feat(perf): unify perf reads into PerfRead snapshots SiyuanSun0736 May 22, 2026 https://github.com/multikernel/kernelscript/pull/22/commits/d1062ed23001627544bfaca1d1c6ebd642f3c89c
5c80c4c fix perf read selection for grouped non-leader events SiyuanSun0736 May 23, 2026 https://github.com/multikernel/kernelscript/pull/22/commits/5c80c4ca1d7a840a01c53def114e5be9e61a805e
Clear filters https://github.com/multikernel/kernelscript/pull/22/files
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
BUILTINS.md https://github.com/multikernel/kernelscript/pull/22/files#diff-a6fbfd5d0465bb0a334eaf5de654b53e43f83a1e0e18e7ba740fffb790e4bced
README.md https://github.com/multikernel/kernelscript/pull/22/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
SPEC.md https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
perf_cache_miss.ks https://github.com/multikernel/kernelscript/pull/22/files#diff-3a077caa1a1b884d8a97deec19362aea96f35ff290a32d44040226b70b0f20da
perf_page_fault.ks https://github.com/multikernel/kernelscript/pull/22/files#diff-4363a53a84908383ce551f4f162a666ea0e8239573a7ce9aa1f2f3cfe113af99
ir_generator.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-7b7b3d36c6a326e1a022a7eaf0e67082de1abe843a789dc49e3580493ba9ffdf
parser.mly https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
stdlib.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-c2bcdbff958f6b2d9ac690d4e0b39f68e001c8de8205b4b23ade032fd9654f16
type_checker.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-19547f3bd84789512c822f230e0efa538e8dcef3e62b677be000400b908496fa
userspace_codegen.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-1864935d68899925ab1485ad4f91071ac537e818db74b2dfc6c5979902c7efbf
dune https://github.com/multikernel/kernelscript/pull/22/files#diff-f00bc4a85dc91983057a45088c3b4e6ac0d794731907dabd54d0293b71b22ed8
test_parser.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-e64908bae7306498a74305c36ec4d953fb6b2dc598456a050876312681158b71
test_perf_event_attach.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-32b71512077f01935dd07ed3c8418df81d10dc0ed25bb688085a3d28ad9b0c7a
test_program_ref.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-d9316833291c3479d9deb9547718856180a99db21865c6d8a2f6f4c72d142e8e
test_userspace_for_codegen.ml https://github.com/multikernel/kernelscript/pull/22/files#diff-df99fc508ae45b9f3bf5eaa5f25db3471774cc20d48fc60c3b71c96614b1d081
BUILTINS.mdhttps://github.com/multikernel/kernelscript/pull/22/files#diff-a6fbfd5d0465bb0a334eaf5de654b53e43f83a1e0e18e7ba740fffb790e4bced
View file https://github.com/SiyuanSun0736/kernelscript/blob/5c80c4ca1d7a840a01c53def114e5be9e61a805e/BUILTINS.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/multikernel/kernelscript/pull/22/{{ revealButtonHref }}
https://github.com/multikernel/kernelscript/pull/22/files#diff-a6fbfd5d0465bb0a334eaf5de654b53e43f83a1e0e18e7ba740fffb790e4bced
https://github.com/multikernel/kernelscript/pull/22/files#diff-a6fbfd5d0465bb0a334eaf5de654b53e43f83a1e0e18e7ba740fffb790e4bced
https://github.com/multikernel/kernelscript/pull/22/files#diff-a6fbfd5d0465bb0a334eaf5de654b53e43f83a1e0e18e7ba740fffb790e4bced
https://github.com/multikernel/kernelscript/pull/22/files#diff-a6fbfd5d0465bb0a334eaf5de654b53e43f83a1e0e18e7ba740fffb790e4bced
https://github.com/multikernel/kernelscript/pull/22/files#diff-a6fbfd5d0465bb0a334eaf5de654b53e43f83a1e0e18e7ba740fffb790e4bced
README.mdhttps://github.com/multikernel/kernelscript/pull/22/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
View file https://github.com/SiyuanSun0736/kernelscript/blob/5c80c4ca1d7a840a01c53def114e5be9e61a805e/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/multikernel/kernelscript/pull/22/{{ revealButtonHref }}
https://github.com/multikernel/kernelscript/pull/22/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/multikernel/kernelscript/pull/22/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/multikernel/kernelscript/pull/22/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/multikernel/kernelscript/pull/22/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
SPEC.mdhttps://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
View file https://github.com/SiyuanSun0736/kernelscript/blob/5c80c4ca1d7a840a01c53def114e5be9e61a805e/SPEC.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/multikernel/kernelscript/pull/22/{{ revealButtonHref }}
https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
https://github.com/multikernel/kernelscript/pull/22/files#diff-7426c9e3a694ca6015df5f98637912975f2edea23270203ee89a8bdeed246ee0
examples/perf_cache_miss.kshttps://github.com/multikernel/kernelscript/pull/22/files#diff-3a077caa1a1b884d8a97deec19362aea96f35ff290a32d44040226b70b0f20da
View file https://github.com/SiyuanSun0736/kernelscript/blob/5c80c4ca1d7a840a01c53def114e5be9e61a805e/examples/perf_cache_miss.ks
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/multikernel/kernelscript/pull/22/{{ revealButtonHref }}
https://github.com/multikernel/kernelscript/pull/22/files#diff-3a077caa1a1b884d8a97deec19362aea96f35ff290a32d44040226b70b0f20da
congwang-mkhttps://github.com/congwang-mk
May 22, 2026https://github.com/multikernel/kernelscript/pull/22/files#r3291599743
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
https://github.com/multikernel/kernelscript/pull/22/files#diff-3a077caa1a1b884d8a97deec19362aea96f35ff290a32d44040226b70b0f20da
examples/perf_page_fault.kshttps://github.com/multikernel/kernelscript/pull/22/files#diff-4363a53a84908383ce551f4f162a666ea0e8239573a7ce9aa1f2f3cfe113af99
View file https://github.com/SiyuanSun0736/kernelscript/blob/5c80c4ca1d7a840a01c53def114e5be9e61a805e/examples/perf_page_fault.ks
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/multikernel/kernelscript/pull/22/{{ revealButtonHref }}
https://github.com/multikernel/kernelscript/pull/22/files#diff-4363a53a84908383ce551f4f162a666ea0e8239573a7ce9aa1f2f3cfe113af99
congwang-mkhttps://github.com/congwang-mk
May 22, 2026https://github.com/multikernel/kernelscript/pull/22/files#r3291588986
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
src/ir_generator.mlhttps://github.com/multikernel/kernelscript/pull/22/files#diff-7b7b3d36c6a326e1a022a7eaf0e67082de1abe843a789dc49e3580493ba9ffdf
View file https://github.com/SiyuanSun0736/kernelscript/blob/5c80c4ca1d7a840a01c53def114e5be9e61a805e/src/ir_generator.ml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/multikernel/kernelscript/pull/22/{{ revealButtonHref }}
https://github.com/multikernel/kernelscript/pull/22/files#diff-7b7b3d36c6a326e1a022a7eaf0e67082de1abe843a789dc49e3580493ba9ffdf
https://github.com/multikernel/kernelscript/pull/22/files#diff-7b7b3d36c6a326e1a022a7eaf0e67082de1abe843a789dc49e3580493ba9ffdf
https://github.com/multikernel/kernelscript/pull/22/files#diff-7b7b3d36c6a326e1a022a7eaf0e67082de1abe843a789dc49e3580493ba9ffdf
src/parser.mlyhttps://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
View file https://github.com/SiyuanSun0736/kernelscript/blob/5c80c4ca1d7a840a01c53def114e5be9e61a805e/src/parser.mly
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/multikernel/kernelscript/pull/22/{{ revealButtonHref }}
https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
https://github.com/multikernel/kernelscript/pull/22/files#diff-d7182de4d0ae1030d2c3d76c08002c83f89bb79e6084e9248ff5771dce3beb2c
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
Please reload this pagehttps://github.com/multikernel/kernelscript/pull/22/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.