Parrot 4.3.0 "In Which..." | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 April 2012.
whiteknight good evening, #parrot 00:06
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.
whiteknight Any GSOC students around? 00:12
benabik hi 00:17
whiteknight benabik: did acceptance emails come out today? 00:19
benabik I got both. :-) 00:20
whiteknight both?
benabik Acceptance and rejection, for the two projects.
whiteknight oh, okay
yeah, I'm sorry about the rejection, we had a limited number of slots this year and we had too many great proposals
also, congratulations on the acceptance! You had a great proposal and we're happy to work with you this summer
okay, if the emails went out, I can send out another email with more information 00:24
actually, I still haven't figured out backup mentor assignments yet. I'll have to do that before I send out any emails 00:29
dalek nxed: 962f411 | NotFound++ | winxedst2.winxed:
avoid emiting redundant goto for inlined return in some cases
00:53
01:58 nbezzala joined 02:16 jashwanth joined
dalek rrot: 07ddfe5 | jkeenan++ | src/string/encoding/shared.c:
[codingstd] Remove trailing whitespace.
02:54
03:22 alester_ joined
benabik Verison strings from PCT::HLLCompiler are complete garbage. 04:22
dalek rrot/gh346: 1ac59fc | benabik++ | t/run/options.t:
WIP
05:00
rrot: dcbf59a | benabik++ | compilers/pct/src/PCT/HLLCompiler.pir:
PCT::HLLCompiler - Make version useful

The version string from PCT::HLLCompiler was always:
   This compiler is built with the Parrot Compiler Toolkit, parrot
   revision 1.
Change that to include the version and git_describe instead, like:
   This compiler is built with the Parrot Compiler Toolkit, parrot
   4.3.0 revision RELEASE_4_3_0-13-g16f3fbe
rrot: 120378c | benabik++ | MANIFEST:
codingstd: Remake MANIFEST

It was missing t/codingstd/case_sensitive_files.t
benabik Oops... Didn't mean to push a WIP commit. Undone.
05:50 wagle joined 05:52 wagle joined 06:02 travis-ci joined
travis-ci [travis-ci] parrot/parrot#270 (master - 120378c : Brian Gernhardt): The build was broken. 06:02
[travis-ci] Change view : github.com/parrot/parrot/compare/0......120378c
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1159989
06:02 travis-ci left 06:43 fperrad joined 06:45 dngor joined 07:02 brrt joined 07:06 nbezzala joined 07:17 Khisanth joined 07:51 lucian__ joined 08:36 lucian joined 08:40 preflex_ joined
dalek p: 58e7359 | moritz++ | src/HLL/CommandLine.pm:
for grouped command line options, check if each is allowed
09:01
09:18 Khisanth joined 10:31 bacek_ joined 10:57 nbezzala joined 11:09 preflex_ joined 11:17 nbrown joined 11:35 brrt left 11:40 nbezzala_ joined 11:53 benabik joined
benabik ~~ 11:55
12:16 bluescreen joined 12:36 whiteknight joined
whiteknight good morning, #parrot 12:43
benabik whiteknight: Morning. 12:46
whiteknight hello benabik
12:47 brrt joined
brrt ping whiteknight 12:48
whiteknight pong brrt 13:02
brrt :-) 13:04
so, i see you'll be mentoring me
whiteknight yessir
brrt \\o
fun 13:05
13:05 PacoAir joined
brrt i have a github account btw :-) 13:05
whiteknight awesome, what's it called?
brrt 'bdw' :-)
which are my initials
github.com/bdw
moritz thought it meant "by d way" :-) 13:06
brrt :-)
i'm not always creative with names 13:07
oh, and i have a google+, which i don't use: plus.google.com/u/0/117159578203995147563/posts 13:11
tadzik how about a diaspora account? :) 13:15
moritz as if we didn't have enough diaspora already 13:17
brrt diaspora is a service today? 13:21
tadzik aye
dalek kudo/nom: 11c0ab8 | moritz++ | src/core/ (2 files):
be more robust when .count is Inf

but does not cover all cases yet
13:22
tadzik I can drop around some invites if you want
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:23
brrt tadzik: nm, i'll never use it, either :-)] 13:35
whiteknight benabik: winxed automatically creates the lexical if you use a variable in a closure 14:02
benabik whiteknight: But I can't explicitly create one? PCT uses lexicals to do interesting things. 14:03
whiteknight I don't think so. What kinds of "interesting" things? 14:06
I may be able to put together a patch if you want something fancy
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.
PACT may do something completely different, but I'm just trying to straight port PCT at the moment.
whiteknight I'm not sure what you mean. I'd have to see an example or something
Can you use globals or something to get moving? 14:08
brrt whiteknight: i can build parrot, but only on cold days; otherwise my laptop overheats :-p 14:09
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:11
nqp-rx uses `find_dynamic_lex '%*COMPILING'` to be exact 14:12
14:12 JimmyZ joined
whiteknight benabik: OOOH! dynamic lexicals are different from ordinary lexicals 14:12
they're all dynamicish and stuff
benabik They're declared the same way. 14:13
Used differently.
moritz whiteknight: it's only the lookup that's different
ie normal find_lex looks up the outer change
find_dyanmic_lex or find_caller_lex or whatever it's called looks in all outer chaines of all callers
s/change/chain/
brrt what is a dynamic lexical?
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
brrt: it looks in the caller, instead of the owner
benabik I suppose I could prod the LexPad manually...
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?
moritz brrt: I think so, yes
brrt (in perl terms, it is a local $var, rather than my $var)
moritz well, yes-ish 14:16
brrt ok, i see, i just see 'lexical' and i think 'my $var' :-)
moritz except that in p5, lexcicals and local() don't mix
benabik brrt: Dynamic lexicals are 'my $*var'
moritz ie you can only local()ize our-vars
benabik brrt: In perl 6
brrt i see
good to know
whiteknight NotFound: ping 14:17
opbots 14:21
blah
opbots trust brrt
slavorg Ok
whiteknight opbots trust jashwanth 14:22
slavorg Ok
whiteknight opbots trust Justin
slavorg Ok
NotFound whiteknight: pong 14:24
whiteknight NotFound: We need a way to explicitly create lexicals for use with find_dynamic_lex 14:26
NotFound: if you suggest the syntax, I'll make the patch
benabik NotFound: To be precise, "we" means "benabik re-writing PCT in winxed"
whiteknight right, "we"
NotFound Oh, I thougth it was majestatic plural, Sir. 14:27
whiteknight :)
moritz lexvar x = 3; // maybe? 14:28
whiteknight lexical var x = 3; ? 14:29
I CAN HAZ var x = 3
NotFound Just for var, or also int, string...
PerlJam var x = new Lexical(3); # :-)
NotFound ?
whiteknight NotFound: all of them 14:30
NotFound PerlJam: that would be too much magic.
whiteknight Actually, I don't know. Do dynamic lexicals handle native types?
I know regular lexicals do now
moritz I wouldn't know how that would work 14:31
the nativitiy of a variable must be known at compile time, because they are very much not polymorphic by nature
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
whiteknight or var[lexical("Foo")] x = 3 14:34
PerlJam does winxed not have some sort of annotation system yet?
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)
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.
PerlJam NotFound++ that there's some wisdom :)
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.
whiteknight This would all be a non-issue if lexicals could be created at runtime with an opcode instead of a compile-time directive
Winxed already has a syntax for calling PIR ops
benabik Does the [modifier] syntax conflict with arrays?
whiteknight no, because an array would be string x[] = []
not string[] x = [] like in Java 14:37
benabik But the modifier needs to be on the variable, not the type.
var compiling[lexical('%*COMPILING')]
whiteknight Winxed has a : operator for cases like that 14:38
benabik Ah.
whiteknight var compiling:[lexical('Foo')]
NotFound The syntax will be: type <optional modifer> identifier, ...
whiteknight That's how it allows passing of flags on function arguments
benabik type mod ident, mod ident ?
whiteknight that seems as good as anything
benabik NotFound++ # coherent syntax
whiteknight that's why I ask him :) 14:39
NotFound Mmmm... maybe using the same syntax as arguments will be more consistent.
benabik I'd think so. 14:40
It's also a similar case of attaching modifiers to variables.
NotFound Yes, and more clean that it refers only to one identifier.
Sold!
14:41 lucian joined
whiteknight okay, I'll play with it tonight 14:42
NotFound whiteknight: take it easy, that part of the parser is not as clean as it should be. 14:44
whiteknight it's okay
benabik whiteknight: Do you know the purpose of PCT.Dumper ? 15:07
whiteknight no
benabik It's function appears to be to crash.
Oh, that's because I'm calling a random function as main. This makes sense. 15:08
Hm. PCT.Dumper appears to exist for no purpose. It never gets installed. 15:11
whiteknight ...lolwat? 15:12
is it just a debugging aide?
benabik I guess.
"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)."
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
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:15
15:18 alvis joined
whiteknight I'm fine with that. Send an email to parrot-dev to see if anybody has additional insight first 15:21
benabik Hm. Does `set_hll_global ['PCT';'Node'], '$!serno', 10` have a reasonable winxed analog? 15:22
whiteknight good question. I don't know if Winxed offers easy interfaces for namespaces 15:23
arguably it shouldn't, if we plan to kill or radically alter namespaces in the future
benabik Is `${ set_hll_global namespace PCT.Node, '$!serno', 10 }` likely to do what I expect? 15:24
whiteknight that....is a very good question 15:25
15:25 alvis left
benabik :-D 15:25
whiteknight winxed -o- -c -e "${ set_hll_global namespace PCT.Node, '$!serno', 10 }" 15:26
see what opcodes it generates
or if it parses at all
benabik It parses. uses get_namespace, and passes the result to get_hll_global... Not sure if that's sane.
whiteknight the "sane" thing is to not use PIR at all because it's evil
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"?
benabik Will that work? 15:28
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 };'
that creates an RPA, which should be usable in place of a key
or else you might need to create an RSA instead
namespaces and keys are a tragedy 15:30
benabik ... yes 15:31
Although I'm not sure what's bad about namespaces.
whiteknight The idea of namespaces in general isn't bad. The implementation we have is bad
And the dependencies on the bad implementation that IMCC relies on are terrible 15:32
NotFound You can use a namespace HLL modifier, but that feature is completely untested. 15:33
benabik huh? 15:34
NotFound Well, there is examples/hlltest.winxed, but that hardly qualifies. 15:35
Uh, forget it, I was thinking about using the namespace of other HLL: 15:37
benabik whiteknight: Node['$!serno'] works! 15:42
NotFound benabik: yes, that work, but I'll better suggest: var node = namespace PCT.Node; node["$!errno"] = 10; 15:47
benabik NotFound: Ah, yes, I see the difference. Thanks. 15:48
NotFound This way must be less dependant on specific namespace variants. 15:49
15:52 dmalcolm joined
whiteknight I didn't know about the namespace syntax like that. Awesome 15:58
benabik Hm. fun, fun. PCT.Node defines a clone function. This interferes with the clone builtin. 15:59
${} to the rescue
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:00
16:01 alvis joined
NotFound benabik: just use Winxed_Builtins.clone 16:01
benabik NotFound++ 16:02
dalek rrot/threads: 015d416 | nine++ | / (7 files):
Improve chamaneos by replacing polling with a waiters queue
16:08
rrot/threads: 7c969bc | nine++ | / (5 files):
Replace notifierfd pipe with a condition mutex

This improves cross platform compatability since Parrot_cond is also available on Windows. This patch also abstracts away differences between the main thread and the child threads into Parrot_thread_notify_thread which should be used whenever scheduling a Task on a different thread to wake it up in case it's waiting for new Tasks.
rrot/threads: ef073fe | nine++ | src/scheduler.c:
Fix race condition between SIGALRM and pause()

Between the last Parrot_cx_check_alarms call and the pause() in the main threads outer runlook, the ALRM signal that the pause() call should be waiting for can be delivered. The pause() could then be waiting for the next alarm to expire or worst case indefinitely.
whiteknight holycrap 16:09
nine++
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
whiteknight don't ask too many questions or else it might go away
so does greenthreads work on windows now, or does it still need some tweaks?
nine FYI chameneos went from 3 per second in the first implementation to 1200 in my current local version 16:10
whiteknight: still have to do the timer stuff. But I should be able to get that done by tomorrow
whiteknight nine: You're a miracle
benabik Winxed has no can builtin? 16:12
whiteknight benabik: $include "Rosella/Builtins.winxed" 16:14
(if you have Rosella installed)
benabik whiteknight: Not a good solution for PCT.
benabik is not sure why he's converting PCT to Winxed, but it's defiantly good practice.
whiteknight github.com/Whiteknight/Rosella/blo...ins.winxed feel free to "borrow" anything you want from there 16:15
it could serve as a decent start for PACt 16:17
some of it, anyway
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
thats....absurd
benabik I kind of like this bare switch statement. 16:23
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:24
whiteknight nine: that's almost unbelievable 16:28
benabik: I haven't used the bare switch much, but I can definitely see the utility of it 16:29
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:30
whiteknight okay, that's quite the tradeoff 16:39
writebarriers are a huge pain to get right
I can try to take a look at it later 16:40
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
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
so use ./ops2c instead
nine That's what I tired. Does ops2c strip comments?
benabik Hm. winxed doesn't understand --target=pbc ?
whiteknight nine: it shouldn't strip comments, I don't think 16:47
benabik: what do you mean "understand"? 16:48
nine It does
benabik whiteknight: "Invalid target 'pbc'"
whiteknight I think --target is not what you want
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.
whiteknight there's an "installable driver", which is what parrot uses
I don't remember exactly where that lives 16:50
16:53 PacoAir joined
NotFound winxed_installed 16:59
17:00 davidfetter joined
dalek rrot/threads: 3dbf36f | nine++ | examples/threads/chameneos.pir:
Chameneos: get rid of the at_most_two semaphore

Slight restructuring of the algorithm makes it possible to go without the at_most_two semaphore. We just use -1 to mark an unset field.
17:04
benabik Re-writing PCT in winxed is much easier than writing it in NQP because of the lack of bootstrapping. 17:16
17:17 jashwanth joined
whiteknight ah yes, I imagine that is quite the benefit 17:17
jashwanth ah alas
whiteknight of course, maybe one day we rewrite winxed to use PACT, then we've got the same can of worms
hello jashwanth!
benabik Sadly, yes.
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.
moritz uhm, I don't see what the bootstrapping problems with NQP/PCT are
whiteknight yeah, that's fine
moritz: it's not a problem, just an extra development step
moritz you don't have to recompile NQP with the rewritten PCT
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.
moritz whiteknight: same as with PCT in winxed: by writing and running a test suite
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:24
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 ~~
benabik cotto: Greetings, mentor 17:26
cotto benabik: greetings, student
Coke if cotto's the mentor, I must be the backup. 17:28
whiteknight Coke: yessir
cotto Coke: looks like it
whiteknight I thought I included you in that last email
Coke Aye. that's how I knew.
17:29 lucian__ joined
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 ;)
cotto "little"? Have you seen our configure system?
whiteknight NotFound: Yes, I was working on one for Rosella, but I stopped
moritz benabik: Rakudo and the new NQP now do sutff much more strictly compartmentalized
Coke NotFound: to replace the Makefile?
NotFound Coke: or to write a Makefile 17:31
moritz Coke: I think for creating the skeleton for a new language
benabik github.com/Benabik/parrot/commit/6...ce1328d043
moritz or did I misunderstand that?
benabik ^ Some PCT in Winxed
Coke we already have tools (like 'em or not) for new languages.
(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
Coke do the existing ones depend on perl6? I thought they just used parrot? 17:33
er, s/perl6/perl6/
er... wow.
benabik mk_language_shell.pl
Coke Apparently I can no longer talk about perl6. ;)
NotFound I think they are all perlX for X < 6 17:34
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:35
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.
NotFound A, yeah, forgot that. Not using pir is a bonus point.
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:44
whiteknight A shell that could generate winxed with an ohm-eta starter grammer would be totally boss 17:47
Lalrskate isn't at that level yet
but being able to say I want a new language shell, written in implementation language X using parser Y
that's what we want to end up with
dalek kudo/nom: b1d764d | moritz++ | docs/ChangeLog:
update ChangeLog
17:48
whiteknight just using NQP instead of NQP-rx would be an awesome improvement 17:49
Or pure Rakudo
moritz rakudo is too slow for that kind of stuff right now 17:50
benabik nqp-rx isn't really a speed demon.
whiteknight moritz: whatever, we still want it as a possibility
All Parrot tools that generate code shoudl have the option to generate Perl6 with Rakudo 17:51
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:52
whiteknight i don't do "little projects" 17:53
rewriting mk_language_shell with Winxed and Rosella will be like 20 lines of code plus a few templates
NotFound whiteknight: you already have lots of projects, leave at least the little ones for other people.
whiteknight NotFound: Fine! I can wait. 17:54
17:54 autark joined 17:56 Justin joined
dalek kudo/nom: e126aa9 | moritz++ | docs/announce/2012.04.1:
add early release announcement for a 2012.04.1 point release
18:03
Justin good afternoon 18:06
benabik o/ Justin 18:08
whiteknight hello Justin 18:11
dalek kudo/nom: a83a4ba | moritz++ | docs/announce/2012.04.1:
[announce] say thanks to Oslo.pm
18:12
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
Justin will do my best! 18:15
18:22 contingencyplan joined
NotFound Or even two, I like the soundtrack of "Twin Peaks" 18:27
benabik Hm. nqp-rx doesn't like it when all the capture_lex ops vanish. 19:15
Funny that.
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.
whiteknight oh, fun 19:19
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?
cotto #ps in 9
benabik PAST.Compiler.to_past( PAST::Block node )
I'm looking into it... 19:22
19:26 brrt joined
benabik Ah. lexical() has a default 19:26
Which I accidentally dropped. 19:27
whiteknight #ps now? 19:34
benabik Winxed literal hash: { 'key': 'value' }, right? 19:36
whiteknight yes
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:45
PerlJam benabik: which gsoc proposal was accepted? 19:46
benabik is trying to keep his random code ranting out of #ps.
PerlJam: PACT Assembly
PerlJam nice
I was hoping it would be that one :) 19:47
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
(Even a busy one.)
cotto it was the one that was less likely to happen without gsoc $$ behind it
not that it was unlikely in the first place
benabik cotto: Hadn't thought of that, but probably true.
PerlJam cotto: that's kinda how I was looking at it too
whiteknight If nine can really get green threads working on windows, that frees me up to start on 6model almost immediately 19:50
benabik whiteknight++ 19:52
whiteknight I said I would do it if you couldn't, and I meant it
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.
whiteknight alvis: bummer! I'll take a look at it 20:02
alvis: It looks like a simple typo somewhere. I'll try to throw a fix at it 20:03
20:03 bluescreen joined
alvis Great! Thanks. 20:03
cotto benabik: The diff is much easier to read when you rename a file like you did in github.com/Benabik/parrot/commit/a90a568587 . Thanks. 20:04
benabik cotto: Git detects these things automagically. Putting the delete and add in the same commit does help it though. 20:05
whiteknight alvis: looks like I had a broken commit somewhere. I'll push the updated files as soon as I get home 20:09
brrt cotto: my name on parrot.org is brrt now 20:10
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
whiteknight alvis: That class is immature, but if you use it and have feedback, that would be great 20:12
alvis 'k
brrt cotto: i see, thanks 20:14
cotto brrt: can you make a quick test post? 20:17
you can post lorem ipsum and delete it. Just make sure that everything's set up. 20:18
brrt sure
benabik wonders what the difference between `return ()` and running off the end of the sub is.
whiteknight in nqp or winxed?
in winxed, there is no real difference
brrt posted 20:19
cotto brrt: great
whiteknight Yep, I see it. brrt++
cotto brrt++
benabik whiteknight: PIR 20:23
whiteknight benabik: no real difference
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 ()`
whiteknight yeah, unnecessary
time for me to go. be back later tonight 20:30
20:30 lucian__ joined
NotFound Sorry, failed ps. 20:43
brrt real post just posted :-) 20:44
is there an aggegrator for parrot.org blogs? 20:45
oh, parrot.org homepage
i'm going to watch my words on that site :-o
benabik brrt: I follow planet.parrotcode.org/, which also gets some non-parrot.org blogs
NotFound brrt: "I play mario kart and pikmin" What console? 20:50
brrt wii 20:51
acquired last winter
NotFound Good
brrt :-) 20:52
waluigi ftw 20:53
benabik wtf? Why are t/codingstd/pod_{description,syntax}.t trying to open files that don't exist?
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.
benabik has already updated MANIFEST
brrt NotFound: what games? 20:56
NotFound benabik: You should probably realclean/rebuild
benabik Blarg. Parrot's build system is a little overly complex. 20:57
NotFound brrt: only a few, sports and balance board, mostly.
brrt don't have many either, yet 20:58
benabik Oh ow. 21:05
Winxed is failing during built. "winxed: Cannot load language" 21:06
This is probably related to the fact that I don't have parrot installed at the moment.
NotFound benabik: yes, without parrot you just can build stage 0 21:07
benabik NotFound: Erm, to be more precise: attempting to use the winxed fakecutable in the middle of Parrot's build process fails 21:08
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.
benabik Do you know what's happening? Winxed's driver is loaded, but not the compiler? 21:11
NotFound Bizarre... let me look at the Makefile.... 21:12
benabik winxed: Cannot load language
current instr.: 'getcompiler' pc 655 (ext/winxed/driver.pir:249)
called from Sub 'process_args' pc 977 (ext/winxed/driver.pir:345)
called from Sub '__PARROT_ENTRY_WINXED_main' pc 1388 (ext/winxed/driver.pir:493)
21:19 donaldh joined
alvis benabik: ping 21:21
benabik alvis: pong
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.
In ext/winxed/Rules.mak
benabik alvis: Yes, that's the syntax to bind variables to multiple return values.
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.
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.
alvis NotFound: Ah, ... Ok. Thanks. 21:25
NotFound benabik: Uh? What's the semantic difference?
benabik string s = foo() ==> $P1 = 'foo'() ; set $S1, $P1 21:26
brrt will be leaving now
benabik :(string s) = foo() ==> $S1 = 'foo'()
brrt see you tomorrow!
21:26 brrt left
NotFound benabik: ah, yes. I should review such usages some days, there are some incosistency at play. 21:28
alvis benabik: that's a nifty. 21:29
a nifty trick, that is.
benabik NotFound: It seems to assume sub will always return PMC. It doesn't change the final result, but it can cause additional boxing.
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:31
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-
alvis NotFound: default values on what? 21:36
21:37 perlite joined
NotFound alvis: in multi assign: :( string s0, string s1 = "nothing") = give_me_one_or_two(); 21:38
alvis NotFound: Oh, ... cool. :)
alvis going back to looking over NotFound's pirado.winxed. I gotta ... borrow ... yeah, that's it, ... a few bits. 21:40
NotFound alvis: that was just a proof of concept, is probably bit rotten. 21:41
dalek rrot: 69f55a2 | benabik++ | ext/winxed/Rules.mak:
Winxed: Make executable depend on language

Without this, attempting to use winxed mid-build (say for PCT) fails with "winxed: Cannot load language".
Fix suggested by NotFound++
21:43
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:47
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
21:57 davidfetter joined
benabik github.com/Benabik/parrot/compare/pct_winxed 21:58
22:01 travis-ci joined
travis-ci [travis-ci] parrot/parrot#271 (master - 69f55a2 : Brian Gernhardt): The build was fixed. 22:01
[travis-ci] Change view : github.com/parrot/parrot/compare/1......69f55a2
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1167634
22:01 travis-ci left
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.
cotto benabik: wfm
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.
Coke let me know if I need to add anyone's blog to planet parrot. 22:45
22:52 japhb_ joined
japhb_ Infinoid, ping 22:52
dalek rrot/pct_winxed: e00158b | benabik++ | / (9 files):
PCT: Convert some core files to Winxed

This is mostly just an experiment, but it seems to be working fairly well.
23:04
rrot/pct_winxed: 6ae5b1f | benabik++ | / (5 files):
PCT: Convert PAST/Node to Winxed
rrot/pct_winxed: c68a4dd | benabik++ | / (5 files):
PCT: Convert POST/Node.pir to Winxed
rrot/pct_winxed: e122c06 | benabik++ | compilers/pct/src/PAST/Node.winxed:
[codingstd] PAST/Node POD errors

This also introduces several extra lines because podchecker complained without them.
rrot/pct_winxed: 8be7e37 | benabik++ | compilers/pct/Defines.mak:
PCT: Cleanup generated pir

Now that the pir files are generated, make sure they're removed by make clean.
benabik cotto: There ya go, all official like in parrot/parrot. 23:08
de-commute & 23:09
cotto wheee 23:10
Coke: doesn't everything on parrot.org get added automatically?
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++
That's a great idea. Does that mean you're willing to implement that? 23:12
NotFound Uh... I don't even know how vim footers work. 23:13
cotto it's just a very slightly magical comment
do you use vim? 23:14
NotFound I'm so freak that I use my own editor. 23:15
dalek kudo/nom: 7334a53 | pmichaud++ | docs/ChangeLog:
Typo fix; replace "infix cmp" with "&infix:<cmp>".
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. ;)
(footers) see skeleton.pir 23:18
cotto I'm not thrilled that it's required either. It's a pretty crappy platform atm.
Coke cotto: then why on earth did we require it? 23:19
so change it. it's not too late for students to go make a site on blogpost. 23:20
cotto nobody asked me.
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.
Coke msg whiteknight note that we can add any blog to planetparrot easily. 23:22
aloha OK. I'll deliver the message.
Coke msg cotto Hey.
aloha OK. I'll deliver the message.
cotto ?
Coke (skeleton) - (actually, "cd editor && make" - that generates the vim skeleton file. 23:23
(and then google for how to install a vim skeleton file because I forgot) 23:25