diff --git a/preview/pr-65/2021/09/01/FoundingOfSole.html b/preview/pr-65/2021/09/01/FoundingOfSole.html deleted file mode 100644 index d6f45502..00000000 --- a/preview/pr-65/2021/09/01/FoundingOfSole.html +++ /dev/null @@ -1,645 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SOLE Was Established! | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

SOLE Was Established!

- - - - - - - -
- - - event - - - -
-
- - - - - -
- - - -

In September of 2021, SOLE Labs was officially established!

- -

The lab welcomed its first students, including 2 PhD students, 6 full-time master students and 4 part-time master students.

- -
- - The first group photo of SOLERs - - -
- The first group photo of SOLERs - -
- -
-
- - - - - -
- - - -
- - - - - - Next post
- - SOLERs received scholarships! - - -
-
-
- - -
- - - - - - - diff --git a/preview/pr-65/2022/10/16/NationalScholarship.html b/preview/pr-65/2022/10/16/NationalScholarship.html deleted file mode 100644 index deccb85a..00000000 --- a/preview/pr-65/2022/10/16/NationalScholarship.html +++ /dev/null @@ -1,639 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SOLERs received scholarships! | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

SOLERs received scholarships!

- - - - - - - -
- - - award - - - -
-
- - - - - -
- - - -

Congratulations to Tong-yu Liu and Wenlong Mu for being awarded the National Scholarship (Master Student) for the 2022 academic year!

- -

Also, congratulations to Han Yujie for being awarded the Third Class Corporate Scholarship of DaSE.

- -

祝贺刘通宇与牟文龙获得2022学年国家奖学金(硕士)!

- -

也祝贺韩宇捷获得数据科学与工程学院企业奖学金三等奖!

-
- - - - - -
- - - -
- - - Previous post
- - SOLE Was Established! - - -
- - - Next post
- - Paper Accepted by ACM TACO - - -
-
-
- - -
- - - - - - - diff --git a/preview/pr-65/2023/09/28/AdaptiveGrouping-accepted.html b/preview/pr-65/2023/09/28/AdaptiveGrouping-accepted.html deleted file mode 100644 index d7fa6c41..00000000 --- a/preview/pr-65/2023/09/28/AdaptiveGrouping-accepted.html +++ /dev/null @@ -1,640 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Paper Accepted by ACM TACO | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Paper Accepted by ACM TACO

- - - - - - - -
- - - paper - - - -
-
- - - - - -
- - - -

Sep., 2023. Paper Efficient Cross-platform Multiplexing of Hardware Performance Counters via Adaptive Grouping was accepted by ACM TACO. -Congratulations to Tong-yu.

- -
-

PDF (Open Access)

- -

Source Code

-
-
- - - - - -
- - - -
- - - Previous post
- - SOLERs received scholarships! - - -
- - - Next post
- - Paper Accepted by IEEE TPDS - - -
-
-
- - -
- - - - - - - diff --git a/preview/pr-65/2023/12/04/TCSA-accepted.html b/preview/pr-65/2023/12/04/TCSA-accepted.html deleted file mode 100644 index 2413170c..00000000 --- a/preview/pr-65/2023/12/04/TCSA-accepted.html +++ /dev/null @@ -1,640 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Paper Accepted by IEEE TPDS | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Paper Accepted by IEEE TPDS

- - - - - - - -
- - - paper - - - -
-
- - - - - -
- - - -

Dec., 2023. Paper TCSA: Efficient Localization of Busy-Wait Synchronization Bugs for Latency-Critical Applications was accepted by IEEE TPDS. -Congratulations to Ning Li.

- -
-

PDF

- -

Source Code

-
-
- - - - - -
- - - -
- - - Previous post
- - Paper Accepted by ACM TACO - - -
- - - Next post
- - Paper Accepted by Journal of Systems and Software - - -
-
-
- - -
- - - - - - - diff --git a/preview/pr-65/2024/05/11/EFACT-accepted.html b/preview/pr-65/2024/05/11/EFACT-accepted.html deleted file mode 100644 index 60907956..00000000 --- a/preview/pr-65/2024/05/11/EFACT-accepted.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Paper Accepted by Journal of Systems and Software | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Paper Accepted by Journal of Systems and Software

- - - - - - - -
- - - paper - - - -
-
- - - - - -
- - - -

May, 2024. Paper EFACT: An External Function Auto-Completion Tool to strengthen static binary lifting was accepted by Journal of Systems and Software. -Congratulations to Yilei Zhang.

- -
-

PDF

- -

Source Code

-
-
- - - - - -
- - - -
- - - Previous post
- - Paper Accepted by IEEE TPDS - - -
- - - -
-
- - -
- - - - - - - diff --git a/preview/pr-65/404.html b/preview/pr-65/404.html deleted file mode 100644 index ff48bd4a..00000000 --- a/preview/pr-65/404.html +++ /dev/null @@ -1,533 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -404 | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-

- Page Not Found

- -

Try searching the whole site for the content you want:

- -
- - -
-
- - -
- - - - - - - diff --git a/preview/pr-65/_scripts/anchors.js b/preview/pr-65/_scripts/anchors.js deleted file mode 100644 index 58daabcb..00000000 --- a/preview/pr-65/_scripts/anchors.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - creates link next to each heading that links to that section. -*/ - -{ - const onLoad = () => { - // for each heading - const headings = document.querySelectorAll( - "h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]" - ); - for (const heading of headings) { - // create anchor link - const link = document.createElement("a"); - link.classList.add("icon", "fa-solid", "fa-link", "anchor"); - link.href = "#" + heading.id; - link.setAttribute("aria-label", "link to this section"); - heading.append(link); - - // if first heading in the section, move id to parent section - if (heading.matches("section > :first-child")) { - heading.parentElement.id = heading.id; - heading.removeAttribute("id"); - } - } - }; - - // scroll to target of url hash - const scrollToTarget = () => { - const id = window.location.hash.replace("#", ""); - const target = document.getElementById(id); - - if (!target) return; - const offset = document.querySelector("header").clientHeight || 0; - window.scrollTo({ - top: target.getBoundingClientRect().top + window.scrollY - offset, - behavior: "smooth", - }); - }; - - // after page loads - window.addEventListener("load", onLoad); - window.addEventListener("load", scrollToTarget); - window.addEventListener("tagsfetched", scrollToTarget); - - // when hash nav happens - window.addEventListener("hashchange", scrollToTarget); -} diff --git a/preview/pr-65/_scripts/dark-mode.js b/preview/pr-65/_scripts/dark-mode.js deleted file mode 100644 index b75b25eb..00000000 --- a/preview/pr-65/_scripts/dark-mode.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - manages light/dark mode. -*/ - -{ - // immediately load saved (or default) mode before page renders - document.documentElement.dataset.dark = - window.localStorage.getItem("dark-mode") ?? "false"; - - const onLoad = () => { - // update toggle button to match loaded mode - document.querySelector(".dark-toggle").checked = - document.documentElement.dataset.dark === "true"; - }; - - // after page loads - window.addEventListener("load", onLoad); - - // when user toggles mode button - window.onDarkToggleChange = (event) => { - const value = event.target.checked; - document.documentElement.dataset.dark = value; - window.localStorage.setItem("dark-mode", value); - }; -} diff --git a/preview/pr-65/_scripts/fetch-tags.js b/preview/pr-65/_scripts/fetch-tags.js deleted file mode 100644 index c843b67f..00000000 --- a/preview/pr-65/_scripts/fetch-tags.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - fetches tags (aka "topics") from a given GitHub repo and adds them to row of - tag buttons. specify repo in data-repo attribute on row. -*/ - -{ - const onLoad = async () => { - // get tag rows with specified repos - const rows = document.querySelectorAll("[data-repo]"); - - // for each repo - for (const row of rows) { - // get props from tag row - const repo = row.dataset.repo.trim(); - const link = row.dataset.link.trim(); - - // get tags from github - if (!repo) continue; - let tags = await fetchTags(repo); - - // filter out tags already present in row - let existing = [...row.querySelectorAll(".tag")].map((tag) => - window.normalizeTag(tag.innerText) - ); - tags = tags.filter((tag) => !existing.includes(normalizeTag(tag))); - - // add tags to row - for (const tag of tags) { - const a = document.createElement("a"); - a.classList.add("tag"); - a.innerHTML = tag; - a.href = `${link}?search="tag: ${tag}"`; - a.dataset.tooltip = `Show items with the tag "${tag}"`; - row.append(a); - } - - // delete tags container if empty - if (!row.innerText.trim()) row.remove(); - } - - // emit "tags done" event for other scripts to listen for - window.dispatchEvent(new Event("tagsfetched")); - }; - - // after page loads - window.addEventListener("load", onLoad); - - // GitHub topics endpoint - const api = "https://api.github.com/repos/REPO/topics"; - const headers = new Headers(); - headers.set("Accept", "application/vnd.github+json"); - - // get tags from GitHub based on repo name - const fetchTags = async (repo) => { - const url = api.replace("REPO", repo); - try { - const response = await (await fetch(url)).json(); - if (response.names) return response.names; - else throw new Error(JSON.stringify(response)); - } catch (error) { - console.groupCollapsed("GitHub fetch tags error"); - console.log(error); - console.groupEnd(); - return []; - } - }; -} diff --git a/preview/pr-65/_scripts/search.js b/preview/pr-65/_scripts/search.js deleted file mode 100644 index fa23ca4c..00000000 --- a/preview/pr-65/_scripts/search.js +++ /dev/null @@ -1,215 +0,0 @@ -/* - filters elements on page based on url or search box. - syntax: term1 term2 "full phrase 1" "full phrase 2" "tag: tag 1" - match if: all terms AND at least one phrase AND at least one tag -*/ -{ - // elements to filter - const elementSelector = ".card, .citation, .post-excerpt"; - // search box element - const searchBoxSelector = ".search-box"; - // results info box element - const infoBoxSelector = ".search-info"; - // tags element - const tagSelector = ".tag"; - - // split search query into terms, phrases, and tags - const splitQuery = (query) => { - // split into parts, preserve quotes - const parts = query.match(/"[^"]*"|\S+/g) || []; - - // bins - const terms = []; - const phrases = []; - const tags = []; - - // put parts into bins - for (let part of parts) { - if (part.startsWith('"')) { - part = part.replaceAll('"', "").trim(); - if (part.startsWith("tag:")) - tags.push(normalizeTag(part.replace(/tag:\s*/, ""))); - else phrases.push(part.toLowerCase()); - } else terms.push(part.toLowerCase()); - } - - return { terms, phrases, tags }; - }; - - // normalize tag string for comparison - window.normalizeTag = (tag) => - tag.trim().toLowerCase().replaceAll(/-|\s+/g, " "); - - // get data attribute contents of element and children - const getAttr = (element, attr) => - [element, ...element.querySelectorAll(`[data-${attr}]`)] - .map((element) => element.dataset[attr]) - .join(" "); - - // determine if element should show up in results based on query - const elementMatches = (element, { terms, phrases, tags }) => { - // tag elements within element - const tagElements = [...element.querySelectorAll(".tag")]; - - // check if text content exists in element - const hasText = (string) => - ( - element.innerText + - getAttr(element, "tooltip") + - getAttr(element, "search") - ) - .toLowerCase() - .includes(string); - // check if text matches a tag in element - const hasTag = (string) => - tagElements.some((tag) => normalizeTag(tag.innerText) === string); - - // match logic - return ( - (terms.every(hasText) || !terms.length) && - (phrases.some(hasText) || !phrases.length) && - (tags.some(hasTag) || !tags.length) - ); - }; - - // loop through elements, hide/show based on query, and return results info - const filterElements = (parts) => { - let elements = document.querySelectorAll(elementSelector); - - // results info - let x = 0; - let n = elements.length; - let tags = parts.tags; - - // filter elements - for (const element of elements) { - if (elementMatches(element, parts)) { - element.style.display = ""; - x++; - } else element.style.display = "none"; - } - - return [x, n, tags]; - }; - - // highlight search terms - const highlightMatches = async ({ terms, phrases }) => { - // make sure Mark library available - if (typeof Mark === "undefined") return; - - // reset - new Mark(document.body).unmark(); - - // limit number of highlights to avoid slowdown - let counter = 0; - const filter = () => counter++ < 100; - - // highlight terms and phrases - new Mark(elementSelector) - .mark(terms, { separateWordSearch: true, filter }) - .mark(phrases, { separateWordSearch: false, filter }); - }; - - // update search box based on query - const updateSearchBox = (query = "") => { - const boxes = document.querySelectorAll(searchBoxSelector); - - for (const box of boxes) { - const input = box.querySelector("input"); - const button = box.querySelector("button"); - const icon = box.querySelector("button i"); - input.value = query; - icon.className = input.value.length - ? "icon fa-solid fa-xmark" - : "icon fa-solid fa-magnifying-glass"; - button.disabled = input.value.length ? false : true; - } - }; - - // update info box based on query and results - const updateInfoBox = (query, x, n) => { - const boxes = document.querySelectorAll(infoBoxSelector); - - if (query.trim()) { - // show all info boxes - boxes.forEach((info) => (info.style.display = "")); - - // info template - let info = ""; - info += `Showing ${x.toLocaleString()} of ${n.toLocaleString()} results
`; - info += "Clear search"; - - // set info HTML string - boxes.forEach((el) => (el.innerHTML = info)); - } - // if nothing searched - else { - // hide all info boxes - boxes.forEach((info) => (info.style.display = "none")); - } - }; - - // update tags based on query - const updateTags = (query) => { - const { tags } = splitQuery(query); - document.querySelectorAll(tagSelector).forEach((tag) => { - // set active if tag is in query - if (tags.includes(normalizeTag(tag.innerText))) - tag.setAttribute("data-active", ""); - else tag.removeAttribute("data-active"); - }); - }; - - // run search with query - const runSearch = (query = "") => { - const parts = splitQuery(query); - const [x, n] = filterElements(parts); - updateSearchBox(query); - updateInfoBox(query, x, n); - updateTags(query); - highlightMatches(parts); - }; - - // update url based on query - const updateUrl = (query = "") => { - const url = new URL(window.location); - let params = new URLSearchParams(url.search); - params.set("search", query); - url.search = params.toString(); - window.history.replaceState(null, null, url); - }; - - // search based on url param - const searchFromUrl = () => { - const query = - new URLSearchParams(window.location.search).get("search") || ""; - runSearch(query); - }; - - // return func that runs after delay - const debounce = (callback, delay = 250) => { - let timeout; - return (...args) => { - window.clearTimeout(timeout); - timeout = window.setTimeout(() => callback(...args), delay); - }; - }; - - // when user types into search box - const debouncedRunSearch = debounce(runSearch, 1000); - window.onSearchInput = (target) => { - debouncedRunSearch(target.value); - updateUrl(target.value); - }; - - // when user clears search box with button - window.onSearchClear = () => { - runSearch(); - updateUrl(); - }; - - // after page loads - window.addEventListener("load", searchFromUrl); - // after tags load - window.addEventListener("tagsfetched", searchFromUrl); -} diff --git a/preview/pr-65/_scripts/site-search.js b/preview/pr-65/_scripts/site-search.js deleted file mode 100644 index caff0a61..00000000 --- a/preview/pr-65/_scripts/site-search.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - for site search component. searches site/domain via google. -*/ - -{ - // when user submits site search form/box - window.onSiteSearchSubmit = (event) => { - event.preventDefault(); - const google = "https://www.google.com/search?q=site:"; - const site = window.location.origin; - const query = event.target.elements.query.value; - window.location = google + site + " " + query; - }; -} diff --git a/preview/pr-65/_scripts/table-wrap.js b/preview/pr-65/_scripts/table-wrap.js deleted file mode 100644 index 4c5bddd8..00000000 --- a/preview/pr-65/_scripts/table-wrap.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - put a wrapper around each table to allow scrolling. -*/ - -{ - const onLoad = () => { - // for each top-level table - const tables = document.querySelectorAll("table:not(table table)"); - for (const table of tables) { - // create wrapper with scroll - const wrapper = document.createElement("div"); - wrapper.style.overflowX = "auto"; - - // undo css force-text-wrap - table.style.overflowWrap = "normal"; - - // add wrapper around table - table.parentNode.insertBefore(wrapper, table); - wrapper.appendChild(table); - } - }; - - // after page loads - window.addEventListener("load", onLoad); -} diff --git a/preview/pr-65/_scripts/tooltip.js b/preview/pr-65/_scripts/tooltip.js deleted file mode 100644 index 49eccfc5..00000000 --- a/preview/pr-65/_scripts/tooltip.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - shows a popup of text on hover/focus of any element with the data-tooltip - attribute. -*/ - -{ - const onLoad = () => { - // make sure Tippy library available - if (typeof tippy === "undefined") return; - - // get elements with non-empty tooltips - const elements = [...document.querySelectorAll("[data-tooltip]")].filter( - (element) => element.dataset.tooltip.trim() && !element._tippy - ); - - // add tooltip to elements - tippy(elements, { - content: (element) => element.dataset.tooltip.trim(), - delay: [200, 0], - offset: [0, 20], - allowHTML: true, - interactive: true, - appendTo: () => document.body, - aria: { - content: "describedby", - expanded: null, - }, - onShow: ({ reference, popper }) => { - const dark = reference.closest("[data-dark]")?.dataset.dark; - if (dark === "false") popper.dataset.dark = true; - if (dark === "true") popper.dataset.dark = false; - }, - // onHide: () => false, // debug - }); - }; - - // after page loads - window.addEventListener("load", onLoad); - // after tags load - window.addEventListener("tagsfetched", onLoad); -} diff --git a/preview/pr-65/_styles/-theme.css b/preview/pr-65/_styles/-theme.css deleted file mode 100644 index 3a610a3d..00000000 --- a/preview/pr-65/_styles/-theme.css +++ /dev/null @@ -1,44 +0,0 @@ -[data-dark=false] { - --primary: #0795d9; - --secondary: #7dd3fc; - --text: #000000; - --background: #ffffff; - --background-alt: #fafafa; - --light-gray: #e0e0e0; - --gray: #808080; - --dark-gray: #404040; - --overlay: #00000020; -} - -[data-dark=true] { - --primary: #0795d9; - --secondary: #075985; - --text: #ffffff; - --background: #181818; - --background-alt: #1c1c1c; - --light-gray: #404040; - --gray: #808080; - --dark-gray: #b0b0b0; - --overlay: #ffffff10; -} - -:root { - --title: "Barlow", sans-serif; - --heading: "Barlow", sans-serif; - --body: "Barlow", sans-serif; - --code: "Roboto Mono", monospace; - --large: 1.2rem; - --xl: 1.4rem; - --xxl: 1.6rem; - --thin: 200; - --regular: 400; - --semi-bold: 500; - --bold: 600; - --spacing: 2; - --compact: 1.5; - --rounded: 3px; - --shadow: 0 0 10px 0 var(--overlay); - --transition: 0.2s ease; -} - -/*# sourceMappingURL=-theme.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/-theme.css.map b/preview/pr-65/_styles/-theme.css.map deleted file mode 100644 index 16cb8930..00000000 --- a/preview/pr-65/_styles/-theme.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["-theme.scss"],"names":[],"mappings":"AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAEE;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EACA","sourcesContent":["// colors\n[data-dark=\"false\"] {\n --primary: #0795d9;\n --secondary: #7dd3fc;\n --text: #000000;\n --background: #ffffff;\n --background-alt: #fafafa;\n --light-gray: #e0e0e0;\n --gray: #808080;\n --dark-gray: #404040;\n --overlay: #00000020;\n}\n[data-dark=\"true\"] {\n --primary: #0795d9;\n --secondary: #075985;\n --text: #ffffff;\n --background: #181818;\n --background-alt: #1c1c1c;\n --light-gray: #404040;\n --gray: #808080;\n --dark-gray: #b0b0b0;\n --overlay: #ffffff10;\n}\n\n:root {\n // font families\n --title: \"Barlow\", sans-serif;\n --heading: \"Barlow\", sans-serif;\n --body: \"Barlow\", sans-serif;\n --code: \"Roboto Mono\", monospace;\n\n // font sizes\n --large: 1.2rem;\n --xl: 1.4rem;\n --xxl: 1.6rem;\n\n // font weights\n --thin: 200;\n --regular: 400;\n --semi-bold: 500;\n --bold: 600;\n\n // text line spacing\n --spacing: 2;\n --compact: 1.5;\n\n // effects\n --rounded: 3px;\n --shadow: 0 0 10px 0 var(--overlay);\n --transition: 0.2s ease;\n}\n"],"file":"-theme.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/alert.css b/preview/pr-65/_styles/alert.css deleted file mode 100644 index 82bf0165..00000000 --- a/preview/pr-65/_styles/alert.css +++ /dev/null @@ -1,36 +0,0 @@ -.alert { - position: relative; - display: flex; - gap: 20px; - align-items: center; - margin: 20px 0; - padding: 20px; - border-radius: var(--rounded); - overflow: hidden; - text-align: left; - line-height: var(--spacing); -} - -.alert:before { - content: ""; - position: absolute; - inset: 0; - opacity: 0.1; - background: var(--color); - z-index: -1; -} - -.alert > .icon { - color: var(--color); - font-size: var(--large); -} - -.alert-content > :first-child { - margin-top: 0; -} - -.alert-content > :last-child { - margin-bottom: 0; -} - -/*# sourceMappingURL=alert.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/alert.css.map b/preview/pr-65/_styles/alert.css.map deleted file mode 100644 index 4e461a42..00000000 --- a/preview/pr-65/_styles/alert.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["alert.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE","sourcesContent":[".alert {\n position: relative;\n display: flex;\n gap: 20px;\n align-items: center;\n margin: 20px 0;\n padding: 20px;\n border-radius: var(--rounded);\n overflow: hidden;\n text-align: left;\n line-height: var(--spacing);\n}\n\n.alert:before {\n content: \"\";\n position: absolute;\n inset: 0;\n opacity: 0.1;\n background: var(--color);\n z-index: -1;\n}\n\n.alert > .icon {\n color: var(--color);\n font-size: var(--large);\n}\n\n.alert-content > :first-child {\n margin-top: 0;\n}\n\n.alert-content > :last-child {\n margin-bottom: 0;\n}\n"],"file":"alert.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/all.css b/preview/pr-65/_styles/all.css deleted file mode 100644 index 65194abf..00000000 --- a/preview/pr-65/_styles/all.css +++ /dev/null @@ -1,10 +0,0 @@ -*, -::before, -::after { - box-sizing: border-box; - -moz-text-size-adjust: none; - -webkit-text-size-adjust: none; - text-size-adjust: none; -} - -/*# sourceMappingURL=all.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/all.css.map b/preview/pr-65/_styles/all.css.map deleted file mode 100644 index 079eb5f9..00000000 --- a/preview/pr-65/_styles/all.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["all.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;EAGE;EACA;EACA;EACA","sourcesContent":["*,\n::before,\n::after {\n box-sizing: border-box;\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n text-size-adjust: none;\n}\n"],"file":"all.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/anchor.css b/preview/pr-65/_styles/anchor.css deleted file mode 100644 index 3724245d..00000000 --- a/preview/pr-65/_styles/anchor.css +++ /dev/null @@ -1,23 +0,0 @@ -.anchor { - display: inline-block; - position: relative; - width: 0; - margin: 0; - left: 0.5em; - color: var(--primary) !important; - opacity: 0; - font-size: 0.75em; - text-decoration: none; - transition: opacity var(--transition), color var(--transition); -} - -:hover > .anchor, -.anchor:focus { - opacity: 1; -} - -.anchor:hover { - color: var(--text) !important; -} - -/*# sourceMappingURL=anchor.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/anchor.css.map b/preview/pr-65/_styles/anchor.css.map deleted file mode 100644 index 2fc8d7b1..00000000 --- a/preview/pr-65/_styles/anchor.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["anchor.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE","sourcesContent":[".anchor {\n display: inline-block;\n position: relative;\n width: 0;\n margin: 0;\n left: 0.5em;\n color: var(--primary) !important;\n opacity: 0;\n font-size: 0.75em;\n text-decoration: none;\n transition: opacity var(--transition), color var(--transition);\n}\n\n:hover > .anchor,\n.anchor:focus {\n opacity: 1;\n}\n\n.anchor:hover {\n color: var(--text) !important;\n}\n"],"file":"anchor.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/background.css b/preview/pr-65/_styles/background.css deleted file mode 100644 index 025e56ad..00000000 --- a/preview/pr-65/_styles/background.css +++ /dev/null @@ -1,20 +0,0 @@ -.background { - position: relative; - background: var(--background); - color: var(--text); - z-index: 1; -} - -.background:before { - content: ""; - position: absolute; - inset: 0; - background-image: var(--image); - background-size: cover; - background-repeat: no-repeat; - background-position: 50% 50%; - opacity: 0.25; - z-index: -1; -} - -/*# sourceMappingURL=background.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/background.css.map b/preview/pr-65/_styles/background.css.map deleted file mode 100644 index b655d9e5..00000000 --- a/preview/pr-65/_styles/background.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["background.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","sourcesContent":[".background {\n position: relative;\n background: var(--background);\n color: var(--text);\n z-index: 1;\n}\n\n.background:before {\n content: \"\";\n position: absolute;\n inset: 0;\n background-image: var(--image);\n background-size: cover;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n opacity: 0.25;\n z-index: -1;\n}\n"],"file":"background.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/body.css b/preview/pr-65/_styles/body.css deleted file mode 100644 index 35145d6e..00000000 --- a/preview/pr-65/_styles/body.css +++ /dev/null @@ -1,14 +0,0 @@ -body { - display: flex; - flex-direction: column; - margin: 0; - padding: 0; - min-height: 100vh; - background: var(--background); - color: var(--text); - font-family: var(--body); - text-align: center; - line-height: var(--compact); -} - -/*# sourceMappingURL=body.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/body.css.map b/preview/pr-65/_styles/body.css.map deleted file mode 100644 index d03b64e7..00000000 --- a/preview/pr-65/_styles/body.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["body.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","sourcesContent":["body {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n min-height: 100vh;\n background: var(--background);\n color: var(--text);\n font-family: var(--body);\n text-align: center;\n line-height: var(--compact);\n}\n"],"file":"body.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/bold.css b/preview/pr-65/_styles/bold.css deleted file mode 100644 index 94a711f1..00000000 --- a/preview/pr-65/_styles/bold.css +++ /dev/null @@ -1,6 +0,0 @@ -b, -strong { - font-weight: var(--bold); -} - -/*# sourceMappingURL=bold.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/bold.css.map b/preview/pr-65/_styles/bold.css.map deleted file mode 100644 index 57012fd4..00000000 --- a/preview/pr-65/_styles/bold.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["bold.scss"],"names":[],"mappings":"AAAA;AAAA;EAEE","sourcesContent":["b,\nstrong {\n font-weight: var(--bold);\n}\n"],"file":"bold.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/button.css b/preview/pr-65/_styles/button.css deleted file mode 100644 index ab3f650e..00000000 --- a/preview/pr-65/_styles/button.css +++ /dev/null @@ -1,49 +0,0 @@ -button { - cursor: pointer; -} - -.button-wrapper { - display: contents; -} - -.button { - display: inline-flex; - justify-content: center; - align-items: center; - gap: 10px; - max-width: calc(100% - 5px - 5px); - margin: 5px; - padding: 10px 15px; - border: none; - border-radius: var(--rounded); - background: var(--primary); - color: var(--background); - text-align: center; - font: inherit; - font-family: var(--heading); - font-weight: var(--semi-bold); - text-decoration: none; - vertical-align: middle; - appearance: none; - transition: background var(--transition), color var(--transition); -} - -.button:hover { - background: var(--text); - color: var(--background); -} - -.button[data-style=bare] { - padding: 5px; - background: none; - color: var(--primary); -} -.button[data-style=bare]:hover { - color: var(--text); -} - -.button[data-flip] { - flex-direction: row-reverse; -} - -/*# sourceMappingURL=button.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/button.css.map b/preview/pr-65/_styles/button.css.map deleted file mode 100644 index 5fee0dd3..00000000 --- a/preview/pr-65/_styles/button.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["button.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE","sourcesContent":["button {\n cursor: pointer;\n}\n\n.button-wrapper {\n display: contents;\n}\n\n.button {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n max-width: calc(100% - 5px - 5px);\n margin: 5px;\n padding: 10px 15px;\n border: none;\n border-radius: var(--rounded);\n background: var(--primary);\n color: var(--background);\n text-align: center;\n font: inherit;\n font-family: var(--heading);\n font-weight: var(--semi-bold);\n text-decoration: none;\n vertical-align: middle;\n appearance: none;\n transition: background var(--transition), color var(--transition);\n}\n\n.button:hover {\n background: var(--text);\n color: var(--background);\n}\n\n.button[data-style=\"bare\"] {\n padding: 5px;\n background: none;\n color: var(--primary);\n\n &:hover {\n color: var(--text);\n }\n}\n\n.button[data-flip] {\n flex-direction: row-reverse;\n}\n"],"file":"button.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/card.css b/preview/pr-65/_styles/card.css deleted file mode 100644 index 4c295993..00000000 --- a/preview/pr-65/_styles/card.css +++ /dev/null @@ -1,52 +0,0 @@ -.card { - display: inline-flex; - justify-content: stretch; - align-items: center; - flex-direction: column; - width: 350px; - max-width: calc(100% - 20px - 20px); - margin: 20px; - background: var(--background); - border-radius: var(--rounded); - overflow: hidden; - box-shadow: var(--shadow); - vertical-align: top; -} - -.card[data-style=small] { - width: 250px; -} - -.card-image img { - aspect-ratio: 4/2; - object-fit: contain; - width: 100%; - box-shadow: var(--shadow); -} - -.card-text { - display: inline-flex; - justify-content: flex-start; - align-items: center; - flex-direction: column; - gap: 20px; - max-width: 100%; - padding: 20px; - height: 170px; -} - -.card-text > * { - margin: 0 !important; -} - -.card-title { - font-family: var(--heading); - font-weight: var(--semi-bold); -} - -.card-subtitle { - margin-top: -10px !important; - font-style: italic; -} - -/*# sourceMappingURL=card.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/card.css.map b/preview/pr-65/_styles/card.css.map deleted file mode 100644 index 47c53cc1..00000000 --- a/preview/pr-65/_styles/card.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["card.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA","sourcesContent":[".card {\n display: inline-flex;\n justify-content: stretch;\n align-items: center;\n flex-direction: column;\n width: 350px;\n max-width: calc(100% - 20px - 20px);\n margin: 20px;\n background: var(--background);\n border-radius: var(--rounded);\n overflow: hidden;\n box-shadow: var(--shadow);\n vertical-align: top;\n}\n\n.card[data-style=\"small\"] {\n width: 250px;\n}\n\n.card-image img {\n aspect-ratio: 4 / 2;\n object-fit: contain;\n width: 100%;\n box-shadow: var(--shadow);\n}\n\n.card-text {\n display: inline-flex;\n justify-content: flex-start;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n max-width: 100%;\n padding: 20px;\n height: 170px;\n}\n\n.card-text > * {\n margin: 0 !important;\n}\n\n.card-title {\n font-family: var(--heading);\n font-weight: var(--semi-bold);\n}\n\n.card-subtitle {\n margin-top: -10px !important;\n font-style: italic;\n}\n"],"file":"card.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/checkbox.css b/preview/pr-65/_styles/checkbox.css deleted file mode 100644 index 8c77dc53..00000000 --- a/preview/pr-65/_styles/checkbox.css +++ /dev/null @@ -1,5 +0,0 @@ -input[type=checkbox] { - cursor: pointer; -} - -/*# sourceMappingURL=checkbox.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/checkbox.css.map b/preview/pr-65/_styles/checkbox.css.map deleted file mode 100644 index 90fb4932..00000000 --- a/preview/pr-65/_styles/checkbox.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["checkbox.scss"],"names":[],"mappings":"AAAA;EACE","sourcesContent":["input[type=\"checkbox\"] {\n cursor: pointer;\n}\n"],"file":"checkbox.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/citation.css b/preview/pr-65/_styles/citation.css deleted file mode 100644 index 331e86f0..00000000 --- a/preview/pr-65/_styles/citation.css +++ /dev/null @@ -1,99 +0,0 @@ -.citation-container { - container-type: inline-size; -} - -.citation { - display: flex; - margin: 20px 0; - padding-left: 20px; - border-radius: var(--rounded); - background: var(--background); - overflow: hidden; - box-shadow: var(--shadow); -} - -.citation-image { - position: relative; - width: 180px; - flex-shrink: 0; -} - -.citation-image img { - position: absolute; - inset: 0; - width: 100%; - height: 100%; - object-fit: contain; -} - -.citation-text { - position: relative; - display: inline-flex; - flex-wrap: wrap; - gap: 10px; - max-width: 100%; - height: min-content; - padding: 20px; - padding-left: 30px; - text-align: left; - overflow-wrap: break-word; - z-index: 0; -} - -.citation-title, -.citation-authors, -.citation-details, -.citation-description { - width: 100%; -} - -.citation-title { - font-weight: var(--semi-bold); -} - -.citation-text > .icon { - position: absolute; - top: 20px; - right: 20px; - color: var(--light-gray); - opacity: 0.5; - font-size: 30px; - z-index: -1; -} - -.citation-publisher { - text-transform: capitalize; -} - -.citation-description { - color: var(--gray); - font-size: small; -} - -.citation-buttons { - display: flex; - flex-wrap: wrap; - gap: 10px; -} - -.citation-buttons .button { - margin: 0; -} - -.citation-text > .tags { - display: inline-flex; - justify-content: flex-start; - margin: 0; -} - -@container (max-width: 800px) { - .citation { - flex-direction: column; - } - .citation-image { - width: unset; - height: 180px; - } -} - -/*# sourceMappingURL=citation.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/citation.css.map b/preview/pr-65/_styles/citation.css.map deleted file mode 100644 index bb1e3f6f..00000000 --- a/preview/pr-65/_styles/citation.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["citation.scss"],"names":[],"mappings":"AAGA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA,OAnBW;EAoBX;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;IACA,QAnGS","sourcesContent":["$thumb-size: 180px;\n$wrap: 800px;\n\n.citation-container {\n container-type: inline-size;\n}\n\n.citation {\n display: flex;\n margin: 20px 0;\n padding-left: 20px;\n border-radius: var(--rounded);\n background: var(--background);\n overflow: hidden;\n box-shadow: var(--shadow);\n}\n\n.citation-image {\n position: relative;\n width: $thumb-size;\n flex-shrink: 0;\n // box-shadow: var(--shadow);\n}\n\n.citation-image img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.citation-text {\n position: relative;\n display: inline-flex;\n flex-wrap: wrap;\n gap: 10px;\n max-width: 100%;\n height: min-content;\n padding: 20px;\n padding-left: 30px;\n text-align: left;\n overflow-wrap: break-word;\n z-index: 0;\n}\n\n.citation-title,\n.citation-authors,\n.citation-details,\n.citation-description {\n width: 100%;\n}\n\n.citation-title {\n font-weight: var(--semi-bold);\n}\n\n.citation-text > .icon {\n position: absolute;\n top: 20px;\n right: 20px;\n color: var(--light-gray);\n opacity: 0.5;\n font-size: 30px;\n z-index: -1;\n}\n\n.citation-publisher {\n text-transform: capitalize;\n}\n\n.citation-description {\n color: var(--gray);\n font-size: small;\n}\n\n.citation-buttons {\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n}\n\n.citation-buttons .button {\n margin: 0;\n}\n\n.citation-text > .tags {\n display: inline-flex;\n justify-content: flex-start;\n margin: 0;\n}\n\n@container (max-width: #{$wrap}) {\n .citation {\n flex-direction: column;\n }\n\n .citation-image {\n width: unset;\n height: $thumb-size;\n }\n}\n"],"file":"citation.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/code.css b/preview/pr-65/_styles/code.css deleted file mode 100644 index 8912ad31..00000000 --- a/preview/pr-65/_styles/code.css +++ /dev/null @@ -1,33 +0,0 @@ -pre, -code, -pre *, -code * { - font-family: var(--code); -} - -code.highlighter-rouge { - padding: 2px 6px; - background: var(--light-gray); - border-radius: var(--rounded); -} - -div.highlighter-rouge { - width: 100%; - margin: 40px 0; - border-radius: var(--rounded); - overflow-x: auto; - overflow-y: auto; - text-align: left; -} -div.highlighter-rouge div.highlight { - display: contents; -} -div.highlighter-rouge div.highlight pre.highlight { - width: fit-content; - min-width: 100%; - margin: 0; - padding: 20px; - color: var(--white); -} - -/*# sourceMappingURL=code.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/code.css.map b/preview/pr-65/_styles/code.css.map deleted file mode 100644 index 8f447176..00000000 --- a/preview/pr-65/_styles/code.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["code.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;EAIE;;;AAIF;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA","sourcesContent":["pre,\ncode,\npre *,\ncode * {\n font-family: var(--code);\n}\n\n// inline code\ncode.highlighter-rouge {\n padding: 2px 6px;\n background: var(--light-gray);\n border-radius: var(--rounded);\n}\n\n// code block\ndiv.highlighter-rouge {\n width: 100%;\n margin: 40px 0;\n border-radius: var(--rounded);\n overflow-x: auto;\n overflow-y: auto;\n text-align: left;\n\n div.highlight {\n display: contents;\n\n pre.highlight {\n width: fit-content;\n min-width: 100%;\n margin: 0;\n padding: 20px;\n color: var(--white);\n }\n }\n}\n"],"file":"code.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/cols.css b/preview/pr-65/_styles/cols.css deleted file mode 100644 index b15b095b..00000000 --- a/preview/pr-65/_styles/cols.css +++ /dev/null @@ -1,34 +0,0 @@ -.cols { - display: grid; - --repeat: min(3, var(--cols)); - grid-template-columns: repeat(var(--repeat), 1fr); - align-items: flex-start; - gap: 40px; - margin: 40px 0; -} - -.cols > * { - min-width: 0; - min-height: 0; -} - -.cols > div > :first-child { - margin-top: 0 !important; -} - -.cols > div > :last-child { - margin-bottom: 0 !important; -} - -@media (max-width: 750px) { - .cols { - --repeat: min(2, var(--cols)); - } -} -@media (max-width: 500px) { - .cols { - --repeat: min(1, var(--cols)); - } -} - -/*# sourceMappingURL=cols.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/cols.css.map b/preview/pr-65/_styles/cols.css.map deleted file mode 100644 index 2c44d543..00000000 --- a/preview/pr-65/_styles/cols.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["cols.scss"],"names":[],"mappings":"AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE","sourcesContent":["$two: 750px;\n$one: 500px;\n\n.cols {\n display: grid;\n --repeat: min(3, var(--cols));\n grid-template-columns: repeat(var(--repeat), 1fr);\n align-items: flex-start;\n gap: 40px;\n margin: 40px 0;\n}\n\n.cols > * {\n min-width: 0;\n min-height: 0;\n}\n\n.cols > div > :first-child {\n margin-top: 0 !important;\n}\n\n.cols > div > :last-child {\n margin-bottom: 0 !important;\n}\n\n@media (max-width: $two) {\n .cols {\n --repeat: min(2, var(--cols));\n }\n}\n\n@media (max-width: $one) {\n .cols {\n --repeat: min(1, var(--cols));\n }\n}\n"],"file":"cols.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/dark-toggle.css b/preview/pr-65/_styles/dark-toggle.css deleted file mode 100644 index 87065b78..00000000 --- a/preview/pr-65/_styles/dark-toggle.css +++ /dev/null @@ -1,30 +0,0 @@ -.dark-toggle { - position: relative; - width: 40px; - height: 25px; - margin: 0; - border-radius: 999px; - background: var(--primary); - appearance: none; - transition: background var(--transition); -} - -.dark-toggle:after { - content: "\f185"; - position: absolute; - left: 12px; - top: 50%; - color: var(--text); - font-size: 15px; - font-family: "Font Awesome 6 Free"; - font-weight: 900; - transform: translate(-50%, -50%); - transition: left var(--transition); -} - -.dark-toggle:checked:after { - content: "\f186"; - left: calc(100% - 12px); -} - -/*# sourceMappingURL=dark-toggle.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/dark-toggle.css.map b/preview/pr-65/_styles/dark-toggle.css.map deleted file mode 100644 index 496aa7b5..00000000 --- a/preview/pr-65/_styles/dark-toggle.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["dark-toggle.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA","sourcesContent":[".dark-toggle {\n position: relative;\n width: 40px;\n height: 25px;\n margin: 0;\n border-radius: 999px;\n background: var(--primary);\n appearance: none;\n transition: background var(--transition);\n}\n\n.dark-toggle:after {\n content: \"\\f185\";\n position: absolute;\n left: 12px;\n top: 50%;\n color: var(--text);\n font-size: 15px;\n font-family: \"Font Awesome 6 Free\";\n font-weight: 900;\n transform: translate(-50%, -50%);\n transition: left var(--transition);\n}\n\n.dark-toggle:checked:after {\n content: \"\\f186\";\n left: calc(100% - 12px);\n}\n"],"file":"dark-toggle.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/feature.css b/preview/pr-65/_styles/feature.css deleted file mode 100644 index 7f7e0120..00000000 --- a/preview/pr-65/_styles/feature.css +++ /dev/null @@ -1,49 +0,0 @@ -.feature { - display: flex; - justify-content: center; - align-items: center; - gap: 40px; - margin: 40px 0; -} - -.feature-image { - flex-shrink: 0; - width: 40%; - aspect-ratio: 3/2; - border-radius: var(--rounded); - overflow: hidden; - box-shadow: var(--shadow); -} - -.feature-image img { - width: 100%; - height: 100%; - object-fit: cover; -} - -.feature-text { - flex-grow: 1; -} - -.feature-title { - font-size: var(--large); - text-align: center; - font-family: var(--heading); - font-weight: var(--semi-bold); -} - -.feature[data-flip] { - flex-direction: row-reverse; -} - -@media (max-width: 800px) { - .feature { - flex-direction: column !important; - } - .feature-image { - width: 100%; - max-width: 400px; - } -} - -/*# sourceMappingURL=feature.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/feature.css.map b/preview/pr-65/_styles/feature.css.map deleted file mode 100644 index d431c6cc..00000000 --- a/preview/pr-65/_styles/feature.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["feature.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;IACE;;EAGF;IACE;IACA","sourcesContent":["$wrap: 800px;\n\n.feature {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 40px;\n margin: 40px 0;\n}\n\n.feature-image {\n flex-shrink: 0;\n width: 40%;\n aspect-ratio: 3 / 2;\n border-radius: var(--rounded);\n overflow: hidden;\n box-shadow: var(--shadow);\n}\n\n.feature-image img {\n width: 100%;\n height: 100%;\n object-fit: cover; // 修改图片填充方式从 cover -> contain,保证能看到所有内容 -> 换成了印象图,仍维持原样\n}\n\n.feature-text {\n flex-grow: 1;\n}\n\n.feature-title {\n font-size: var(--large);\n text-align: center;\n font-family: var(--heading);\n font-weight: var(--semi-bold);\n}\n\n.feature[data-flip] {\n flex-direction: row-reverse;\n}\n\n@media (max-width: $wrap) {\n .feature {\n flex-direction: column !important;\n }\n\n .feature-image {\n width: 100%;\n max-width: calc($wrap / 2);\n }\n}\n"],"file":"feature.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/figure.css b/preview/pr-65/_styles/figure.css deleted file mode 100644 index 955bb67a..00000000 --- a/preview/pr-65/_styles/figure.css +++ /dev/null @@ -1,24 +0,0 @@ -.figure { - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - gap: 10px; - margin: 40px 0; -} - -.figure-image { - display: contents; -} - -.figure-image img { - border-radius: var(--rounded); - overflow: hidden; -} - -.figure-caption { - font-style: italic; - text-align: center; -} - -/*# sourceMappingURL=figure.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/figure.css.map b/preview/pr-65/_styles/figure.css.map deleted file mode 100644 index 4f5ddb1f..00000000 --- a/preview/pr-65/_styles/figure.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["figure.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA","sourcesContent":[".figure {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 10px;\n margin: 40px 0;\n}\n\n.figure-image {\n display: contents;\n}\n\n.figure-image img {\n border-radius: var(--rounded);\n overflow: hidden;\n // box-shadow: var(--shadow); # Hide the shadow\n}\n\n.figure-caption {\n font-style: italic;\n text-align: center;\n}\n"],"file":"figure.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/float.css b/preview/pr-65/_styles/float.css deleted file mode 100644 index c91b46eb..00000000 --- a/preview/pr-65/_styles/float.css +++ /dev/null @@ -1,35 +0,0 @@ -.float { - margin-bottom: 20px; - max-width: 50%; -} - -.float > * { - margin: 0 !important; -} - -.float:not([data-flip]) { - float: left; - margin-right: 40px; -} - -.float[data-flip] { - float: right; - margin-left: 40px; -} - -.float[data-clear] { - float: unset; - clear: both; - margin: 0; -} - -@media (max-width: 600px) { - .float { - float: unset !important; - clear: both !important; - margin: auto !important; - max-width: unset; - } -} - -/*# sourceMappingURL=float.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/float.css.map b/preview/pr-65/_styles/float.css.map deleted file mode 100644 index 42c53e0b..00000000 --- a/preview/pr-65/_styles/float.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["float.scss"],"names":[],"mappings":"AAEA;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;IACE;IACA;IACA;IACA","sourcesContent":["$wrap: 600px;\n\n.float {\n margin-bottom: 20px;\n max-width: 50%;\n}\n\n.float > * {\n margin: 0 !important;\n}\n\n.float:not([data-flip]) {\n float: left;\n margin-right: 40px;\n}\n\n.float[data-flip] {\n float: right;\n margin-left: 40px;\n}\n\n.float[data-clear] {\n float: unset;\n clear: both;\n margin: 0;\n}\n\n@media (max-width: $wrap) {\n .float {\n float: unset !important;\n clear: both !important;\n margin: auto !important;\n max-width: unset;\n }\n}\n"],"file":"float.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/font.css b/preview/pr-65/_styles/font.css deleted file mode 100644 index c40e1559..00000000 --- a/preview/pr-65/_styles/font.css +++ /dev/null @@ -1,3 +0,0 @@ -@font-face {} - -/*# sourceMappingURL=font.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/font.css.map b/preview/pr-65/_styles/font.css.map deleted file mode 100644 index e1d56c04..00000000 --- a/preview/pr-65/_styles/font.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["font.scss"],"names":[],"mappings":"AAAA","sourcesContent":["@font-face {\n}\n"],"file":"font.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/footer.css b/preview/pr-65/_styles/footer.css deleted file mode 100644 index a85b907f..00000000 --- a/preview/pr-65/_styles/footer.css +++ /dev/null @@ -1,24 +0,0 @@ -footer { - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - gap: 20px; - padding: 40px; - line-height: var(--spacing); - box-shadow: var(--shadow); -} - -footer a { - color: var(--text) !important; -} - -footer a:hover { - color: var(--primary) !important; -} - -footer .icon { - font-size: var(--xl); -} - -/*# sourceMappingURL=footer.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/footer.css.map b/preview/pr-65/_styles/footer.css.map deleted file mode 100644 index 61ae1179..00000000 --- a/preview/pr-65/_styles/footer.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["footer.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE","sourcesContent":["footer {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n padding: 40px;\n line-height: var(--spacing);\n box-shadow: var(--shadow);\n}\n\nfooter a {\n color: var(--text) !important;\n}\n\nfooter a:hover {\n color: var(--primary) !important;\n}\n\nfooter .icon {\n font-size: var(--xl);\n}\n"],"file":"footer.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/form.css b/preview/pr-65/_styles/form.css deleted file mode 100644 index 76114595..00000000 --- a/preview/pr-65/_styles/form.css +++ /dev/null @@ -1,8 +0,0 @@ -form { - display: flex; - justify-content: center; - align-items: center; - gap: 10px; -} - -/*# sourceMappingURL=form.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/form.css.map b/preview/pr-65/_styles/form.css.map deleted file mode 100644 index 65939cb6..00000000 --- a/preview/pr-65/_styles/form.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["form.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA","sourcesContent":["form {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n}\n"],"file":"form.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/grid.css b/preview/pr-65/_styles/grid.css deleted file mode 100644 index a595ce7b..00000000 --- a/preview/pr-65/_styles/grid.css +++ /dev/null @@ -1,45 +0,0 @@ -.grid { - display: grid; - --repeat: 3; - grid-template-columns: repeat(var(--repeat), 1fr); - justify-content: center; - align-items: flex-start; - gap: 40px; - margin: 40px 0; -} - -.grid > * { - min-width: 0; - min-height: 0; - width: 100%; - margin: 0 !important; -} - -@media (max-width: 750px) { - .grid { - --repeat: 2; - } -} -@media (max-width: 500px) { - .grid { - --repeat: 1; - } -} -.grid[data-style=square] { - align-items: center; -} -.grid[data-style=square] > * { - aspect-ratio: 1/1; -} -.grid[data-style=square] img { - aspect-ratio: 1/1; - object-fit: cover; - max-width: unset; - max-height: unset; -} - -.grid > :where(h1, h2, h3, h4, h5, h6) { - display: none; -} - -/*# sourceMappingURL=grid.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/grid.css.map b/preview/pr-65/_styles/grid.css.map deleted file mode 100644 index 8e00ee1c..00000000 --- a/preview/pr-65/_styles/grid.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["grid.scss"],"names":[],"mappings":"AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EAEA;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;;AAIJ;EACE","sourcesContent":["$two: 750px;\n$one: 500px;\n\n.grid {\n display: grid;\n --repeat: 3;\n grid-template-columns: repeat(var(--repeat), 1fr);\n justify-content: center;\n align-items: flex-start;\n gap: 40px;\n margin: 40px 0;\n}\n\n.grid > * {\n min-width: 0;\n min-height: 0;\n width: 100%;\n // max-height: 50vh;\n margin: 0 !important;\n}\n\n@media (max-width: $two) {\n .grid {\n --repeat: 2;\n }\n}\n\n@media (max-width: $one) {\n .grid {\n --repeat: 1;\n }\n}\n\n.grid[data-style=\"square\"] {\n align-items: center;\n\n & > * {\n aspect-ratio: 1 / 1;\n }\n\n & img {\n aspect-ratio: 1 / 1;\n object-fit: cover;\n max-width: unset;\n max-height: unset;\n }\n}\n\n.grid > :where(h1, h2, h3, h4, h5, h6) {\n display: none;\n}\n"],"file":"grid.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/header.css b/preview/pr-65/_styles/header.css deleted file mode 100644 index f4e49a40..00000000 --- a/preview/pr-65/_styles/header.css +++ /dev/null @@ -1,145 +0,0 @@ -header { - display: flex; - justify-content: space-between; - align-items: center; - flex-wrap: wrap; - gap: 20px; - padding: 20px; - box-shadow: var(--shadow); - position: sticky !important; - top: 0; - z-index: 10 !important; -} - -header a { - color: var(--text); - text-decoration: none; -} - -.home { - display: flex; - justify-content: flex-start; - align-items: center; - gap: 10px; - flex-basis: 0; - flex-grow: 1; - max-width: 100%; -} - -.logo { - height: 40px; -} - -.logo > * { - height: 100%; -} - -.title-text { - display: flex; - justify-content: flex-start; - align-items: baseline; - flex-wrap: wrap; - gap: 5px; - min-width: 0; - font-family: var(--title); - text-align: left; -} - -.title { - font-size: var(--large); -} - -.subtitle { - opacity: 0.65; - font-weight: var(--thin); -} - -.nav-toggle { - display: none; - position: relative; - width: 30px; - height: 30px; - margin: 0; - color: var(--text); - appearance: none; - transition: background var(--transition); -} - -.nav-toggle:after { - content: "\f0c9"; - position: absolute; - left: 50%; - top: 50%; - color: var(--text); - font-size: 15px; - font-family: "Font Awesome 6 Free"; - font-weight: 900; - transform: translate(-50%, -50%); -} - -.nav-toggle:checked:after { - content: "\f00d"; -} - -nav { - display: flex; - justify-content: center; - align-items: center; - flex-wrap: wrap; - gap: 10px; - font-family: var(--heading); - text-transform: uppercase; -} - -nav > a { - padding: 5px; -} - -nav > a:hover { - color: var(--primary); -} - -@media (max-width: 700px) { - header:not([data-big]) { - justify-content: flex-end; - } - header:not([data-big]) .nav-toggle { - display: flex; - } - header:not([data-big]) .nav-toggle:not(:checked) + nav { - display: none; - } - header:not([data-big]) nav { - align-items: flex-end; - flex-direction: column; - width: 100%; - } -} - -header[data-big] { - justify-content: center; - align-items: center; - flex-direction: column; - padding: 100px 20px; - top: unset; -} -header[data-big] .home { - flex-direction: column; - flex-grow: 0; -} -header[data-big] .logo { - height: 80px; -} -header[data-big] .title-text { - flex-direction: column; - align-items: center; - text-align: center; -} -header[data-big] .title { - font-size: var(--xxl); -} -header[data-big] .subtitle { - font-size: var(--large); -} - -/*# sourceMappingURL=header.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/header.css.map b/preview/pr-65/_styles/header.css.map deleted file mode 100644 index 04153a29..00000000 --- a/preview/pr-65/_styles/header.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["header.scss"],"names":[],"mappings":"AAMA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EAGE;EACA;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE,QArCK;;;AAwCP;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIA;EADF;IAEI;;EAEA;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;;;AAKN;EACE;EACA;EACA;EACA;EAGE;;AAGF;EACE;EACA;;AAGF;EACE,QAlJO;;AAqJT;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE","sourcesContent":["$logo-big: 80px;\n$logo: 40px;\n$big-padding: 100px;\n$collapse: 700px;\n$sticky: true;\n\nheader {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 20px;\n padding: 20px;\n box-shadow: var(--shadow);\n\n @if $sticky {\n position: sticky !important;\n top: 0;\n z-index: 10 !important;\n }\n}\n\nheader a {\n color: var(--text);\n text-decoration: none;\n}\n\n.home {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: 10px;\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.logo {\n height: $logo;\n}\n\n.logo > * {\n height: 100%;\n}\n\n.title-text {\n display: flex;\n justify-content: flex-start;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 5px;\n min-width: 0;\n font-family: var(--title);\n text-align: left;\n}\n\n.title {\n font-size: var(--large);\n}\n\n.subtitle {\n opacity: 0.65;\n font-weight: var(--thin);\n}\n\n.nav-toggle {\n display: none;\n position: relative;\n width: 30px;\n height: 30px;\n margin: 0;\n color: var(--text);\n appearance: none;\n transition: background var(--transition);\n}\n\n.nav-toggle:after {\n content: \"\\f0c9\";\n position: absolute;\n left: 50%;\n top: 50%;\n color: var(--text);\n font-size: 15px;\n font-family: \"Font Awesome 6 Free\";\n font-weight: 900;\n transform: translate(-50%, -50%);\n}\n\n.nav-toggle:checked:after {\n content: \"\\f00d\";\n}\n\nnav {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n font-family: var(--heading);\n text-transform: uppercase;\n}\n\nnav > a {\n padding: 5px;\n}\n\nnav > a:hover {\n color: var(--primary);\n}\n\nheader:not([data-big]) {\n @media (max-width: $collapse) {\n justify-content: flex-end;\n\n .nav-toggle {\n display: flex;\n }\n\n .nav-toggle:not(:checked) + nav {\n display: none;\n }\n\n nav {\n align-items: flex-end;\n flex-direction: column;\n width: 100%;\n }\n }\n}\n\nheader[data-big] {\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: $big-padding 20px;\n\n @if $sticky {\n top: unset;\n }\n\n .home {\n flex-direction: column;\n flex-grow: 0;\n }\n\n .logo {\n height: $logo-big;\n }\n\n .title-text {\n flex-direction: column;\n align-items: center;\n text-align: center;\n }\n\n .title {\n font-size: var(--xxl);\n }\n\n .subtitle {\n font-size: var(--large);\n }\n}\n"],"file":"header.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/heading.css b/preview/pr-65/_styles/heading.css deleted file mode 100644 index 05ebc5b8..00000000 --- a/preview/pr-65/_styles/heading.css +++ /dev/null @@ -1,49 +0,0 @@ -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 40px 0 20px 0; - font-family: var(--heading); - font-weight: var(--semi-bold); - text-align: left; - letter-spacing: 1px; -} - -h1 { - font-size: 1.6rem; - font-weight: var(--regular); - text-transform: uppercase; - text-align: center; -} - -h2 { - font-size: 1.6rem; - padding-bottom: 5px; - border-bottom: solid 1px var(--light-gray); - font-weight: var(--regular); -} - -h3 { - font-size: 1.5rem; -} - -h4 { - font-size: 1.3rem; -} - -h5 { - font-size: 1.15rem; -} - -h6 { - font-size: 1rem; -} - -:where(h1, h2, h3, h4, h5, h6) > .icon { - margin-right: 1em; - color: var(--light-gray); -} - -/*# sourceMappingURL=heading.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/heading.css.map b/preview/pr-65/_styles/heading.css.map deleted file mode 100644 index b8fe6a42..00000000 --- a/preview/pr-65/_styles/heading.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["heading.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA","sourcesContent":["h1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 40px 0 20px 0;\n font-family: var(--heading);\n font-weight: var(--semi-bold);\n text-align: left;\n letter-spacing: 1px;\n}\n\nh1 {\n font-size: 1.6rem;\n font-weight: var(--regular);\n text-transform: uppercase;\n text-align: center;\n}\n\nh2 {\n font-size: 1.6rem;\n padding-bottom: 5px;\n border-bottom: solid 1px var(--light-gray);\n font-weight: var(--regular);\n}\n\nh3 {\n font-size: 1.5rem;\n}\n\nh4 {\n font-size: 1.3rem;\n}\n\nh5 {\n font-size: 1.15rem;\n}\n\nh6 {\n font-size: 1rem;\n}\n\n:where(h1, h2, h3, h4, h5, h6) > .icon {\n margin-right: 1em;\n color: var(--light-gray);\n}\n"],"file":"heading.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/highlight.css b/preview/pr-65/_styles/highlight.css deleted file mode 100644 index a8cf7d3c..00000000 --- a/preview/pr-65/_styles/highlight.css +++ /dev/null @@ -1,6 +0,0 @@ -mark { - background: #fef08a; - color: #000000; -} - -/*# sourceMappingURL=highlight.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/highlight.css.map b/preview/pr-65/_styles/highlight.css.map deleted file mode 100644 index 957ceb13..00000000 --- a/preview/pr-65/_styles/highlight.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["highlight.scss"],"names":[],"mappings":"AAAA;EACE;EACA","sourcesContent":["mark {\n background: #fef08a;\n color: #000000;\n}\n"],"file":"highlight.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/icon.css b/preview/pr-65/_styles/icon.css deleted file mode 100644 index ab61327d..00000000 --- a/preview/pr-65/_styles/icon.css +++ /dev/null @@ -1,15 +0,0 @@ -.icon { - font-size: 1em; -} - -span.icon { - line-height: 1; -} - -span.icon > svg { - position: relative; - top: 0.1em; - height: 1em; -} - -/*# sourceMappingURL=icon.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/icon.css.map b/preview/pr-65/_styles/icon.css.map deleted file mode 100644 index 22298685..00000000 --- a/preview/pr-65/_styles/icon.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["icon.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA","sourcesContent":[".icon {\n font-size: 1em;\n}\n\nspan.icon {\n line-height: 1;\n}\n\nspan.icon > svg {\n position: relative;\n top: 0.1em;\n height: 1em;\n}\n"],"file":"icon.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/image.css b/preview/pr-65/_styles/image.css deleted file mode 100644 index 70340d33..00000000 --- a/preview/pr-65/_styles/image.css +++ /dev/null @@ -1,6 +0,0 @@ -img { - max-width: 100%; - max-height: 100%; -} - -/*# sourceMappingURL=image.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/image.css.map b/preview/pr-65/_styles/image.css.map deleted file mode 100644 index e88ec450..00000000 --- a/preview/pr-65/_styles/image.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["image.scss"],"names":[],"mappings":"AAAA;EACE;EACA","sourcesContent":["img {\n max-width: 100%;\n max-height: 100%;\n}\n"],"file":"image.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/link.css b/preview/pr-65/_styles/link.css deleted file mode 100644 index 3235e803..00000000 --- a/preview/pr-65/_styles/link.css +++ /dev/null @@ -1,15 +0,0 @@ -a { - color: var(--primary); - transition: color var(--transition); - overflow-wrap: break-word; -} - -a:hover { - color: var(--text); -} - -a:not([href]) { - color: var(--text); -} - -/*# sourceMappingURL=link.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/link.css.map b/preview/pr-65/_styles/link.css.map deleted file mode 100644 index 96435508..00000000 --- a/preview/pr-65/_styles/link.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["link.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE","sourcesContent":["a {\n color: var(--primary);\n transition: color var(--transition);\n overflow-wrap: break-word;\n}\n\na:hover {\n color: var(--text);\n}\n\na:not([href]) {\n color: var(--text);\n}\n"],"file":"link.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/list.css b/preview/pr-65/_styles/list.css deleted file mode 100644 index 181f8a2b..00000000 --- a/preview/pr-65/_styles/list.css +++ /dev/null @@ -1,22 +0,0 @@ -ul, -ol { - margin: 20px 0; - padding-left: 40px; -} - -ul { - list-style-type: square; -} - -li { - margin: 5px 0; - padding-left: 10px; - text-align: justify; - line-height: var(--spacing); -} -li ul, -li ol { - margin: 0; -} - -/*# sourceMappingURL=list.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/list.css.map b/preview/pr-65/_styles/list.css.map deleted file mode 100644 index a3ab1ed0..00000000 --- a/preview/pr-65/_styles/list.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["list.scss"],"names":[],"mappings":"AAAA;AAAA;EAEE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE","sourcesContent":["ul,\nol {\n margin: 20px 0;\n padding-left: 40px;\n}\n\nul {\n list-style-type: square;\n}\n\nli {\n margin: 5px 0;\n padding-left: 10px;\n text-align: justify;\n line-height: var(--spacing);\n\n ul,\n ol {\n margin: 0;\n }\n}\n"],"file":"list.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/main.css b/preview/pr-65/_styles/main.css deleted file mode 100644 index f72eb0d3..00000000 --- a/preview/pr-65/_styles/main.css +++ /dev/null @@ -1,7 +0,0 @@ -main { - display: flex; - flex-direction: column; - flex-grow: 1; -} - -/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/main.css.map b/preview/pr-65/_styles/main.css.map deleted file mode 100644 index a2a0fa8d..00000000 --- a/preview/pr-65/_styles/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA","sourcesContent":["main {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n"],"file":"main.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/paragraph.css b/preview/pr-65/_styles/paragraph.css deleted file mode 100644 index 7e46c391..00000000 --- a/preview/pr-65/_styles/paragraph.css +++ /dev/null @@ -1,7 +0,0 @@ -p { - margin: 20px 0; - text-align: justify; - line-height: var(--spacing); -} - -/*# sourceMappingURL=paragraph.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/paragraph.css.map b/preview/pr-65/_styles/paragraph.css.map deleted file mode 100644 index 7eb50a68..00000000 --- a/preview/pr-65/_styles/paragraph.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["paragraph.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA","sourcesContent":["p {\n margin: 20px 0;\n text-align: justify;\n line-height: var(--spacing);\n}\n"],"file":"paragraph.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/portrait.css b/preview/pr-65/_styles/portrait.css deleted file mode 100644 index c9ef0df0..00000000 --- a/preview/pr-65/_styles/portrait.css +++ /dev/null @@ -1,75 +0,0 @@ -.portrait-wrapper { - display: contents; -} - -.portrait { - position: relative; - display: inline-flex; - justify-content: center; - align-items: center; - flex-direction: column; - gap: 20px; - margin: 20px; - width: 175px; - max-width: calc(100% - 20px - 20px); - text-decoration: none; -} - -.portrait[data-style=small] { - width: 100px; -} - -.portrait[data-style=tiny] { - flex-direction: row; - gap: 15px; - width: unset; - text-align: left; -} - -.portrait-image { - width: 100%; - aspect-ratio: 1/1; - border-radius: 999px; - object-fit: cover; - box-shadow: var(--shadow); -} - -.portrait[data-style=tiny] .portrait-image { - width: 50px; -} - -.portrait[data-style=tiny] .portrait-role { - display: none; -} - -.portrait-text { - display: flex; - flex-direction: column; -} - -.portrait-name { - font-family: var(--heading); - font-weight: var(--semi-bold); -} - -.portrait-role .icon { - position: absolute; - left: 0; - top: 0; - display: flex; - justify-content: center; - align-items: center; - width: calc(20px + 10%); - aspect-ratio: 1/1; - border-radius: 999px; - background: var(--background); - box-shadow: var(--shadow); - transform: translate(14%, 14%); -} - -.portrait[data-style=small] .portrait-role .icon { - left: -2px; - top: -2px; -} - -/*# sourceMappingURL=portrait.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/portrait.css.map b/preview/pr-65/_styles/portrait.css.map deleted file mode 100644 index 37c9601f..00000000 --- a/preview/pr-65/_styles/portrait.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["portrait.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA","sourcesContent":[".portrait-wrapper {\n display: contents;\n}\n\n.portrait {\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n margin: 20px;\n width: 175px;\n max-width: calc(100% - 20px - 20px);\n text-decoration: none;\n}\n\n.portrait[data-style=\"small\"] {\n width: 100px;\n}\n\n.portrait[data-style=\"tiny\"] {\n flex-direction: row;\n gap: 15px;\n width: unset;\n text-align: left;\n}\n\n.portrait-image {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: 999px;\n object-fit: cover;\n box-shadow: var(--shadow);\n}\n\n.portrait[data-style=\"tiny\"] .portrait-image {\n width: 50px;\n}\n\n.portrait[data-style=\"tiny\"] .portrait-role {\n display: none;\n}\n\n.portrait-text {\n display: flex;\n flex-direction: column;\n}\n\n.portrait-name {\n font-family: var(--heading);\n font-weight: var(--semi-bold);\n}\n\n.portrait-role .icon {\n position: absolute;\n left: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n width: calc(20px + 10%);\n aspect-ratio: 1 / 1;\n border-radius: 999px;\n background: var(--background);\n box-shadow: var(--shadow);\n transform: translate(14%, 14%);\n}\n\n.portrait[data-style=\"small\"] .portrait-role .icon {\n left: -2px;\n top: -2px;\n}\n"],"file":"portrait.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/post-excerpt.css b/preview/pr-65/_styles/post-excerpt.css deleted file mode 100644 index 9935b248..00000000 --- a/preview/pr-65/_styles/post-excerpt.css +++ /dev/null @@ -1,63 +0,0 @@ -.post-excerpt-container { - container-type: inline-size; -} - -.post-excerpt { - display: flex; - margin: 20px 0; - border-radius: var(--rounded); - background: var(--background); - overflow: hidden; - box-shadow: var(--shadow); -} - -.post-excerpt-image { - position: relative; - width: 200px; - flex-shrink: 0; -} - -.post-excerpt-image img { - position: absolute; - inset: 0; - width: 100%; - height: 100%; - object-fit: cover; -} - -.post-excerpt-text { - display: flex; - flex-wrap: wrap; - gap: 20px; - padding: 20px 30px; - text-align: left; -} - -.post-excerpt-text > * { - margin: 0 !important; -} - -.post-excerpt-text > a:first-child { - width: 100%; - font-weight: var(--semi-bold); -} - -.post-excerpt-text > div { - justify-content: flex-start; -} - -.post-excerpt-text > p { - width: 100%; -} - -@container (max-width: 800px) { - .post-excerpt { - flex-direction: column; - } - .post-excerpt-image { - width: unset; - height: 200px; - } -} - -/*# sourceMappingURL=post-excerpt.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/post-excerpt.css.map b/preview/pr-65/_styles/post-excerpt.css.map deleted file mode 100644 index e82e3a22..00000000 --- a/preview/pr-65/_styles/post-excerpt.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["post-excerpt.scss"],"names":[],"mappings":"AAGA;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA,OAlBW;EAmBX;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;IACE;;EAGF;IACE;IACA,QA/DS","sourcesContent":["$thumb-size: 200px;\n$wrap: 800px;\n\n.post-excerpt-container {\n container-type: inline-size;\n}\n\n.post-excerpt {\n display: flex;\n margin: 20px 0;\n border-radius: var(--rounded);\n background: var(--background);\n overflow: hidden;\n box-shadow: var(--shadow);\n}\n\n.post-excerpt-image {\n position: relative;\n width: $thumb-size;\n flex-shrink: 0;\n // box-shadow: var(--shadow);\n}\n\n.post-excerpt-image img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.post-excerpt-text {\n display: flex;\n flex-wrap: wrap;\n gap: 20px;\n padding: 20px 30px;\n text-align: left;\n}\n\n.post-excerpt-text > * {\n margin: 0 !important;\n}\n\n.post-excerpt-text > a:first-child {\n width: 100%;\n font-weight: var(--semi-bold);\n}\n\n.post-excerpt-text > div {\n justify-content: flex-start;\n}\n\n.post-excerpt-text > p {\n width: 100%;\n}\n\n@container (max-width: #{$wrap}) {\n .post-excerpt {\n flex-direction: column;\n }\n\n .post-excerpt-image {\n width: unset;\n height: $thumb-size;\n }\n}\n"],"file":"post-excerpt.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/post-info.css b/preview/pr-65/_styles/post-info.css deleted file mode 100644 index df1827c5..00000000 --- a/preview/pr-65/_styles/post-info.css +++ /dev/null @@ -1,32 +0,0 @@ -.post-info { - display: flex; - justify-content: center; - align-items: center; - flex-wrap: wrap; - gap: 20px; - margin: 20px 0; - color: var(--dark-gray); -} - -.post-info .portrait { - margin: 0; -} - -.post-info .icon { - margin-right: 0.5em; -} - -.post-info a { - color: inherit; -} - -.post-info a:hover { - color: var(--primary); -} - -.post-info > span { - text-align: center; - white-space: nowrap; -} - -/*# sourceMappingURL=post-info.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/post-info.css.map b/preview/pr-65/_styles/post-info.css.map deleted file mode 100644 index 9950b787..00000000 --- a/preview/pr-65/_styles/post-info.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["post-info.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA","sourcesContent":[".post-info {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n gap: 20px;\n margin: 20px 0;\n color: var(--dark-gray);\n}\n\n.post-info .portrait {\n margin: 0;\n}\n\n.post-info .icon {\n margin-right: 0.5em;\n}\n\n.post-info a {\n color: inherit;\n}\n\n.post-info a:hover {\n color: var(--primary);\n}\n\n.post-info > span {\n text-align: center;\n white-space: nowrap;\n}\n"],"file":"post-info.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/post-nav.css b/preview/pr-65/_styles/post-nav.css deleted file mode 100644 index f7ddfaaa..00000000 --- a/preview/pr-65/_styles/post-nav.css +++ /dev/null @@ -1,35 +0,0 @@ -.post-nav { - display: flex; - justify-content: space-between; - align-items: flex-start; - gap: 10px; - color: var(--gray); -} - -.post-nav > :first-child { - text-align: left; -} - -.post-nav > :last-child { - text-align: right; -} - -.post-nav > :first-child .icon { - margin-right: 0.5em; -} - -.post-nav > :last-child .icon { - margin-left: 0.5em; -} - -@media (max-width: 600px) { - .post-nav { - align-items: center; - flex-direction: column; - } - .post-nav > * { - text-align: center !important; - } -} - -/*# sourceMappingURL=post-nav.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/post-nav.css.map b/preview/pr-65/_styles/post-nav.css.map deleted file mode 100644 index b0699aca..00000000 --- a/preview/pr-65/_styles/post-nav.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["post-nav.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;IACE;IACA;;EAGF;IACE","sourcesContent":["$wrap: 600px;\n\n.post-nav {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 10px;\n color: var(--gray);\n}\n\n.post-nav > :first-child {\n text-align: left;\n}\n\n.post-nav > :last-child {\n text-align: right;\n}\n\n.post-nav > :first-child .icon {\n margin-right: 0.5em;\n}\n\n.post-nav > :last-child .icon {\n margin-left: 0.5em;\n}\n\n@media (max-width: $wrap) {\n .post-nav {\n align-items: center;\n flex-direction: column;\n }\n\n .post-nav > * {\n text-align: center !important;\n }\n}\n"],"file":"post-nav.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/quote.css b/preview/pr-65/_styles/quote.css deleted file mode 100644 index b754635d..00000000 --- a/preview/pr-65/_styles/quote.css +++ /dev/null @@ -1,15 +0,0 @@ -blockquote { - margin: 20px 0; - padding: 10px 20px; - border-left: solid 4px var(--light-gray); -} - -blockquote > :first-child { - margin-top: 0; -} - -blockquote > :last-child { - margin-bottom: 0; -} - -/*# sourceMappingURL=quote.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/quote.css.map b/preview/pr-65/_styles/quote.css.map deleted file mode 100644 index 16c9d4c8..00000000 --- a/preview/pr-65/_styles/quote.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["quote.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE","sourcesContent":["blockquote {\n margin: 20px 0;\n padding: 10px 20px;\n border-left: solid 4px var(--light-gray);\n}\n\nblockquote > :first-child {\n margin-top: 0;\n}\n\nblockquote > :last-child {\n margin-bottom: 0;\n}\n"],"file":"quote.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/rule.css b/preview/pr-65/_styles/rule.css deleted file mode 100644 index 28ca0809..00000000 --- a/preview/pr-65/_styles/rule.css +++ /dev/null @@ -1,8 +0,0 @@ -hr { - margin: 40px 0; - background: var(--light-gray); - border: none; - height: 1px; -} - -/*# sourceMappingURL=rule.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/rule.css.map b/preview/pr-65/_styles/rule.css.map deleted file mode 100644 index a955dd9f..00000000 --- a/preview/pr-65/_styles/rule.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["rule.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA","sourcesContent":["hr {\n margin: 40px 0;\n background: var(--light-gray);\n border: none;\n height: 1px;\n}\n"],"file":"rule.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/search-box.css b/preview/pr-65/_styles/search-box.css deleted file mode 100644 index 9766e924..00000000 --- a/preview/pr-65/_styles/search-box.css +++ /dev/null @@ -1,25 +0,0 @@ -.search-box { - position: relative; - height: 40px; -} - -.search-box .search-input { - width: 100%; - height: 100%; - padding-right: 40px; -} - -.search-box button { - position: absolute; - inset: 0 0 0 auto; - display: flex; - justify-content: center; - align-items: center; - padding: 0; - aspect-ratio: 1/1; - background: none; - color: var(--black); - border: none; -} - -/*# sourceMappingURL=search-box.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/search-box.css.map b/preview/pr-65/_styles/search-box.css.map deleted file mode 100644 index 7d452743..00000000 --- a/preview/pr-65/_styles/search-box.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["search-box.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","sourcesContent":[".search-box {\n position: relative;\n height: 40px;\n}\n\n.search-box .search-input {\n width: 100%;\n height: 100%;\n padding-right: 40px;\n}\n\n.search-box button {\n position: absolute;\n inset: 0 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0;\n aspect-ratio: 1 / 1;\n background: none;\n color: var(--black);\n border: none;\n}\n"],"file":"search-box.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/search-info.css b/preview/pr-65/_styles/search-info.css deleted file mode 100644 index e5c9a305..00000000 --- a/preview/pr-65/_styles/search-info.css +++ /dev/null @@ -1,8 +0,0 @@ -.search-info { - margin: 20px 0; - text-align: center; - font-style: italic; - line-height: var(--spacing); -} - -/*# sourceMappingURL=search-info.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/search-info.css.map b/preview/pr-65/_styles/search-info.css.map deleted file mode 100644 index d825cee0..00000000 --- a/preview/pr-65/_styles/search-info.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["search-info.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA","sourcesContent":[".search-info {\n margin: 20px 0;\n text-align: center;\n font-style: italic;\n line-height: var(--spacing);\n}\n"],"file":"search-info.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/section.css b/preview/pr-65/_styles/section.css deleted file mode 100644 index e1ceb7db..00000000 --- a/preview/pr-65/_styles/section.css +++ /dev/null @@ -1,35 +0,0 @@ -section { - padding: 40px max(40px, (100% - 1000px) / 2); - transition: background var(--transition), color var(--transition); -} - -section[data-size=wide] { - padding: 40px; -} - -section[data-size=full] { - padding: 0; -} - -section[data-size=full] > * { - margin: 0; - border-radius: 0; -} - -section[data-size=full] img { - border-radius: 0; -} - -main > section:last-of-type { - flex-grow: 1; -} - -main > section:nth-of-type(odd) { - background: var(--background); -} - -main > section:nth-of-type(even) { - background: var(--background-alt); -} - -/*# sourceMappingURL=section.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/section.css.map b/preview/pr-65/_styles/section.css.map deleted file mode 100644 index 73ffca09..00000000 --- a/preview/pr-65/_styles/section.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["section.scss"],"names":[],"mappings":"AAGA;EACE;EACA;;;AAGF;EACE,SARQ;;;AAWV;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE","sourcesContent":["$page: 1000px;\n$padding: 40px;\n\nsection {\n padding: $padding max($padding, calc((100% - $page) / 2));\n transition: background var(--transition), color var(--transition);\n}\n\nsection[data-size=\"wide\"] {\n padding: $padding;\n}\n\nsection[data-size=\"full\"] {\n padding: 0;\n}\n\nsection[data-size=\"full\"] > * {\n margin: 0;\n border-radius: 0;\n}\n\nsection[data-size=\"full\"] img {\n border-radius: 0;\n}\n\nmain > section:last-of-type {\n flex-grow: 1;\n}\n\nmain > section:nth-of-type(odd) {\n background: var(--background);\n}\n\nmain > section:nth-of-type(even) {\n background: var(--background-alt);\n}\n"],"file":"section.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/table.css b/preview/pr-65/_styles/table.css deleted file mode 100644 index ef83c462..00000000 --- a/preview/pr-65/_styles/table.css +++ /dev/null @@ -1,17 +0,0 @@ -table { - margin: 40px auto; - border-collapse: collapse; - overflow-wrap: anywhere; -} - -th { - font-weight: var(--semi-bold); -} - -th, -td { - padding: 10px 15px; - border: solid 1px var(--light-gray); -} - -/*# sourceMappingURL=table.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/table.css.map b/preview/pr-65/_styles/table.css.map deleted file mode 100644 index c3a3f068..00000000 --- a/preview/pr-65/_styles/table.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["table.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA","sourcesContent":["table {\n margin: 40px auto;\n border-collapse: collapse;\n overflow-wrap: anywhere;\n}\n\nth {\n font-weight: var(--semi-bold);\n}\n\nth,\ntd {\n padding: 10px 15px;\n border: solid 1px var(--light-gray);\n}\n"],"file":"table.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/tags.css b/preview/pr-65/_styles/tags.css deleted file mode 100644 index 909815e8..00000000 --- a/preview/pr-65/_styles/tags.css +++ /dev/null @@ -1,33 +0,0 @@ -.tags { - display: flex; - justify-content: center; - align-items: center; - flex-wrap: wrap; - gap: 10px; - max-width: 100%; - margin: 20px 0; -} - -.tag { - max-width: 100%; - margin: 0; - padding: 5px 10px; - border-radius: 999px; - background: var(--secondary); - color: var(--text); - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - transition: background var(--transition), color var(--transition); -} - -.tag:hover { - background: var(--light-gray); -} - -.tag[data-active] { - background: var(--light-gray); -} - -/*# sourceMappingURL=tags.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/tags.css.map b/preview/pr-65/_styles/tags.css.map deleted file mode 100644 index ae75420a..00000000 --- a/preview/pr-65/_styles/tags.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["tags.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE","sourcesContent":[".tags {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n max-width: 100%;\n margin: 20px 0;\n}\n\n.tag {\n max-width: 100%;\n margin: 0;\n padding: 5px 10px;\n border-radius: 999px;\n background: var(--secondary);\n color: var(--text);\n text-decoration: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n transition: background var(--transition), color var(--transition);\n}\n\n.tag:hover {\n background: var(--light-gray);\n}\n\n.tag[data-active] {\n background: var(--light-gray);\n}\n"],"file":"tags.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/textbox.css b/preview/pr-65/_styles/textbox.css deleted file mode 100644 index d8ec7910..00000000 --- a/preview/pr-65/_styles/textbox.css +++ /dev/null @@ -1,16 +0,0 @@ -input[type=text] { - width: 100%; - height: 40px; - margin: 0; - padding: 5px 10px; - border: solid 1px var(--light-gray); - border-radius: var(--rounded); - background: var(--background); - color: var(--text); - font-family: inherit; - font-size: inherit; - appearance: none; - box-shadow: var(--shadow); -} - -/*# sourceMappingURL=textbox.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/textbox.css.map b/preview/pr-65/_styles/textbox.css.map deleted file mode 100644 index de78ed43..00000000 --- a/preview/pr-65/_styles/textbox.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["textbox.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA","sourcesContent":["input[type=\"text\"] {\n width: 100%;\n height: 40px;\n margin: 0;\n padding: 5px 10px;\n border: solid 1px var(--light-gray);\n border-radius: var(--rounded);\n background: var(--background);\n color: var(--text);\n font-family: inherit;\n font-size: inherit;\n appearance: none;\n box-shadow: var(--shadow);\n}\n"],"file":"textbox.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/tooltip.css b/preview/pr-65/_styles/tooltip.css deleted file mode 100644 index 28b590eb..00000000 --- a/preview/pr-65/_styles/tooltip.css +++ /dev/null @@ -1,72 +0,0 @@ -.tippy-box { - background: var(--background); - color: var(--text); - padding: 7.5px; - text-align: left; - box-shadow: var(--shadow); -} - -.tippy-arrow { - width: 30px; - height: 30px; -} - -.tippy-arrow:before { - width: 10px; - height: 10px; - background: var(--background); - box-shadow: var(--shadow); -} - -.tippy-arrow { - overflow: hidden; - pointer-events: none; -} - -.tippy-box[data-placement=top] .tippy-arrow { - inset: unset; - top: 100%; -} - -.tippy-box[data-placement=bottom] .tippy-arrow { - inset: unset; - bottom: 100%; -} - -.tippy-box[data-placement=left] .tippy-arrow { - inset: unset; - left: 100%; -} - -.tippy-box[data-placement=right] .tippy-arrow { - inset: unset; - right: 100%; -} - -.tippy-arrow:before { - border: unset !important; - transform-origin: center !important; - transform: translate(-50%, -50%) rotate(45deg) !important; -} - -.tippy-box[data-placement=top] .tippy-arrow:before { - left: 50% !important; - top: 0 !important; -} - -.tippy-box[data-placement=bottom] .tippy-arrow:before { - left: 50% !important; - top: 100% !important; -} - -.tippy-box[data-placement=left] .tippy-arrow:before { - left: 0 !important; - top: 50% !important; -} - -.tippy-box[data-placement=right] .tippy-arrow:before { - left: 100% !important; - top: 50% !important; -} - -/*# sourceMappingURL=tooltip.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/tooltip.css.map b/preview/pr-65/_styles/tooltip.css.map deleted file mode 100644 index 6b52e915..00000000 --- a/preview/pr-65/_styles/tooltip.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["tooltip.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAIF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA","sourcesContent":[".tippy-box {\n background: var(--background);\n color: var(--text);\n padding: 7.5px;\n text-align: left;\n box-shadow: var(--shadow);\n}\n\n.tippy-arrow {\n width: 30px;\n height: 30px;\n}\n\n.tippy-arrow:before {\n width: 10px;\n height: 10px;\n background: var(--background);\n box-shadow: var(--shadow);\n}\n\n// correct tippy arrow styles to support intuitive arrow styles above\n.tippy-arrow {\n overflow: hidden;\n pointer-events: none;\n}\n.tippy-box[data-placement=\"top\"] .tippy-arrow {\n inset: unset;\n top: 100%;\n}\n.tippy-box[data-placement=\"bottom\"] .tippy-arrow {\n inset: unset;\n bottom: 100%;\n}\n.tippy-box[data-placement=\"left\"] .tippy-arrow {\n inset: unset;\n left: 100%;\n}\n.tippy-box[data-placement=\"right\"] .tippy-arrow {\n inset: unset;\n right: 100%;\n}\n.tippy-arrow:before {\n border: unset !important;\n transform-origin: center !important;\n transform: translate(-50%, -50%) rotate(45deg) !important;\n}\n.tippy-box[data-placement=\"top\"] .tippy-arrow:before {\n left: 50% !important;\n top: 0 !important;\n}\n.tippy-box[data-placement=\"bottom\"] .tippy-arrow:before {\n left: 50% !important;\n top: 100% !important;\n}\n.tippy-box[data-placement=\"left\"] .tippy-arrow:before {\n left: 0 !important;\n top: 50% !important;\n}\n.tippy-box[data-placement=\"right\"] .tippy-arrow:before {\n left: 100% !important;\n top: 50% !important;\n}\n"],"file":"tooltip.css"} \ No newline at end of file diff --git a/preview/pr-65/_styles/util.css b/preview/pr-65/_styles/util.css deleted file mode 100644 index 995ea77c..00000000 --- a/preview/pr-65/_styles/util.css +++ /dev/null @@ -1,13 +0,0 @@ -.left { - text-align: left; -} - -.center { - text-align: center; -} - -.right { - text-align: right; -} - -/*# sourceMappingURL=util.css.map */ \ No newline at end of file diff --git a/preview/pr-65/_styles/util.css.map b/preview/pr-65/_styles/util.css.map deleted file mode 100644 index c21a68d3..00000000 --- a/preview/pr-65/_styles/util.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["util.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;;;AAGF;EACE","sourcesContent":[".left {\n text-align: left;\n}\n\n.center {\n text-align: center;\n}\n\n.right {\n text-align: right;\n}\n"],"file":"util.css"} \ No newline at end of file diff --git a/preview/pr-65/contact/index.html b/preview/pr-65/contact/index.html deleted file mode 100644 index 4c18b818..00000000 --- a/preview/pr-65/contact/index.html +++ /dev/null @@ -1,699 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -contact | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-

-加入我们

-
- - - - - -
- - -

热忱欢迎志同道合者的加入!

- -

SOLE 招聘具有强自我驱动力、对软件系统研究感兴趣的本科生、硕士研究生、博士研究生、博士后。

- - - - - - - -
- - -
-

实验室文化

- -
    -
  • 正直诚信、团结互助
  • -
  • 积极实践、敢于创新
  • -
  • 不畏挑战、追求卓越
  • -
- -
- - -
-

素养需求

- -
    -
  • 对底层系统的兴趣
  • -
  • 好奇心 + 求知欲
  • -
  • 编程动手实践能力
  • -
- -
- -
-
- - - - - -
- - -
- - -
-
- - 2021年:实验室成立 - - -
- 2021年:实验室成立 - -
- -
- -
- - -
-
- - Lorem ipsum - - -
- Lorem ipsum - -
- -
- -
- -
-
- - -
- - - - - - - diff --git a/preview/pr-65/feed.xml b/preview/pr-65/feed.xml deleted file mode 100644 index 14fbc7e7..00000000 --- a/preview/pr-65/feed.xml +++ /dev/null @@ -1,45 +0,0 @@ -Jekyll2024-06-06T09:49:25+00:00/preview/pr-65/feed.xmlSystem Optimization LabSOLE (System Optimization Lab @ East China Normal University) · 华东师范大学系统优化实验室Paper Accepted by Journal of Systems and Software2024-05-11T00:00:00+00:002024-06-06T09:41:51+00:00/preview/pr-65/2024/05/11/EFACT-acceptedMay, 2024. Paper EFACT: An External Function Auto-Completion Tool to strengthen static binary lifting was accepted by Journal of Systems and Software. -Congratulations to Yilei Zhang.

- -
-

PDF

- -

Source Code

-
]]>
Admin
Paper Accepted by IEEE TPDS2023-12-04T00:00:00+00:002024-06-06T09:41:51+00:00/preview/pr-65/2023/12/04/TCSA-acceptedDec., 2023. Paper TCSA: Efficient Localization of Busy-Wait Synchronization Bugs for Latency-Critical Applications was accepted by IEEE TPDS. -Congratulations to Ning Li.

- -
-

PDF

- -

Source Code

-
]]>
Admin
Paper Accepted by ACM TACO2023-09-28T00:00:00+00:002024-06-06T09:41:51+00:00/preview/pr-65/2023/09/28/AdaptiveGrouping-acceptedSep., 2023. Paper Efficient Cross-platform Multiplexing of Hardware Performance Counters via Adaptive Grouping was accepted by ACM TACO. -Congratulations to Tong-yu.

- -
-

PDF (Open Access)

- -

Source Code

-
]]>
Admin
SOLERs received scholarships!2022-10-16T00:00:00+00:002024-06-06T09:41:51+00:00/preview/pr-65/2022/10/16/NationalScholarshipCongratulations to Tong-yu Liu and Wenlong Mu for being awarded the National Scholarship (Master Student) for the 2022 academic year!

- -

Also, congratulations to Han Yujie for being awarded the Third Class Corporate Scholarship of DaSE.

- -

祝贺刘通宇与牟文龙获得2022学年国家奖学金(硕士)!

- -

也祝贺韩宇捷获得数据科学与工程学院企业奖学金三等奖!

]]>
Admin
SOLE Was Established!2021-09-01T00:00:00+00:002024-06-06T09:41:51+00:00/preview/pr-65/2021/09/01/FoundingOfSoleIn September of 2021, SOLE Labs was officially established!

- -

The lab welcomed its first students, including 2 PhD students, 6 full-time master students and 4 part-time master students.

- -
- - The first group photo of SOLERs - - -
- The first group photo of SOLERs - -
- -
]]>
Admin
\ No newline at end of file diff --git a/preview/pr-65/images/ImageMember.jpg b/preview/pr-65/images/ImageMember.jpg deleted file mode 100644 index 519b634f..00000000 Binary files a/preview/pr-65/images/ImageMember.jpg and /dev/null differ diff --git a/preview/pr-65/images/ImageProject.jpg b/preview/pr-65/images/ImageProject.jpg deleted file mode 100644 index 9a198d2c..00000000 Binary files a/preview/pr-65/images/ImageProject.jpg and /dev/null differ diff --git a/preview/pr-65/images/ImageResearch.jpg b/preview/pr-65/images/ImageResearch.jpg deleted file mode 100644 index f7b2fbd7..00000000 Binary files a/preview/pr-65/images/ImageResearch.jpg and /dev/null differ diff --git a/preview/pr-65/images/background.jpg b/preview/pr-65/images/background.jpg deleted file mode 100644 index 30279f71..00000000 Binary files a/preview/pr-65/images/background.jpg and /dev/null differ diff --git a/preview/pr-65/images/fallback.svg b/preview/pr-65/images/fallback.svg deleted file mode 100644 index 27246d8f..00000000 --- a/preview/pr-65/images/fallback.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/preview/pr-65/images/icon.png b/preview/pr-65/images/icon.png deleted file mode 100644 index 279bc924..00000000 Binary files a/preview/pr-65/images/icon.png and /dev/null differ diff --git a/preview/pr-65/images/logo.svg b/preview/pr-65/images/logo.svg deleted file mode 100644 index ace87fe4..00000000 --- a/preview/pr-65/images/logo.svg +++ /dev/null @@ -1 +0,0 @@ -SOLESYSTEM OPTIMIZATION LAB ECNU \ No newline at end of file diff --git a/preview/pr-65/images/members/Jinrui-Shi.jpg b/preview/pr-65/images/members/Jinrui-Shi.jpg deleted file mode 100644 index ad46ee00..00000000 Binary files a/preview/pr-65/images/members/Jinrui-Shi.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/Tong-Yang.jpg b/preview/pr-65/images/members/Tong-Yang.jpg deleted file mode 100644 index f5566912..00000000 Binary files a/preview/pr-65/images/members/Tong-Yang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/bo-huang.jpg b/preview/pr-65/images/members/bo-huang.jpg deleted file mode 100644 index beebe28e..00000000 Binary files a/preview/pr-65/images/members/bo-huang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/di-wu.jpg b/preview/pr-65/images/members/di-wu.jpg deleted file mode 100644 index 7473cb7f..00000000 Binary files a/preview/pr-65/images/members/di-wu.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/haoyu-liao.jpg b/preview/pr-65/images/members/haoyu-liao.jpg deleted file mode 100644 index 2584a9bd..00000000 Binary files a/preview/pr-65/images/members/haoyu-liao.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/jianing-yang.jpg b/preview/pr-65/images/members/jianing-yang.jpg deleted file mode 100644 index 6de02cc5..00000000 Binary files a/preview/pr-65/images/members/jianing-yang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/jianmei-guo.jpg b/preview/pr-65/images/members/jianmei-guo.jpg deleted file mode 100644 index 2f7a6b3c..00000000 Binary files a/preview/pr-65/images/members/jianmei-guo.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/jing-xu.jpg b/preview/pr-65/images/members/jing-xu.jpg deleted file mode 100644 index 4e8fe760..00000000 Binary files a/preview/pr-65/images/members/jing-xu.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/keer-zhang.jpg b/preview/pr-65/images/members/keer-zhang.jpg deleted file mode 100644 index 7496bd53..00000000 Binary files a/preview/pr-65/images/members/keer-zhang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/minghuan-tang.jpg b/preview/pr-65/images/members/minghuan-tang.jpg deleted file mode 100644 index b3340107..00000000 Binary files a/preview/pr-65/images/members/minghuan-tang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/ning-li.jpg b/preview/pr-65/images/members/ning-li.jpg deleted file mode 100644 index 5fb49ecc..00000000 Binary files a/preview/pr-65/images/members/ning-li.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/photo.svg b/preview/pr-65/images/members/photo.svg deleted file mode 100644 index 88e72b36..00000000 --- a/preview/pr-65/images/members/photo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/preview/pr-65/images/members/tao-wei.jpg b/preview/pr-65/images/members/tao-wei.jpg deleted file mode 100644 index 49f67212..00000000 Binary files a/preview/pr-65/images/members/tao-wei.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/tongyu-liu.jpg b/preview/pr-65/images/members/tongyu-liu.jpg deleted file mode 100644 index 040e2bdd..00000000 Binary files a/preview/pr-65/images/members/tongyu-liu.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/wenhui-liang.jpg b/preview/pr-65/images/members/wenhui-liang.jpg deleted file mode 100644 index 85dd9d98..00000000 Binary files a/preview/pr-65/images/members/wenhui-liang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/wenlong-mu.jpg b/preview/pr-65/images/members/wenlong-mu.jpg deleted file mode 100644 index da36b3e7..00000000 Binary files a/preview/pr-65/images/members/wenlong-mu.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/xueyu-zhang.jpg b/preview/pr-65/images/members/xueyu-zhang.jpg deleted file mode 100644 index 781ba494..00000000 Binary files a/preview/pr-65/images/members/xueyu-zhang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/yilei-zhang.jpg b/preview/pr-65/images/members/yilei-zhang.jpg deleted file mode 100644 index 99ab94d6..00000000 Binary files a/preview/pr-65/images/members/yilei-zhang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/yue-tang.jpg b/preview/pr-65/images/members/yue-tang.jpg deleted file mode 100644 index f123402a..00000000 Binary files a/preview/pr-65/images/members/yue-tang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/yuexi-zou.jpg b/preview/pr-65/images/members/yuexi-zou.jpg deleted file mode 100644 index d94387eb..00000000 Binary files a/preview/pr-65/images/members/yuexi-zou.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/yujie-han.jpg b/preview/pr-65/images/members/yujie-han.jpg deleted file mode 100644 index ce1742c2..00000000 Binary files a/preview/pr-65/images/members/yujie-han.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/yuyang-li.jpg b/preview/pr-65/images/members/yuyang-li.jpg deleted file mode 100644 index 4a861b08..00000000 Binary files a/preview/pr-65/images/members/yuyang-li.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/zekun-wang.jpg b/preview/pr-65/images/members/zekun-wang.jpg deleted file mode 100644 index 62841085..00000000 Binary files a/preview/pr-65/images/members/zekun-wang.jpg and /dev/null differ diff --git a/preview/pr-65/images/members/zhijie-xu.jpg b/preview/pr-65/images/members/zhijie-xu.jpg deleted file mode 100644 index fe699c3a..00000000 Binary files a/preview/pr-65/images/members/zhijie-xu.jpg and /dev/null differ diff --git a/preview/pr-65/images/news/FirstGroupPhoto.jpg b/preview/pr-65/images/news/FirstGroupPhoto.jpg deleted file mode 100644 index 5f2248a2..00000000 Binary files a/preview/pr-65/images/news/FirstGroupPhoto.jpg and /dev/null differ diff --git a/preview/pr-65/images/projects/AOBOLogo.jpg b/preview/pr-65/images/projects/AOBOLogo.jpg deleted file mode 100644 index d5e53aa3..00000000 Binary files a/preview/pr-65/images/projects/AOBOLogo.jpg and /dev/null differ diff --git a/preview/pr-65/images/projects/EFACT.jpg b/preview/pr-65/images/projects/EFACT.jpg deleted file mode 100644 index 94f89537..00000000 Binary files a/preview/pr-65/images/projects/EFACT.jpg and /dev/null differ diff --git a/preview/pr-65/images/projects/HotspotLogo.jpg b/preview/pr-65/images/projects/HotspotLogo.jpg deleted file mode 100644 index 0572c7cb..00000000 Binary files a/preview/pr-65/images/projects/HotspotLogo.jpg and /dev/null differ diff --git a/preview/pr-65/images/projects/TCSA.png b/preview/pr-65/images/projects/TCSA.png deleted file mode 100644 index 4d9dbe4a..00000000 Binary files a/preview/pr-65/images/projects/TCSA.png and /dev/null differ diff --git a/preview/pr-65/images/projects/default.png b/preview/pr-65/images/projects/default.png deleted file mode 100644 index 1b863ad4..00000000 Binary files a/preview/pr-65/images/projects/default.png and /dev/null differ diff --git a/preview/pr-65/images/projects/hmem.png b/preview/pr-65/images/projects/hmem.png deleted file mode 100644 index 65c3a0f2..00000000 Binary files a/preview/pr-65/images/projects/hmem.png and /dev/null differ diff --git a/preview/pr-65/images/projects/hperf.png b/preview/pr-65/images/projects/hperf.png deleted file mode 100644 index 2fa96845..00000000 Binary files a/preview/pr-65/images/projects/hperf.png and /dev/null differ diff --git a/preview/pr-65/images/publications/AdaptiveGrouping.jpg b/preview/pr-65/images/publications/AdaptiveGrouping.jpg deleted file mode 100644 index 0a66d47a..00000000 Binary files a/preview/pr-65/images/publications/AdaptiveGrouping.jpg and /dev/null differ diff --git a/preview/pr-65/images/publications/EFACT.jpg b/preview/pr-65/images/publications/EFACT.jpg deleted file mode 100644 index 94f89537..00000000 Binary files a/preview/pr-65/images/publications/EFACT.jpg and /dev/null differ diff --git a/preview/pr-65/images/publications/Hmem.jpg b/preview/pr-65/images/publications/Hmem.jpg deleted file mode 100644 index f0f6d916..00000000 Binary files a/preview/pr-65/images/publications/Hmem.jpg and /dev/null differ diff --git a/preview/pr-65/images/publications/Hotspot.jpg b/preview/pr-65/images/publications/Hotspot.jpg deleted file mode 100644 index 132ba3a9..00000000 Binary files a/preview/pr-65/images/publications/Hotspot.jpg and /dev/null differ diff --git a/preview/pr-65/images/publications/TCSA.jpg b/preview/pr-65/images/publications/TCSA.jpg deleted file mode 100644 index c89396ca..00000000 Binary files a/preview/pr-65/images/publications/TCSA.jpg and /dev/null differ diff --git a/preview/pr-65/images/share.jpg b/preview/pr-65/images/share.jpg deleted file mode 100644 index cbdb861e..00000000 Binary files a/preview/pr-65/images/share.jpg and /dev/null differ diff --git a/preview/pr-65/index.html b/preview/pr-65/index.html deleted file mode 100644 index 972b6d4d..00000000 --- a/preview/pr-65/index.html +++ /dev/null @@ -1,661 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-

About SOLE

- -

System Optimization Lab @ East China Normal University (华东师范大学系统优化实验室 in Chinese), abbreviated as SOLE, relies on School of Data Science and Engineering of ECNU and founded in 2021.

-
- - - - - -
- - -
- - Co-optimization of hardware and software - -
- -

Co-optimization of hardware and software

- - -

SOLE is dedicated to researching performance optimization techniques at all levels of computer systems, including the underlying hardware, infrastructure, and diverse workloads.

- - - - -
-
- -
- - Application-driven innovation - -
- -

Application-driven innovation

- - -

SOLE has launched industry-university-research cooperation projects with many major IT, chip and system companies, and established joint labs. -We develop various open sources tool closely related to the industry.

- - - - -
-
- -
- - The next generation of architects - -
- -

The next generation of architects

- - -

SOLERs are a team of enthusiastic researchers that are interested in system optimization. -Each member focus on his or her own research topic and participating in different projects.

- - - - -
-
-
- - -
- - - - - - - diff --git a/preview/pr-65/members/bo-huang.html b/preview/pr-65/members/bo-huang.html deleted file mode 100644 index aeb35222..00000000 --- a/preview/pr-65/members/bo-huang.html +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bo Huang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- - - -
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
- -
- - -
- - -

Please refer to my home page for more information about me.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/di-wu.html b/preview/pr-65/members/di-wu.html deleted file mode 100644 index 717a2851..00000000 --- a/preview/pr-65/members/di-wu.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Di Wu | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- - - -
- - - - - - - - - -
- -
- - -
- - -

吴迪,男,甘肃武威人,王泽锟的老乡,30min地铁可达梁文辉家,立志当徐霞客。

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/haoyu-liao.html b/preview/pr-65/members/haoyu-liao.html deleted file mode 100644 index 950cb038..00000000 --- a/preview/pr-65/members/haoyu-liao.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Haoyu Liao | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

He is pursuing a graduate degree from the School of Data Science and Engineering, East China Normal University, Shanghai, China. His research interests include cloud scheduling and performance evaluation/analysis.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/huanlun-cheng.html b/preview/pr-65/members/huanlun-cheng.html deleted file mode 100644 index 7a8e7966..00000000 --- a/preview/pr-65/members/huanlun-cheng.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Huanlun Cheng | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

程奂仑,男,安徽黄山人。

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/jianing-yang.html b/preview/pr-65/members/jianing-yang.html deleted file mode 100644 index 8ff51613..00000000 --- a/preview/pr-65/members/jianing-yang.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Jia-ning Yang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Jia-ning Yang is pursuing a graduate degree from the School of Data Science and Engineering, East China Normal University, Shanghai, China. Her research mainly focuses on OpenCL optimization on RISC-V.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/jianmei-guo.html b/preview/pr-65/members/jianmei-guo.html deleted file mode 100644 index cae5e5f4..00000000 --- a/preview/pr-65/members/jianmei-guo.html +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Jianmei Guo | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- - - -
- - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - -
- -
- - -
- - -

Please refer to my home page for more information about me.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/jing-xu.html b/preview/pr-65/members/jing-xu.html deleted file mode 100644 index 10643eb3..00000000 --- a/preview/pr-65/members/jing-xu.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Jing Xu | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- - - -
- - - - - - - - - -
- -
- - -
- - -

Jing Xu is pursuing a graduate degree from the School of Data Science and Engineering, East China Normal University, Shanghai, China. Her research focuses include web load measurement and optimization.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/jinrui-shi.html b/preview/pr-65/members/jinrui-shi.html deleted file mode 100644 index b56c8697..00000000 --- a/preview/pr-65/members/jinrui-shi.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Jinrui Shi | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Jinrui Shi is pursuing a graduate degree from the School of Data Science and Engineering, East China Normal University, Shanghai, China. His research direction is ORC JIT related, mainly focusing on the LLVM compilers.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/keer-zhang.html b/preview/pr-65/members/keer-zhang.html deleted file mode 100644 index 2d647e5d..00000000 --- a/preview/pr-65/members/keer-zhang.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Ke-er Zhang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

章可儿,女,安徽铜陵人。

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/minghuan-tang.html b/preview/pr-65/members/minghuan-tang.html deleted file mode 100644 index 426e8a50..00000000 --- a/preview/pr-65/members/minghuan-tang.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minghuan Tang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Tang Minghuan is currently pursuing a Master’s degree in the School of Data Science and Engineering at East China Normal University.His research interests include Nvidia-GPU profiling .

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/ning-li.html b/preview/pr-65/members/ning-li.html deleted file mode 100644 index 01face63..00000000 --- a/preview/pr-65/members/ning-li.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Ning Li | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- - - -
- - - - - - - - - -
- -
- - -
- - -

李宁,男,山东临沂人。研究方向为操作系统同步机制和软件故障检测、诊断、修复。

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/tao-wei.html b/preview/pr-65/members/tao-wei.html deleted file mode 100644 index ea0308b8..00000000 --- a/preview/pr-65/members/tao-wei.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Tao Wei | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- - - -
- - - - - - - - - -
- -
- - -
- - -

Tao Wei is working towards on the MS degree in the School of Data Science and Engineering, East China Normal University, Shanghai, China. -His research interests include AI compiles and DNN model inference speed up.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/tong-yang.html b/preview/pr-65/members/tong-yang.html deleted file mode 100644 index 0c9cc37c..00000000 --- a/preview/pr-65/members/tong-yang.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Tong Yang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

YangTong is working towards on the MS degree in the School of Data Science and Engineering, East China Normal University, Shanghai, China. His research interests include LLM distributed fine-tuning optimization and distributed training resource scheduling.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/tongyu-liu.html b/preview/pr-65/members/tongyu-liu.html deleted file mode 100644 index 11f50c35..00000000 --- a/preview/pr-65/members/tongyu-liu.html +++ /dev/null @@ -1,634 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Tong-yu Liu | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- - - -
- - - - - - - - - -
- - - - - - - - - -
- -
- - -
- - -

Tong-yu Liu is a PhD student of School of Data Science and Engineering, East China Normal University. He was received his master’s degree of Engineering (M. Eng.) from East China Normal University in 2021 and the bachelor’s degree of Engineering in Nanjing Agricultural University in 2017.

- -

He currently focus on computer architecture and his research interests mainly include processor microarchitecture, especially its performance measurement, analysis, and optimization.

-
- - - - - -
- - -

Publications

- -

Tong-yu Liu, Jianmei Guo, Bo Huang: Efficient Cross-platform Multiplexing of Hardware Performance Counters via Adaptive Grouping. ACM Trans. Archit. Code Optim. Vol. 21, No. 1: Article 8, 2024. View on ACM

- -

Jianmei Guo, Bo Huang, Tong-yu Liu, Eric Lin, Patrick Zhao: Software System Optimization (in Chinese). China Machine Press Co., Ltd. (Expected to be published in 2024)

- -

Projects

- -

He is the main developer and responsible for hperf, a cross-platform microarchitectural performance measurement tool.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/wenhui-liang.html b/preview/pr-65/members/wenhui-liang.html deleted file mode 100644 index 2b9b3b4c..00000000 --- a/preview/pr-65/members/wenhui-liang.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wenhui Liang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

梁文辉,男,广东佛山人 -研究方向:基于RISC-V的卷积运算加速以及编译优化

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/wenlong-mu.html b/preview/pr-65/members/wenlong-mu.html deleted file mode 100644 index 038134c4..00000000 --- a/preview/pr-65/members/wenlong-mu.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wenlong Mu | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Wenlong Mu is a master’s student in the SOLE Laboratory, class of 2021. His primary research interests include dynamic binary instrumentation, post-linking program optimization, and online code replacement. He is familiar with portions of the source code in BOLT and DynamoRIO, and has expertise in using the Intel PIN tool and DynamoRIO client, as well as Linux perf and LLVM/GCC compilers.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/xueyu-zhang.html b/preview/pr-65/members/xueyu-zhang.html deleted file mode 100644 index dcb24fa4..00000000 --- a/preview/pr-65/members/xueyu-zhang.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xue-yu Zhang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

张雪玉,女,山东烟台人。研究方向为动态二进制翻译。(lty push 我来修改主页,嘤嘤嘤)

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/yilei-zhang.html b/preview/pr-65/members/yilei-zhang.html deleted file mode 100644 index e65c9687..00000000 --- a/preview/pr-65/members/yilei-zhang.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Yilei Zhang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Yilei zhang received his bachelor’s degree from Nanjing Agricultural University in Jiangsu, China, in 2019. He is currently pursuing his PhD at the School of Data Science and Engineering, East China Normal University. His research interests include binary translation.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/yue-tang.html b/preview/pr-65/members/yue-tang.html deleted file mode 100644 index c384cb14..00000000 --- a/preview/pr-65/members/yue-tang.html +++ /dev/null @@ -1,598 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Yue Tang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

汤越,男,浙江杭州人。 -研究方向:动态编译

- -

Always shining, always young! Enjoy sunrise, enjoy sunset! Love you and love the world!

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/yuexi-zou.html b/preview/pr-65/members/yuexi-zou.html deleted file mode 100644 index 11d9f787..00000000 --- a/preview/pr-65/members/yuexi-zou.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Yuexi Zou | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Yuexi Zou is currently a senior undergraduate student in the School of Data Science and Engineering at East China Normal University and will be a Ph.D. student at SOLE Lab in September 2024.

- - - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/yujie-han.html b/preview/pr-65/members/yujie-han.html deleted file mode 100644 index e735dfdb..00000000 --- a/preview/pr-65/members/yujie-han.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Yujie Han | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

韩宇捷,男,浙江宁波人。研究方向为云成本优化。

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/yuyang-li.html b/preview/pr-65/members/yuyang-li.html deleted file mode 100644 index 5601c43e..00000000 --- a/preview/pr-65/members/yuyang-li.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Yuyang Li (Xiaomi) | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

YuYang Li is pursuing a graduate degree from the School of Data Science and Engineering, East China Normal University, Shanghai, China. His research interests include performance evaluation and analysis.

- -

After graduation, Yuyang will go to Nanjing Xiaomi to optimize the performance of mobile games.

-
- - - - - -
- - -

Publications

- -

Yuyang Li, Ning Li, Yilei Zhang, Jianmei Guo, Bo Huang, Mengbang Xing, Wenxin Huang: Hmem: A Holistic Memory Performance Metric for Cloud Computing [C]. International Symposium On Benchmarking, Measuring And Optimizing, 2024: 506–522. Paper Link

- -

Ning Li, Jianmei Guo, Bo Huang, Yuyang Li, Yilei Zhang, Chengdong Li, Wenxin Huang:TCSA: Efficient Localization of Busy-Wait Synchronization Bugs for Latency-Critical Applications .IEEE Transactions on Parallel \& Distributed Systems, 2024: 297-30. Paper Link

- -

华东师范大学与腾讯云联合申请专利:《内存测试方法、装置、电子设备及存储介质 》发明人:力宇阳、郭健美、李成栋、黄闻欣、李宁、黄波,专利号:202211363677.2,公布日期:20230331

- -

Projects

- -

参与校企联合项目:腾讯云服务产品性能与质量评测(已结项)

- -

参与校企联合项目:腾讯云服务异常检测与优化(已结项)

- -

Honour

- -

华东师范大学颁发:优秀学生

- -

数据科学与工程学院颁发:企业奖学金

- -

华东师范大学颁发:优秀毕业生

- -

腾讯技术委员会颁发:腾讯云服务器评测调优开源协同荣誉证书

- -

腾讯云质量部颁发:小红花:日拱一卒

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/zekun-wang.html b/preview/pr-65/members/zekun-wang.html deleted file mode 100644 index ebdbeeb8..00000000 --- a/preview/pr-65/members/zekun-wang.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Zekun Wang | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

Zekun Wang is pursuing a graduate degree from the School of Data Science and Engineering, East China Normal University, Shanghai, China. His research interests include sampling and simulation.

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/zhaoxi-yu.html b/preview/pr-65/members/zhaoxi-yu.html deleted file mode 100644 index 940566ce..00000000 --- a/preview/pr-65/members/zhaoxi-yu.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Zhaoxi Yu | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

于兆熙,男,山东烟台人。

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/members/zhijie-xu.html b/preview/pr-65/members/zhijie-xu.html deleted file mode 100644 index 5e4aebc3..00000000 --- a/preview/pr-65/members/zhijie-xu.html +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Zhijie Xu | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
- - - -

徐志杰,男,浙江宁波人。

- - - - - - - - - - - -
- - -
- - - - - - - diff --git a/preview/pr-65/news/index.html b/preview/pr-65/news/index.html deleted file mode 100644 index 372ecd87..00000000 --- a/preview/pr-65/news/index.html +++ /dev/null @@ -1,960 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -News | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-

-News

- -

2024

- -
-
- - - - - - -
- Paper Accepted by Journal of Systems and Software - - - - - - - -
- - - paper - - - -
- - - - - - - -

- May, 2024. Paper EFACT: An External Function Auto-Completion Tool to strengthen static binary lifting was accepted by Journal of Systems and Software. -Congratulations to Yilei Zhang. - -

-
-
-
- -

2023

- -
-
- - - - - - -
- Paper Accepted by IEEE TPDS - - - - - - - -
- - - paper - - - -
- - - - - - - -

- Dec., 2023. Paper TCSA: Efficient Localization of Busy-Wait Synchronization Bugs for Latency-Critical Applications was accepted by IEEE TPDS. -Congratulations to Ning Li. - -

-
-
-
- -
-
- - - - - - -
- Paper Accepted by ACM TACO - - - - - - - -
- - - paper - - - -
- - - - - - - -

- Sep., 2023. Paper Efficient Cross-platform Multiplexing of Hardware Performance Counters via Adaptive Grouping was accepted by ACM TACO. -Congratulations to Tong-yu. - -

-
-
-
- -

2022

- -
-
- - - - - - -
- SOLERs received scholarships! - - - - - - - -
- - - award - - - -
- - - - - - - -

- Congratulations to Tong-yu Liu and Wenlong Mu for being awarded the National Scholarship (Master Student) for the 2022 academic year! - -

-
-
-
- -

2021

- -
-
- - - - - - -
- SOLE Was Established! - - - - - - - -
- - - event - - - -
- - - - - - - -

- In September of 2021, SOLE Labs was officially established! - -

-
-
-
-
- - -
- - - - - - - diff --git a/preview/pr-65/projects/index.html b/preview/pr-65/projects/index.html deleted file mode 100644 index e483f12c..00000000 --- a/preview/pr-65/projects/index.html +++ /dev/null @@ -1,722 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Projects | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-

-Projects

- - - -
- - EFACT - - -
- - - EFACT - - - - - An External Function Auto-Completion Tool to strengthen static binary lifting - - - - - -
-
- -
- - hperf - - -
- - - hperf - - - - - A cross-platform microarchitectural performance measurement tool - - - - - -
-
- -
- - TCSA - - -
- - - TCSA - - - - - Efficient Localization of Busy-Wait Synchronization Bugs for Latency-Critical Applications. - - - - - -
-
- -
- - Hmem - - -
- - - Hmem - - - - - A holistic memory performance metric, calculated from a fusion of bandwidth and latency metrics across different access patterns. - - - - - -
-
- -
- - AOBO - - -
- - - AOBO - - - - - The first online code layout optimization system on the AArch64 platform. - - - - - -
-
- -
- - hotspotdrivenframework - - -
- - - hotspotdrivenframework - - - - - A hotspot-driven semi-automatic framework for identifying key compiler optimizations through comparing the binaries generated by two different compilers. - - - - - -
-
-
- - - - - -
- - -

More

-
- - -
- - - - - - - diff --git a/preview/pr-65/publications/index.html b/preview/pr-65/publications/index.html deleted file mode 100644 index b906a56c..00000000 --- a/preview/pr-65/publications/index.html +++ /dev/null @@ -1,1226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Publications | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-

-Publications

- -

2024

- -
-
- - - EFACT: An External Function Auto-Completion Tool to strengthen static binary lifting - - - -
- - - - - EFACT: An External Function Auto-Completion Tool to strengthen static binary lifting - - -
- Yilei Zhang, Haoyu Liao, Zekun Wang, Bo Huang, Jianmei Guo - -
- -
- Journal of Systems and Software -  ·  - 11 May 2024 - -
- - - -
- Static binary lifting is essential in binary rewriting frameworks. Existing tools overlook the impact of External Function Completion (EXFC) in static binary lifting. EXFC recovers the declarations of External Functions (EXFs, functions defined in standard shared libraries) using only the function symbols available. Incorrect EXFC can misinterpret the source binary, or cause memory overflows in static binary translation, which eventually results in program crashes. Notably, existing tools struggle to recover the declarations of mangled EXFs originating from binaries compiled from C++. Moreover, they require time-consuming manual processing to support new libraries. This paper presents EFACT, an External Function Auto-Completion Tool for static binary lifting. Our EXF recovery algorithm better recovers the declarations of mangled EXFs, particularly addressing the template specialization mechanism in C++. EFACT is designed as a lightweight plugin to strengthen other static binary rewriting frameworks in EXFC. Our evaluation shows that EFACT outperforms RetDec and McSema in mangled EXF recovery by 96.4% and 97.3% on SPECrate 2017.Furthermore, we delve deeper into static binary translation and address several cross-ISA EXFC problems. When integrated with McSema, EFACT correctly translates 36.7% more benchmarks from x86-64 to x86-64 and 93.6% more from x86-64 to AArch64 than McSema alone on EEMBC. - -
- - - -
- - - - - - - - - - - - - - - - - -
- - - - - - -
- - - External function completion - - - - - Binary lifting - - - - - Static binary translation - - - - - Reverse engineering - - - -
- - - - -
-
-
- -
-
- - - Hmem: A Holistic Memory Performance Metric for Cloud Computing - - - -
- - - - - Hmem: A Holistic Memory Performance Metric for Cloud Computing - - -
- Yuyang Li, Ning Li, Yilei Zhang, Jianmei Guo, Bo Huang, Mengbang Xing, Wenxin Huang - -
- -
- International Symposium on Benchmarking, Measuring and Optimization -  ·  - 14 Feb 2024 - -
- - - -
- With the proliferation of cloud computing, cloud service providers offer users a variety of choices in terms of pricing and computing performance. A critical factor impacting computing performance is main memory, often evaluated using bandwidth and access latency metrics. For two evaluations with the same workload while under different system configurations, it is hard to determine which system delivers better memory performance for the particular workload if neither evaluation data achieves higher bandwidth and lower latency simultaneously. This dilemma is further exacerbated under different memory access patterns. We recognize that state-of-the-art memory performance metrics cannot well address the dilemma. To address this challenge, we define a holistic memory performance metric, named Hmem, which is calculated from a fusion of bandwidth and latency metrics across different access patterns. To reflect the overall performance of a given workload, we calculate the correlation between our proposed metric and the workload’s throughput. Experimental results show that Hmem exhibits an average improvement of 70% on correlation coefficients compared to state-of-the-art memory performance metrics. A large cloud service provider has adopted Hmem to improve the efficiency of their memory performance evaluation and cloud server selection. - -
- - - -
- - - - - - - - - - - - - - - - - -
- - - - - - -
- - - comprehensive evaluation - - - - - cloud computing - - - - - performance evaluation - - - -
- - - - -
-
-
- -
-
- - - Efficient Cross-platform Multiplexing of Hardware Performance Counters via Adaptive Grouping - - - -
- - - - - Efficient Cross-platform Multiplexing of Hardware Performance Counters via Adaptive Grouping - - -
- Tong-Yu Liu, Jianmei Guo, Bo Huang - -
- -
- ACM Transactions on Architecture and Code Optimization -  ·  - 19 Jan 2024 - -
- - - -
- Collecting sufficient microarchitecture performance data is essential for performance evaluation and workload characterization. There are many events to be monitored in a modern processor while only a few hardware performance monitoring counters (PMCs) can be used, so multiplexing is commonly adopted. However, inefficiency commonly exists in state-of-the-art profiling tools when grouping events for multiplexing PMCs. It has the risk of inaccurate measurement and misleading analysis. Commercial tools can leverage PMCs, but they are closed source and only support their specified platforms. To this end, we propose an approach for efficient cross-platform microarchitecture performance measurement via adaptive grouping, aiming to improve the metrics’ sampling ratios. The approach generates event groups based on the number of available PMCs detected on arbitrary machines while avoiding the scheduling pitfall of Linux perf_event subsystem. We evaluate our approach with SPEC CPU 2017 on four mainstream x86-64 and AArch64 processors and conduct comparative analyses of efficiency with two other state-of-the-art tools, LIKWID and ARM Top-down Tool. The experimental results indicate that our approach gains around 50% improvement in the average sampling ratio of metrics without compromising the correctness and reliability. - -
- - - -
- - - - - - - - - - - - - - - - - -
- - - - - - -
- - - performance monitoring unit - - - - - hardware performance counter - - - - - performance measurement - - - -
- - - - -
-
-
- -

2023

- -
-
- - - TCSA: Efficient Localization of Busy-Wait Synchronization Bugs for Latency-Critical Applications - - - -
- - - - - TCSA: Efficient Localization of Busy-Wait Synchronization Bugs for Latency-Critical Applications - - -
- Ning Li, Jianmei Guo, Bo Huang, Yuyang Li, Yilei Zhang, Chengdong Li, Wenxin Huang - -
- -
- IEEE Transactions on Parallel and Distributed Systems -  ·  - 13 Dec 2023 - -
- - - -
- Busy-wait synchronization is often used for latency-critical applications to ensure low latency. Unfortunately, its performance bugs due to thread contention may lead to request failures or even system crashes. Localizing the performance bugs of busy-wait synchronization is not trivial because we have to pinpoint the exact moment of occurrence from a relatively long measurement period and simultaneously identify candidate busy-wait threads from numerous concurrent threads. Existing methods often rely on hotspot-driven analysis of lock-related functions, but they still need extensive manual work to localize busy-wait threads. This paper proposes timing call stack analysis (TCSA), an efficient approach to localizing busy-wait synchronization bugs. The key idea is to time-serialize the function call stacks of applications and identify consecutive identical call stacks to catch busy-wait threads. TCSA can handle any application regardless of its programming language and identify various busy-wait patterns, including spinlocks, chaining spinlocks, futexes, and safepoint checks within the Java Virtual Machine. Compared to the state-of-the-art, TCSA can effectively diminish the quantity of examined records (e.g., threads and functions) by 1 to 3 orders of magnitude. TCSA has been deployed to a large cloud service provider, demonstrating its effectiveness, efficiency, and practicality in four real latency-critical applications. - -
- - - -
- - - - - - - - - - - - - - - - - -
- - - - - - -
- - - busy-wait synchronization - - - - - latency-critical applications - - - - - performance bug localization - - - - - timing call stack analysis - - - -
- - - - -
-
-
- -
-
- - - A Hotspot-Driven Semi-automated Competitive Analysis Framework for Identifying Compiler Key Optimizations - - - -
- - - - - A Hotspot-Driven Semi-automated Competitive Analysis Framework for Identifying Compiler Key Optimizations - - -
- Wenlong Mu, Yilei Zhang, Bo Huang, Jianmei Guo, Shiqiang Cui - -
- -
- Proceedings of the 32nd ACM SIGPLAN International Conference on Compiler Construction -  ·  - 17 Feb 2023 - -
- - - -
- High-performance compilers play an important role in improving the run-time performance of a program, and it is hard and time-consuming to identify the key optimizations implemented in a high-performance compiler with traditional program analysis. In this paper, we propose a hotspot-driven semi-automated competitive analysis framework for identifying key optimizations through comparing the hotspot codes generated by any two different compilers. Our framework is platform-agnostic and works well on both AArch64 and X64 platforms, which automates the stages of hotspot detection and dynamic binary instrumentation only for selected hotspots. With the instrumented instruction characterization information, the framework users can analyze the binary code within a much smaller scope to explore practical optimizations implemented in any of the compilers compared. To demonstrate the effectiveness and practicality, we conduct experiments on SPECspeed 2017 Integer benchmarks(CINT2017) and their binaries generated by open-source GCC compiler versus proprietary Huawei BiSheng and Intel ICC compilers on AArch64 and X64 platforms respectively. Empirical studies show that our methods can identify several significant optimizations that have been implemented by proprietary compilers and as well can be implemented in open-source compilers. To Hangzhou Hongjun Microelectronics Technology(Hjmicro), the identified key optimizations shed great light on optimizing their GCC-based product compiler, which delivers 20.83% improvement for SPECrate 2017 Integer on AArch64 platform. - -
- - - -
- - - - - - - - - - - - - - - - - -
- - - - - - -
- - - compiler optimization - - - - - dynamic binary instrumentation - - - - - hotspots detection - - - - - binary analysis - - - -
- - - - -
-
-
-
- - -
- - - - - - - diff --git a/preview/pr-65/redirects.json b/preview/pr-65/redirects.json deleted file mode 100644 index 9e26dfee..00000000 --- a/preview/pr-65/redirects.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/preview/pr-65/robots.txt b/preview/pr-65/robots.txt deleted file mode 100644 index 6fd909a3..00000000 --- a/preview/pr-65/robots.txt +++ /dev/null @@ -1 +0,0 @@ -Sitemap: /preview/pr-65/sitemap.xml diff --git a/preview/pr-65/sitemap.xml b/preview/pr-65/sitemap.xml deleted file mode 100644 index c6a93d56..00000000 --- a/preview/pr-65/sitemap.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - -/preview/pr-65/members/yilei-zhang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/bo-huang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/yue-tang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/yuexi-zou.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/jianmei-guo.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/ning-li.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/tongyu-liu.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/wenhui-liang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/wenlong-mu.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/xueyu-zhang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/yuyang-li.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/zhaoxi-yu.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/di-wu.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/haoyu-liao.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/huanlun-cheng.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/keer-zhang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/tao-wei.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/yujie-han.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/zekun-wang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/zhijie-xu.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/jianing-yang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/jing-xu.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/jinrui-shi.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/minghuan-tang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/members/tong-yang.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/2021/09/01/FoundingOfSole.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/2022/10/16/NationalScholarship.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/2023/09/28/AdaptiveGrouping-accepted.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/2023/12/04/TCSA-accepted.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/2024/05/11/EFACT-accepted.html -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/contact/ -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/team/ -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/news/ -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/publications/ -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/projects/ -2024-06-06T09:41:51+00:00 - - -/preview/pr-65/ -2024-06-06T09:41:51+00:00 - - diff --git a/preview/pr-65/team/index.html b/preview/pr-65/team/index.html deleted file mode 100644 index f43b7dbe..00000000 --- a/preview/pr-65/team/index.html +++ /dev/null @@ -1,1214 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Team | System Optimization Lab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-

-Team

- -

SOLE is made up of a highly engaged and collaborative team of researchers interested in system optimization. -The team includes advisors, PhD students, master students and undergraduate students. -We foster an environment where team members are treated equally, and where we respect and admire our differences.

- - -
- - - - - -
- - -

Advisors

- - - - - -

PhD Students

- - - - - -

Master Students

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Undergraduate Students

- - - - - -

Alumni

- - -
- - - - - -
- -
- - -
- - - - - - -