IRC Logs for #io Thursday, 2013-11-07

*** hashmal has quit IRC00:22
*** mkroehnert has quit IRC00:35
*** nisstyre has joined #io00:52
jerprologic, it might be cleaner now that i've had some time to think about it, to require a user use a particular trait that provides these methods, and ONLY that trait can provide them. if i define those methods myself, your decorators won't work04:14
jerbut that's just my thought04:14
jerbut i have already admitted my bias to them04:14
prologicso you think implementing attribute lookup and other core object functionality as a trait is okay?04:16
jeri honestly don't think of this as core object functionality, it'd be more of providing a hook into the interpreter that the interpreter only exposes to it04:18
jerit's more of an extension than core behaviour imo04:18
*** nisstyre has quit IRC04:22
prologicwell for example I have a method on the Object type called "primitive" that lets the user hook into the object's internals04:28
prologicthen a bunch of host-written methods on the object for attribute lookups, setting new attributes, etc, etc04:28
prologiccould you elaborate more on how you'd do this better?04:28
jeri'm not entirely sure my way is better... 04:46
jerit's just different04:46
prologicI'd still like to hear it in more detail :)04:58
prologicso I can judge for myself which way to go :)04:59
prologicif you don't mind!04:59
*** gatesphere has quit IRC05:40
*** pchalupa has joined #io08:07
*** hashmal has joined #io08:42
prologicscrew it12:06
prologicI've given up on operator precedence12:06
prologicit's too hard12:07
prologictoo many edge cases and complicated the parsing and lexing too much12:07
prologicIHMO an Io-like language should not have operator precedence as it goes against the grain of the langauge - in order to properly implement it you have to take into account artificial grammar that normally isn't part of the formal grammar12:08
prologicI found in practise that you just end up writing a parser in the lexer just to add ('s and )'s in the right places and then you just run into too many edge cases to handle it in a simple way12:08
*** Thor^^ has joined #io12:15
*** Thor has quit IRC12:21
jerprologic, indeed14:36
*** pchalupa has quit IRC14:59
*** pinupgeek has joined #io16:01
*** pchalupa has joined #io16:48
*** Nisstyre-laptop has joined #io17:13
*** pchalupa has quit IRC17:29
zehlanyone familiar with the inner workerings of source/iovm ?21:16
prologiczehl, jer is :)21:22
prologicbut I'm almost just as familiar with the semantics of Io and langauges like it :)21:22
zehlI'm trying to ascertain the importance of the 'struct IoTag'21:30
zehland what role it plays in the VM21:31
prologicyeah sorry no idea :)21:50
prologicjer will know most likely21:50
prologicif it's semantics I can proably help21:50
prologicI understand a bout 1% of the Io source code21:50
prologicbut 80% of it's semantics21:50
jerah alright21:51
jertag's aren't really required if the C vm was nothing more than a bootstrap. tags aren't used at all in io code (or well they are, but it's one tag for all objects)21:52
jertags really come into play with c functions (io methods written in c)21:52
jerfor instance Object clone21:52
jeror Sequence with21:53
jerif you have a method written in C that could apply to another object, and you did something like: Foo with := Sequence getSlot("with") and tried to call Foo with21:53
jeryou'd get an error21:53
jer  Exception: CFunction defined for type Sequence but called on type Object21:53
jertags are basically for this purpose -- they keep pointers to type specialized functions, and really act as a hinderance to the flexibility of the vm21:54
jerif i were designing io today, i'd do without them21:54
jerit'd change the structure of an object a bit, but it'd be worth it imo21:54
jeri hope that answers your question21:54
prologicgood explanation21:55
jeri guess the succinct version of it is, a "tag" is the type system in io21:55
prologicobviously I'm not using tags eitehr and have no plans to21:55
jerin pure io code, there is only one type, Object21:55
jerin C code, there are more21:55
prologicin mio there are Object, List, Dict, String, etc21:56
prologicbasically anything written int he host langauge is a type21:56
prologicbut then I also have traits :)21:56
prologicone thing I've noticed recently is that I can't do: xs = List clone; f = xs get("append"); f(1);21:57
prologicI need to change the way methods are bound to objects21:57
*** hashmal has quit IRC22:00
*** nisstyre has joined #io22:03
zehlyes it does22:15
zehland IoSymbol is what stores the method/prototype names from source files?22:17
*** hashmal has joined #io22:23
jerzehl, symbols are interned strings basically. that's it.22:45
jerthink of it as a sequence of characters22:46
zehlcool, thanks22:48
jeror more accurately, a sequence of unicode characters22:48
*** mkroehnert has joined #io23:13
*** nisstyre has quit IRC23:25
*** hashmal has quit IRC23:59

Generated by 2.11.0 by Marius Gedminas - find it at!