
A deep dive into how a seemingly cosmetic C code style change — using *lwr++ = x instead of *lwr = x; lwr++ — causes Clang to generate branchless csel instructions on ARM (and cmov on x86), resulting in a 6x speedup for a custom Quicksort implementation. The post shows the full branchless Quicksort with sorting networks, compares the generated assembly with and without branches, and notes that GCC does not exhibit this behavior, consistently generating the slower branch-based version.
Nguồn: https://tiki.li/blog/lucky_code.html. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Bài viết phân tích cách triển khai các nguyên thủy lập trình song song theo phong cách Go trong C bằng POSIX threads cho dự án Solod (một trình biên dịch Go-to-C). Nó đề cập đến các wrapper cho mutex/cond, atomics, worker pools, channels có/không buffer, và so sánh hiệu năng chi tiết với Go. Kết quả chính: pthread-based concurrency gần tương đương Go (~10% chênh lệch) ở các tác vụ coarse-grained, nhưng chậm hơn 7-23 lần ở các thao tác fine-grained do chi phí đánh thức kernel, so với scheduler userspace của Go.
Bạn nên đọc để hiểu cách chuyển đổi cơ chế đồng thời kiểu Go sang C bằng pthreads, giúp hiểu rõ những trade-off giữa hiệu năng, phức tạp và sự tương thích khi xây dựng các ứng dụng đa luồng trên nền tảng C.
swSIM là trình giả lập SIM card hoàn toàn bằng phần mềm, mã nguồn mở, không cần phần cứng vật lý. Nó kết nối với PC qua PC/SC nhờ swICC reader, tương thích với mọi điện thoại có khe SIM, được xây dựng bằng make/gcc và không phụ thuộc runtime.
Lập trình viên phát triển ứng dụng di động hoặc hệ thống liên quan đến SIM card nên đọc để tìm hiểu cách tạo mô phỏng SIM card hoàn toàn phần mềm, giúp tiết kiệm chi phí phát triển và mở rộng khả năng tương thích với các thiết bị không cần thiết bị vật lý.
Dự án mã nguồn mở wince-dc biến Windows CE 2.12 tích hợp sẵn trên đĩa game Dreamcast thành môi trường desktop cửa sổ đa nhiệm đầy đủ, với shell tùy chỉnh (DCWin) và các ứng dụng tích hợp (Explorer, Task Manager, Clock, Calculator) chạy dưới dạng tiến trình riêng biệt. Nó hỗ trợ mạng TCP/IP qua Broadband Adapter hoặc W5500/SPI, cùng toolchain hoàn chỉnh (bao gồm trình biên dịch SH-4 PE) cho phép build ảnh đĩa GDI bootable chỉ với CMake/Ninja mà không cần SDK hay Platform Builder bên ngoài.
Lập trình viên muốn khám phá cách xây dựng hệ thống điều khiển phần mềm độc lập từ scratch trên nền tảng cổ điển nhưng vẫn hiện đại hóa bằng cách tận dụng công nghệ hardware của Dreamcast để tạo ra một giao diện người dùng đa nhiệm, có thể mở rộng cho các ứng dụng mạng và tích hợp toàn bộ công cụ biên dịch trong một dự án đơn giản.
Erin Catto, creator of the Box2D 2D physics engine, has released Box3D — a new open-source 3D physics engine under the MIT license. Box3D exposes a C API and shares a nearly identical architecture to Box2D. Development was motivated by issues with Unreal Engine's native physics, and the codebase is partly derived from 'Rubikon-Lite', the physics engine behind Half-Life: Alyx. The project is currently in alpha (v0.1.0) but has already seen early adoption by a few games and game engines.

Erin Catto, creator of Box2D, has announced Box3D — an open source 3D physics engine forked from Box2D and extended for 3D game development. Box3D originated from work on 'The Legend of California', a survival game at Kintsugiyama, where Unreal Engine's native Chaos physics had issues with gyroscopic torques and continuous collision. The engine is written in C17, shares Box2D's core architecture, and adds triangle mesh collision, height-field collision, baked compound collision, SIMD contact solving, multi-threading hooks, cross-platform determinism, and large world support. It is already used in s&box by Facepunch Studios, the Esoterica open source game engine, and a 1000-player space game. Box3D is currently alpha software, with v0.1 tagging planned soon and a roadmap toward v1.0 including improved character movement, ghost collision mitigation, and joint solver improvements.
A walkthrough of Emacs' built-in Grand Unified Debugger (GUD), focusing on its GDB graphical interface. Covers multi-debugger support (lldb, pdb, jdb, perldb, and more), setting breakpoints by clicking the fringe, stepping through code, inspecting variable values by hovering, using the locals window, and watching variables for changes. Uses a simple Fibonacci C program as a demo.
The Microsoft C++ Language Server is now available as a plugin on the Copilot Plugins marketplace. It introduces a built-in setup skill that automates generation and maintenance of the compile_commands.json file required for semantic intelligence features like symbol navigation and diagnostics. The plugin supports CMake and MSBuild projects with guided setup via natural language commands like 'regenerate compile commands' or 'load project', and provides patterns for custom build systems. Installation is simplified through a single CLI command, replacing the previous npm-based approach.
Lỗ hổng tràn bộ đệm (buffer overflow) vẫn là nguyên nhân hàng đầu gây ra các CVE nghiêm trọng trong mã nguồn C/C++. Khi chương trình ghi dữ liệu vượt quá giới hạn bộ đệm, dữ liệu liền kề (bao gồm địa chỉ trả về) có thể bị hỏng, dẫn đến việc thực thi mã tùy ý. Bài viết phân tích các loại tràn bộ đệm (stack-based, heap overflow), cơ chế hoạt động của các biện pháp phòng thủ hiện đại (stack canaries, DEP/NX, ASLR) cùng cách tấn công vượt qua chúng (ROP chains), đồng thời minh họa bằng hai trường hợp thực tế là CVE-2025-32756 (Fortinet) và CVE-2023-38545 (curl). Các biện pháp khắc phục bao gồm thay thế hàm C không an toàn, sử dụng flags bảo vệ trình biên dịch, kiểm thử fuzzing bằng AddressSanitizer, phân tích tĩnh, và chuyển sang ngôn ngữ an toàn bộ nhớ như Rust hay Go.
Lập trình viên C/C++ cần đọc bài này để hiểu cách bảo vệ hệ thống khỏi lỗ hổng đệm (buffer overflow) – một trong những nguyên nhân hàng đầu gây ra các lỗ hổng nghiêm trọng (CVEs) có thể dẫn đến tấn công xâm nhập nghiêm trọng và phá hủy tính bảo mật.