GSOC2010/Mentor Summit notes

Jump to: navigation, search

These notes are as recorded by Ben Allan and Krishnan Chittur. For discussion, please use the 'discussion' page (see tabs above).

Work topics:

Text-only ascend

  • Stripping down
    • First revive tcl
      • Identify new functionalities to preserve from JP python and downport to C.
      • Then separate C functionality from Tcl wrapping so that all swig bindings are possible
      • Documentation project on existing guis
    • Core that would support some common windows scripting languages, java, c#, c++
    • Core to support arbitrary scripting
    • Data table output definitions
    • Gui-free plot generation that isn't as hairy as gnuplot/matplotlib in dependencies; spew postscript? xfig? svg? CSV? ooffice?
    • Openoffice data file output
  • html-compatible interface


  • web uis
    • javascript toolchain based?
    • ajax/flash/shock...
  • cocoa/gnustep?
  • All need cleaner C core.


  • Integrated windows distribution based on stripped system
    • Unless python becomes exceedingly build portable suddenly
    • Native compilation, not unix emulation

More teaching models

  • ASEE 10 teaching problems

Refactoring/maintenance/testing tooling

  • ...

"Next external dollar for high impact" wish list

  • If we could write a grant to someone for
    • education
    • science
    • engineering
  • tool support, what on earth would it look like (in outline?)

The ascend book(s) contain a lot of nice core lessons about writing equations and models of the natural (at least newtonian) world. They are not highly accessible. Is there an educational mission opportunity here? E.g. units are fundamentally simple conceptually, but most people never even know they exist and most engineers never really "get it" about units until grad school or professional experience emphasizes them. eg adding apples and oranges: can't do it unless you convert both fruits to mass or volume or 'fruit' first.

Multi-language worlds around ascend core

  • SWIG has a lot of other interface languages these days, including C/C++.

Modern processor support

  • Multithreading instances
  • Multithreading solvers
  • GPU-accelerated solvers

Integration with pde packages (OpenFOAM)

ABI for ascend

  • C in a style extremely friendly to wrapping tools.
  • Ascend ABI should not expose symtab entries as char* equivalents.
  • memory that leaves a library must be either
      • const with a very, very well defined (and longish) lifetime.
      • supplied by the caller and only (re)initialized by the library.
      • strictly stack.
  • No macro-defined functions.
  • No renaming functions across versions.
  • No changing argument interpretation across versions.
  • Think just add new...
  • Anything truly deprecated becomes a loud compilation warning and an indirect to an exception generator.
  • Debugging support: unwind a C/python/java stack at the c level.