並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 166件

新着順 人気順

allocate memory on stack cの検索結果1 - 40 件 / 166件

  • プロと読み解くRuby 3.3 NEWS - STORES Product Blog

    テクノロジー部門CTO室の笹田(ko1)と遠藤(mame)です。今年の 9 月から STORES 株式会社で Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています(Rubyのこれからを STORES で作る。Rubyコミッター笹田さん、遠藤さんにCTOがきく「Fun」|STORES People )。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.3.0 がリリースされました(Ruby 3.3.0 リリース)。クックパッド開発者ブログで連載していたように、今年も STORES Product Blog にて Ruby 3.3 の NEWS.md ファイルの解説をします(ちなみに、STORES Advent Calendar

      プロと読み解くRuby 3.3 NEWS - STORES Product Blog
    • Kernel Queue: The Complete Guide On The Most Essential Technology For High-Performance I/O

      Kernel Queue: The Complete Guide On The Most Essential Technology For High-Performance I/O When talking about high-performance software we probably think of server software (such as nginx) which processes millions requests from thousands clients in parallel. Surely, what makes server software work so fast is high-end CPU running with huge amount of memory and a very fast network link. But even the

        Kernel Queue: The Complete Guide On The Most Essential Technology For High-Performance I/O
      • Speculation in JavaScriptCore

        This post is all about speculative compilation, or just speculation for short, in the context of the JavaScriptCore virtual machine. Speculative compilation is ideal for making dynamic languages, or any language with enough dynamic features, run faster. In this post, we will look at speculation for JavaScript. Historically, this technique or closely related variants has been applied successfully t

        • The Linux Kernel Module Programming Guide

          Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang 1 Introduction 1.1 Authorship 1.2 Acknowledgements 1.3 What Is A Kernel Module? 1.4 Kernel module package 1.5 What Modules are in my Kernel? 1.6 Is there a need to download and compile the kernel? 1.7 Before We Begin 2 Headers 3 Examples 4 Hello World 4.1 The Simplest Module 4.2 Hello and Goodbye 4.3 The __init and __exit Mac

          • 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs

            50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs 50 Shades of Go in Other Languages Chinese Translation: blog post, segmentfault (by wuYin) - needs updates Another Chinese Translation: blog post (by Shadowwind LEY) - needs updates Russian Translation: blog post (by Ilia Ozhereliev, Mail.Ru Group Blog) - needs updates Overview Go is a simple and fun language, but, like any o

            • Containers the hard way: Gocker: A mini Docker written in Go

              They are popular and they are misunderstood. Containers have become the default way applications are packaged and run on servers, initially popularized by Docker. Now, Docker itself is misunderstood. It is the name of a company and a command (a suite of commands, rather) that allow you to manage containers (create, run, delete, network) easily. Containers themselves however, are created from a set

                Containers the hard way: Gocker: A mini Docker written in Go
              • The Development of the C Language

                The Development of the C Language* Dennis M. Ritchie Bell Labs/Lucent Technologies Murray Hill, NJ 07974 USA dmr@bell-labs.com ABSTRACT The C programming language was devised in the early 1970s as a system implementation language for the nascent Unix operating system. Derived from the typeless language BCPL, it evolved a type structure; created on a tiny machine as a tool to improve a meager progr

                • 🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)

                  This is part of my "Memory Management" series 🚀 Demystifying memory management in modern programming languages🚀 Visualizing memory management in JVM(Java, Kotlin, Scala, Groovy, Clojure)🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)🚀 Visualizing memory management in Golang🚀 Visualizing memory management in RustAvoiding Memory Leaks in NodeJS: Best Practic

                    🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly)
                  • Three bugs in the Go MySQL Driver

                    EngineeringThree bugs in the Go MySQL DriverCheck out what we learned from shipping our busiest Go service in production—we found 3 bugs in the Go MySQL driver. Although GitHub.com is still a Rails monolith, over the past few years we’ve begun the process of extracting critical functionality from our main application, by rewriting some of the code in Go—mostly addressing the pieces that need to ru

                      Three bugs in the Go MySQL Driver
                    • Tales of the M1 GPU - Asahi Linux

                      Hello everyone, Asahi Lina here!✨ marcan asked me to write an article about the M1 GPU, so here we are~! It’s been a long road over the past few months and there’s a lot to cover, so I hope you enjoy it! What’s a GPU?You probably know what a GPU is, but do you know how they work under the hood? Let’s take a look! Almost all modern GPUs have the same main components: A bunch of shader cores, which

                        Tales of the M1 GPU - Asahi Linux
                      • Debugging Incidents in Google’s Distributed Systems - ACM Queue

                        June 6, 2020 Volume 18, issue 2 PDF Debugging Incidents in Google's Distributed Systems How experts debug production issues in complex distributed systems Charisma Chan and Beth Cooper Google has published two books about SRE (Site Reliability Engineering) principles, best practices, and practical applications.1,2 In the heat of the moment when handling a production incident, however, a team's act

                        • WebAssembly Interface Types: Interoperate with All the Things! – Mozilla Hacks - the Web developer blog

                          WebAssembly Interface Types: Interoperate with All the Things! People are excited about running WebAssembly outside the browser. That excitement isn’t just about WebAssembly running in its own standalone runtime. People are also excited about running WebAssembly from languages like Python, Ruby, and Rust. Why would you want to do that? A few reasons: Make “native” modules less complicated Runtimes

                            WebAssembly Interface Types: Interoperate with All the Things! – Mozilla Hacks - the Web developer blog
                          • A New RegExp Engine in SpiderMonkey – Mozilla Hacks - the Web developer blog

                            Background: RegExps in SpiderMonkey Regular expressions – commonly known as RegExps – are a powerful tool in JavaScript for manipulating strings. They provide a rich syntax to describe and capture character information. They’re also heavily used, so it’s important for SpiderMonkey (the JavaScript engine in Firefox) to optimize them well. Over the years, we’ve had several approaches to RegExps. Con

                              A New RegExp Engine in SpiderMonkey – Mozilla Hacks - the Web developer blog
                            • My First Kernel Module: A Debugging Nightmare

                              This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and race conditions. My code was nearly correct, but ultimately, there were two major synchronization bugs that killed it. This is a really long post that gets into t

                              • Taming Go’s Memory Usage, or How We Avoided Rewriting Our Client in Rust — Akita Software

                                Taming Go’s Memory Usage, or How We Avoided Rewriting Our Client in Rust A couple months ago, we faced a question many young startups face. Should we rewrite our system in Rust? At the time of the decision, we were a Go and Python shop. The tool we’re building passively watches API traffic to provide “one-click,” API-centric visibility, by analyzing the API traffic. Our users run an agent that sen

                                  Taming Go’s Memory Usage, or How We Avoided Rewriting Our Client in Rust — Akita Software
                                • Manual Memory Management in Go using jemalloc - Dgraph Blog

                                  Become part of a community passionate about building better apps. Manual Memory Management in Go using jemalloc Dgraph Labs has been a user of the Go language since our inception in 2015. Five years and 200K lines of Go code later, we’re happy to report that we are still convinced Go was and remains the right choice. Our excitement for Go has gone beyond building systems, and has led us to even wr

                                    Manual Memory Management in Go using jemalloc - Dgraph Blog
                                  • High throughput Fizz Buzz

                                    x86-64+AVX2 assembly language (Linux, gcc+gas) Build and usage instructions This program is most conveniently built using gcc. Save it as fizzbuzz.S (that's a capital S as the extension), and build using the commands gcc -mavx2 -c fizzbuzz.S ld -o fizzbuzz fizzbuzz.o Run as ./fizzbuzz piped into one command, e.g. ./fizzbuzz | pv > /dev/null (as suggested in the question), ./fizzbuzz | cat, or ./fi

                                      High throughput Fizz Buzz
                                    • How Rust and Wasm power Cloudflare's 1.1.1.1

                                      This post is also available in 简体中文, 繁體中文, 日本語, 한국어, Deutsch, Français and Español. ≈On April 1, 2018, Cloudflare announced the 1.1.1.1 public DNS resolver. Over the years, we added the debug page for troubleshooting, global cache purge, 0 TTL for zones on Cloudflare, Upstream TLS, and 1.1.1.1 for families to the platform. In this post, we would like to share some behind the scenes details and cha

                                        How Rust and Wasm power Cloudflare's 1.1.1.1
                                      • Understanding Garbage Collection in JavaScriptCore From Scratch

                                        JavaScript relies on garbage collection (GC) to reclaim memory. In this post, we will dig into JSC’s garbage collection system. Before we start, let me briefly introduce myself. I am Haoran Xu, a PhD student at Stanford University. While I have not yet contributed a lot to JSC, I found JSC a treasure of elegant compiler designs and efficient implementations, and my research is exploring ways to tr

                                        • Rust to WebAssembly the hard way — surma.dev

                                          What follows is a brain dump of everything I know about compiling Rust to WebAssembly. Enjoy. Some time ago, I wrote a blog post on how to compile C to WebAssembly without Emscripten, i.e. without the default tool that makes that process easy. In Rust, the tool that makes WebAssembly easy is called wasm-bindgen, and we are going to ditch it! At the same time, Rust is a bit different in that WebAss

                                            Rust to WebAssembly the hard way — surma.dev
                                          • Golang Mini Reference 2022: A Quick Guide to the Modern Go Programming Language (REVIEW COPY)

                                            Golang Mini Reference 2022 A Quick Guide to the Modern Go Programming Language (REVIEW COPY) Harry Yoon Version 0.9.0, 2022-08-24 REVIEW COPY This is review copy, not to be shared or distributed to others. Please forward any feedback or comments to the author. • feedback@codingbookspress.com The book is tentatively scheduled to be published on September 14th, 2022. We hope that when the release da

                                            • AST vs. Bytecode: Interpreters in the Age of Meta-Compilation

                                              233 AST vs. Bytecode: Interpreters in the Age of Meta-Compilation OCTAVE LAROSE, University of Kent, UK SOPHIE KALEBA, University of Kent, UK HUMPHREY BURCHELL, University of Kent, UK STEFAN MARR, University of Kent, UK Thanks to partial evaluation and meta-tracing, it became practical to build language implementations that reach state-of-the-art peak performance by implementing only an interprete

                                              • When Zig is safer and faster than Rust

                                                3/7/2023 When Zig is safer and faster than Rust There are endless debates online about Rust vs. Zig, this post explores a side of the argument I don't think is mentioned enough. Intro / TLDRλ I was intrigued to learn that the Roc language rewrote their standard library from Rust to Zig. What made Zig the better option? They wrote that they were using a lot of unsafe Rust and it was getting in thei

                                                • The SYZBOT CTF

                                                  目次 第0章 概要 0.1 syzbot とは? 0.2 主な登場人物紹介? 0.3 自己紹介:熊猫の Linux との関わりについて 0.4 今日のお話「バグハンティング」 第1章 Linux カーネルについて 1.1 Linux カーネルの規模について 1.2 Linux カーネルの制約事項について 1.3 Linux カーネルのデバッグ支援機能について 第2章 カーネルメッセージを読めるようにするための試行錯誤について 2.1 printk() に求められているものとは? 2.2 複数行分のメッセージをバッファリングする試み(2017年4月~) 2.3 メッセージ本文中にコンテキスト情報を埋め込む試み(2018年4月~) 2.4 1行分のメッセージをバッファリングする試み(2018年6月~) 2.5 再び1行分のメッセージをバッファリングする試み(2018年9月~) 2.6 再挑戦(

                                                  • A new way to bring garbage collected programming languages efficiently to WebAssembly · V8

                                                    A recent article on WebAssembly Garbage Collection (WasmGC) explains at a high level how the Garbage Collection (GC) proposal aims to better support GC languages in Wasm, which is very important given their popularity. In this article, we will get into the technical details of how GC languages such as Java, Kotlin, Dart, Python, and C# can be ported to Wasm. There are in fact two main approaches:

                                                    • Our Experience Porting the YJIT Ruby Compiler to Rust

                                                      Opens in a new windowOpens an external siteOpens an external site in a new window Last year, my team at Shopify implemented YJIT, a new Just-In-Time (JIT) compiler for CRuby, which was recently upstreamed as part of Ruby 3.1. Because the CRuby codebase is implemented in C99, we also decided to implement YJIT in C99 so that integration with the rest of the CRuby codebase would be as simple as possi

                                                        Our Experience Porting the YJIT Ruby Compiler to Rust
                                                      • A lighter V8 · V8

                                                        In late 2018 we started a project called V8 Lite, aimed at dramatically reducing V8’s memory usage. Initially this project was envisioned as a separate Lite mode of V8 specifically aimed at low-memory mobile devices or embedder use-cases that care more about reduced memory usage than throughput execution speed. However, in the process of this work, we realized that many of the memory optimizations

                                                        • Go 1.15 Release Notes - The Go Programming Language

                                                          Introduction to Go 1.15 The latest Go release, version 1.15, arrives six months after Go 1.14. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before. Go 1.15 includes substantial improvements to the linker, improves allocati

                                                            Go 1.15 Release Notes - The Go Programming Language
                                                          • Kalyn: a self-hosting compiler for x86-64

                                                            Over the course of my Spring 2020 semester at Harvey Mudd College, I developed a self-hosting compiler entirely from scratch. This article walks through many interesting parts of the project. It’s laid out so you can just read from beginning to end, but if you’re more interested in a particular topic, feel free to jump there. Or, take a look at the project on GitHub. Table of contents What the pro

                                                            • GOMEMLIMIT is a game changer for high-memory applications | Weaviate - Vector Database

                                                              Intro​Running out of memory is never fun, but it's incredibly frustrating when you've already taken some precautions and calculated your exact memory needs. "My application requires 4GB of memory. How is it possible I ran out of memory on my 6GB machine!?". As it turns out, this was a real possibility in a garbage collected ("GC") language like Golang. The emphasis is on the word "was" because Go

                                                                GOMEMLIMIT is a game changer for high-memory applications | Weaviate - Vector Database
                                                              • How Async/Await Really Works in C# - .NET Blog

                                                                Several weeks ago, the .NET Blog featured a post What is .NET, and why should you choose it?. It provided a high-level overview of the platform, summarizing various components and design decisions, and promising more in-depth posts on the covered areas. This post is the first such follow-up, deep-diving into the history leading to, the design decisions behind, and implementation details of async/a

                                                                  How Async/Await Really Works in C# - .NET Blog
                                                                • Zig And Rust

                                                                  Zig And Rust Mar 26, 2023 This post will be a bit all over the place. Several months ago, I wrote Hard Mode Rust, exploring an allocation-conscious style of programming. In the ensuing discussion, @jamii name-dropped TigerBeetle, a reliable, distributed, fast, and small database written in Zig in a similar style, and, well, I now find myself writing Zig full-time, after more than seven years of Ru

                                                                  • Google I/O 2022で驚いたところ - Qiita

                                                                    個人的に驚いたところを太字にしておきます。 AndroidのエンジニアなのでAndroidに関するものが多めです。専門領域外のものはかなり素人目線のただの感想が多いです。なにか大きな間違などがあればご指摘お願いします。修正いたします。 またまだ見ていきますが、一旦、 Keynote Developer Keynote What's new in Android What's new in Jetpack What's new in Development tool Lazy layouts in Compose Fragments: The good (non-deprecated) parts を見たメモを書いています。 まだまだ、ここに追加していく予定です。 セッション: Keynote 今までは2言語の比較を見ながら機械学習をしていたが、翻訳を見ずに学習ができるようになった。これによ

                                                                      Google I/O 2022で驚いたところ - Qiita
                                                                    • Text Editor Data Structures

                                                                      Text editors can be an interesting challenge to program. The types of problems that text editors need to solve can range from trivial to mind-bogglingly difficult. Recently, I have been on something of a spiritual journey to rework some internal data structures in an editor I have been building, specifically the most fundamental data structure to any text editor: the text. Table of Contents Resour

                                                                        Text Editor Data Structures
                                                                      • Go 1.20 Cryptography

                                                                        The first second release candidate of Go 1.20 is out![1] This is the first release I participated in as an independent maintainer, after leaving Google to become a professional Open Source maintainer. (By the way, that’s going great, and I’m going to write more about it here soon!) I’m pretty happy with the work that’s landing in it. There are both exciting new APIs, and invisible deep backend imp

                                                                          Go 1.20 Cryptography
                                                                        • Edge AI Just Got Faster

                                                                          When Meta released LLaMA back in February, many of us were excited to see a high-quality Large Language Model (LLM) become available for public access. Many of us who signed up however, had difficulties getting LLaMA to run on our edge and personal computer devices. One month ago, Georgi Gerganov started the llama.cpp project to provide a solution to this, and since then his project has been one o

                                                                            Edge AI Just Got Faster
                                                                          • Porting OpenBSD pledge() to Linux

                                                                            OpenBSD is an operating system that's famous for its focus on security. Unfortunately, OpenBSD leader Theo states that there are only 7000 users of OpenBSD. So it's a very small but elite group, that wields a disproportionate influence; since we hear all the time about the awesome security features these guys get to use, even though we usually can't use them ourselves. Pledge is like the forbidden

                                                                              Porting OpenBSD pledge() to Linux
                                                                            • How a simple Linux kernel memory corruption bug can lead to complete system compromise

                                                                              In this case, reallocating the object as one of those three types didn't seem to me like a nice way forward (although it should be possible to exploit this somehow with some effort, e.g. by using count.counter to corrupt the buf field of seq_file). Also, some systems might be using the slab_nomerge kernel command line flag, which disables this merging behavior. Another approach that I didn't look

                                                                              • JavaScript backend merged into GHC | IOG Engineering

                                                                                A new JavaScript backend was merged into GHC on November 30th, 2022! This means that the next release of GHC will be able to emit code that runs in web browsers without requiring any extra tools, enabling Haskell for both front-end and back-end web applications. In this post, we, the GHC DevX team at IOG, describe the challenges we faced bringing GHCJS to GHC, how we overcame those challenges, and

                                                                                • A baseline scrapscript compiler

                                                                                  Scrapscript is a small, pure, functional, content-addressable, network-first programming language. fact 5 . fact = | 0 -> 1 | n -> n * fact (n - 1) My previous post introduced the language a bit and then talked about the interpreter that Chris and I built. This post is about the compiler that Chris and I built. In the beginning, there was an interpreter Writing a simple tree-walking interpreter is