Camelia, the Perl 6 bug

IRC log for #parrot, 2013-04-18

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:25 Alxandr I do not understand the Grammar.pm file. I've done several context-free grammars in bison and other parser-generators before, however I still have no idea what some of the stuff in the Grammar.pm file means, is there some reasource I could read, somebody who could help me with that?
00:37 tangentstorm which Grammar.pm, Alxandr? can you link to it?
00:39 Alxandr Well, it's the autogenerated one. Pasted it here: http://monobin.com/1565/
00:40 Alxandr For instance; what is <?>
00:42 tangentstorm I was wondering about that one myself. the synopsis for rules should explain it
00:42 Alxandr And **
00:42 tangentstorm http://perlcabal.org/syn/S05.html
00:43 tangentstorm <?> always returns true.. hmm
00:44 tangentstorm perhaps { <statement> | <?>  } is somehow more efficient than { <statement>? }
00:46 tangentstorm ** is supposed to mean quantification...
00:46 tangentstorm i'm not sure how that applies to an argument of ';'
00:46 Alxandr Or { [ <statement> | <?> ] ** ';' ] } is somehow different to { [ <statement>? ** ';' }
00:46 tangentstorm it seems to indicate repetition separated by the ';' character.
00:49 tangentstorm http://perlcabal.org/syn/S05.​html#Bracket_rationalization yeah.
00:50 Alxandr / x ** $y / # same as / x [$y x]* /
00:50 tangentstorm ** apparently does all kinds of things
00:52 tangentstorm hrm.. no i misread
00:53 tangentstorm oh wait.. yeah.
00:54 Alxandr Also, wth does the magic <EXPR> match?
00:54 tangentstorm so x ** 2 matches xx  and   x ** y matches xyx and xyxyx
00:54 tangentstorm HLL::Grammar::EXPR
00:56 tangentstorm you said this Grammar.pm was generated... What generated it? (still catching up on the compiler tools)
00:59 Alxandr Well, to jumstart a new language I was told to run $> perl $PARROTDIR/tools/dev/mk_language_shell.pl <name_of_lang>
00:59 Alxandr also relevant: http://docs.parrot.org/parrot/devel/html/examples​/languages/squaak/doc/tutorial_episode_1.pod.html
01:00 Alxandr Oh, and tangentstorm; look at this: http://docs.parrot.org/parrot/devel/html/example​s/languages/squaak/doc/tutorial_episode_7.pod.ht​ml#Bottom-up_parsing_and_stacks:_operator_tables
01:00 Alxandr That entire section just provided me with so much needed knowledge
01:01 * tangentstorm remembers reading this a year or two ago
01:02 tangentstorm this does look helpful. thanks for reminding me of it.
01:03 Alxandr Yeah, but that little part about how EXPR works!
01:03 Alxandr And also the fact that it automagically looks up term-values
01:03 Alxandr Explains SO much
01:06 tangentstorm so i was completely wrong about EXPR. cool :)
01:06 Alxandr Now, tangentstorm, do you have any idea how to add support for C-like comments (both single-line and block)?
01:06 Alxandr Is the <ws> also a magic entity?
01:07 saikiran_a joined #parrot
01:08 tangentstorm i'm not convinced it's magic yet
01:08 tangentstorm or that i was completely wrong
01:08 tangentstorm i think i was wrong about being wrong, and it really is calling HLL::Grammar::EXPR
01:08 tangentstorm and i think you can just override it.
01:10 Alxandr What's calling EXPR?
01:11 Alxandr It seems <ws> is used implicitly (= magic)
01:13 tangentstorm EXPR is defined here: https://github.com/perl6/nqp/blo​b/master/src/HLL/Grammar.pm#L403
01:13 tangentstorm <EXPR> is what calls it
01:16 Alxandr I'm not convinsed reading that will help my understanding in any way -.-
01:18 Alxandr Also, does line-breaks (\n) in token/rules mean anything?
01:23 Psyche^ joined #parrot
01:24 Alxandr tangentstorm: Do you know what <ww> is?
01:24 Alxandr (cause I'm guessing <!ww> means not that)
01:29 tangentstorm line breaks are just whitespace inside patterns
01:29 tangentstorm to match the end of the line i think you use $$
01:29 tangentstorm end of /a/ line i mean.
01:30 tangentstorm pretty sure i saw ww defined in that same file that EXPR was in
01:30 Alxandr I used { \N* \n? | \s+ } to match "till end of line"
01:30 Alxandr I didn't find ww
01:31 Alxandr think it's builtin
01:32 tangentstorm i don't think so
01:32 tangentstorm if it's builtin it would be \ something not <ww>
01:32 tangentstorm i know i just saw ww though
01:32 tangentstorm it's not where i thought it was
01:32 Alxandr Hmm
01:33 Alxandr <ws> seems to be white-space anyhow (ignored code).
01:33 Alxandr I just changed my grammar to this: (notice the <comment>) http://monobin.com/1566/ and I got C-style comments
01:37 tangentstorm nice
01:37 tangentstorm totem is your language?
01:38 Alxandr Yeah
01:39 Alxandr Or rather, my language's named Totem. If you know of some other totem, it's not mine
01:40 Alxandr I also do IronTotem (totem on .NET)
01:49 tangentstorm looking at your github repos, but i don't see an example of the language yet...
01:50 tangentstorm ah https://github.com/Alxandr/IronTotem-3.0​/blob/master/tests/IronTotem.Tests/scrip​ts/01%20-%20Arithmetics/addition.totem
01:50 Alxandr Oh
01:50 Alxandr Well, I don't probably have one xD
01:50 Alxandr I haven't been writing much tests
01:51 tangentstorm you have three versions of this compiler and are apparently working on a fourth, but you don't have any code in the language? :D
01:51 Alxandr tangentstorm: Here are some tests: https://github.com/Alxandr/IronT​otem/tree/master/IronTotem.Tests
01:52 Alxandr Yeah, you see, whenever I get close to something that's usable (the prev revison, the one I just linked too) I start seeing flaws/things I want to do different in the language design
01:52 Alxandr Like scoping of variables was a problem in the prev itteration
01:52 Alxandr So I apply changes to the design of the language
01:53 Alxandr And start over xD
01:54 Alxandr The prev itteration had a basic web-server working iirc. Though the networking/processing of the requests were done in C#, the processed request was handed to totem, which then returned a response
01:55 tangentstorm you were right about <ww> ... it's predefined. "Matches between two word characters (zero-width match)."  http://perlcabal.org/syn/S0​5.html#Predefined_Subrules
01:55 tangentstorm cool :)
01:55 tangentstorm yeah, i've been through quite a few language drafts myself.
01:55 tangentstorm i guess i've done the same thing, come to think of it.
01:57 tangentstorm i have a little language called scarlet that was meant to transpile to c#, java, and haxe/actionscript
01:57 tangentstorm i don't think i hand-wrote any scarlet code... i just translated actionscript to scarlet :)
01:58 Alxandr Ah
01:58 Alxandr Well, I plan on using totem as a event-based scripting language in some apps
01:59 Alxandr So if you have an app that you want to let the user be able to script things in, it'll be a simple language made for just that
02:00 Alxandr Most of the languages design is just javascript with added event-handling. Though the event-handling is pretty flexible
02:00 Alxandr Just like functions are first-class citicens in javascript, so are events in totem
02:00 Alxandr So you can do stuff with them xD
02:00 Alxandr (other than just listening)
02:02 tangentstorm so like generalized message passing?
02:05 Alxandr No, more like (imagine a IRC client with scripting capabilities). The normal thing to listen for would be { client.message }, but you would also be able to listen for (for instance) { client.message.from('tangenstorm') }. And this from-function on the message-object is just a user-based function that returns a new EventObject
02:10 tangentstorm interesting.
02:21 tangentstorm Alxandr: i was going to say that since that one i've tried to use a little example-driven testing protocol for compilers that actually run the code and test the expected results
02:21 tangentstorm it seems to work well
02:21 tangentstorm https://github.com/nickelswort​h/noct/tree/master/test/given
02:21 Alxandr Yeah. I must say that I really like the testing-system built into the Parrot Compiler Tools
02:21 tangentstorm for example... when the tests run, output is generated to ../expected
02:21 Alxandr The .t-files
02:21 tangentstorm oh! this is new to me
02:22 tangentstorm i know perl has a standard testing system... looking
02:22 larks joined #parrot
02:45 Alxandr Is there a list of pirops anywhere?
02:48 tangentstorm yes... but where? :D
02:49 tangentstorm http://docs.parrot.org/parrot/devel/html/ops.html
02:50 tangentstorm unless you mean operators instead of opcodes, in which case: http://docs.parrot.org/parrot/devel/html/docs​/book/draft/ch12_operator_reference.pod.html
02:53 quias joined #parrot
02:54 saikiran_a joined #parrot
02:56 Alxandr I'm basically trying to figure out what is viable to put in { :pirop<neg> }
02:56 Alxandr And how to make a prefix that does nothing -.-
02:56 preflex_ joined #parrot
02:57 Alxandr That should not be so hard
03:04 Alxandr tangentstorm: Do you have any idea how to enable a + prefix?
03:07 tangentstorm Alxandr: https://github.com/perl6/nqp/blo​b/master/src/HLL/Grammar.pm#L19
03:08 tangentstorm so maybe     token prefix:sym<+>
03:08 Alxandr Yeah, yeah, I know that; but I have this: token prefix:sym<+> { <sym> <O('%unary-sign')> }
03:08 Alxandr problem is that it complains about &prefix<+> not being a method
03:08 Alxandr So I tried adding it to the Actions.pm
03:09 Alxandr But I don't know what it takes as parameters (what the parameters are)
03:10 Alxandr I need it to simply ignore the '+'
03:18 Alxandr What can I do with the $/ object-thingy?
03:18 tangentstorm method prefix:sym<+>($/) { }
03:18 tangentstorm $/ is the match object
03:18 Alxandr I don't want to return nothing, do I?
03:18 tangentstorm you can do like  $[0] or $<whatever>
03:18 tangentstorm those are syntacic sugar for dealing with $/
03:18 Alxandr $[0] gave me a compile-error
03:18 tangentstorm return ""
03:19 tangentstorm $/ has to be in scope
03:19 tangentstorm also i believe $[0] is the first group, so it only works if your rule has parens
03:20 Alxandr Right. But this is the prefix-rule
03:20 Alxandr It uses <O(something)>
03:21 tangentstorm oh i see
03:21 tangentstorm you need to look at that Grammar.pm file and see what it's doing
03:21 tangentstorm O is implemented in there too
03:21 Alxandr It's a has-storage if I understand it correctly
03:21 tangentstorm https://github.com/perl6/nqp/blo​b/master/src/HLL/Grammar.pm#L132
03:22 tangentstorm not pretty
03:26 tangentstorm Alxandr: i believe :pirop<add>  is perl6 for  %hash[pirop]='add' on the hash that's being built.
03:26 tangentstorm so you can put anything you want in there.
03:27 Alxandr But it's beeing used
03:27 Alxandr Can I dump $/ somehow?
03:27 Alxandr to console
03:28 tangentstorm Alxandr: and i think you want $<O><pirop>
03:30 tangentstorm perl5 has Data::Dumper iirc
03:30 tangentstorm not sure about the perl6 equivalent
03:30 tangentstorm oh!
03:30 tangentstorm say $/.perl
03:30 tangentstorm dunno if that works in nqp though
03:31 Alxandr I get compile errors
03:31 Alxandr Probably can't use it there.
03:31 Alxandr Totem::Grammar.O
03:31 Alxandr method prefix:sym<+>($/) { print $/.perl; }
03:32 Alxandr (tired with say too)
03:37 tangentstorm yeah ... it's probably not implemented in nqp yet :/
03:37 Alxandr Hmm. I think I figured out what's going on
03:37 Coke any function calls in nqp require parens.
03:37 Coke print(3) works, print 3 will die.
03:38 Alxandr Coke: Why does "make $/.ast" work then?
03:38 Coke make is special.
03:39 Coke also, if you're using the nqp that came with parrot, it's not the same as the nqp that rakudo is using.
03:39 Coke also bedtime.
03:39 Coke -> zzz
03:39 Alxandr I see.
03:39 Alxandr Can a method in Actions.pm return an empty subtree (remove the node on reduce?)
03:40 tangentstorm make ""
03:41 tangentstorm make null maybe?  i forget the perl word for it.
03:41 Alxandr make nil compiled
03:41 Alxandr but didn't do anything
03:44 Alxandr Gah. Fuckit *table-flipping*. I'm going to bed.
04:56 kurahaupo left #parrot
05:48 arnsholt Alxandr: You probably don't want a noop operator to return nil, but rather the AST for the operand of the op
05:48 dalek parrot: 2468b97 | dukeleto++ | ChangeLog:
05:48 dalek parrot: [ci skip][doc] Add a news note about Google Summer Of Code 2013
05:48 dalek parrot: review: https://github.com/parrot/parrot/commit/2468b977bb
06:24 Mike-PerlRecruiter_ joined #parrot
07:14 preflex joined #parrot
08:06 dukeleto ~~
08:08 arnsholt o/
10:24 mtk joined #parrot
10:55 dalek nqp/qrpa_experiment: b136109 | (Timo Paulssen)++ | src/pmc/qrpa.pmc:
10:55 dalek nqp/qrpa_experiment: give qrpa the methods instead.
10:55 dalek nqp/qrpa_experiment: review: https://github.com/perl6/nqp/commit/b13610905d
10:55 dalek nqp/qrpa_experiment: 91353c0 | (Timo Paulssen)++ | src/pmc/qrpa.pmc:
10:55 dalek nqp/qrpa_experiment: steal the quicksort implementation from parrot
10:55 dalek nqp/qrpa_experiment: review: https://github.com/perl6/nqp/commit/91353c0caa
10:55 dalek nqp/futile_qrpa: af36e92 | (Timo Paulssen)++ | src/ (12 files):
10:55 dalek nqp/futile_qrpa: search&replace nqp::list -> nqp::qlist; change .push to nqp::push etc
10:55 dalek nqp/futile_qrpa: review: https://github.com/perl6/nqp/commit/af36e9244e
10:55 dalek nqp/futile_qrpa: 491eec9 | (Timo Paulssen)++ | src/ (6 files):
10:55 dalek nqp/futile_qrpa: so many search and replace. probably too many.
10:55 dalek nqp/futile_qrpa: review: https://github.com/perl6/nqp/commit/491eec9193
10:55 dalek nqp/futile_qrpa: ccfaf88 | (Timo Paulssen)++ | src/ (7 files):
10:55 dalek nqp/futile_qrpa: lots and lots of nqp::un/shift/push/pop.
10:55 dalek nqp/futile_qrpa: review: https://github.com/perl6/nqp/commit/ccfaf8890f
10:55 dalek nqp/futile_qrpa: be526ca | (Timo Paulssen)++ | src/NQP/World.pm:
10:55 dalek nqp/futile_qrpa: final fixups
10:55 dalek nqp/futile_qrpa: review: https://github.com/perl6/nqp/commit/be526ca829
10:55 dalek nqp/futile_qrpa: 6c090d2 | (Timo Paulssen)++ | src/pmc/qrpa.pmc:
10:55 dalek nqp/futile_qrpa: give qrpa the methods instead.
10:55 dalek nqp/futile_qrpa: review: https://github.com/perl6/nqp/commit/6c090d25ad
10:56 woosley1 joined #parrot
13:25 bluescreen joined #parrot
13:33 dalek nqp/jvm-support: 613ccd6 | jnthn++ | src/vm/jvm/stage0/ (10 files):
13:33 dalek nqp/jvm-support: Update stage0 to get sep-comp fixes.
13:33 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/613ccd69c9
13:33 dalek nqp/jvm-support: a550ae8 | jnthn++ | / (8 files):
13:33 dalek nqp/jvm-support: Bring in the various sep-comp fixes.
13:33 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/a550ae8537
13:33 dalek nqp/jvm-support: 08c8cb5 | jnthn++ | / (2 files):
13:33 dalek nqp/jvm-support: Final tweaks to get a working stage1.
13:34 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/08c8cb5985
13:45 dalek nqp/jvm-support: 04782d5 | jnthn++ | tools/build/Makefile-JVM.in:
13:45 dalek nqp/jvm-support: Add stage2 build to Makefile.
13:45 dalek nqp/jvm-support:
13:45 dalek nqp/jvm-support: Works.
13:45 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/04782d59ce
14:09 dalek nqp/jvm-support: c321800 | jnthn++ | tools/build/Makefile-JVM.in:
14:09 dalek nqp/jvm-support: Various Makefile additions.
14:09 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/c321800615
14:09 dalek nqp/jvm-support: 459c817 | jnthn++ | .gitignore:
14:09 dalek nqp/jvm-support: Update .gitignore.
14:09 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/459c817ce2
14:20 PacoAir joined #parrot
14:23 dalek nqp/jvm-support: 6918dfd | jnthn++ | / (5 files):
14:23 dalek nqp/jvm-support: Add convenience .bat/.sh to run NQP on JVM.
14:23 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/6918dfd1a5
14:35 PacoAir joined #parrot
14:39 alester ack2 is out!  Whee!
14:41 PerlJam alester++ congrats.
14:41 alester Thanks, it only took 18 months
14:54 dalek nqp/jvm-support: c422bb3 | jnthn++ | src/vm/jvm/QAST/JASTNodes.nqp:
14:54 dalek nqp/jvm-support: Add forgotten JAST node construction opt.
14:54 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/c422bb33b0
14:54 dalek nqp/jvm-support: 0397e83 | jnthn++ | / (2 files):
14:54 dalek nqp/jvm-support: Add testing targets.
14:54 dalek nqp/jvm-support:
14:54 dalek nqp/jvm-support: Will need some triage.
14:54 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/0397e83fad
15:04 dalek nqp/jvm-support: 635e421 | jnthn++ | / (20 files):
15:04 dalek nqp/jvm-support: Add bootstrap-files target; clean up.
15:04 dalek nqp/jvm-support:
15:04 dalek nqp/jvm-support: The file names used for modules in the stage0 from nqp-jvm-prep were
15:04 dalek nqp/jvm-support: not the same as those produced by the build; this gets things to be
15:04 dalek nqp/jvm-support: consistent. Updates the bootstrap as part of doing so.
15:04 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/635e421d36
15:09 darbelo joined #parrot
15:10 Alxandr arnsholt: But I don't want any op. I have a tree like: <operation><term></operation>, and I want to reduce that to simply <term>
15:39 vinookuri joined #parrot
15:43 vinookuri Hey, i'm interested in contributing to Parrot starting with GSOC this year, can anyone guide me as to how i should begin?
15:44 Coke vinookuri: welcome aboard.
15:44 Coke A really good first step would be to join the mailing lists, and see if you can build the latest version of parrot from git.
15:51 arnsholt Alxandr: Yeah, that's more or less what I mean
15:52 arnsholt The key thing here is that the operator doesn't generate too much of the AST. Most of the work is done in the operator precedence parser (the <EXPR> subrule)
15:53 arnsholt Also relevant is whether you're using NQP from github/perl6/nqp or NQP-rx from the Parrot repo
16:13 vinookuri Coke: I shall do that now, will get back to you if i get stuck up anywhere.
17:10 Coke Excellent. let us know if you want to talk about potential projects, etc.
17:15 davidfetter joined #parrot
17:54 dalek parrot: 581541d | util++ | t/library/osutils.t:
17:54 dalek parrot: [GH #958] Add tests for chomp from osutils.
17:54 dalek parrot: review: https://github.com/parrot/parrot/commit/581541d167
17:55 dalek parrot: 8ee2f4c | util++ | runtime/parrot/library/osutils.pir:
17:55 dalek parrot: [GH #958] Fix chomp to only remove a newline when it ends the string.
17:55 dalek parrot: review: https://github.com/parrot/parrot/commit/8ee2f4c0bb
18:00 dalek parrot: 014f0fd | dukeleto++ | examples/threads/tasks.pir:
18:00 dalek parrot: [doc] Explain our Task PMC example
18:00 dalek parrot: review: https://github.com/parrot/parrot/commit/014f0fd502
18:10 dalek parrot: 1ff60e5 | util++ | / (3 files):
18:10 dalek parrot: Improve release process by changing crow.pir to auto-insert message digests.
18:10 dalek parrot: review: https://github.com/parrot/parrot/commit/1ff60e53bb
18:22 Mike-PerlRecruiter_ joined #parrot
18:23 darbelo joined #parrot
18:28 Psyche^ joined #parrot
18:43 contingencyplan joined #parrot
20:02 timo joined #parrot
20:03 timo good day
20:03 timo i'm looking into IO::Socket::INET::get in perl6 and it seems like the io_readline_encoded_string function in parrot stops reading before a newline even though there is more data to be had.
20:06 timo what can i do? implementing my own get/readline is hard, because apparently the get method strips the newline wether it exists or not, so i can't simply get until i get an actual newline. and reading byte-per-byte in perl6 is too slow; my connection gets killed before my program can respond to the server :(
20:08 tangentstorm r: say $IN.^methods
20:08 p6eval rakudo f3c3fe: OUTPUT«[31m===[0mSORRY!​[31m===[0m�Variable '$IN' is not declared�at /tmp/6ALMvI6Uqv:1�------> [32msay $IN.^methods[33m�[31m<EOL>[0m�    expecting any of:�        method arguments�»
20:08 tangentstorm r: say $*IN.^methods
20:08 p6eval rakudo f3c3fe: OUTPUT«open close eof get getc lines read seek tell write opened t print slurp copy chmod Str flush d e f l r s w x z modified accessed changed say <anon> <anon> <anon>␤»
20:09 tangentstorm i could have sworn there was something in there that dealt with newlines.
20:10 tangentstorm r: say $*IN.^attributes
20:10 p6eval rakudo f3c3fe: OUTPUT«$!PIO $!ins $!chomp $!path␤»
20:10 tangentstorm r: say $*IN.^$!chomp
20:10 p6eval rakudo f3c3fe: OUTPUT«[31m===[0mSORRY!​[31m===[0m�Variable $!chomp used where no 'self' is available�at /tmp/L3cslsZSDi:1�------> [32msay $*IN.^$!chomp[33m�[31m<EOL>[0m�»
20:10 tangentstorm r: say $*IN.^!chomp
20:10 p6eval rakudo f3c3fe: OUTPUT«No such method 'dispatch:<.^!>' for invocant of type 'IO'␤  in block  at /tmp/oLFzeNi3DU:1␤␤»
20:10 tangentstorm r: say $*IN!chomp
20:10 p6eval rakudo f3c3fe: OUTPUT«[31m===[0mSORRY![31m===[0m�Private method call to chomp must be fully qualified with the package containing the method�at /tmp/BcyUe52iNd:1�------> [32msay $*IN!chomp[33m�[31m<EOL>[0m�    expecting any of:�        method arguments�»
20:11 tangentstorm beats me, timo ... but i think maybe you can set this $!chomp somehow
20:12 timo i'll have a look
20:12 timo IO::Socket::INET doesn't have anything like chomp
20:19 tangentstorm :/
20:21 tangentstorm where is the io_readline_encoded method you mentioned?
20:21 * tangentstorm breaks out grep
20:22 dalek rakudo/nom: 203e3aa | masak++ | docs/release_guide.pod:
20:22 dalek rakudo/nom: sign up Coke and me
20:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/203e3aa621
20:22 timo now i have a not very nice get implementation that does lots and lots of buffering over the already existing buffering parrot doe and the buffering that perl6 sockets apparently also do
20:27 tangentstorm are you passing in that PIO_READ_SIZE_ANY ?
20:27 dalek parrot: efd2ef2 | dukeleto++ | examples/threads/alloc_test.pir:
20:27 dalek parrot: [doc] Add some POD to a thread example
20:27 dalek parrot: review: https://github.com/parrot/parrot/commit/efd2ef2019
20:30 tangentstorm +If you can explain what this example does in plain English, be my
20:30 tangentstorm +guest.
20:30 tangentstorm really? :D
20:44 Util Would a prior Release Manager please grant me admin authority to the web frontend on www.parrot.org? My ID is 'Util'.
20:44 Util I am trying to do `Administer -> Site building -> URL Redirects` as instructed in release_manager_guide.pod, but I see no "Administer" option.
20:44 Util cotto, dukeleto, rurban, allison, kid51, coke: ^^^ and TIA
20:46 allison Util: sure, just a sec...
20:46 rurban they moved it somewhere...
20:50 allison Util: you should be set now with admin access
20:50 dalek nqp/qrpa_experiment: 7d9d1ec | (Tobias Leich)++ | src/ (10 files):
20:50 dalek nqp/qrpa_experiment: FROGGS++ did all of the remaining things, like stage0
20:50 dalek nqp/qrpa_experiment: review: https://github.com/perl6/nqp/commit/7d9d1ec79a
21:03 dukeleto tangentstorm: yes. Be my guest :)
21:04 tangentstorm dukeleto: it's not really a good example of anything. it has no output as far as i can tell, and there's no automated test condition.
21:04 tangentstorm what's the point of keeping this?
21:04 tangentstorm probably better to just delete it
21:04 dukeleto tangentstorm: it is an example usage of the Task PMC api
21:04 Alxandr arnsholt: I'm using the one with the parrot source
21:04 dukeleto tangentstorm: why delete it when you can improve it? I think it is better than nothing
21:04 tangentstorm but the tasks don't do anything interesting
21:05 tangentstorm improve works too
21:05 dukeleto tangentstorm: i agree, there are various "examples" starting from "as simple as possible" to "zomg this is complicated"
21:05 tangentstorm okay, so what would i use a task for?
21:05 dukeleto tangentstorm: what would you use parrallel algorithms for?
21:06 dukeleto tangentstorm: what would you use those 3 extra cores for?
21:06 * tangentstorm does not know what a task is yet
21:06 tangentstorm this example didn't help :)
21:06 dukeleto tangentstorm: ah! mea culpa
21:06 tangentstorm so a task is more or less a thread?
21:06 dukeleto tangentstorm: I agree. it is badly documented and that is why I am trying to improve the situation :)
21:07 dukeleto tangentstorm: you get to decide how many tasks per core, or cores per task you want. A task is like the atom of building parrallel algorithms in Parrot
21:08 dukeleto tangentstorm: this is lovingly called an "M:N hybrid thread", because you get to decide M threads per N cores
21:08 dukeleto tangentstorm: you can do M=1,N=1 for normal non-threaded behavior
21:08 tangentstorm dukeleto: can i pass messages between the tasks?
21:08 dukeleto tangentstorm: they have data proxies
21:08 dukeleto tangentstorm: some are read-only, some are read-write. I don't fully understand it, but there is a masters thesis about it if you want the link :)
21:09 tangentstorm sure
21:09 * tangentstorm considers porting superpascal to parrot...
21:10 dukeleto tangentstorm: http://niner.name/Hybrid_Th​reads_for_the_Parrot_VM.pdf
21:10 dukeleto tangentstorm: http://www.parrot.org/content/hybrid-threads
21:11 dukeleto Util: the stupid Drupal UI keeps changing. I highly recommend we convert over to Github pages about 3 months ago :)
21:15 tangentstorm dukeleto: it might be nice to have a little demo that just showed how many cores there were, and let you schedule tasks to run on each core... like maybe just have it do some O(huge) task.
21:15 dalek parrot: f38fdeb | rurban++ | examples/threads/alloc_test.pir:
21:15 dalek parrot: [doc] #936 Fix doc for examples/threads/alloc_test.pir
21:15 dalek parrot: review: https://github.com/parrot/parrot/commit/f38fdeb109
21:17 tangentstorm that's much better :D
21:17 tangentstorm i like this review link bot thing.
21:18 dukeleto tangentstorm: dalek tells us useful things :)
21:19 dukeleto tangentstorm: you see, "be my guest" was an invitation, and rurban++ could not help but to take it :)
21:19 dukeleto rurban: what is the "sleep 10s
21:19 tangentstorm i'm still not sure it's a useful example though.
21:20 tangentstorm there's no output or any way to see what it's  doing
21:20 dukeleto tangentstorm: ah, you must "see the ball roll" as my old advisor used to tell me :)
21:21 tangentstorm ?
21:21 dukeleto tangentstorm: visualization
21:21 dukeleto tangentstorm: i enjoy it is as well :)
21:22 tangentstorm but it's not easy to visualize something that you don't understand to begin with
21:22 dalek parrot: 7143ea2 | dukeleto++ | examples/threads/chameneos.pir:
21:22 dalek parrot: [doc] Add POD about Chameneos, a cooperative p2p multi-core algorithm
21:22 dalek parrot: review: https://github.com/parrot/parrot/commit/7143ea2437
21:23 tangentstorm So this example is only useful to people who don't need it. :D
21:23 tangentstorm only understandable to peolpe who don't need an example i mean.
21:23 tangentstorm also it makes no sense. it's called sayer but it doesn't say anything.
21:25 dalek parrot: 6864a66 | dukeleto++ | / (2 files):
21:25 dalek parrot: Remove a useless threads example
21:25 dalek parrot: review: https://github.com/parrot/parrot/commit/6864a66cf1
21:26 * tangentstorm will try to think of a better example to show off this thing.
21:29 bluescreen joined #parrot
21:30 dukeleto tangentstorm: there is an example about multiplying matrices
21:30 dukeleto tangentstorm: but still, that isn't very visual
21:30 dukeleto tangentstorm: we need some kind of GUI visualization of the algorithm happening
21:30 dukeleto tangentstorm: but that might slow it down considerably :)
21:30 * dukeleto has to run, late for an important date!
21:31 dalek parrot: 4b1b60c | rurban++ | examples/threads/chameneos.pir:
21:31 dalek parrot: [doc] #936 Add doc for examples/threads/chameneos.pir
21:31 dalek parrot: review: https://github.com/parrot/parrot/commit/4b1b60ceeb
21:36 dukeleto rurban: you committed partially duplicate POD below my POD
21:39 Util allison: Works great. Thanks!
21:43 dalek parrot: ab56b10 | rurban++ | examples/threads/chameneos.pir:
21:43 dalek parrot: [doc] merge both #936 chameneos.pir docs
21:43 dalek parrot: review: https://github.com/parrot/parrot/commit/ab56b10424
21:52 allison Util: great :)
21:52 kurahaupo joined #parrot
21:53 Util FYI, I added a redirect from release/devel to (the ftp dir) to match the 'devel' name used elsewhere.
21:54 Util I changed the release/developer redirect to point to release/devel.
21:54 Util I tested the double redirection; it works correctly.
22:16 rurban Now that parrot will bitrot (nqp being bootstrapped on jvm, and soon in master) shouldn't we reschedule our release dates. every quarteryear maybe?
22:20 * tangentstorm does not think parrot ought to bitrot :/
22:21 allison rurban: that's a rather gloom-and-doom way of putting it :(
22:22 allison but, I do think quarterly releases would make sense
22:22 allison the monthly release schedule was started for reasons that haven't been relevant for years now
22:23 allison rurban: I don't know if nqp plans to continue dual-hosted
22:23 allison rurban: or move exclusively to jvm
22:23 allison rurban: either way, it doesn't really change anything for Parrot
22:24 rurban they want both, but I fear parrrot will not get much test coverage
22:24 tangentstorm sure it does.
22:25 allison rurban: what do you mean by test coverage? They run the Parrot tests as part of the Rakudo build
22:25 tangentstorm without languages to run on this thing, it probably will bitrot.
22:25 rurban for now they do it, but how long?
22:25 tangentstorm Parrot is like a consulting company that's about to lose its biggest client.
22:26 allison it just means Parrot has to compete on equal footing
22:26 allison which is generally a healthy thing
22:26 tangentstorm We need to Jerry Maguire this thing... Find us a Cuba Gooding Jr language. :D
22:26 allison :)
22:27 allison How about Python? :)
22:27 tangentstorm How about Oberon?
22:27 rurban anyway, quarterly would make more sense, as there are not many changes
22:27 allison nice
22:28 tangentstorm Quarterly does make sense.
22:28 rurban and whiteknight, fperrad and me are gone...
22:28 allison one thing I think it does bring into question is whether a "Rakudo focused" Parrot is a good idea
22:28 allison or, whether we ditch that branch
22:28 allison I do think trimming Parrot down is the right next step
22:28 rurban sixparrot is something they wanted, so keep it.
22:29 rurban esp. 6model integration
22:29 rurban and fix 6model with threads

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

Parrot | source cross referenced