Tags:
Node Thumbnail

Chrome 64 เปลี่ยนคอมไพล์เลอร์จาก Microsoft Visual C++ (MSVC) มาเป็น Clang ให้เหมือนกับแพลตฟอร์มอื่นๆ ได้แก่ macOS, iOS, Linux, Chrome OS, Android, และ Windows

เหตุผลสำคัญในการเปลี่ยนคอมไพล์เลอร์คือการรวมคอมไพล์เลอร์เข้ามาเป็นตัวเดียวเพื่อลดระยะเวลาการพัฒนาลง เพราะโปรแกรมเมอร์มักคุ้นกับการคอมไพล์บนแพลตฟอร์มที่ตัวเองดูแลอยู่เท่านั้น เมื่อโค้ดคอมไพล์ไม่ผ่านบนแพลตฟอร์มอื่นการแก้ไขก็จะใช้เวลานาน

Tags:
Node Thumbnail

เราทราบกันดีว่า Firefox 57 เร็วขึ้นกว่าเดิมมาก แต่นั่นเป็นเพียงจุดเริ่มต้นเท่านั้น เพราะ Mozilla มีแผนปรับปรุงเอนจินอีกมาก และใน Firefox 58 ก็มีของใหม่ที่ช่วยให้การประมวลผล JavaScript เร็วขึ้นอีก

ที่ผ่านมา Firefox รองรับ WebAssembly หรือการคอมไฟล์ JavaScript เป็นไบนารีเพื่อให้ได้ประสิทธิภาพดีขึ้นกว่าเดิม ใน Firefox 58 จะปรับปรุงการคอมไพล์ WebAssembly โดยใช้เทคนิค 2 อย่างประกอบกัน

Tags:
Node Thumbnail

Avast เปิดซอร์สโค้ดของ RetDec (Retargetable Decompiler) ดีคอมไพเลอร์ที่ช่วยแปลงไบนารีกลับเป็นซอร์สโค้ด

RetDec ถูกใช้งานภายในบริษัท Avast เพื่อใช้วิเคราะห์ไวรัส-มัลแวร์ที่มาในรูปของไบนารี สำหรับดูพฤติกรรมการทำงานของมัน รวมถึงหาวิธีแก้ไข (ในกรณีเป็น ransomware)

RetDec พัฒนาขึ้นจากโครงการคอมไพเลอร์โอเพนซอร์ส LLVM และเมื่อมันถูกเปิดซอร์สกลับมาอีกครั้ง (ใช้สัญญาอนุญาต MIT) ก็ช่วยให้เรามีดีคอมไพเลอร์ที่มีคุณภาพระดับใช้งานจริงเพิ่มอีกหนึ่งตัว

โค้ดอยู่บน GitHub ใช้งานได้ทั้งบนวินโดวส์และลินุกซ์ คนที่สนใจการแปลงไบนารีกลับ สามารถลองเล่นได้จาก บริการออนไลน์ของ Avast

Tags:
Node Thumbnail

เป้าหมายสำคัญอย่างหนึ่งในการรักษาความปลอดภัยซอฟต์แวร์โอเพนซอร์ส คือการทำให้การคอมไพล์สามารถทำซ้ำได้ (reproducible builds) เพื่อให้คนภายนอกแน่ใจได้ว่าซอร์สโค้ดที่เปิดเผยออกมาตรงกับซอฟต์แวร์ที่กำลังใช้งานอยู่ แต่กระบวนการทำจริงนั้นมีเงื่อนไขหลายอย่างที่ทำให้โค้ดไม่สามารถคอมไพล์ออกมาให้ตรงกันทุกครั้ง แต่วันนี้ทาง NetBSD ก็ออกมาระบุว่าตอนนี้การคอมไพล์บนสถาปัตยกรรม amd64 และ sparc64 สามารถทำซ้ำได้แล้ว

ทาง NetBSD แจงรายการปัญหาที่พบจากการพยายามทำให้การคอมไพล์ทำซ้ำได้ ได้แก่

Tags:
Node Thumbnail

ฟีเจอร์ใหม่ของ Android 7.0 ที่ลึกลงไปในระดับของการคอมไพล์คือการนำเทคนิค Just in Time (JIT) compiler มาใช้กับรันไทม์แบบ ART ที่เริ่มใช้มาตั้งแต่ Android 5.0

Tags:
Node Thumbnail

โครงการนำ Clang มาใช้คอมไพล์โค้ดภาษา C++ ของไมโครซอฟท์ มีความก้าวหน้าอย่างจับต้องได้อีกขั้นเมื่อไมโครซอฟท์ได้นำเสนอวิธีการคอมไพล์โค้ดวินโดวส์แอพด้วย Clang ในงาน CPPCon 2015 ที่ผ่านมา และคาดว่าจะเพิ่มวิธีการคอมไพล์นี้ในชุดอัพเดตสำหรับ Visual C++ ที่จะออกมาในเดือนหน้าด้วย

Tags:
Node Thumbnail

โครงการชุดคอมไพเลอร์โอเพนซอร์ส LLVM มีคอมไพเลอร์ภาษา C/C++/Objective-C ชื่อว่า Clang ที่ถูกใช้งานอย่างแพร่หลาย ปกติแล้ว Clang ทำงานบนระบบปฏิบัติการสายยูนิกซ์ แต่ก็สามารถใช้บนวินโดวส์ได้ด้วย

ล่าสุด Clang ได้ผู้สนับสนุนรายใหม่คือ "ไมโครซอฟท์" ที่ปกติแล้วใช้ Visual C++ ของตัวเองเสมอมา (Clang เริ่มพัฒนาโดยแอปเปิล แต่ปัจจุบันดูแลโดยชุมชน)

นโยบายใหม่ของไมโครซอฟท์มาจาก การเปิดให้ Visual Studio คอมไพล์โค้ดจาก Android/iOS ทำให้ไมโครซอฟท์จำเป็นต้องหาคอมไพเลอร์ที่ทำงานบนแพลตฟอร์มอื่นๆ ได้ด้วย ซึ่ง Clang ก็มารับบทนี้

ไมโครซอฟท์อธิบายการทำงานของการคอมไพล์เป็นแผนภาพด้านล่าง

Tags:
Node Thumbnail

ต่อเนื่องจากแผนการโอเพนซอร์ส.NET Framework และรองรับการทำงานบนลินุกซ์และโอเอสเท็น ล่าสุดไมโครซอฟท์เปิดตัวโครงการพัฒนาคอมไพเลอร์ชื่อว่า LLILC (อ่านว่า lilac) ซึ่งเป็นคอมไพเลอร์แบบ Just in Time (JIT) สำหรับ CoreCLR เพื่อใช้งานร่วมกับ LLVM ข้อดีของ LLVM อ่านได้ในข่าวเก่า

Tags:
Node Thumbnail

คอมไพล์เลอร์ภาษา Go ก่อนหน้านี้พัฒนาด้วยภาษาซีมาโดยตลอด แต่เมื่อคืนที่ผ่านมา Russ Cox ทีมงานภาษา Go ก็ลบโค้ดเหล่านี้ออกจาก Git ใน master branch แล้ว

การที่ Go สามารถคอมไพล์ตัวเองได้ ทำให้ Go กลายเป็นภาษาในกลุ่ม self-hosting อีกหนึ่งตัว

ตอนนี้คอมไพล์เลอร์ที่เขียนด้วยภาษา Go ยังช้ากว่าที่เขียนด้วยซีอยู่เล็กน้อย แต่ Cox ระบุว่าน่าจะแก้ปัญหาได้ภายในสัปดาห์หน้า

ที่มา - @_rsc

Tags:
Node Thumbnail

หลังจากที่กูเกิลออกเครื่องมือแปลงโค้ด Java เป็น Objective-C ในชื่อ J2ObjC ผ่านมาเกือบ 3 ปีก็ได้เวลาของไมโครซอฟท์กันบ้าง

ไมโครซอฟท์ออกเครื่องมือแปลงโค้ด จาก Java เป็น C#, C++ และ Objective C++ (โดยในส่วนของ C++ และ Objective C++ จะมีการรองรับในเร็วๆ นี้) ในชื่อ JUniversal มาพร้อมกับไลบรารี JSimple และสามารถใช้ร่วมกันกับ J2ObjC ในการแปลงเป็น Objective-C ได้

Tags:
Node Thumbnail

ช่วงหลายปีที่ผ่านมานี้ เราเห็นโครงการพัฒนาด้านประสิทธิภาพการประมวลผล JavaScript ของเบราว์เซอร์ค่ายต่างๆ โดยโครงการที่โดดเด่นคือ asm.js ที่ริเริ่มจากฝั่ง Mozilla

ฝั่งของแอปเปิลที่สร้าง Safari อยู่บนโครงการ WebKit ก็มีความเคลื่อนไหวในเรื่องนี้เช่นกัน โดยใช้ชื่อโครงการว่า FTLJIT ย่อมาจาก (Fourth Tier LLVM JIT)

Tags:
Node Thumbnail

ไมโครซอฟท์ปล่อยรุ่นพรีวิวของ .NET Native (ชื่อเดิม Project N) เทคโนโลยีด้านคอมไพเลอร์ตัวใหม่สำหรับแพลตฟอร์ม .NET แล้ว บริษัทเคลมว่า .NET Native จะช่วยให้แอพแบบ Metro (Windows Store apps) เริ่มต้นทำงานเร็วขึ้นร้อยละ 60 และใช้หน่วยความจำน้อยลงกว่าเดิมร้อยละ 15-20

หลักการทำงานคือ .NET Native จะคอมไพล์โค้ดภาษา C# เป็นโค้ดแบบ native ที่ทำงานคล้าย C++ ซึ่งทำให้ได้ประสิทธิภาพระดับภาษา C++ จากการเขียนโค้ดภาษา C#

บริษัทยังกล่าวว่าได้ใช้ .NET Native คอมไพล์แอพของตัวเองบ้างแล้ว อาทิ Wordament และ Fresh Paint

Tags:
Node Thumbnail

Chrome Beta ปรับปรุงการประมวลผล JavaScript ในเอนจิน V8 เสียใหม่ โดยโอนภาระงานส่วนการรีดประสิทธิภาพ (optimizing compilation) ของโค้ดไปทำงานแบบแบ็คกราวนด์ ผลคือตัวแอพหลักที่อยู่ฉากหน้าจะยังตอบสนองดีเหมือนปกติ (responsive)

เดิมทีเอนจิน V8 จะทำหน้าที่ปรับแต่งโค้ดแล้วค่อยประมวลผล ซึ่งมีจุดอ่อนว่าถ้าโค้ดมีขนาดใหญ่ (เช่น เกม) อาจส่งผลต่อประสิทธิภาพโดยรวม (เช่น เฟรมเรตตกลง)

No Description

กูเกิลจึงเปลี่ยนมาใช้วิธีแปลงโค้ดแบบขนาน (concurrent compilation) แทน ทำให้ประสิทธิภาพโดยรวมของการประมวลผลดีขึ้นเพราะไม่ต้องรอกัน

Tags:
Node Thumbnail

ข่าวนี้ต้องย้อนกันไกลหน่อยนะครับ เริ่มจากปี 2010 Facebook เปิดตัว HipHop for PHP ตัวแปลภาษา PHP เป็นไบนารีเพื่อเร่งความเร็วของ PHP โดยจะแปลงเป็น C++ ก่อนแล้วค่อยคอมไพล์ปกติอีกครั้ง

Tags:
Node Thumbnail

ไมโครซอฟท์โชว์เดโมของ Project N ซึ่งเป็นเทคโนโลยีด้านคอมไพเลอร์ตัวใหม่สำหรับแพลตฟอร์ม .NET

ในเดโมของไมโครซอฟท์ได้ลองคอมไพล์แอพ FreshPaint บน Windows Store ด้วย Project N และได้ผลว่าแอพทำงานได้เร็วกว่าเวอร์ชันปกติ เทคนิคเบื้องหลัง Project N ไม่ใช่การทำ JIT (just-in-time) แต่เป็นการ optimization (ที่ไม่ได้เปิดเผยรายละเอียดว่าทำอย่างไรบ้าง)

Project N มีเป้าหมายเพื่อให้แอพ .NET/C# บน Windows 8 และ Windows RT ทำงานได้เร็วขึ้น และน่าจะเปิดให้คนทั่วไปใช้งานได้ในปีหน้า 2014

ที่มา - ZDNet

Tags:
Node Thumbnail

โครงการคอมไพเลอร์โอเพนซอร์ส GCC กำลังหารือกันว่าจะปิดการทำงานของคอมไพเลอร์ภาษา Java (GCJ) เนื่องจากไม่ค่อยได้พัฒนาแล้วในช่วงหลัง (เหตุเพราะงานพัฒนาสาย Java ย้ายไปอยู่ในโครงการ OpenJDK แทน)

ตามแผนของ GCC จะไม่ทิ้งคอมไพเลอร์ภาษา Java แต่จะปิดการทำงานมาเป็นดีฟอลต์แทน (รวมถึงไม่คอมไพล์ GCJ ในขั้นตอนของการคอมไพล์ GCC ทั้งชุดด้วย) และปรับสถานะของคอมไพเลอร์ Java เป็น maintenance mode ไม่ใช่ active development

ในโอกาสเดียวกัน ทางโครงการ GCC ยังหารือว่าจะยกระดับของคอมไพเลอร์ภาษาใดมาเป็นเปิดใช้โดยดีฟอลต์แทน ข้อเสนอมีทั้งภาษา Go และ ADA ครับ

ที่มา - Phoronix

Tags:
Node Thumbnail

Android NDK นั้นปกติแล้วจะมาพร้อมกับ GCC สำหรับการคอมไพล์โค้ดลง ARM และ x86 แม้นักพัฒนาจะไม่นิยมคอมไพล์แบบ x86 กันนัก เพราะเครื่องที่ใช้งานได้มีน้อย แต่อินเทลก็ยังคงพยายามดึงให้นักพัฒนาหันมาคอมไพล์โค้ดเป็น x86 เพื่อให้ได้ประสิทธิภาพสูงสุด และมีปัญหากับชิปของอินเทลให้น้อยลง

ล่าสุดอินเทลปล่อย Intel C++ Compiler v13.0 for Android ออกมาให้ใช้งานได้ฟรี โดยใช้แทนที่คอมไพล์เลอร์ใน NDK ได้เลย โดยปกติ Intel C++ Compiler นั้นราคาค่อนข้างแพง ตัวเริ่มต้นนั้นอยู่ที่ 699 ดอลลาร์หรือประมาณสองหมื่นกว่าบาท อินเทลระบุว่าช่วงให้ดาวน์โหลดฟรีนี้จะจำกัดเฉพาะช่วงแนะนำเท่านั้น

Tags:
Node Thumbnail

Nvidia ประกาศเข้าซื้อบริษัท The Portland Group หรือ PGI ผู้ผลิตคอมไพล์เลอร์สำหรับคอมพิวเตอร์ประสิทธิภาพสูง และเป็นผู้สร้างส่วนขยายให้ภาษา Fortran เข้าใช้งาน CUDA ได้ โดยเป็นการเข้าซื้อมาจาก STMicroelectronics โดยไม่เปิดเผยมูลค่า

ทีมซอฟต์แวร์ของ Nvidia มีจำนวนคนอยู่แล้วประมาณ 2,400 คน แต่ยังไม่มีซอฟต์แวร์สำหรับคอมพิวเตอร์ประสิทธิภาพสูง การซื้อครั้งนี้เป็นการรวมทีมเข้ามาทำงานร่วมกัน เพราะ Nvidia เองก็บุกตลาดอย่างหนัก และมีลูกค้าเป็นคอมพิวเตอร์ในรายการ Top 500 มากขึ้นเรื่อยๆ

สำหรับ ARM นั้น PGI มีประสบการณ์ทำคอมไพล์เลอร์ให้ ARM แต่ Nvidia ระบุว่าจะไม่มีการเปิดเผยแผนการสินค้าใดๆ

Tags:
Node Thumbnail

นักพัฒนาของ LLVM คู่แข่ง GCC (อ่านรายละเอียดได้ในข่าวเก่า) ได้ประกาศเปิดตัว LLVM 3.3 ที่รองรับภาษา C++11 อย่างเป็นทางการ โดย frontend ของ LLVM ที่ใช้คอมไพล์ภาษา C/C++ ชื่อ Clang จะรองรับ AArch64 (ชื่อในกลุ่ม open-source ของ ARMv8), AMD R600 GPU, S390 และบางส่วนของ IBM System Z โดยนักพัฒนาได้กล่าวว่า LLVM 3.3 นี้เป็น "คอมไพเลอร์ที่รองรับมาตรฐาน C++11 รวมทั้งไลบราลี่สำคัญ ๆ ของ C++11 อย่าง std::regex"

Clang ยังมีเครื่องมือ C++11 migration เพื่อช่วยนักพัฒนาอัพเกรดโค้ดของพวกเขาเพื่อรองรับมาตรฐานใหม่อีกด้วย

Tags:
Node Thumbnail

GCC เริ่มพัฒนาด้วย C++ มาตั้งแต่กลางปี 2010 ระหว่างนี้กระบวนการพัฒนาเกิดขึ้นหลายอย่าง โดยเฉพาะกำหนดมาตรฐานว่าต้องใช้ฟีเจอร์ใดของ C++ บ้าง

ในแง่ของผู้ใช้งานคงไม่ต่างอะไรนัก แต่ฟีเจอร์อย่างการจัดการหน่วยความจำตาม scope ของโค้ด จะช่วยให้ตัว GCC คืนหน่วยความจำเร็วขึ้น ทำให้การใช้หน่วยความจำลดลง

ฟีเจอร์ของ GCC 4.8 ใหม่ที่สำคัญ เช่น

Tags:
Node Thumbnail

อินเทลอัพเดตคอมไพเลอร์ ispc ที่ออกแบบมาเพื่อการคอมไพล์ให้ใช้ชุดคำสั่งแบบ SIMD ให้สามารถทำงานบนชิป Xeon และ Xeon Phi ได้

ispc เป็นคอมไพเลอร์ภาษาพิเศษโค้ดคล้ายกับภาษา C แต่การเรียกฟังก์ชั่นจะเป็นการแตกข้อมูลออกเป็นชุดๆ เพื่อรันบนชุดคำสั่งแบบเวคเตอร์ เช่น ชุดคำสั่ง SSE หรือชุดคำสั่ง AVX โดยอาศัยการ "คลี่" ลูปออกมา

Tags:
Node Thumbnail

Blognone เคยลงข่าวของ IonMonkey : Javascript Engine ตัวใหม่ของ Firefox ไปนานจนหลายๆ คนลืมไปแล้ว (ผมก็ลืม) วันนี้มันเริ่มถูกใช้งานจริงใน Firefox 18 ที่ยังมีสถานะเป็น nightly อยู่

Tags:
Node Thumbnail

ข่าวนี้เกี่ยวข้องกับซอฟต์แวร์ด้านคอมไพเลอร์ ศัพท์เทคนิคเฉพาะทางจะเยอะหน่อยนะครับ

เกริ่นก่อนว่าผู้อ่าน Blognone คงคุ้นเคยกับชื่อ GCC หรือ GNU Compiler Collection ซึ่งเป็นชุดซอฟต์แวร์ด้านคอมไพเลอร์สำหรับภาษาโปรแกรมต่างๆ มากมาย (ตอนแรกเน้น C/C++ เป็นหลัก) มันถูกสร้างขึ้นภายใต้โครงการ GNU และใช้สัญญาอนุญาตแบบ GPL ปัจจุบันมันเป็นคอมไพเลอร์มาตรฐานบนแพลตฟอร์มลินุกซ์และซอฟต์แวร์โอเพนซอร์สต่างๆ

แต่ GCC ไม่ใช่คอมไพเลอร์แบบโอเพนซอร์สเพียงโครงการเดียว เพราะมีโครงการคู่แข่งที่มาแรงในช่วงหลังคือ LLVM ซึ่งพัฒนามาจากโครงการวิจัยของมหาวิทยาลัย University of Illinois at Urbana–Champaign ในปี 2003

Tags:
Node Thumbnail

เทคโนโลยีการพัฒนาซอฟต์แวร์บน GPU นั้นทุกวันนี้มีสองค่ายใหญ่คือ CUDA ของ NVIDIA กับ OpenCL ที่ค่ายอื่นๆ เช่น อินเทล และเอเอ็มดี ใช้งานร่วมกัน ความเสียเปรียบอย่างหนึ่งของ CUDA คือมันเป็นเทคโนโลยีปิดของ NVIDIA เองทำให้ผู้ผลิตรายอื่นๆ ไม่สามารถเข้ามาใช้งานร่วมด้วยได้ และทาง NVIDIA ก็เลือกแก้ปัญหาด้วยการเปิดชั้นคอลไพลเลอร์ด้านล่างที่เป็น LLVM ออกมา

Tags:

C++ เป็นภาษาที่นับว่าอยู่โลกธุรกิจมาได้อย่างยาวนาน โดยมีการประกาศมาตรฐานของภาษาออกมาเมื่อปี 1998 และได้รับการปรับปรุงในปี 2003 ในมาตรฐาน ISO/IEC 14882 แต่มาตรฐานใหม่ คือ C++0x (อ่านว่า ซี-พลัส-พลัส-โอ-เอ็ก) ก็ได้รับการโหวตเข้าสู่สถานะ Final Draft International Standard (FDIS) ซึ่งเป็นสถานะสุดท้ายก่อนจะประชุมลงมติเพื่อประกาศมาตรฐานแล้ว

ทีมงานคาดว่าจะมีการรายงานปัญหาในตัวมาตรฐานอยู่บ้าง และต้องมีการแก้ไขก่อนการประชุมครั้งต่อไป อย่างไรก็ตามการลงมติเข้าเป็นสถานะ FDIS ได้นั้นก็คาดว่าปัญหาจะน้อยเต็มที และน่าจะประกาศได้ภายในปีนี้จนกลายเป็นมาตรฐาน C++ 2011 ต่อไป

Pages