Changes between Version 17 and Version 18 of LanguageNotes
- Timestamp:
- Jun 5, 2009 5:34:14 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
LanguageNotes
v17 v18 1 1 = Language Notes = 2 3 (Anya's comments in '''bold''') 2 4 3 5 * [#Whatparametersareforonaconcept What parameters are for on a concept] … … 277 279 * Having a clean system of module where we can re-export what we import. Usually we need two kind of import keywords. 278 280 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 279 284 == Choose what the internal representation for polymorphic types == 280 285 … … 283 288 to take forall, since it is better to extend with concepts. Whereas 284 289 patterns are hard to extend with requirements. 290 291 '''Attaching to the definition is bad, and inconvenient. Patterns are very 292 convenient to work with in overload resolution. Putting concept requirements in the 293 pattern variables could solve the problem:''' 294 295 {{{ 296 function Ring.T foo(Ring.T a); 297 }}} 298 299 '''This would make semantic analysis of foo's definition trivial.''' 300 301 -- Anya 285 302 286 303 == Fix the template system == … … 322 339 Which give me the opportunity to give a model as parameter. 323 340 341 '''Specialisation is nice and useful, but has low priority''' 342 343 -- Anya 344 324 345 == Concepts == 325 346 … … 332 353 333 354 There 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 334 358 335 359 == A syntax that works with dependent types, overloading, templates and concepts == … … 469 493 }}} 470 494 495 471 496 -- 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 472 501 473 502 == Yet another core language ==