Camelia, the Perl 6 bug

IRC log for #parrot, 2012-04-24

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:06 whiteknight good evening, #parrot
00:07 whiteknight msg nine: Has christmas come early this year? If you can make green threads work on windows without waiting for me, I'll send you a box of cookies
00:07 aloha OK. I'll deliver the message.
00:12 whiteknight Any GSOC students around?
00:17 benabik hi
00:19 whiteknight benabik: did acceptance emails come out today?
00:20 benabik I got both.  :-)
00:20 whiteknight both?
00:20 benabik Acceptance and rejection, for the two projects.
00:20 whiteknight oh, okay
00:20 whiteknight yeah, I'm sorry about the rejection, we had a limited number of slots this year and we had too many great proposals
00:20 whiteknight also, congratulations on the acceptance! You had a great proposal and we're happy to work with you this summer
00:24 whiteknight okay, if the emails went out, I can send out another email with more information
00:29 whiteknight actually, I still haven't figured out backup mentor assignments yet. I'll have to do that before I send out any emails
00:53 dalek winxed: 962f411 | NotFound++ | winxedst2.winxed:
00:53 dalek winxed: avoid emiting redundant goto for inlined return in some cases
00:53 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/962f411e13
01:58 nbezzala joined #parrot
02:16 jashwanth joined #parrot
02:54 dalek parrot: 07ddfe5 | jkeenan++ | src/string/encoding/shared.c:
02:54 dalek parrot: [codingstd] Remove trailing whitespace.
02:54 dalek parrot: review: https://github.com/parrot/parrot/commit/07ddfe5f30
03:22 alester_ joined #parrot
04:22 benabik Verison strings from PCT::HLLCompiler are complete garbage.
05:00 dalek parrot/gh346: 1ac59fc | benabik++ | t/run/options.t:
05:00 dalek parrot/gh346: WIP
05:00 dalek parrot/gh346: review: https://github.com/parrot/parrot/commit/1ac59fc3db
05:00 dalek parrot: dcbf59a | benabik++ | compilers/pct/src/PCT/HLLCompiler.pir:
05:00 dalek parrot: PCT::HLLCompiler - Make version useful
05:00 dalek parrot:
05:00 dalek parrot: The version string from PCT::HLLCompiler was always:
05:00 dalek parrot:
05:00 dalek parrot:     This compiler is built with the Parrot Compiler Toolkit, parrot
05:00 dalek parrot:     revision 1.
05:00 dalek parrot:
05:00 dalek parrot: Change that to include the version and git_describe instead, like:
05:00 dalek parrot:
05:00 dalek parrot:     This compiler is built with the Parrot Compiler Toolkit, parrot
05:00 dalek parrot:     4.3.0 revision RELEASE_4_3_0-13-g16f3fbe
05:00 dalek parrot: review: https://github.com/parrot/parrot/commit/dcbf59aed3
05:00 dalek parrot: 120378c | benabik++ | MANIFEST:
05:00 dalek parrot: codingstd: Remake MANIFEST
05:01 dalek parrot:
05:01 dalek parrot: It was missing t/codingstd/case_sensitive_files.t
05:01 dalek parrot: review: https://github.com/parrot/parrot/commit/120378c2aa
05:01 benabik Oops...  Didn't mean to push a WIP commit.  Undone.
05:50 wagle joined #parrot
05:52 wagle joined #parrot
06:02 travis-ci joined #parrot
06:02 travis-ci [travis-ci] parrot/parrot#270 (master - 120378c : Brian Gernhardt): The build was broken.
06:02 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/07ddfe5...120378c
06:02 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/1159989
06:02 travis-ci left #parrot
06:43 fperrad joined #parrot
06:45 dngor joined #parrot
07:02 brrt joined #parrot
07:06 nbezzala joined #parrot
07:17 Khisanth joined #parrot
07:51 lucian__ joined #parrot
08:36 lucian joined #parrot
08:40 preflex_ joined #parrot
09:01 dalek nqp: 58e7359 | moritz++ | src/HLL/CommandLine.pm:
09:01 dalek nqp: for grouped command line options, check if each is allowed
09:01 dalek nqp: review: https://github.com/perl6/nqp/commit/58e735918c
09:18 Khisanth joined #parrot
10:31 bacek_ joined #parrot
10:57 nbezzala joined #parrot
11:09 preflex_ joined #parrot
11:17 nbrown joined #parrot
11:35 brrt left #parrot
11:40 nbezzala_ joined #parrot
11:53 benabik joined #parrot
11:55 benabik ~~
12:16 bluescreen joined #parrot
12:36 whiteknight joined #parrot
12:43 whiteknight good morning, #parrot
12:46 benabik whiteknight: Morning.
12:46 whiteknight hello benabik
12:47 brrt joined #parrot
12:48 brrt ping whiteknight
13:02 whiteknight pong brrt
13:04 brrt :-)
13:04 brrt so, i see you'll be mentoring me
13:04 whiteknight yessir
13:04 brrt \o
13:05 brrt fun
13:05 PacoAir joined #parrot
13:05 brrt i have a github account btw :-)
13:05 whiteknight awesome, what's it called?
13:05 brrt 'bdw' :-)
13:05 brrt which are my initials
13:05 brrt https://github.com/bdw
13:06 * moritz thought it meant "by d way" :-)
13:06 brrt :-)
13:07 brrt i'm not always creative with names
13:11 brrt oh, and i have a google+, which i don't use: https://plus.google.com/u/0/​117159578203995147563/posts
13:15 tadzik how about a diaspora account? :)
13:17 moritz as if we didn't have enough diaspora already
13:21 brrt diaspora is a service today?
13:21 tadzik aye
13:22 dalek rakudo/nom: 11c0ab8 | moritz++ | src/core/ (2 files):
13:22 dalek rakudo/nom: be more robust when .count is Inf
13:22 dalek rakudo/nom:
13:22 dalek rakudo/nom: but does not cover all cases yet
13:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11c0ab8869
13:22 tadzik I can drop around some invites if you want
13:23 benabik Is there a way to get winxed to create a lexical?  I have a `var compiling` that I want available as a lexical "%*COMPILING", but don't see a way to do it.
13:35 brrt tadzik: nm, i'll never use it, either :-)]
14:02 whiteknight benabik: winxed automatically creates the lexical if you use a variable in a closure
14:03 benabik whiteknight: But I can't explicitly create one?  PCT uses lexicals to do interesting things.
14:06 whiteknight I don't think so. What kinds of "interesting" things?
14:06 whiteknight I may be able to put together a patch if you want something fancy
14:07 whiteknight we may also be able to find alternate ways to accomplish the same things
14:07 benabik Basically, it uses lexicals as a kind of side channel for information.  There's a set of lexicals that describe the current environment.
14:07 benabik PACT may do something completely different, but I'm just trying to straight port PCT at the moment.
14:07 whiteknight I'm not sure what you mean. I'd have to see an example or something
14:08 whiteknight Can you use globals or something to get moving?
14:09 brrt whiteknight: i can build parrot, but only on cold days; otherwise my laptop overheats :-p
14:11 benabik whiteknight: The compile() method in PCT.HLLCompiler stores its options hash in a lexical '%*COMPILING', which nqp-rx uses in HLL.Actions.SET_BLOCK_OUTER_CTX to get information.
14:12 benabik nqp-rx uses `find_dynamic_lex '%*COMPILING'` to be exact
14:12 JimmyZ joined #parrot
14:12 whiteknight benabik: OOOH! dynamic lexicals are different from ordinary lexicals
14:12 whiteknight they're all dynamicish and stuff
14:13 benabik They're declared the same way.
14:13 benabik Used differently.
14:13 moritz whiteknight: it's only the lookup that's different
14:13 moritz ie normal find_lex looks up the outer change
14:13 moritz find_dyanmic_lex or find_caller_lex or whatever it's called looks in all outer chaines of all callers
14:13 moritz s/change/chain/
14:13 brrt what is a dynamic lexical?
14:14 whiteknight benabik: I can think of ways to cheat it, but there is no built-in way in winxed to do exactly what you want, yet
14:14 whiteknight brrt: it looks in the caller, instead of the owner
14:14 benabik I suppose I could prod the LexPad manually...
14:15 benabik Although I'm not sure how I'd tell it what register to use, since that's determined by winxed.
14:15 brrt so, in lispish terms, it is dynamic?
14:15 moritz brrt: I think so, yes
14:15 brrt (in perl terms, it is a local $var, rather than my $var)
14:16 moritz well, yes-ish
14:16 brrt ok, i see, i just see 'lexical' and i think 'my $var' :-)
14:16 moritz except that in p5, lexcicals and local() don't mix
14:16 benabik brrt: Dynamic lexicals are 'my $*var'
14:16 moritz ie you can only local()ize our-vars
14:16 benabik brrt: In perl 6
14:16 brrt i see
14:16 brrt good to know
14:17 whiteknight NotFound: ping
14:21 whiteknight opbots
14:21 whiteknight blah
14:21 whiteknight opbots trust brrt
14:21 slavorg Ok
14:22 whiteknight opbots trust jashwanth
14:22 slavorg Ok
14:22 whiteknight opbots trust Justin
14:22 slavorg Ok
14:24 NotFound whiteknight: pong
14:26 whiteknight NotFound: We need a way to explicitly create lexicals for use with find_dynamic_lex
14:26 whiteknight NotFound: if you suggest the syntax, I'll make the patch
14:26 benabik NotFound: To be precise, "we" means "benabik re-writing PCT in winxed"
14:26 whiteknight right, "we"
14:27 NotFound Oh, I thougth it was majestatic plural, Sir.
14:27 whiteknight :)
14:28 moritz lexvar x = 3; // maybe?
14:29 whiteknight lexical var x = 3; ?
14:29 whiteknight I CAN HAZ var x = 3
14:29 NotFound Just for var, or also int, string...
14:29 PerlJam var x = new Lexical(3);   #  :-)
14:29 NotFound ?
14:30 whiteknight NotFound: all of them
14:30 NotFound PerlJam: that would be too much magic.
14:30 whiteknight Actually, I don't know. Do dynamic lexicals handle native types?
14:30 whiteknight I know regular lexicals do now
14:31 moritz I wouldn't know how that would work
14:31 moritz the nativitiy of a variable must be known at compile time, because they are very much not polymorphic by nature
14:33 NotFound <benabik> nqp-rx uses `find_dynamic_lex '%*COMPILING'` to be exact ---> Looks like it also needs a way to specify a public name other that the identifier.
14:33 whiteknight lexical("Foo") var x = 3
14:33 GeJ_ joined #parrot
14:34 whiteknight or var[lexical("Foo")] x = 3
14:34 PerlJam does winxed not have some sort of annotation system yet?
14:34 PerlJam I mean, that's what you seem to be talking about ... compile-time annotation of a variable (presumably with a way to inspect the annontations later)
14:35 PerlJam It feels very much like parrot's :tag() to me.
14:35 NotFound Yes, I think we can use a modifier for a now. Later may the usages inspire a better syntax.
14:35 PerlJam NotFound++ that there's some wisdom  :)
14:36 NotFound PerlJam: the winxed jargon for that is 'modifiers'
14:36 benabik NotFound: Yes, I was also going to mention that, but had to grab coffee.
14:36 whiteknight This would all be a non-issue if lexicals could be created at runtime with an opcode instead of a compile-time directive
14:36 whiteknight Winxed already has a syntax for calling PIR ops
14:36 benabik Does the [modifier] syntax conflict with arrays?
14:36 whiteknight no, because an array would be string x[] = []
14:37 whiteknight not string[] x = [] like in Java
14:37 benabik But the modifier needs to be on the variable, not the type.
14:37 benabik var compiling[lexical('%*COMPILING')]
14:38 whiteknight Winxed has a : operator for cases like that
14:38 benabik Ah.
14:38 whiteknight var compiling:[lexical('Foo')]
14:38 NotFound The syntax will be: type <optional modifer> identifier, ...
14:38 whiteknight That's how it allows passing of flags on function arguments
14:38 benabik type mod ident, mod ident ?
14:38 whiteknight that seems as good as anything
14:38 benabik NotFound++ # coherent syntax
14:39 whiteknight that's why I ask him :)
14:39 NotFound Mmmm... maybe using the same syntax as arguments will be more consistent.
14:40 benabik I'd think so.
14:40 benabik It's also a similar case of attaching modifiers to variables.
14:40 NotFound Yes, and more clean that it refers only to one identifier.
14:40 NotFound Sold!
14:41 lucian joined #parrot
14:42 whiteknight okay, I'll play with it tonight
14:44 NotFound whiteknight: take it easy, that part of the parser is not as clean as it should be.
14:44 whiteknight it's okay
15:07 benabik whiteknight: Do you know the purpose of PCT.Dumper ?
15:07 whiteknight no
15:07 benabik It's function appears to be to crash.
15:08 benabik Oh, that's because I'm calling a random function as main.  This makes sense.
15:11 benabik Hm.  PCT.Dumper appears to exist for no purpose.  It never gets installed.
15:12 whiteknight ...lolwat?
15:12 whiteknight is it just a debugging aide?
15:12 benabik I guess.
15:12 benabik "This file implements a dumper that attempts to output PAST, Match, and Capture objects in a format that can be easily consumed by syntax highlighters (such as Padre)."
15:13 benabik It's main function is padre()
15:13 whiteknight I haven't played with padre in a long time. I wonder how it's working now
15:14 alvis joined #parrot
15:15 benabik Blah.  I nominate PCT.Dumper for removal.  It's not installed and if there's a clamor for it, it can be dug out of git.
15:18 alvis joined #parrot
15:21 whiteknight I'm fine with that. Send an email to parrot-dev to see if anybody has additional insight first
15:22 benabik Hm.  Does `set_hll_global ['PCT';'Node'], '$!serno', 10` have a reasonable winxed analog?
15:23 whiteknight good question. I don't know if Winxed offers easy interfaces for namespaces
15:23 whiteknight arguably it shouldn't, if we plan to kill or radically alter namespaces in the future
15:24 benabik Is `${ set_hll_global namespace PCT.Node, '$!serno', 10 }` likely to do what I expect?
15:25 whiteknight that....is a very good question
15:25 alvis left #parrot
15:25 benabik :-D
15:26 whiteknight winxed -o- -c -e "${ set_hll_global namespace PCT.Node, '$!serno', 10 }"
15:26 whiteknight see what opcodes it generates
15:26 whiteknight or if it parses at all
15:26 benabik It parses.  uses get_namespace, and passes the result to get_hll_global...  Not sure if that's sane.
15:26 whiteknight the "sane" thing is to not use PIR at all because it's evil
15:27 benabik Probably doesn't work.  set_hll_global expects a key.
15:27 whiteknight Can you do something like "using PCT.Node; var ns = Node; ns['$!errno'] = 10"?
15:28 benabik Will that work?
15:29 benabik Hm.  Looks like Winxed provides no access to set_*_global opcodes.
15:29 whiteknight winxed -o- -c -e'${ set_hll_global ["foo","bar"], "baz", 10 };'
15:29 whiteknight that creates an RPA, which should be usable in place of a key
15:29 whiteknight or else you might need to create an RSA instead
15:30 whiteknight namespaces and keys are a tragedy
15:31 benabik ... yes
15:31 benabik Although I'm not sure what's bad about namespaces.
15:31 whiteknight The idea of namespaces in general isn't bad. The implementation we have is bad
15:32 whiteknight And the dependencies on the bad implementation that IMCC relies on are terrible
15:33 NotFound You can use a namespace HLL modifier, but that feature is completely untested.
15:34 benabik huh?
15:35 NotFound Well, there is examples/hlltest.winxed, but that hardly qualifies.
15:37 NotFound Uh, forget it, I was thinking about using the namespace of other HLL:
15:42 benabik whiteknight: Node['$!serno'] works!
15:47 NotFound benabik: yes, that work, but I'll better suggest: var node = namespace PCT.Node; node["$!errno"] = 10;
15:48 benabik NotFound: Ah, yes, I see the difference.  Thanks.
15:49 NotFound This way must be less dependant on specific namespace variants.
15:52 dmalcolm joined #parrot
15:58 whiteknight I didn't know about the namespace syntax like that. Awesome
15:59 benabik Hm.  fun, fun.  PCT.Node defines a clone function.  This interferes with the clone builtin.
15:59 benabik ${} to the rescue
16:00 benabik Hm.  I expect this to be a larger issue.  There are a great deal of methods in PCT.Node that are named the same as built-ins that use the built-ins.  Blah.
16:01 alvis joined #parrot
16:01 NotFound benabik: just use Winxed_Builtins.clone
16:02 benabik NotFound++
16:08 dalek parrot/threads: 015d416 | nine++ | / (7 files):
16:08 dalek parrot/threads: Improve chamaneos by replacing polling with a waiters queue
16:08 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/015d416203
16:08 dalek parrot/threads: 7c969bc | nine++ | / (5 files):
16:08 dalek parrot/threads: Replace notifierfd pipe with a condition mutex
16:08 dalek parrot/threads:
16:08 dalek parrot/threads: This improves cross platform compatability since Parrot_cond is also
16:08 dalek parrot/threads: available on Windows. This patch also abstracts away differences between
16:08 dalek parrot/threads: the main thread and the child threads into Parrot_thread_notify_thread
16:08 dalek parrot/threads: which should be used whenever scheduling a Task on a different thread to
16:08 dalek parrot/threads: wake it up in case it's waiting for new Tasks.
16:08 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/7c969bcdba
16:08 dalek parrot/threads: ef073fe | nine++ | src/scheduler.c:
16:08 dalek parrot/threads: Fix race condition between SIGALRM and pause()
16:08 dalek parrot/threads:
16:08 dalek parrot/threads: Between the last Parrot_cx_check_alarms call and the pause() in the main
16:08 dalek parrot/threads: threads outer runlook, the ALRM signal that the pause() call should be
16:08 dalek parrot/threads: waiting for can be delivered. The pause() could then be waiting for the
16:08 dalek parrot/threads: next alarm to expire or worst case indefinitely.
16:08 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/ef073feb94
16:09 whiteknight holycrap
16:09 whiteknight nine++
16:09 nine Wow... 7c969bc not only improves compatability, but it also increases chameneos performance by 20x! I'd love to know why it does that exactly
16:09 whiteknight don't ask too many questions or else it might go away
16:09 whiteknight so does greenthreads work on windows now, or does it still need some tweaks?
16:10 nine FYI chameneos went from 3 per second in the first implementation to 1200 in my current local version
16:10 nine whiteknight: still have to do the timer stuff. But I should be able to get that done by tomorrow
16:10 whiteknight nine: You're a miracle
16:12 benabik Winxed has no can builtin?
16:14 whiteknight benabik: $include "Rosella/Builtins.winxed"
16:14 whiteknight (if you have Rosella installed)
16:14 benabik whiteknight: Not a good solution for PCT.
16:14 * benabik is not sure why he's converting PCT to Winxed, but it's defiantly good practice.
16:15 whiteknight https://github.com/Whiteknight/Rosella/​blob/master/src/include/Builtins.winxed feel free to "borrow" anything you want from there
16:17 whiteknight it could serve as a decent start for PACt
16:17 whiteknight some of it, anyway
16:19 nine Wow...I can double speed again by removing the debug output. So it's now at 1/6 of the Perl implementation. And this is with a mutex implemented in PIR with polling...
16:19 whiteknight wowsers
16:19 whiteknight thats....absurd
16:23 benabik I kind of like this bare switch statement.
16:24 nine Oh I forgot: default Parrot compilation is with debugging enabled: with an optimized build I can get another 50 % performance increase. We're now at 3865/sec compared to 12700/sec with Perl.
16:28 whiteknight nine: that's almost unbelievable
16:29 whiteknight benabik: I haven't used the bare switch much, but I can definitely see the utility of it
16:30 nine The downside is: it's crashing randomly :/ Looks like a missing write barrier somewhere. moretasks.pir is perfectly stable though so it must be some feature which chameneos uses and moretasks doesn't.
16:39 whiteknight okay, that's quite the tradeoff
16:39 whiteknight writebarriers are a huge pain to get right
16:40 whiteknight I can try to take a look at it later
16:45 nine What do I have to do to get a change in src/ops/experimental.ops to make it into src/ops/core_ops.c?
16:45 whiteknight ./ops2c --core && make
16:46 whiteknight there's a "make bootstrap-ops" make target, but if it fails you're left without a built parrot and with an unbuildable core_ops.c file
16:46 whiteknight so use ./ops2c instead
16:46 nine That's what I tired. Does ops2c strip comments?
16:46 benabik Hm.  winxed doesn't understand --target=pbc ?
16:47 whiteknight nine: it shouldn't strip comments, I don't think
16:48 whiteknight benabik: what do you mean "understand"?
16:48 nine It does
16:48 benabik whiteknight: "Invalid target 'pbc'"
16:48 whiteknight I think --target is not what you want
16:49 whiteknight I also don't think winxed compiles to .pbc in one step, yet
16:49 benabik Looked like it did from the source, but I think the driver in the winxed repo is different than the one in parrot.
16:49 whiteknight there's an "installable driver", which is what parrot uses
16:50 whiteknight I don't remember exactly where that lives
16:53 PacoAir joined #parrot
16:59 NotFound winxed_installed
17:00 davidfetter joined #parrot
17:04 dalek parrot/threads: 3dbf36f | nine++ | examples/threads/chameneos.pir:
17:04 dalek parrot/threads: Chameneos: get rid of the at_most_two semaphore
17:04 dalek parrot/threads:
17:04 dalek parrot/threads: Slight restructuring of the algorithm makes it possible to go without
17:04 dalek parrot/threads: the at_most_two semaphore. We just use -1 to mark an unset field.
17:04 dalek parrot/threads: review: https://github.com/parrot/parrot/commit/3dbf36fb8e
17:16 benabik Re-writing PCT in winxed is much easier than writing it in NQP because of the lack of bootstrapping.
17:17 jashwanth joined #parrot
17:17 whiteknight ah yes, I imagine that is quite the benefit
17:17 jashwanth ah alas
17:17 whiteknight of course, maybe one day we rewrite winxed to use PACT, then we've got the same can of worms
17:17 whiteknight hello jashwanth!
17:17 benabik Sadly, yes.
17:18 jashwanth hello whiteknight
17:18 benabik But I intend to keep PACT out of core and imported via PIR/PACT ASM.  Seems much easier that way.
17:18 moritz uhm, I don't see what the bootstrapping problems with NQP/PCT are
17:18 whiteknight yeah, that's fine
17:18 whiteknight moritz: it's not a problem, just an extra development step
17:18 moritz you don't have to recompile NQP with the rewritten PCT
17:19 whiteknight then how do you know it works?
17:19 benabik moritz: I was referring to last summer, when I had a PCT written in NQP.
17:19 moritz whiteknight: same as with PCT in winxed: by writing and running a test suite
17:24 benabik With PCT in NQP, I had to keep bootstrap files around so NQP itself could compile.  Then to test my changes, I had to re-bootstrap and recompile nearly everything due to everything that built using NQP.  It was a useful stress test, but like most bootstrapping made debugging things just that much more difficult.
17:25 benabik And you can't just load the NQP PCT separately in NQP because it would conflict with the bootstrapped version NQP used.  It was fun.
17:25 cotto ~~
17:26 benabik cotto: Greetings, mentor
17:26 cotto benabik: greetings, student
17:28 Coke if cotto's the mentor, I must be the backup.
17:28 whiteknight Coke: yessir
17:28 cotto Coke: looks like it
17:28 whiteknight I thought I included you in that last email
17:28 Coke Aye. that's how I knew.
17:29 lucian__ joined #parrot
17:30 moritz benabik: ah, namespaces clashes. I forgot about those.
17:30 NotFound BTW if someonw wants a little project I suggest a mk language script written in winxed, nqp or rakudo. Depending on perl5 is not exactly a good way yo show the parrot native capabilities ;)
17:30 cotto "little"?  Have you seen our configure system?
17:30 whiteknight NotFound: Yes, I was working on one for Rosella, but I stopped
17:30 moritz benabik: Rakudo and the new NQP now do sutff much more strictly compartmentalized
17:30 Coke NotFound: to replace the Makefile?
17:31 NotFound Coke: or to write a Makefile
17:31 moritz Coke: I think for creating the skeleton for a new language
17:31 benabik https://github.com/Benabik/parrot/commit/​635784f2d5de72320aaf95c263df70ce1328d043
17:31 moritz or did I misunderstand that?
17:31 benabik ^ Some PCT in Winxed
17:31 Coke we already have tools (like 'em or not) for new languages.
17:32 Coke (not as a "stop don't do that", but at least as a "you do know about those, yes?")
17:32 NotFound moritz: what you said
17:33 Coke do the existing ones depend on perl6? I thought they just used parrot?
17:33 Coke er, s/perl6/perl6/
17:33 Coke er... wow.
17:33 benabik mk_language_shell.pl
17:33 Coke Apparently I can no longer talk about perl6. ;)
17:34 NotFound I think they are all perlX for X < 6
17:35 Coke benabik: ah, there's the thing to create the shell, but there's also a utility for building the language once you've created it.
17:36 Coke of course, I think we still have the 2 disparate utilities for creating the shell in the first place.
17:36 benabik Coke: IIRC, the setup script for the shell is written in PIR.
17:36 NotFound A, yeah, forgot that. Not using pir is a bonus point.
17:44 benabik It would also be nice if the language shell was more flexible.  It currently generates everything using nqp-rx.  If you want to use winxed, you're kinda left on your own.
17:47 whiteknight A shell that could generate winxed with an ohm-eta starter grammer would be totally boss
17:47 whiteknight Lalrskate isn't at that level yet
17:47 whiteknight but being able to say I want a new language shell, written in implementation language X using parser Y
17:47 whiteknight that's what we want to end up with
17:48 dalek rakudo/nom: b1d764d | moritz++ | docs/ChangeLog:
17:48 dalek rakudo/nom: update ChangeLog
17:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1d764dad9
17:49 whiteknight just using NQP instead of NQP-rx would be an awesome improvement
17:49 whiteknight Or pure Rakudo
17:50 moritz rakudo is too slow for that kind of stuff right now
17:50 benabik nqp-rx isn't really a speed demon.
17:50 whiteknight moritz: whatever, we still want it as a possibility
17:51 whiteknight All Parrot tools that generate code shoudl have the option to generate Perl6 with Rakudo
17:52 NotFound Hey, I was talking just about replacing a shell that writes some files from some templates, not rewriting all tools. I said "little project" ;)
17:53 whiteknight i don't do "little projects"
17:53 whiteknight rewriting mk_language_shell with Winxed and Rosella will be like 20 lines of code plus a few templates
17:53 NotFound whiteknight: you already have lots of projects, leave at least the little ones for other people.
17:54 whiteknight NotFound: Fine! I can wait.
17:54 autark joined #parrot
17:56 Justin joined #parrot
18:03 dalek rakudo/nom: e126aa9 | moritz++ | docs/announce/2012.04.1:
18:03 dalek rakudo/nom: add early release announcement for a 2012.04.1 point release
18:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e126aa92dd
18:06 Justin good afternoon
18:08 benabik o/ Justin
18:11 whiteknight hello Justin
18:12 dalek rakudo/nom: a83a4ba | moritz++ | docs/announce/2012.04.1:
18:12 dalek rakudo/nom: [announce] say thanks to Oslo.pm
18:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a83a4badc9
18:14 Justin I just wanted to thank everyone for the opportunity to work with everyone. I look forward to it
18:14 whiteknight you can thank us by writing a mountain of awesome code
18:15 Justin will do my best!
18:22 contingencyplan joined #parrot
18:27 NotFound Or even two, I like the soundtrack of "Twin Peaks"
19:15 benabik Hm.  nqp-rx doesn't like it when all the capture_lex ops vanish.
19:15 benabik Funny that.
19:18 whiteknight what do you mean?
19:18 benabik Something about me converting PAST/Node.pir to PAST/Node.winxed resulted in nqp-rx no longer generating any capture_lex ops.
19:19 whiteknight oh, fun
19:21 benabik No, the fun part is that I have no idea why.
19:21 whiteknight do you know where capture_lex ops are supposed to be generated?
19:21 cotto #ps in 9
19:21 benabik PAST.Compiler.to_past( PAST::Block node )
19:22 benabik I'm looking into it...
19:26 brrt joined #parrot
19:26 benabik Ah.  lexical() has a default
19:27 benabik Which I accidentally dropped.
19:34 whiteknight #ps now?
19:36 benabik Winxed literal hash:  { 'key': 'value' }, right?
19:36 whiteknight yes
19:45 benabik Blah.  The compilers make heavy use of dynamic lexicals.  Forgot about that.  Maybe I'll just finish off all the nodes today.  Or maybe I'll try to dig into Winxed.
19:46 PerlJam benabik: which gsoc proposal was accepted?
19:46 * benabik is trying to keep his random code ranting out of #ps.
19:46 benabik PerlJam: PACT Assembly
19:46 PerlJam nice
19:47 PerlJam I was hoping it would be that one  :)
19:48 benabik 6model is probably more important to Parrot long-term, but PACT is something I can definitely produce something useful on in a summer.
19:48 benabik (Even a busy one.)
19:48 cotto it was the one that was less likely to happen without gsoc $$ behind it
19:48 cotto not that it was unlikely in the first place
19:48 benabik cotto: Hadn't thought of that, but probably true.
19:48 PerlJam cotto: that's kinda how I was looking at it too
19:50 whiteknight If nine can really get green threads working on windows, that frees me up to start on 6model almost immediately
19:52 benabik whiteknight++
19:52 whiteknight I said I would do it if you couldn't, and I meant it
20:01 alvis msg whiteknight I'm unable to get Rosella to build. Please see git://gist.github.com/2482904.git and tell me what I've got going wrong. Thanks as always.
20:01 aloha OK. I'll deliver the message.
20:02 whiteknight alvis: bummer! I'll take a look at it
20:03 whiteknight alvis: It looks like a simple typo somewhere. I'll try to throw a fix at it
20:03 bluescreen joined #parrot
20:03 alvis Great! Thanks.
20:04 cotto benabik: The diff is much easier to read when you rename a file like you did in https://github.com/Benabik​/parrot/commit/a90a568587 .  Thanks.
20:05 benabik cotto: Git detects these things automagically.  Putting the delete and add in the same commit does help it though.
20:09 whiteknight alvis: looks like I had a broken commit somewhere. I'll push the updated files as soon as I get home
20:10 brrt cotto: my name on parrot.org is brrt now
20:11 alvis whiteknight: Thank you. I'll pick back up with it later then. I wanted to take your String.Tokenizer class out for a spin. :)
20:11 cotto brrt: give it a shot now
20:12 whiteknight alvis: That class is immature, but if you use it and have feedback, that would be great
20:12 alvis 'k
20:14 brrt cotto: i see, thanks
20:17 cotto brrt: can you make a quick test post?
20:18 cotto you can post lorem ipsum and delete it.  Just make sure that everything's set up.
20:18 brrt sure
20:18 * benabik wonders what the difference between `return ()` and running off the end of the sub is.
20:18 whiteknight in nqp or winxed?
20:18 whiteknight in winxed, there is no real difference
20:19 brrt posted
20:19 cotto brrt: great
20:19 whiteknight Yep, I see it. brrt++
20:19 cotto brrt++
20:23 benabik whiteknight: PIR
20:23 whiteknight benabik: no real difference
20:24 whiteknight There used to be a difference in the :main sub, but that's been resolved
20:24 benabik Well, that'll shave some lines off then.  I keep adding `return;` in the Winxed for `return ()`
20:24 whiteknight yeah, unnecessary
20:30 whiteknight time for me to go. be back later tonight
20:30 lucian__ joined #parrot
20:43 NotFound Sorry, failed ps.
20:44 brrt real post just posted :-)
20:45 brrt is there an aggegrator for parrot.org blogs?
20:45 brrt oh, parrot.org homepage
20:45 brrt i'm going to watch my words on that site :-o
20:45 benabik brrt: I follow http://planet.parrotcode.org/, which also gets some non-parrot.org blogs
20:50 NotFound brrt: "I play mario kart and pikmin" What console?
20:51 brrt wii
20:51 brrt acquired last winter
20:51 NotFound Good
20:52 brrt :-)
20:53 brrt waluigi ftw
20:53 benabik wtf?  Why are t/codingstd/pod_{description,syntax}.t trying to open files that don't exist?
20:54 benabik I deleted compilers/pct/src/POST/Node.pir, but both those tests insist on trying to open it.
20:54 NotFound I've never been a console guy, but the wii changed my mind.
20:54 * benabik has already updated MANIFEST
20:56 brrt NotFound: what games?
20:56 NotFound benabik: You should probably realclean/rebuild
20:57 benabik Blarg.  Parrot's build system is a little overly complex.
20:57 NotFound brrt: only a few, sports and balance board, mostly.
20:58 brrt don't have many either, yet
21:05 benabik Oh ow.
21:06 benabik Winxed is failing during built.  "winxed: Cannot load language"
21:06 benabik This is probably related to the fact that I don't have parrot installed at the moment.
21:07 NotFound benabik: yes, without parrot you just can build stage 0
21:08 benabik NotFound: Erm, to be more precise:  attempting to use the winxed fakecutable in the middle of Parrot's build process fails
21:09 benabik Parrot is built, but not installed, and it's trying to build libraries.
21:09 NotFound benabik: ah, yes, we must add a dependency and a test for that usage.
21:11 benabik Do you know what's happening?  Winxed's driver is loaded, but not the compiler?
21:12 NotFound Bizarre... let me look at the Makefile....
21:12 benabik winxed: Cannot load language
21:12 benabik current instr.: 'getcompiler' pc 655 (ext/winxed/driver.pir:249)
21:12 benabik called from Sub 'process_args' pc 977 (ext/winxed/driver.pir:345)
21:12 benabik called from Sub '__PARROT_ENTRY_WINXED_main' pc 1388 (ext/winxed/driver.pir:493)
21:19 donaldh joined #parrot
21:21 alvis benabik: ping
21:21 benabik alvis: pong
21:22 alvis hey, what does ':(var mob, int pos, string target) = self.new(self);' mean? Specifically, the ':(...)' syntax? return multiple values?
21:22 NotFound benabik: I think we should add  a dependency on WINXED_LANG to WINXED. A bit overkill, but safe.
21:22 NotFound In ext/winxed/Rules.mak
21:22 benabik alvis: Yes, that's the syntax to bind variables to multiple return values.
21:23 benabik NotFound++
21:23 alvis Ok, thanks. I wasn't sure, but I've seen you and Whiteknight use it and that's what it looked like.
21:24 benabik alvis: I also use it in a couple places with a single variable to avoid a little bit of extra boxing and unboxing.  (Winxed seems to assume subs return PMCs)
21:24 NotFound alvis: technically is gneral purpose multi assign, but the only supported usage is calling functions with multiple return, yes.
21:25 alvis NotFound: Ah, ... Ok. Thanks.
21:25 NotFound benabik: Uh? What's the semantic difference?
21:26 benabik string s = foo()  ==>   $P1 = 'foo'() ; set $S1, $P1
21:26 * brrt will be leaving now
21:26 benabik :(string s) = foo()   ==>  $S1 = 'foo'()
21:26 brrt see you tomorrow!
21:26 brrt left #parrot
21:28 NotFound benabik: ah, yes. I should review such usages some days, there are some incosistency at play.
21:29 alvis benabik: that's a nifty.
21:29 alvis a nifty trick, that is.
21:29 benabik NotFound: It seems to assume sub will always return PMC.  It doesn't change the final result, but it can cause additional boxing.
21:31 NotFound benabik: the idea at some point was to automatically convert null pmc to null string, but it doesn't it in all cases.
21:33 benabik NotFound: I think the PCC ops will take care of it.  Also, it does the same for int.
21:33 NotFound BTW now you can use default values on it-
21:36 alvis NotFound: default values on what?
21:37 perlite joined #parrot
21:38 NotFound alvis: in multi assign: :( string s0, string s1 = "nothing") = give_me_one_or_two();
21:38 alvis NotFound: Oh, ... cool. :)
21:40 * alvis going back to looking over NotFound's pirado.winxed. I gotta ... borrow ... yeah, that's it, ... a few bits.
21:41 NotFound alvis: that was just a proof of concept, is probably bit rotten.
21:43 dalek parrot: 69f55a2 | benabik++ | ext/winxed/Rules.mak:
21:43 dalek parrot: Winxed: Make executable depend on language
21:43 dalek parrot:
21:43 dalek parrot: Without this, attempting to use winxed mid-build (say for PCT) fails
21:43 dalek parrot: with "winxed: Cannot load language".
21:43 dalek parrot:
21:43 dalek parrot: Fix suggested by NotFound++
21:43 dalek parrot: review: https://github.com/parrot/parrot/commit/69f55a28ec
21:47 benabik Hm.  Parsing variable declarations in Winxed is...  non-trivial.  I may have to leave the lexical option for those more familiar with the source.
21:57 benabik I managed to convert all the PCT nodes to Winxed in a day.  Not too shabby.  Of course, 99% of the complexity is in the compilers, and all of them use dynamic lexicals.
21:57 davidfetter joined #parrot
21:58 benabik https://github.com/Benabik​/parrot/compare/pct_winxed
22:01 travis-ci joined #parrot
22:01 travis-ci [travis-ci] parrot/parrot#271 (master - 69f55a2 : Brian Gernhardt): The build was fixed.
22:01 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/120378c...69f55a2
22:01 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/1167634
22:01 travis-ci left #parrot
22:20 cotto benabik: is there any reason you're not working in a branch on parrot/parrot?
22:20 benabik cotto: I tend to start on experimental things in my fork so I can rebase freely.
22:20 cotto benabik: wfm
22:21 benabik I've got this chunk cleaned up pretty well though, so I might push it to parrot
22:21 * benabik likes avoiding merge commits.
22:45 Coke let me know if I need to add anyone's blog to planet parrot.
22:52 japhb_ joined #parrot
22:52 japhb_ Infinoid, ping
23:04 dalek parrot/pct_winxed: e00158b | benabik++ | / (9 files):
23:04 dalek parrot/pct_winxed: PCT: Convert some core files to Winxed
23:04 dalek parrot/pct_winxed:
23:04 dalek parrot/pct_winxed: This is mostly just an experiment, but it seems to be working fairly
23:04 dalek parrot/pct_winxed: well.
23:04 dalek parrot/pct_winxed: review: https://github.com/parrot/parrot/commit/e00158ba0a
23:04 dalek parrot/pct_winxed: 6ae5b1f | benabik++ | / (5 files):
23:04 dalek parrot/pct_winxed: PCT: Convert PAST/Node to Winxed
23:04 dalek parrot/pct_winxed: review: https://github.com/parrot/parrot/commit/6ae5b1f745
23:04 dalek parrot/pct_winxed: c68a4dd | benabik++ | / (5 files):
23:04 dalek parrot/pct_winxed: PCT: Convert POST/Node.pir to Winxed
23:04 dalek parrot/pct_winxed: review: https://github.com/parrot/parrot/commit/c68a4ddc9e
23:04 dalek parrot/pct_winxed: e122c06 | benabik++ | compilers/pct/src/PAST/Node.winxed:
23:04 dalek parrot/pct_winxed: [codingstd] PAST/Node POD errors
23:05 dalek parrot/pct_winxed:
23:05 dalek parrot/pct_winxed: This also introduces several extra lines because podchecker complained
23:05 dalek parrot/pct_winxed: without them.
23:05 dalek parrot/pct_winxed: review: https://github.com/parrot/parrot/commit/e122c067b2
23:05 dalek parrot/pct_winxed: 8be7e37 | benabik++ | compilers/pct/Defines.mak:
23:05 dalek parrot/pct_winxed: PCT: Cleanup generated pir
23:05 dalek parrot/pct_winxed:
23:05 dalek parrot/pct_winxed: Now that the pir files are generated, make sure they're removed by
23:05 dalek parrot/pct_winxed: make clean.
23:05 dalek parrot/pct_winxed: review: https://github.com/parrot/parrot/commit/8be7e37f66
23:08 benabik cotto: There ya go, all official like in parrot/parrot.
23:09 benabik de-commute &
23:10 cotto wheee
23:10 cotto Coke: doesn't everything on parrot.org get added automatically?
23:11 NotFound If we are going to have a bunch of winxed files in the repo, maybe is time to set up standard header and footers and codetest for them.
23:11 cotto NotFound++
23:12 cotto That's a great idea.  Does that mean you're willing to implement that?
23:13 NotFound Uh... I don't even know how vim footers work.
23:13 cotto it's just a very slightly magical comment
23:14 cotto do you use vim?
23:15 NotFound I'm so freak that I use my own editor.
23:15 dalek rakudo/nom: 7334a53 | pmichaud++ | docs/ChangeLog:
23:15 dalek rakudo/nom: Typo fix; replace "infix cmp" with "&infix:<cmp>".
23:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7334a53a61
23:17 NotFound Must go now, will think about it tomorrow,
23:17 Coke cotto: yes, but blogging on parrot.org sucks, so I wasn't expecting new blogs to go there. ;)
23:18 Coke (footers) see skeleton.pir
23:18 cotto I'm not thrilled that it's required either.  It's a pretty crappy platform atm.
23:19 Coke cotto: then why on earth did we require it?
23:20 Coke so change it. it's not too late for students to go make a site on blogpost.
23:20 cotto nobody asked me.
23:21 cotto msg whiteknight I'd like to not require that gsoc students use the crappy parrot.org blog.  Is there any reason to limit where they blog?
23:21 aloha OK. I'll deliver the message.
23:22 Coke msg whiteknight note that we can add any blog to planetparrot easily.
23:22 aloha OK. I'll deliver the message.
23:22 Coke msg cotto Hey.
23:22 aloha OK. I'll deliver the message.
23:22 cotto ?
23:23 Coke (skeleton) - (actually, "cd editor && make" - that generates the vim skeleton file.
23:25 Coke (and then google for how to install a vim skeleton file because I forgot)

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

Parrot | source cross referenced