gsoc-2024-ideas (as of Tue Jan 30 14:40:41 PST 2024)

IDEAS FOR PROSPECTIVE CONTRIBUTORS


FXR/LXR-LIKE TREE COMPARISONS FOR PLAN 9

Likely mentor:		Anthony Sorace
Skills:			
Project size:		Medium
Difficulty:		Medium
Expected outcome:	Web application providing a tree comparison

The LXR project has created some very useful tools for cross-referencing different source trees. This idea has been productively expanded by FXR to compare across operating systems (FXR includes various BSDs, Linuxes, and an old Plan 9 tree). As Plan 9 evolves, it would be very useful to tree maintainers to have an easy way to find, track, and explore differences between trees. This project would be to provide tools to scan different source trees (at least the final Bell Labs tree, 9legacy, 9atom, and 9front; possibly Inferno, Plan 9 from User Space, and others) and allow users to see specific changes, perhaps including changes over time.

Your proposal should describe the interface you're thinking about providing (file server? web application?), what you think some of the important issues are, and clearly define the scope of work (for example, will you be doing multi-way diffs, or just 1-to-1 comparisons?). Multiple Plan 9 sites would be happy to host the results of this work.

We estmate ths project at medum size and difficulty for a more conventional FXR-like web-based interface, and a bit harder and larger if you want to define a flesystem-based interface. Your proposal should include a rough outline of your ideas for that part if you intend to include it.

Note that porting the existing FXR or LXR are almost certainly not good starting points.

PROTOFS

Likely mentor:		Skip Tavakkolian, Anthony Sorace
Skills:			C or Go
Project size:		Medium
Difficulty:		Medium
Expected outcome:	9p server

Write a 9P file server that can be instructed to create a file tree and associate each node with external directories, files or processes. A good starting point would be to use the proto(2) format (hence the name) as used by mkfs(8) and others, although there are some obvious useful extensions for this application. Very roughly, the prototype file tree instructions might look something like:

	/
		fst/			= /usr/fst/www/
		edit/
			snarf		> /dev/snarf
			paste	< /dev/snarf
		mouse		| fd0rw /dev/mouse

Your application should describe the set of extensions you think would be useful, and ideally your plan for adding those in after first establishing a working base model.

This should be a relatively easy project, although it could be a bit more complex depending on the specific extensions you support.


Last modified Tue Jan 30 14:40:41 PST 2024 [ Current version | Changelog | Create a new page ] About the server | Powered by Plan 9