Changes between Version 17 and Version 18 of LanguageNotes


Ignore:
Timestamp:
Jun 5, 2009 5:34:14 PM (15 years ago)
Author:
Anya Helene Bagge
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LanguageNotes

    v17 v18  
    11= Language Notes =
     2
     3(Anya's comments in '''bold''')
    24
    35 * [#Whatparametersareforonaconcept What parameters are for on a concept]
     
    277279 * Having a clean system of module where we can re-export what we import. Usually we need two kind of import keywords.
    278280
     281'''Importing a module ''does'' recursively import its dependencies, though those dependecies aren't imported into the local namespace, i.e., you can't refer to them by short names without importing the module in the current module. But imported names aren't re-exported as short; this is certainly useful sometimes (making 'bundle' modules)'''
     282-- Anya
     283
    279284== Choose what the internal representation for polymorphic types ==
    280285
     
    283288to take forall, since it is better to extend with concepts. Whereas
    284289patterns are hard to extend with requirements.
     290
     291'''Attaching to the definition is bad, and inconvenient. Patterns are very
     292convenient to work with in overload resolution. Putting concept requirements in the
     293pattern variables could solve the problem:'''
     294
     295{{{
     296function Ring.T foo(Ring.T a);
     297}}}
     298
     299'''This would make semantic analysis of foo's definition trivial.'''
     300
     301-- Anya
    285302
    286303== Fix the template system ==
     
    322339Which give me the opportunity to give a model as parameter.
    323340
     341'''Specialisation is nice and useful, but has low priority'''
     342
     343-- Anya
     344
    324345== Concepts ==
    325346
     
    332353
    333354There will be also a lot of work a posteriori on inlining code.
     355
     356'''BTW, there is an inliner available for both functions and procedures'''
     357-- Anya
    334358
    335359== A syntax that works with dependent types, overloading, templates and concepts ==
     
    469493}}}
    470494
     495
    471496-- Valentin
     497
     498'''Note that a struct isn't just a set of operations to manipulate objects -- you can treat it like that when you're programming (an ''abstract data structure''), but a concrete data structure also has things like size, layout, alignment requirements, ...'''
     499
     500-- Anya
    472501
    473502== Yet another core language ==