[GSoC 2024]: Implementing Incremental Search [Final Report]

Blog post by calisto-mathias on Sat, 2024-08-24 01:46

Introduction

The goal of this post is to document the changes I’ve successfully made during the GSoC period, the current state of the project, future enhancement goals, and a few other topics. I also want to extend my thanks to the Haiku developers and community for the opportunity to work on this fantastic operating system.

Background

Haiku is a truly innovative operating system. One of its most interesting approaches to a filesystem lies in the fact that it makes metadata a primary characteristic of the filesystem. In fact, this was one of the core features that it carried over from its predecessor BeOS.

[GSoC 2024] Virtio Sound: Final Report

Blog post by diegoroux on Thu, 2024-08-22 18:39

Gerrit Submission.

Check out my final Pull Request here: 8141

Overview

During this GSoC period, I focused on developing the virtio sound driver for Haiku, aiming to enhance its performance as a guest OS in virtualized environments. This journey began with some challenges, for example, initially, I missed a small detail in the driver module path, which prevented the driver from loading.

One of the significant setbacks, I had, was understanding hmulti_audio. With little to no documentation available, it felt like working with a black box. I had to dive into existing audio drivers to piece together how things worked, but even then, some aspects remained hidden to me.

[GSoC 2024] Hardware Virtualization: Final Report

Blog post by dalme on Wed, 2024-08-21 00:00

Project overview

QEMU is a virtual machine which allows running an operating system inside of another. While there already is a Haiku port, it currently does not support any acceleration system through native virtualization (through Intel VT-x and AMD SVM.) This makes it too slow for many uses. This project aimed to bring hardware virtualization to Haiku by porting NVMM, a hypervisor that already has QEMU support, into Haiku from DragonFlyBSD. The project goals (as included on the proposal) were:

[GSoC 2024] Porting WebKit2 Final Report

Blog post by Zardshard on Tue, 2024-08-20 10:55

The goal of this document is to be an overview of everything I did during GSoC. It should be readable even if you haven’t read any of the previous blog posts and don’t know much about Haiku or WebKit (I hope I succeeded!).

First, some background. Haiku’s native browser is WebPositive.

Screenshot of WebPositive

WebPositive’s code mostly deals with the user interface. It uses our fork of WebKit, HaikuWebKit, to actually render the web pages, run JavaScript, process input, and so on. WebKit (and, by extension, HaikuWebKit) provides two API versions: WebKitLegacy, and WebKit (aka WebKit2). Unfortunately, we are still stuck using WebKitLegacy even though WebKit2 has been out for more than a decade.

[GSoC 2024] Improving the Userland Debugging Experience - Final Report

Blog post by trungnt2910 on Sun, 2024-08-18 00:00

Project overview

A part of Google Summer of Code 2024, this project aimed to improve the userland debugging experience for Haiku app developers, boosting the process of building and porting complex applications.

The first objective was to have a working build of a modern version of GDB running on Haiku x86_64 - the most popular architecture with stable Haiku. Using some ideas from the incomplete recipe for GDB 8.1, I have ported GDB 15.1 to Haiku from the ground up.

[GSoC 2024] Can I get discuss.haiku-os.org to work?

Blog post by Zardshard on Tue, 2024-08-13 08:58

So I’ve implemented mouse support. It also turned out to be really easy to fix text rendering. So, what’s next? Well, some websites like https://discuss.haiku-os.org cause WebKit to crash. This crash also seems to affect other websites. Really, it seems to occur anytime WebKit decides to use multiple bitmaps (actually, in WebKit lingo, backing stores) to render a web page. Rendering a single bitmap is easy, just display it! But when you have multiple, you need to composite them together. It seems like WebKit currently requires EGL and maybe OpenGL to do this.

Haiku Activity & Contract Report, July 2024

Blog post by waddlesplash on Mon, 2024-08-12 23:00

This report covers hrev57802 through hrev57900.

[GSoC 2024] Improving the Userland Debugging Experience - Progress Report #3

Blog post by trungnt2910 on Sun, 2024-08-11 00:00

Project status overview

Completed tasks

The goal of this phase was to stabilize GDB, making it suitable for debugging complex and multi-threaded applications (including most Be API applications).

After clearing the first round of bug reports, the first revision of the GDB package is now online on HaikuPorts.

When attempting to use the published package to work on Debugger, I found a second round of bugs, resulting in the pending second revision of the port. This version of GDB is now stable enough to attach to and debug a copy of itself.

[GSoC 2024] Virtio Sound: Playback showcase

Blog post by diegoroux on Fri, 2024-08-09 22:48

intro

Hello, once again!

vid?

We made it! I previously stated that we had achieved playback, but I never got to show it. So here it is, a short video showing you that playback actually works.

So you don’t have to go and compile it, just to see it on action.

Video

outro

Main functionality is here! So, I believe that it may be time to maybe push into the main branch.

[GSoC 2024] Implementing Mouse Support

Blog post by Zardshard on Wed, 2024-07-31 10:58

Success! Now MiniBrowser displays things once again. Here is MiniBrowser showing https://review.haiku-os.org/

MiniBrowser showing review.haiku-os.org. All the text’s characters are rendered as squares with black borders.

So, yeah, there’s still plenty of work left to do. Text isn’t rendered properly, keyboard and mouse support is missing, the window can’t be resized without MiniBrowser crashing, and it crashes when exited. I’ll take it one step at a time. Let’s make the mouse work! Then I can actually click on stuff. I think implementing that will be straightforward.