Camelia, the Perl 6 bug

IRC log for #moe, 2013-02-03

| Channels | #moe index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:09 doy hobbs: how so?
00:09 doy i think it's a reasonable question
00:43 hobbs ('string', @array) flattens into a list, hash assignment finds a list (with an even number of elements), what good reason does it have to care how the list was produced?
00:44 jasonmay you can do more at parse time if the hash has a determinable structure
00:46 hobbs perhaps, but you're going to allow %hash = somefunc() or %hash = @_, aren't you? So you need to be able to fall back to something non-clever anyhow.
00:48 jasonmay maybe
00:49 stevan jasonmay: no, in fact I am thinking about requiring => to make a pair, and hashes being set of pairs only
00:50 stevan this is a subset remember, we can take stuff away that is silly and/or problematic :)
00:50 stevan I ultimately would love to have more checking at compile time
00:51 stevan jasonmay: I am making drastic changes to the runtime, whcih will affect the intrepreter
00:51 stevan just FYI
00:51 jasonmay ok
00:51 stevan parsing should be fine though
00:51 stevan basically the runtime will never throw an exception now, it will be up to the interpreter to handle errors and throw appropriately
00:52 stevan this also opens up the possibility of a post-parse/pre-execution tree walk to check behavior correctness
00:52 stevan I need to hang with the family for a bit, but I should be back later on to try and finish up my work
00:53 moe [moe] stevan created goin-crazy (+13 new commits): http://git.io/3levnw
00:53 moe moe/goin-crazy 4963b05 Stevan Little: use the getBool method (and formatting cleanup)
00:53 moe moe/goin-crazy 7edb3fd Stevan Little: getCurrent* should always look up the parent chain, because we could be inside a block or something like that and we need to not restrict ourselves to just the local env
00:53 moe moe/goin-crazy ab33fdf Stevan Little: parent is no longer accepted as a constructor parameter
00:53 stevan jasonmay: thats it if you want to take a look
00:54 stevan the tests don't pass and it is built off of the unmerged runtime-improvements branch
00:54 stevan but I am happy with the progress so far
00:54 stevan jasonmay: also pretty sure I dont want MoeRuntime and Interpreter to be singletons anymore
00:54 stevan haven't worked out those final details yet though
00:55 jasonmay I was doing stuff off that branch too, but not nearly as much as taht :)
00:55 stevan cool
00:55 stevan ok, gotta run, be back in a little while
01:05 perigrin check behavior correctness ... optimize away the types.
01:05 * perigrin hides.
01:12 stevan perigrin: you know me too well
01:16 perigrin that and Jane Street recently released a new core lib for OCaml.
01:16 perigrin so it's on my mind :)
01:17 perigrin er 'core library'
01:17 perigrin not just a single lib
01:17 stevan yeah, I saw that
01:17 stevan I miss OCaml
01:17 stevan but I like Scala better
01:17 perigrin Someone should have convinced them to name it MOECaml
01:18 perigrin hehe
01:18 perigrin I didn't think you could like *anything* better than OCaml-in-the-abstract
01:20 moe [moe] stevan fast-forwarded runtime-improvements from 976b9ee to befbea6: http://git.io/0O_tLA
01:20 moe [moe] stevan pushed 2 new commits to goin-crazy: http://git.io/3Dd6gQ
01:20 moe moe/goin-crazy 0a91705 Stevan Little: no longer support yadda-yadda-yadda this way, we will revisit this later, but for now this is not have it should be done
01:20 moe moe/goin-crazy 5961f5c Stevan Little: MoeObject#callMethod now expects a method object, which is a good thing, but had to adjust the test suites accordingly
01:20 stevan jasonmay: so MoeObject#callMethod  now expects a MoeMethod obejct
01:20 stevan this should allow for shit like
01:20 stevan $obj->$method( ... )
01:20 stevan add more work to the interpreter, but thats okay
02:48 moe [moe] stevan pushed 7 new commits to goin-crazy: http://git.io/0It8_g
02:48 moe moe/goin-crazy ecf55d3 Stevan Little: some TODO items and such
02:48 moe moe/goin-crazy 1b50731 Stevan Little: no need to add blocks when there is no need for blocks
02:48 moe moe/goin-crazy 74a6044 Stevan Little: create just a blank instance, don't try and set blank values for attributes
02:48 stevan jasonmay: this will be a more radical change ^
02:54 moe [moe] stevan pushed 1 new commit to goin-crazy: http://git.io/SzETZQ
02:54 moe moe/goin-crazy eb27c6e Stevan Little: Merge branch 'runtime-improvements' into goin-crazy
02:54 moe [moe] stevan fast-forwarded runtime-improvements from befbea6 to 91fec0f: http://git.io/0spBHA
02:54 moe [moe] stevan pushed 1 new commit to more-grammar-examples: http://git.io/mOMgyw
02:54 moe moe/more-grammar-examples 4b0c242 Stevan Little: Merge branch 'master' into more-grammar-examples
03:11 jasonmay should the interpreter be passed in the runtime instead of the env?
03:11 jasonmay runtime object
03:13 stevan yes
03:14 stevan one sec, I will commit that
03:14 moe [moe] stevan pushed 1 new commit to goin-crazy: http://git.io/gWCg6A
03:14 moe moe/goin-crazy 992d3e8 Stevan Little: pass runtime into interpreter now
03:15 stevan jasonmay: pushed, but there is still a lot broken
03:17 stevan I need to fix all the usages of get and getCurrent* in Interpreter
03:18 stevan jasonmay: might be a good idea to write a JSON serializer for the AST that we can use to test the Parser stuff against
03:18 stevan although ShoudMatchers might work well enough
03:20 perigrin ShroudMatchers
03:20 perigrin makes sure your runtime has the *proper* Shroud of Turin in it.
03:20 perigrin mostly for use in the Vatican.
03:31 moe [moe] stevan pushed 2 new commits to goin-crazy: http://git.io/ycCACw
03:31 moe moe/goin-crazy 462a18e Stevan Little: living in the new Option based world
03:31 moe moe/goin-crazy 574164b Stevan Little: adjust the tests to the new world
03:31 stevan jasonmay: ok, all tests pass now
03:31 stevan merging back into runtime improvements
03:32 moe [moe] stevan merged goin-crazy into runtime-improvements: http://git.io/bxbpDA
03:33 moe [moe] stevan deleted goin-crazy at 574164b: http://git.io/-hj95A
03:34 moe [moe] stevan pushed 1 new commit to runtime-improvements: http://git.io/iiiheg
03:34 moe moe/runtime-improvements ac891a2 Stevan Little: update the README
03:54 stevan jasonmay: big thing to note, MoeRuntime.Errors is not MoeErrors
03:54 perigrin MoeErrors MoeProblems.
03:55 stevan perigrin: https://github.com/MoeOrganization/moe/​blob/runtime-improvements/src/main/scal​a/org/moe/runtime/MoeErrors.scala#L12
03:55 stevan been there, done that
03:56 stevan most all Moe exceptions are derived from MoeProblems
03:56 stevan which itself is derived from MoeMoney
03:56 perigrin stevan: next time you're down here I'll take you to Moes.
03:56 perigrin nicely played sir.
07:49 am0c joined #moe
10:12 Nicholas left #moe
11:25 clintongormley joined #moe
13:39 moritz oh hai
13:40 moritz I'm trying to get sbt to run on Debian/wheezy
13:40 moritz which java package do you recommend for that
13:40 moritz ?
13:44 moritz works now with java-7-openjdk
14:14 clintongormley joined #moe
14:17 jasonmay a json serializer would make interpreter tests not so huge also
14:28 moe [moe] jasonmay created jasonmay/interpreter-hashes-arrays (+3 new commits): http://git.io/sqXMrg
14:28 moe moe/jasonmay/interpreter-hashes-arrays ab1888c Jason May: Add a hash value access node and interpret it
14:28 moe moe/jasonmay/interpreter-hashes-arrays e401d4e Jason May: Interpret array element access
14:28 moe moe/jasonmay/interpreter-hashes-arrays 9c07b00 Jason May: Handle array index out of bounds in the interpreter
14:42 am0c joined #moe
14:45 jasonmay ok not the interpreter I guess, maybe if objects had one built in too :)
14:58 * jasonmay is whipping one up now
15:19 clintongormley joined #moe
15:49 moe [moe] jasonmay created ast-json-serializer (+1 new commit): http://git.io/NkDGhA
15:49 moe moe/ast-json-serializer 2dad484 Jason May: Make ASTs serializable
16:14 moe [moe] jasonmay pushed 1 new commit to ast-json-serializer: http://git.io/_Dt_UQ
16:14 moe moe/ast-json-serializer 234c3ed Jason May: Support -u to dump ASTs on the command line
16:19 jasonmay stevan: so you want do do something like have a 006-whatever.mo, having a matching 006-whatever.json? and run through all of them in the tests
16:33 jasonmay like roast
16:34 jasonmay no roast isn't really like that
17:14 moe [moe] svatsan created extra-y-stuff (+2 new commits): http://git.io/SC_jqA
17:14 moe moe/extra-y-stuff 4b0047c isBEKaml: Add unchecked flag to scalacOptions
17:14 moe moe/extra-y-stuff 5320c22 isBEKaml: Add commons-cli to dependency list and lose lib/
17:17 moe [moe] svatsan pushed 1 new commit to extra-y-stuff: http://git.io/Umg3WA
17:17 moe moe/extra-y-stuff 7e3a2a3 isBEKaml: Correct build.sbt - need an extra linebreak for sbt to resolve deps
18:01 moe [moe] jasonmay pushed 1 new commit to ast-json-serializer: http://git.io/Wdxmew
18:01 moe moe/ast-json-serializer f7cc84f Jason May: Begin testing directly against the tentative spec
18:07 stevan jasonmay: yes, thats exactly what I was thinking
18:25 moe [moe] jasonmay pushed 2 new commits to ast-json-serializer: http://git.io/H51ExA
18:25 moe moe/ast-json-serializer 7eedf9b Jason May: Remove some leftover debug stuff
18:25 moe moe/ast-json-serializer ee5156f Jason May: Add a few more AST dumps that already pass
18:29 moe [moe] stevan pushed 1 new commit to runtime-improvements: http://git.io/C-T2bw
18:29 moe moe/runtime-improvements 7652620 Stevan Little: fix spelling mistake
18:30 moe [moe] stevan merged spec-utf8-vars into master: http://git.io/ZlX4JA
18:31 stevan sromanov: merged your utf8 vars into master, thanks
18:32 moe [moe] stevan pushed 1 new commit to more-grammar-examples: http://git.io/CBam5g
18:32 moe moe/more-grammar-examples bdbaa80 Stevan Little: Merge branch 'master' into more-grammar-examples
18:32 stevan jasonmay: I like the ast-serializer
18:32 stevan the only thing I am not sure about is having it be a method of the AST classes
18:33 stevan I kind of feel like it would be better implemented like we do the interpreter
18:34 moe [moe] stevan pushed 1 new commit to runtime-improvements: http://git.io/0khjgg
18:34 moe moe/runtime-improvements 062e87a Stevan Little: Merge branch 'master' into runtime-improvements
18:37 stevan jasonmay: just FYI, I cherry-picked BEKaml's commits on extra-y-stuff into the runtime-improvements branch
18:37 moe [moe] stevan pushed 3 new commits to runtime-improvements: http://git.io/huklSA
18:37 moe moe/runtime-improvements da30e4c isBEKaml: Add unchecked flag to scalacOptions
18:37 moe moe/runtime-improvements 4505cdc isBEKaml: Add commons-cli to dependency list and lose lib/
18:37 moe moe/runtime-improvements d06f4a5 isBEKaml: Correct build.sbt - need an extra linebreak for sbt to resolve deps
18:51 moe [moe] stevan pushed 1 new commit to more-grammar-examples: http://git.io/bIrbag
18:51 moe moe/more-grammar-examples fb4ceb3 Stevan Little: small syntax tweak to follow this version of the "spec"
18:57 moe [moe] stevan pushed 3 new commits to runtime-improvements: http://git.io/7NfafQ
18:57 moe moe/runtime-improvements 45e54a9 Stevan Little: remove comments and fix spelling mistake
18:57 moe moe/runtime-improvements 7a7b375 Stevan Little: make Pair a proper thing
18:57 moe moe/runtime-improvements 776b73a Stevan Little: swapping README and TODO and starting some docs in README
19:23 moe [moe] stevan pushed 3 new commits to runtime-improvements: http://git.io/hK-ulw
19:23 moe moe/runtime-improvements 505b732 Stevan Little: fix the compiler error
19:23 moe moe/runtime-improvements 92a0754 Stevan Little: tweaked the core classes to more closely align with Perl 6
19:23 moe moe/runtime-improvements c1ca365 Stevan Little: added in a TODO item
19:36 jasonmay stevan: that's understandable (re serializer singleton vs ast class method)
20:15 doy "tests as json" is how the mustache spec test suite works https://github.com/mustache/spec/tree/master/specs
20:20 moe [moe] stevan pushed 8 new commits to runtime-improvements: http://git.io/tgBJew
20:20 moe moe/runtime-improvements 80bb3c1 Stevan Little: fix duplicated parameter
20:20 moe moe/runtime-improvements fb2e15a Stevan Little: no reason for version and authority to be mutable
20:20 moe moe/runtime-improvements 65dabf0 Stevan Little: add removeMethod and removeAttribute
20:20 stevan jasonmay: cool, yeah I would like to keep the AST node "pure"
20:21 jasonmay right
20:24 stevan so I was thinking about binary operators too
20:26 moe [moe] stevan pushed 1 new commit to runtime-improvements: http://git.io/hXnoqw
20:26 moe moe/runtime-improvements 9105f45 Stevan Little: need to check for failure with set as well
20:27 stevan I think that most of the operators (+, -, *, /, %, etc) all need to be methods on the core objects
20:27 stevan not 100% sure about that yet
20:28 stevan in Perl 6 they are multimethods
20:31 tadzik in Perl 6 they're subroutines
20:32 tadzik (multi subs, that is)
20:32 tadzik as in 'multi sub:infix<+>(Int $a, Int $b)' and so on
20:33 tadzik some examples in Rakudo: https://github.com/rakudo/rakud​o/blob/nom/src/core/Rat.pm#L48
20:33 doy i do like the perl 6 approach there better
20:34 tadzik I find it saner too
20:34 tadzik (than methods)
20:36 moe [moe] jasonmay force-pushed ast-json-serializer from ee5156f to 8741bab: http://git.io/E_C4NA
20:36 moe moe/ast-json-serializer 8d814ce Jason May: Add a hash value access node and interpret it
20:36 moe moe/ast-json-serializer 5cd88e7 Jason May: Interpret array element access
20:36 moe moe/ast-json-serializer 223d5a0 Jason May: Handle array index out of bounds in the interpreter
20:37 moe [moe] stevan pushed 1 new commit to runtime-improvements: http://git.io/WoacXw
20:37 moe moe/runtime-improvements 62cb137 Stevan Little: flesh out the docs a bit
20:38 stevan tadzik: yes, sorry, subs
20:42 jasonmay neat
20:44 * jasonmay sets up Rakudo
21:56 moritz note that the Perl 6 approach (operators as subs) works because we have multi methods
21:56 moritz erm, multi subs, sorry
21:57 moritz which reflect the symmetry of the operators better than methods
22:13 stevan moritz: yeah, thats the thing, if we go that route in Moe we need to add them
22:13 stevan I am actually thinking the better approach will be methods on objects and implicit coercions
22:13 stevan which is how Scala does it
22:14 moe [moe] jasonmay pushed 2 new commits to ast-json-serializer: http://git.io/doxcRA
22:14 moe moe/ast-json-serializer b190c67 Jason May: Implement the ability to run code from files
22:14 moe moe/ast-json-serializer 0e747b2 Jason May: Add a few more AST dump files
22:15 stevan jasonmay++ #nice!
22:15 jasonmay thanks :)
22:16 stevan jasonmay: you know, I was thinking that parseFromEntry really should be doing the wrapping of the CompilationUnitNode(ScopeNode(StatementsNode()))
22:16 stevan cause we have that code repeated in too many places
22:16 jasonmay yeah
22:17 stevan ok, gotta go have some dinner with the family
23:09 * perigrin ponders a MooseX::Storage subclass that reads MOE serialized ASTs.
23:39 jasonmay perigrin: did you just PERL moe
23:39 doy haha
23:43 hobbs MOE is the MOE Object Environment
23:52 perigrin jasonmay: I did.
23:52 perigrin yes.
23:52 * perigrin sends out Recruiter Emails looking for 10 years MOE experience.

| Channels | #moe index | Today | | Search | Google Search | Plain-Text | summary