Skip to main content

Act 3 Scene 1

Wait, what?

The last post ended with completing Act1 Scene1, with hints to Act1 Scene2. Yeah, a lot happened since.

Goblin Camp

Some of the last work in the blog was about the Goblin Camp, a revival project of an abandoned source code, which in turn was inspired by a great game, Dwarf Fortress. Since then, I learned more about data structures, and object design patterns. With each enlightenment in programming, I was more and more aware why this code was abandoned multiple times by different groups. I became one of them. This doesn't mean my goal of marrying parallel programming with the great game concept is abandoned: ever since the last communication, I also took a course on GPU programming, and it is giving me new ideas and goals. It just would not be happening with the existing Goblin Camp. More on this in the future. And this concluded my Act 1.

How about Act2

My Act 2 began with my Coop placement at Fundserv. It was truly a learning experience, in the best sense of the word. I feel spoiled with experiences I only hope I may continue to experience as I continue my journey as a software developer. I was extremely lucky to have entered the company when it was going through a massive modernization process. New infrastructures were being set in place that allowed for a mature work-from-home environment; this played a pivotal role in the company's continued success during COVID-19 crisis. Not only that, I was placed with a team in charge of spearheading the standardization of the new software development methodology including creating a new CI/CD pipeline and splitting monolithic code base into multiple micro services, to name a few. My job was to learn, apply, and document, which gave me a wealth of hands-on interaction with multiple products that would later escalate to production. My code, in production. It also meant I would create knowledge transfer documents and prepare KT sessions for other developers to introduce the new methodology, although regrettably, due to COVID-19, the KT session was postponed past my contract period. Still, I gained knowledge enough to stand before other programmers to share it. I very much felt that I was part of a development community. I was growing up as a programmer. The completion of my two successful Coop semesters at Fundserv also meant the end of my Act 2.

Act 3 Scene 1: Google Summer of Code

Just as my Act 2 completed, I was fortunate enough to get accepted by Google Summer of Code 2020. I will be working with GCC to begin the implementation of OMPD. This would allow GDB to debug OpenMP code in a more sensible manner that better reflects the OpenMP standards. I am very excited to be working with C/C++ codes, and I look forward to writing more about it as I progress through the project.

Comments

  1. Wow, that looks really interesting. Good job. Keep up the good work.

    ReplyDelete

Post a Comment

Popular posts from this blog

Creating a patch for GNU GCC using Git

Overview and Target Audience The GNU GCC project followed a blend of a traditional method with contemporary git tools when it comes to contributing code, making the experience unique from some other, git-based projects. This blog post will explore different aspects of the process, helpful commands, and various scripts that would make the experience more pleasent for new contributors. While this blog aims to help new contributors get acustomed to the GNU GCC code culture and make contributing easier, it must be stressed that this is not in any way in-depth exploration of the process. This should help you put your first foot forward; the community will help you take the rest of the steps from that point on. This post also assumes the user is in a POSIX environment (e.g. Linux, FreeBSD). Git and GNU As stated in this phoronix post , GNU GCC made a full transition to git early 2020. As of this writing, the community seems to be adjusting to the new tools. GNU GCC hosts its own git serve

Setting up IRC

About IRC Internet Relay Chat was once the most popular real-time communication method that uses computer for a large spectrum of community groups. While it has largely been supplanted by more contemporarly methods for most people, IRC is still a prefered means of communication among older software projects like GCC. The Client As an old technology that is also very favored among programmers, IRC has many clients with different flavors, from GUI to CLI to headless. As a linux user with strong attraction to tmux, I chose weechat. Depending on your distro or OS, install your client first. Configuring Weechat I will be using GCC channel in OFTC server as the example. How are we configuring this? While Weechat has a configuration file, Weechat officially advises against using the file to configure the program behavior. Instead, it promotes `/set` dialog within the client to set the proper configuration. Connect to server Let's first connect to server. The `#gcc` channel is host

Debugging with GCC: GIMPLE

GCC and GIMPLE One of the very first thing GCC asks the GSoC applicants to do, even before writing the application, is to try various different debugging techniques using GCC. I was personally familiar with the basic, compile-with-g-flag-and-use-gdb method. Turns out, there's more: GIMPLE. A Simple but Non-trivial Program Problem Description The instruction asks to compile a simple but non-trivial program with some flags that generates debugging information: -O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all . Because I was keep reading on ways to debug GCC just prior to the statement, I immediately thought "GCC" and tried make -j8 CXXFLAGS="-O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all" . This was a mistake: turns out, GCC can't be compiled with those flags. Thankfully, GCC developers have a very active IRC channel for me to signal SOS. Resolution jakub and segher were quick to respond to my call for help. jakub: it isn't meant that y