Fetching the latest programs, projects, and workspace data.
Find open source projects actively accepting contributors. Search repositories, filter by program milestones, difficulty tags, or tech stack.
Use our Orbit AI Matcher to find out! Get instant matching scores based on your developer skills, preferred frameworks, and contribution experience.
Convert your selected open-source project into a winning GSoC, LFX, or Outreachy application using Proposal Studio.
The Chrome DevTools Protocol (CDP) serves a variety of automation use cases by providing programmatic access to Chrome. These include data collection, website testing, form submission and PDF generation. This project aims to address the absence of an actively maintained client library for Haskell, leveraging its type system to provide a strongly typed interface for utilizing Chrome.
Currently LFortran requires that all function parameters to be typed. This makes implementing algorithms supported by many types, tedious. This project will implement generics in LFortran using the same design as C++ 20 concepts for type restrictions. A previously proposed notation will be used. The implementation will be done completely in the ASR level. (Abstract semantic representation). It will introduce a new data type that stores data types (type) and will use it to generate concrete functions from generic functions.
<p>The main task of this project is the addition of a <code>SPECIALIZABLE</code> pragma to GHC, that will have the effect of exposing an unfolding of the marked function for the explicit purpose of specialization of the call sites. A recursive/transitive variant may also be implemented. Any remaining time will be dedicated to other improvements to GHC</p>
This project aims to enhance the capabilities of neural-fortran, a parallel Fortran framework for deep learning, by implementing additional optimization algorithms. While the framework currently supports training and inference of dense and convolutional neural networks using stochastic and mini-batch gradient descent optimizers, more versatile learning and training from a broader range of problems and datasets require the use of other optimization algorithms such as RMSprop, Adam, and others commonly used in popular deep learning frameworks like Keras. The project will also require work on implementing, documenting, and testing these optimizers, which will broaden the applicability of neural-fortran and allow it to be used for a wider range of deep learning tasks. The successful implementation of these optimization algorithms will provide users with more flexibility and choice when training their models, ultimately improving the performance and capabilities of neural-fortran.
<p>Add support of deprecation pragmas within module exports. This would ease the transition between different versions of the software by warning the developers that the functions/types/classes/constructors/modules that they are using are deprecated.</p>
This project aims to address the lack of a modern, platform-agnostic graphics library for Fortran by designing and implementing a graphics canvas API along with basic graphics classes and multiple backend implementations. The plan involves creating tools for 2D graphics primitives such as points, lines, and brushes, as well as designing an abstract graphics canvas API. This API will provide a unified interface for interacting with various backend implementations.
<p>Hackage have a dedicated Builder application which builds the package, documentation and report same to the hackage server. While this information provided is limited, Hackage and builder are in a perfect position to extend it and provide additional details like Code Coverage, Test Report.</p> <p>The main objective of this project is to make these pieces of information available about a package and provide this information through badges. These Badges will be generated dynamically with the current stats.</p> <p>This project also aims to fix various issues of the Builder and add a new feature to hackage which will let maintainers trigger a rebuild in case they feel build failed due to a problem from our side.</p>
<p>A collection of small to medium length tasks which will improve the Haskell editor tooling experience, as a continuation of my work on GSOC18 and HSOC17.</p>
<p>In recent years, several works (Weirich et al., 2017; Eisenberg, 2016; Gundry, 2013) have proposed to integrate dependent types into Haskell. However, compatibility with existing GHC features makes adding full-fledged dependent types into GHC very difficult. Fortunately, GHC has many phases underneath so it is possible to change one intermediate language without affecting the user experience, as steps towards dependent Haskell. The goal of this proposal is the replacement of GHC’s core language with a dependently-typed variant.</p>
<p>"ghc-debug" is a heap profiler tool for GHC that pauses the current program and lets you run your own custom analyses on the heap. My proposal is to make it possible to easily convert the output from common forms of analyses (censuses, histograms, and graphs) into visualizations.</p>
<p>While mainly used in data science, Jupyter Notebook’s interactivity makes it a great tool for teachingand learning new concepts and programming languages. The IHaskell kernel allows you to use Haskell inJupyter, but some key features like interactive widgets are missing. This can be a huge drawback for datascientists, teachers and learners. For this reason I would like to try to fix the ihaskell-widgets library.</p>
<p>Visual Debugging tools that will allow various ages to interact with and learn visually while tracing their bugs in Haskell</p>
<p>This proposal aims to implement efficiently the quadratic sieve and the general number field sieve in Haskell while producing a mathematically rigorous description of the algorithms.</p>
<p>Neural networks are a powerful tool in machine learning. An integral part of any network is its architecture. However, structuring and comparing new architectures is non-trivial. We describe a toolkit for structuring neural networks that leverages a special class of Naperian functors and functions between them. The explored class admits a canonical traversable structure which allows common neural network constructs, and shows the literal correspondence between higher-order functions and some architectures. We also show our toolkit is compatible with monadic computations necessary for training and evaluation. Our methods allow for expressive, unified, and elegant constructions.</p>
<p>Impement a WebSocket layer to hs-web3 and use this WebSocket Functionality to upgrade the current web3 modules and implement an IPFS-Api module using existing IPFS API services.</p>
<p>Automatic Differentation (AD) is a technique for computing derivatives of numerical functions that does not use symbolic differentiation or finite-difference approximation. AD is used in a wide variety of fields, such as machine learning, optimization, quantitative finance, and physics, and the productivity boost generated by parallel AD has played a large role in recent advances in deep learning.</p> <p>The goal of this project is to implement parallel AD in Haskell using the \verb|accelerate| library. If successful, the project will provide an asymptotic speedup over current implementations for many functions of practical interest, stress-test a key foundation of the Haskell numerical infrastructure, and provide a greatly improved key piece of infrastructure for three of the remaining areas where Haskell's ecosystem is immature.</p>
This project proposes various new features for the haskell language server(HLS). While HLS already comes with the most important ones, a few haven’t been implemented yet. These important unimplemented features of Language Server Protocol(LSP) have to be implemented. Namely, Semantic Highlighting, Folding ranges, Linked editing, Change Annotation, Document links, and Completion / Code Action / Code Lens resolving.
<p>Issue-wanted is a web application focused on improving the open source Haskell community. It does so by centralizing and categorizing GitHub issues across many Haskell repositories into a single location. The current issue-wanted code base is a skeleton project with a list of desired features. Over the three month period, I will build the backend by implementing the GitHub API query functions, database schema, asynchronous worker, API endpoints, and the necessary tests. Many more decisions will be made throughout the process. This proposal covers the features and components that make up issue-wanted, and the different ways they may be implemented.</p>
Haskell Language Server (HLS) currently supports Goto Definition only for symbols defined within a user’s project, making it difficult to inspect implementations of functions imported from external dependencies. This project extends that functionality to third-party libraries by enabling developers to navigate directly to dependency source code from within their IDE. The solution leverages .hie files generated by GHC and indexed via HieDb. During HLS startup, dependency HIE files will be discovered and indexed, allowing symbol lookups to resolve to external modules. When a user triggers goto definition on a dependency symbol, the corresponding source code will be extracted from the HIE file, written to a deterministic location, and opened in the editor. To ensure correctness, a type-level rule system will be introduced to prevent invalid rule execution on dependency files, replacing the current fragile runtime whitelist approach. The project deliverables include: rebasing and stabilizing the existing prototype (PR #3749), implementing a type-safe rule constraint system, ensuring complete rule coverage across file types, improving user experience through automated HIE file generation and indexing, enforcing read-only handling for dependency files, and exploring solutions for supporting boot libraries via prebuilt HIE artifacts. These improvements aim to deliver a robust, maintainable, and seamless dependency navigation experience in HLS.
<p>A graph represents a <em>key structure</em> in computer science and they are known to be difficult to work with in functional programming languages. Several libraries are being implemented to create and process graphs in Haskell, each of them using different graph representation: Data.Graph from <a href="https://hackage.haskell.org/package/containers" target="_blank">containers</a>, <a href="https://hackage.haskell.org/package/fgl" target="_blank">fgl</a>, <a href="https://github.com/patrickdoc/hash-graph" target="_blank">hash-graph</a> and <a href="http://hackage.haskell.org/package/algebraic-graphs" target="_blank">alga</a>. Due to their differences and the lack of a common benchmark, it is not easy for a new user to select the one that will best fit their project. The new approach of alga seems particularly interesting since the way it deals with graphs is based on tangible mathematical results. Still, it is not very user friendly and it lacks some important features like widely-used algorithms or edge labels.</p> <p>Therefore, I propose to develop a benchmarking suite that will establish a reference benchmark for these libraries, as well as to enhance alga’s capabilities.</p>
This project aims to integrate the official GHC/WebAssembly backend into xeus-haskell, a Jupyter kernel for Haskell. Currently, the kernel relies on MicroHs, which, while lightweight, lacks support for the vast majority of the Hackage ecosystem. I will implement a dual-backend architecture by introducing a new C++ bridge and a reactor-model Wasm REPL module based on the GHC API. Key deliverables include: GhcRepl: A GHC-based WebAssembly REPL module maintaining persistent session state. C++ Bridge: A new interface (ghc_repl.cpp) to communicate with the GHC/Wasm runtime via the Wasm C API. Backend Abstraction: A unified virtual interface to allow seamless switching between MicroHs and GHC/Wasm. WASI Integration: A configured browser shim to handle I/O and package database access within JupyterLite
<p>Alga is a library for algebraic construction and manipulation of graphs in Haskell. Currently there are two main goals, as proposed by Mr. Andrey Mokhov, which I would like to work on during the course of the internship. The first goal is to create a proper representation for acyclic graphs and the second goal is to add more graph algorithms to the library.</p>
<p>TidalCycles is an Embedded Domain Specific Language for pattern, in use by 10,000s of musicians worldwide. However it has had little work done on the user interface side; text editor plugins exist for vscode, atom, vim and emacs, but they are all simple wrappers around the ghci REPL. As a result Tidal is difficult to install, with many dependencies (ghc, cabal,libraries, build tools, and the supercollider digital signal processing system and its plugins) which developers may be comfortable with installing, but end-user ‘live coders’ are often turned away by. My idea is to develop the proof-of-concept for a Tidal API and editor plugin that allows new interactions with Tidal, and opens it up to a broader userbase.</p>
hackage-server as of yet does not support more advanced algorithm for sorting relevant packages (at the moment user rating is used), this proposal aims to implement a algorithm similar to the one in crates ("rust hackage"). This would help with finding relevant packages.