Log of the #nice channel on irc.freenode.net

Using timezone: Central European Time
* bonniot joins11:53
<CIA-3>03bonniot * 10Nice/Makefile: 15:48
Properly report problems with finding Ant in the classpath and ignore the error
now that we also build Nice sources using Ant.
* arjanb joins16:04
<bonniot>do you have exams these days?16:07
<arjanb>friday and next week
<bonniot>what subjects?16:08
<arjanb>something about hardware, statistics, ...16:10
<bonniot>not semantics or compiler construction? ;-)16:11
<arjanb>no :( i'm not happy with the content of my study16:13
<bonniot>what year are you in?
<arjanb>just been to the new study advisor and complained a bit16:14
<bonniot>one can never have only courses you like the best, but it's good if you can get at least a few...
and what did he say?
<arjanb>that it probably won't change16:15
i'm doing bits allover the first 3 years now
and i'm getting behind16:17
<bonniot>did you check other unis?16:18
<arjanb>that's not an option atm16:19
have to try to get the bachelor paper first and then i'll see16:20
i'm thinking about doing a free project on a Nice related thing in the next term16:27
<bonniot>sounds cool!16:28
what is a free project? it's part of the studies?
<arjanb>there is no place anymore in the study for a free project16:32
<bonniot>so what does your idea mean?16:33
<arjanb>a free project is just something related to your study you can do where you can get a mark and some support from local people16:36
if i can do it before the summer the topic will be local type inference
<bonniot>good. so they support it
<arjanb>well i have to find someone with the time and knowledge to do that16:39
<CIA-3>03bonniot * 10eclipse/src/nice/eclipse/core/builder/NiceBuilder.nice: 16:54
Find the Nice runtime in the plugin, since the default location code
cannot work with Eclipse 3.0, since plugins are now inside OSGi bundles.
03bonniot * 10eclipse/src/nice/eclipse/core/builder/NiceBuilder.nice: Use the Nice compiler as a Nice package, not as a Java package!17:08
<arjanb>my idea is to create an prototype with an simplified typesystem but with a similar interface17:28
<bonniot>wouldn't that duplicate efforts?
<arjanb>yes but i think it's complex enough without having to work with mlsub17:31
<bonniot>what would be the specific part?17:33
<bonniot>what would be the project? what would be complex enough?17:34
<arjanb>finding an algorithm that yields the most precise type of local variable at any point of the code17:37
<bonniot>i see17:38
<arjanb>i don't think it's useful to learn the details of mlsub for this
<bonniot>no, but is it needed?17:39
<arjanb>i don't know17:40
<bonniot>i don't think the algo depends on the specific type system17:41
you probably need a predicate t=lestCommonSupertype(t1,t2)17:42
that should be all
for instance:17:43
let x = e1;
if (...) x = e2; else x = e3;
(was var, not let)
then the type of x is now leastCommonSupertype(type(e2), type(e3))17:44
btw why it's called union atm?
<bonniot>that's an equivalent term
because the set of all values that have type t is the union of the sets of all values that have type t1 and t217:45
<arjanb>i would call that intersection17:46
or is the naming in set theory different than in type theory17:49
<bonniot>as i said, if you look at the set of values it's an union
ot me a value x has type union(t1, t2) if it has either type t1 or type t217:55
and value x has type intersection(t1, t2) if it has both type t1 or type t2
then in our case it's the union
<arjanb>i see17:56
<bonniot>type terminology can be confusing, especially when dealing with polymorphic types, and because not everybody uses the same definitions...
should instanceof have a special operation?17:59
<arjanb>now the type get replaced at an succesfull instanceof test18:01
<arjanb>interface X {} interface Y {} class A implements X,Y {}18:02
void foo(X x) {
if (x instanceof Y) {
here you know x has both type X and Y 18:03
<bonniot>yes, but not that it's an A
wdym by special operation?18:04
<arjanb>both type X and Y is different than a union18:05
<bonniot>yes. so?
<arjanb>currently there's no way to do this18:06
anyway it's rarely useful to do this instead of replacing the type18:11
<bonniot>x has type Exists T, T <= X, T <= Y . T
or union(X,Y)18:12
but you cannot write either in ML-S
it would be possible to support union(X,Y)
but yes, it does not sound urgent18:13
<arjanb>union(X,Y) has a less specific type than either X or Y right?18:15
<bonniot>right, it should be inter(X,Y) in this case :-)18:16
<arjanb>'and' and 'or' is less confusing than union and intersection18:24
when a local variable has user specified type then at any place that variable has a type <= specified type18:25
<bonniot>yes, hopefully :-)18:26
<arjanb>without a user type there should exist an type that is supertype of all types that variable locally has18:27
sounds that reasonable?
<arjanb>var x = "abc";18:29
x = 5;
i think this should be an error
it is already:-)18:30
<arjanb>yes but currently aren't the next assignments taken in account18:31
i'm not sure if one should accept assignments to supertypes of the initial type18:33
it can be practical, but it could also hide bugs
<arjanb>i think most of these potential bugs will be catched when calling some method18:36
and it happens often that the first type is too precise18:37
<bonniot>right. you won't catch the bug when calling something generic like toString18:38
or some Java code taking Object
it's also that the rules become more complex18:39
<arjanb>i don't think so18:40
<bonniot>that it's more complex?
<arjanb>it just generalizes what happen with the nullness part of the type
<bonniot>no, if you declare18:41
var x = "...";
then you cannot assign null to it
<arjanb>var x = maybeFoo();
if (x == null) x = new Foo();18:42
<bonniot>that's only making the type of x more precise
!Foo <: ?Foo18:43
<bonniot>the thing that's simpler is that now you can look at the declaration, and know that the variable is always going to have at least this type18:44
but yeah, maybe it makes sense to do full inference when the type was not specified, and report an error if it was an you try to assign a supertype18:45
<arjanb>true but i think it's useful to experiment with this
<arjanb>*away for meal*18:47
<CIA-3>03bonniot * 10Nice/lib/emacs/nice-mode.el: Make the Emacs mode support whitespace checking.18:58
03bonniot * 10Nice/NEWS: Eclipse 3.0 working...19:11
<Bluelive>tried the bundle ?19:21
<CIA-3>03bonniot * 10Nice/debian/changelog: 0.9.719:27
<bonniot>Bluelive: i saw you posted to lang-smiths19:35
i thought you might need to send some more specific ideas if you want to start a discussion19:36
* bonniot leaves19:59
* bonniot joins22:36
* ChanServ leaves22:47
* ChanServ joins22:50
* ChanServ leaves23:56
<Bluelive>im not very good with that
could you give an example ?
* ChanServ joins23:57
<bonniot>with what?00:03
<Bluelive>what would trigger an discussion?00:04
dunno ;-)
it's a black art ;-)00:05
<arjanb>what's your reason to start a new language00:07
<Bluelive>pretty depressing allthis ;P00:08
<arjanb>it's hard to promote your thing with so many concurrents00:11
<Bluelive>its more that i keep digging an ever increasingly deep hole for myself with this00:13
only reponse i get these days is: how does it further your study
<bonniot>there is study-for-the-diploma and study-for-knowledge, which are not exactly the same ;-)00:14
<Bluelive>while infact im doing it to avoid studying because it is going nowhere00:15
<arjanb>sounds familiar
<Bluelive>heard you say similair things :)00:16
<arjanb>learning more things outside the study is quite demotivating00:17
<Bluelive>i view it a bit more fundemental00:18
studying is a means
not a goal
but it used to be for me
and currently i have no goal
<bonniot>why is it demotivating?
<Bluelive>well it means your spending 5 years and thoudsands doing something thats not rewarding00:19
<bonniot>"learning more things outside the study is quite demotivating"00:20
<Bluelive>well learning needs to lead somewhere
but the more you learn the more you dont know
guess i just miss the sense of duty00:23
<arjanb>learning more outside the study means that the only reason for the study is getting some paper
<bonniot>it could be that both are useful, just complementary00:25
<Bluelive>well i just want to do something that has (more) meaning00:28
something i like, something other people like and if possible pays enough to make a living00:30

Generated by Sualtam