|
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 | ||