Custom Query (4 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Topic: Pugs (4 matches)

Ticket Summary Status Owner Priority Created Modified
#61 Pugs - Fast Mutable Collection Types. new none 8 years 8 years
Description

Currently, Haskell lacks production-grade bindings for mutable data structures, and has to rely on immutable data structures for storage.

For example, a sparse mutable array may be emulated by (IORef IntMap), and a mutable set may be emulated by (IORef Set). However, these data structures have to be reconstructed almost from scratch for each insertion/deletions, resulting in low performance.

The Pugs project implements Perl 6 on top of Haskell; we would need fast implementations for mutable sparse array, mutable ordered mappings, mutable resizable byte-buffers, as well as mutable string-indexed Hash tables.

One approach is to write a binding to Judy (judy.sf.net) or other C-based libraries, and present an API conformant to the existing Haskell libraries (e.g. MArray).

The result of this effort will be reusable to other Haskell projects as well.

Interested Mentors

  • Audrey Tang (audreyt) <audreyt@…>

Interested Students

  • Caio Marcelo (cmarcelo) <cmarcelo@…>
  • David Buchman (daveman) <david.buchman@…>
#62 Pugs - Embedding Interface new none 8 years 8 years
Description

Pugs is a Perl 6 implementation; as such, it can be used as a dynamic scripting language for Haskell- and C-based applications, for example Yi or hIDE.

Currently, Pugs has support for "Opaque" objects, using existential types that allows the embedder to define coercion functions to convert from/to Perl 6 values. We also have a C-based embedding API that provides "eval" and "apply" of Perl 6 code, based on FFI for foreign export.

However, the embedding API for running and introspecting the interpreter is currently ill-defined; coming up with a sane API for them will allow Perl 6 be easily embedded as a Haskell-native scripting language, as well as reusable for C-based applications such as Emacs or Vim.

Interested Mentors

  • ?

Interested Students

  • ?
#63 Pugs - Debugger and Profiler new none 8 years 8 years
Description

Pugs is a Perl6 implementation in Haskell, with a reference interpreting environment for the Perl 6 AST.

However, although Pugs internals support pluggable evaluators, only one exists to date: it performs straightforward tree-reduction rules on the Perl 6 AST, optionally with tracing information.

Implementing an alternate evaluator with a minimal small-step debugger can simplify Perl 6 programming a lot; the same infrastructure can be used to write a simple line- or function-based profiler as well.

Interested Mentors

  • ?

Interested Students

  • ?
#68 Pugs - Foreign Function Interface new none 8 years 8 years
Description

Pugs is a Perl 6 implementation written in Haskell.

Currently Pugs has support for using Perl 5 and Haskell libraries, but not for other foreign languages like C.

Implementing the ability to use C libraries with Pugs would open up new possibilities in Perl 6 programming.

Interested Mentors

  • ?

Interested Students

  • ?
Note: See TracQuery for help on using queries.