IRC Logs for #io Saturday, 2014-07-19

*** hashmal_ has quit IRC03:07
*** hashmal has joined #io05:08
*** hashmal has quit IRC05:12
*** hashmal has joined #io07:09
*** hashmal has quit IRC07:13
*** ElMonkey_ has joined #io09:03
*** TheMonkey has quit IRC09:06
*** hashmal has joined #io09:10
*** hashmal has quit IRC09:14
*** hashmal has joined #io10:11
*** Thor has joined #io10:35
*** hashmal_ has joined #io11:40
*** hashmal has quit IRC11:40
*** hashmal has joined #io11:42
*** hashmal_ has quit IRC11:42
*** hashmal_ has joined #io11:45
*** hashmal has quit IRC11:45
jerprologic, in case that question is asked in the future and i'm not around, there's nothing that's invoked before every message send. however, in acute, i'd written a modified lookup mechanism that allowed you to override default lookup behaviour (think if getSlot were called to get the object that was to be evaluated before each time)11:58
jeroverride that method, define your own lookup semantics11:58
jeradds a lot of overhead to method dispatch though11:58
jerbecause now you're calling 2 methods for each send11:58
jerthe lookup method is always looked up using the default lookup behaviour (internal lookup non-modifable)11:58
jerbut beyond that...11:58
prologic*nods*12:02
prologiccircuits basically suffers the same performance overheads12:02
prologicfor the sake of loose coupling and message passing with great flexibility12:02
prologicit's a trade off I think12:02
jeryeah12:03
jerthat said, acute was still faster than io12:03
jer=]12:03
prologicheh12:04
jerthere are ways you can make io really fast12:04
jerrelatively speaking12:04
jerone such way is to get rid of the slot table12:04
jerand instead, index slot names to array indices12:05
jerlookup then becomes a *REALLY* small O(n), and a JIT can better use this to place compiled code12:05
jeryou can simplify io by introducing a new type, and changing the way methods work -- instead of allowing methods to have an arbitrary tree of arguments12:06
jeryou can instead allow it to have one argument, and implicitly convert multiple arguments into a named tuple12:06
jersolves the multiple arg problem12:06
jerthis also has implications on simplifying syntasx12:06
jersyntax rather12:06
jermakes it more uniform12:06
jerand if the tuple is missing any defined keys, it can be wrapped in a new method that takes those missing args in the respective order, and allows you to curry functions12:07
jerso... adder := method(x, y, x + y); add1 := adder(1); add1(2) == 312:07
jerthe way io works now, there's one thing from stopping you writing an extension to do that12:07
jerformal parameters have to be supplied (the runtime enforces it) at the time the method is called12:08
jerif instead it omitted them, and returned a function containing the missing args as parameters to it, then it'd be trivial to build curried functions in io12:08
prologicheh12:11
prologictoo bad we both lack the time to design a new Io-ish lang12:11
jerif i were building a new language today, i'd probably not be building one seriously, but rather as an effort to understand more clearly, various type systems12:14
jerso i'd write a small lisp12:14
jerand go from there12:14
prologicfair enough12:15
*** c74d has quit IRC12:15
prologicI'm still trying to understand RPython :)12:16
jereither that, or perhaps in addition to, building a default concurrent language =]12:16
jeri.e., where everything in the language is executed at the same time*12:16
jer* - what gets executed before other stuff would be defined by dependencies the compiler traces12:16
jer^^^ big problem with that is debugger support12:16
jerand other tooling12:16
jeri think i'm smart enough to do a default concurrent language but not smart enough to build the tools to support it12:16
prologicthat's actually the same kind of lang I'd like to build too12:18
*** c74d has joined #io12:19
jeri dunno, just don't have the time to invest in a major multiyear project atm12:19
jeri've already got one of those fluttering right now in the form of an operating system kernel12:19
prologicyeah I'm too heavily invested in circuits my python framework12:20
prologicand job, family etc12:20
prologicand my PHD12:20
pdurbinah, so http://jeremy.tregunna.ca/post/23250612420/acute-programming-language and https://github.com/jeremytregunna/acute12:22
jerpdurbin, yeah, it's dead now though12:25
jerhas been for a while12:25
jerthough the peg grammer might be worth looking at12:25
jeri wanted to change io's syntax, slowly over time, from foo(1) thing(3) bar(5)12:25
jerto:12:25
jerfoo: 1 thing: 3 bar: 512:26
jersingle arguments12:26
pdurbinwhy?12:26
jersimplification of the runtime12:28
jerless time spent parsing12:28
jer(as in, AST constructing)12:28
jermore time available for running the code12:28
pdurbinah, ok12:28
prologicofc if you write a vm and bytecode interpreter12:29
pdurbinso is/was acute faster than io?12:29
prologicall that can go away right?12:29
jerparsing a source file in io is a very expensive process -- consuming around 12% of the time a simple program which loops over a million integers and sums them12:29
jerpdurbin, yes12:29
pdurbincool12:29
jerprologic, you can sure12:29
jerbut if you're going to target a virtual machine, it makes more sense (imo) to target a real machine12:29
jeri'm not a fan of vms12:29
prologicwell portability et all12:30
jeran intermediate representation is not a VM, and it can be used to bridge platforms12:30
prologictrue12:30
jerllvm =]12:30
prologic*nods*12:30
prologicor Parrot12:30
jerparrot doesn't even make my list, though yes it kinda applies12:30
prologicno wait parrot might not be  the same as LLVM12:31
prologicwith multiple frotnends12:31
jerit's not really, it's more like a portable vm12:31
prologicyeah12:31
prologicI take it back :)12:32
jermore analogous to the MS CLR12:32
prologic*nods*12:32
prologicI think LLVM is unique in that persepctive12:32
jerin its comprehensiveness, yes12:32
prologicalthough it's just a kind of a different C-ish :)12:32
prologicor Assmebler12:32
jerpeople have been using IRs for many years though to make code portable12:32
jerhell, scheme's have been doing this for years -- just using C as their IR12:32
jerbut anyway, i dunno... these days i'm content with Rust12:33
jerin the day job i'm still primarily using objc/c++12:33
pdurbinjer: what if the real machine you're targeting were a little more purpose-built for the language? Unikernels: Rise of the Virtual Library Operating System - ACM Queue - http://queue.acm.org/detail.cfm?id=256662812:34
pdurbinsee also http://thinkrelevance.com/blog/2014/06/17/paul-degrandis-cognicast-episode-058 and http://www.se-radio.net/2014/05/episode-204-anil-madhavapeddy-on-the-mirage-cloud-operating-system-and-the-ocaml-language/12:35
jerpdurbin, there's very rarely hardware designed to run a language anymore12:36
jerthere are some uses of TTA's but they're still not typically designed around a language... they might provide language based enhancements in hardware for the langauge to take advantage of12:37
jerbut beyond that12:37
pdurbinTTA?12:38
jertransport triggered architectures12:39
jertypical types of machines which are used in reconfigurably computing12:39
pdurbinhuh. from http://en.wikipedia.org/wiki/Transport_triggered_architecture maybe my Amiga had this :)12:40
pdurbinold hackers talk of a "lisp machine"... I guess it was built to run a certain language. maybe the unikernel idea isn't so different?12:41
pdurbinthe one above requires OCaml12:41
pdurbinright, right I found http://roscidus.com/blog/blog/2014/06/06/python-to-ocaml-retrospective/ via http://openmirage.org/wiki/weekly-2014-06-1012:43
pdurbinprologic: you could switch from python to ocaml ;)12:44
prologicwhat for? :P12:55
pdurbinin his case... mostly he wanted static type checking: http://roscidus.com/blog/blog/2013/06/09/choosing-a-python-replacement-for-0install/#why-replace-python12:59
prologicI find giving up dynamic typing very hard13:00
prologic:)13:00
prologicEven C pisses me off at times13:00
prologicArduino etc :)13:00
pdurbinI'm in Java land now (from Perl and PHP) so I'm trying to embrace static typing. :)13:01
prologicand have you? :)13:02
pdurbinI like it. I feel like I'm able to refactor more easily, find problems at compile time.13:08
pdurbinI mean, I still use scripting languages for little things (mostly shell, Python, Ruby, Perl) of course. Just to get a little work done. To test an API or run some setup.13:09
prologicfair enough13:14
*** xjiujiu has joined #io13:24
*** xjiujiu has quit IRC13:30
*** xjiujiu has joined #io13:31
*** xjiujiu has quit IRC13:39
*** xjiujiu has joined #io13:40
*** hashmal has joined #io13:44
*** hashmal_ has quit IRC13:44
*** xjiujiu has quit IRC13:50
*** xjiujiu has joined #io13:50
*** xjiujiu has quit IRC14:04
*** xjiujiu has joined #io14:05
*** xjiujiu has quit IRC14:12
*** xjiujiu has joined #io14:13
*** xjiujiu has quit IRC14:27
*** xjiujiu has joined #io14:27
*** xjiujiu has quit IRC14:35
*** xjiujiu has joined #io14:35
*** xjiujiu has quit IRC14:44
*** Trohoky has joined #io15:03
*** xjiujiu has joined #io15:07
*** noTHD has joined #io16:02
*** xjiujiu has quit IRC17:51
*** gatesphere has joined #io18:52
*** codestorm has joined #io19:34
*** gatesphere has quit IRC20:45
*** gatesphere has joined #io20:54
*** gatesphere has quit IRC21:25
*** TheMonkey has joined #io21:29
*** ElMonkey_ has quit IRC21:32

Generated by irclog2html.py 2.11.0 by Marius Gedminas - find it at mg.pov.lt!