|
Parrot 4.7.0 "Hispaniolan" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 4 September 2012. |
|||
| sorear | all I know is that there was one recentish and it's one of very few tech things in my area | 00:00 | |
| MikeFair | sorear: yes Souther California Annual Linux Expo | ||
| sorear: You're in Los Angeles?!? | |||
| :) | |||
| me too | |||
| sorear | MikeFair: Even worse. | ||
| MikeFair: San Diego. | |||
| MikeFair | ahhh | ||
| sorear: But you have geeks.com | |||
| sorear: What more could you want?! ;) | 00:01 | ||
| sorear | I wouldn't mind a yapc. | 00:02 | |
| MikeFair | sorear: Good point | 00:03 | |
| sorear | really, I could do without the 24+ hours of flying next time yapc season comes around | 00:04 | |
| MikeFair | sorear: Well I know the founders of SCALE so getting their input advice on going about a YAPC might work | ||
| not until after SCALE | |||
| sorear | when is SCALE this year? | 00:05 | |
| MikeFair | sorear: but it's not totally out of the question, they've got the process down pretty good by now | ||
| this year was i Feb, next is Feb '13 | |||
| sorear: They spend about 6 months in advance preparing the all volunteer work force, getting proposals, vendors, and what not | 00:06 | ||
| sorear | note: my parents have been working comic-con for longer than they've been married and have played no small part in organizing its growth | ||
| MikeFair | sorear: So there you go, they got tons of experience too :) | 00:07 | |
| SoCal YAPC could happen | |||
| i'd like to get to the point of having some basic working code on my language before taking anything like that on though | 00:08 | ||
| sorear | MikeFair: what impressed me most about the last yapc I was at... Frankfurt.pm is about 150% the size of SanDiego.pm | 00:09 | |
| MikeFair | sorear: I think SoCal is off the size that it's easy to think 'somebody else will do it' and be right a lot of the time | 00:16 | |
| -f | |||
| sorear: unfortunately, it's also 'not right' on even more things | 00:17 | ||
| dalek | rtcl-nqp/nqp2: 9c3c543 | coke++ | src/Partcl/Grammar.pm: fixup Partcl::Grammar |
00:20 | |
| rtcl-nqp/nqp2: b47d8d3 | coke++ | src/Partcl/Compiler.pm: fixup Partcl::Compiler |
|||
| rtcl-nqp/nqp2: fde57c8 | coke++ | src/Partcl/Actions.pm: fixup Partcl::Actions |
|||
| rtcl-nqp/nqp2: 2f18dbb | coke++ | src/Partcl/Actions.pm: update PAST style :pirop MikeFair++ |
|||
| rtcl-nqp/nqp2: 0a00651 | coke++ | src/Partcl/Actions.pm: remove PAST style :isdecl |
|||
|
00:33
sivoais joined
|
|||
| dalek | rrot/native_pbc2: 60b281e | rurban++ | / (11 files): Rewrite native_pbc number converters and fix format errors Fix wrong layout of intel 80-bit long double, it is 10-byte + 2/6 byte padding in i386 resp. x86_64/itanium. Renamed to FLOATTYPE_10. Older pbc contain a wrong floattype=2 for this format. It only depends on the word size: on 32bit padded to 12 byte, on 64 to 16byte. Fixed the header writer logic accordingly. Add single float support FLOATTYPE_4. Add detection of yet unsupported special ppc, mips and aix variants and the official IEEE-754 __float128 (quad double) format, which only Sparc64 supports. Simplify endianizers on number converters to reduce complexity. Use native byteswap.h if detected (not yet). New and better number.pasm values. |
00:49 | |
| rrot/native_pbc2: 1cb93a8 | rurban++ | / (8 files): pre-calculate FLOATTYPE FLOATTYPE is cpu dependent for long double. Better do that in a config step, not at run-time. Improve __float128 support. |
|||
| rrot/native_pbc2: 6c03889 | rurban++ | t/native_pbc/ (2 files): remove instable number on 32-bit the highest number is printed differently |
|||
| rrot/native_pbc2: d8f0aae | rurban++ | tools/dev/mk_native_pbc: rewrite tools/dev/mk_native_pbc Support all possible floattypes, simplify logic Remove bashism |
|||
| rrot/native_pbc2: 013d63e | rurban++ | / (12 files): native_pbc: float 4 fixes, mk_native_pbc floattype_4 needs some prev. undefined helpers improve mk_native_pbc regenerate 32-bit le pbc's |
|||
| rrot/native_pbc2: 8f0a068 | rurban++ | / (3 files): adjust number.t to new floattypes, do not use %Qg |
|||
|
00:58
rurban_mobile joined
|
|||
| dalek | rrot/native_pbc2: 0b16b48 | rurban++ | t/native_pbc/number_8_ (2 files): native_pbc: update 8_le |
00:59 | |
| rrot/native_pbc2: a146987 | rurban++ | tools/dev/mk_native_pbc: fix mk_native_pbc syntax error |
|||
| rrot/native_pbc2: a950453 | rurban++ | t/native_pbc/number_4_4_le.pbc: t/native_pbc/number_4_4_le.pbc added |
01:01 | ||
| rrot/native_pbc: 60b281e | rurban++ | / (11 files): Rewrite native_pbc number converters and fix format errors Fix wrong layout of intel 80-bit long double, it is 10-byte + 2/6 byte padding in i386 resp. x86_64/itanium. Renamed to FLOATTYPE_10. Older pbc contain a wrong floattype=2 for this format. It only depends on the word size: on 32bit padded to 12 byte, on 64 to 16byte. Fixed the header writer logic accordingly. Add single float support FLOATTYPE_4. Add detection of yet unsupported special ppc, mips and aix variants and the official IEEE-754 __float128 (quad double) format, which only Sparc64 supports. Simplify endianizers on number converters to reduce complexity. Use native byteswap.h if detected (not yet). New and better number.pasm values. |
|||
| rrot/native_pbc: 1cb93a8 | rurban++ | / (8 files): pre-calculate FLOATTYPE FLOATTYPE is cpu dependent for long double. Better do that in a config step, not at run-time. Improve __float128 support. |
|||
| rrot/native_pbc: 6c03889 | rurban++ | t/native_pbc/ (2 files): remove instable number on 32-bit the highest number is printed differently |
|||
| rrot/native_pbc: d8f0aae | rurban++ | tools/dev/mk_native_pbc: rewrite tools/dev/mk_native_pbc Support all possible floattypes, simplify logic Remove bashism |
|||
| rrot/native_pbc: 013d63e | rurban++ | / (12 files): native_pbc: float 4 fixes, mk_native_pbc floattype_4 needs some prev. undefined helpers improve mk_native_pbc regenerate 32-bit le pbc's |
|||
| rrot/native_pbc: 8f0a068 | rurban++ | / (3 files): adjust number.t to new floattypes, do not use %Qg |
|||
|
01:14
bluescreen joined
01:24
mvorl joined
03:22
alvis_ joined
|
|||
| MikeFair | What does the "term" match do exactly? | 06:03 | |
| sorear | What do you mean? | 06:06 | |
| MikeFair | Well it's switching between the recursive descent parser and the bottom up parser | 06:12 | |
| and the "term" match invokes that switch | |||
| at least that's what is what I'm understanding it does | |||
| But it's still a bit fuzzy to me | 06:13 | ||
| When invoked I can see it will take the match string and search for the operators predefined operators | |||
| it will then try and parse the operands of that operator in top-down fashion | 06:14 | ||
| somefunc(value) * otherfunc() + 2 | 06:15 | ||
| I know that "term" is involved in getting the * to pass the results of somefunc(value) and otherfun() as operands toto the pirop mult | 06:16 | ||
| and the result of that then gets passed to pirop "add" along with 2 | 06:17 | ||
| I'm just not seeing what is matching what just yet in my head yet | |||
| I'll just keep plugging along | |||
| it will sink in eventually | 06:18 | ||
| :) | |||
| I think this is the key line fro mthe Squaak tutorial: The term proto token is invoked every time a new operand is needed | 06:19 | ||
| So in my above example, somefunc(value) and otherfunc() and 2 would all need to hit somewhere in the term:sym family of expressions | 06:20 | ||
| I think... | |||
| sorear | MikeFair: the part you are missing is github.com/perl6/nqp/blob/master/s...ar.pm#L537 | 06:21 | |
| the bottom up parser is not as separate as you make it sound | 06:22 | ||
| MikeFair | Right that's the <EXPR> match | ||
| sorear | it is just another recursive descent rule | ||
| which happens to call 'term' internally | |||
| this might be more readable: github.com/sorear/niecza/blob/mast....pm6#L4405 | 06:23 | ||
| MikeFair | Right, I guess I'm just not quite seeing what belongs in "term" and when to use <EXPR> just yet | ||
| sorear | use <EXPR> to parse an expression. | ||
| write a "term" rule when you want <EXPR> to see something as atomic | |||
| MikeFair | like otherfunc() right | 06:24 | |
| sorear | 'term' is not involved at all in the parsing of operators like * | ||
| otherfunc() is parsed by 'term' | |||
| MikeFair | right | ||
| sorear | * is parsed by 'infix' | ||
| MikeFair | but that who evaluation is triggered by <EXPR> | ||
| err whole | |||
| sorear | 23:16 <@MikeFair> I know that "term" is involved in getting the * to pass the results of somefunc(value) and otherfun() as operands toto the pirop mult | 06:25 | |
| that is *completelt wrong* | |||
| MikeFair: EXPR calls term, yes | |||
| term can also call EXPR, for instance function arguments | |||
| MikeFair | EXPR also uses the Grammar.O list of things to find matches? | 06:26 | |
| sorear: yeah and I think that's also baking my brain atm :) | |||
| if <EXPR> then <EXPR> else <EXPR> ? | 06:27 | ||
| and EXPR includes <term> | |||
| which could match a function call | 06:28 | ||
| that itself calls <EXPR> (for the sub-selection of text to match within the function call parameters) | 06:29 | ||
| I've mentally been thinking of "EXPR" as "returns a value" or "evaluates to something" | 06:32 | ||
| Which is somewhat different from flow control structures | 06:33 | ||
| sorear | Flow control structures return values in p6 | 06:36 | |
| MikeFair | Yeah, I wanted them to return values in Safire too | 06:37 | |
| sorear | EXPR nodes return values, but they are not the only things that do | ||
| many kinds of nodes in p6 return a single value | |||
| MikeFair | I'll need to read up a lot more on that | 06:38 | |
| sorear | EXPR, term, sigterm, capterm, quote, value, circumfix, number, version, variable, ... | ||
| MikeFair | what's a capterm? | ||
| sorear | a lot of the perl 6 grammar flexibility comes about because so many things have the right shape to be plugged into term | ||
| \\(1,2,3) | 06:39 | ||
| MikeFair | like an array? | ||
| ora list | |||
| or just commas and parantheses | 06:40 | ||
| sorear | no, capterms are constructors for Capture objects | ||
| they're used very rarely, it's not very useful to know what they are | 06:41 | ||
| MikeFair nods. | |||
| constructors for Capture objects gave me enough context for when they show up | |||
| :) | |||
|
06:47
mvorl joined
|
|||
| dalek | kudo/nom: 1374a97 | moritz++ | src/core/Signature.pm: use : as invocant marker in Signature.perl |
06:49 | |
| MikeFair | Success! | 07:12 | |
| MikeFair finally has most of the workings of the original language that comes from mk_language_shell | 07:13 | ||
| The only thing left is to get the "callmethod" op working to connect to the functions that are in Runtime.pm | |||
| MikeFair heads to bed for the night. | 07:14 | ||
|
08:19
Psyche^ joined
09:08
fperrad joined
|
|||
| moritz | function and 'callmethod' don't mix | 09:32 | |
| if you want to call a sub, use 'call', not 'callmethod' | 09:33 | ||
|
12:42
JimmyZ joined
12:47
whiteknight joined
|
|||
| whiteknight | reading over emails, it looks like all threads-related issues have been resolved. No? | 12:48 | |
| tadzik | lexicals! | ||
| whiteknight | well, all the ones in our repo, right | ||
| I consider that a separate set of problems | 12:49 | ||
| tadzik | ah, yes, possibly | ||
| rurban_mobile | we need a parrot testcase | ||
| tadzik | not parrot-nqp one, hm? | ||
| or winxed-one? | |||
| whiteknight | any of those should be fine | ||
| tadzik | I have a parrot-nqp testcase alright | ||
| whiteknight | winxed I might prefer, if it's easy enough to duplicate there | ||
| tadzik | I can try winxeding it | ||
| whiteknight | although that's just a personal thing, and I can try my hand at the translation if I have the parrot-nqp source | 12:50 | |
| tadzik | I wanted to try winxed anyway | ||
| gah. In winxed it works | 12:57 | ||
| well, sort-of | |||
| gist.github.com/3684165 | 12:58 | ||
| the second line of output is wrong | |||
| whiteknight | what's it supposed to say, 5 5 7? | 13:00 | |
| tadzik | I'd expect so, yes | 13:01 | |
| I get 5 5 7 if I just run a(): | |||
| that means that threads get lexical stuff wrong for some reason | 13:02 | ||
| whiteknight | you have a gist with the parrot-nqp version, for comparison? | ||
| tadzik | yes | ||
| gist.github.com/3610283 | |||
| this one is a bigger problem | 13:03 | ||
| whiteknight | I wonder if the difference in the first version is that x is an int and not a var | 13:04 | |
| tadzik | yes | 13:05 | |
| then it silently dies like the nqp version | |||
| exactly the same behaviour | |||
| whiteknight | okay, good | 13:06 | |
| tadzik: are you using an optimized build/ | 13:07 | ||
| ? | |||
| because when I run it locally with a debug build, I get a big assertion failure | |||
| src/call/context_accessors.c:258: failed assertion 'outer_ctx->vtable->base_type == enum_class_CallContext' | 13:08 | ||
| Ah, I got it | 13:13 | ||
| The outer ctx there is a Proxy to a CallContext, which it should be, but the code is asserting that it's a CallContext | 13:14 | ||
| okay, this is a bigger problem than I thought. | 13:16 | ||
| All the context accessor functions have been optimized to do direct pmc data access instead of going through vtables. | |||
| so when we proxy the CallContext, all context accesses fail hard | 13:17 | ||
| the trick is finding a way to get around this problem without killing performance | 13:18 | ||
| and without introducing stupid semantics | 13:19 | ||
| tadzik: I just sent an email to parrot-dev with the diagnosis. I'm out for most of the day so I have time to think about a good solution | 13:30 | ||
| tadzik | whiteknight: yes, I'm on --optimize | 13:49 | |
| whiteknight: okay, awesome. Thank you | 13:50 | ||
|
14:08
kid51 joined
|
|||
| dalek | sella: 697efd9 | Whiteknight++ | src/net/MimeBase64.winxed: [Net] Add a TODO note about breaking lines in MIME, with reference to ticket about the parrot core implementation, which makes the same mistake. |
14:16 | |
|
14:23
benabik joined
|
|||
| kid51 | whiteknight, you wrote earlier: "reading over emails, it looks like all threads-related issues have been resolved. No?" | 14:31 | |
| But that overlooks the Darwin/Intel problems both dukeleto and I have reported. | 14:32 | ||
| whiteknight | kid51: unless you have a report somewhere that I missed (tadzik's report I'm treating separately) | ||
| okay, then I am overlooking those | |||
| moritz | how about using a bug tracker for such issues? | ||
| that's what they are for (not losing overview) | |||
| kid51 | moritz: Up until now, at any rate, we haven't used the bug tracker du jour for tracking *branch* problems. | 14:33 | |
| whiteknight | this is part of the reason why it's so hard for me to keep track of these issues | ||
| moritz | kid51: but it'd make sense, no? | 14:35 | |
| kid51 | moritz: I'm not sure. | 14:36 | |
| When we open a ticket in the bug tracker, we're saying that this is a problem of concern to the project as a whole. | |||
| whiteknight | we can use tags or milestones to group branch tasks | ||
| kid51 | But I tend to think that the people working on a particular branch not yet merged into master are responsible for keeping track of that branch's problems. | ||
| whiteknight | a "merge threads" milestone could have several tickets assigned to it | ||
| moritz | kid51: which is fine for small branches | 14:38 | |
| kid51 | There are a couple of branches I opened up to two years ago which are still around -- but I don't think tracking their problems is the responsibility of the project as a whole. | ||
| moritz | kid51: but if the owner loses overview, technical help is welcome | ||
| kid51 | moritz: I'm inclined to say, "Let's discuss this at parrotsketh" ... but that would require that we actually *hold* parrotsketch! :-( | ||
| whiteknight | post an email to the list | 14:39 | |
| kid51 | Well, if you're the one who wants a change to our current processes (or lack thereof), then I'd suggest writing to list is your job. | 14:40 | |
| whiteknight | fair enough | 14:41 | |
| kid51 | whiteknight: If current time for parrotsketch doesn't work for you, and if you're the one writing most of the code right now, then we should change time so that you can get feedback you need. | ||
| whiteknight | we can look at that, but I can't think of any time that is universally good for me | 14:42 | |
| any time during work hours is going to fall victim to regular interruptions. Time outside those hours becomes bad for people in other timezones | |||
| more bad, for more people | |||
| kid51 | I understand that -- I face the same challenges re work hours, what with new $job -- but at this point *any* parrotsketch is better than *no* parrotsketch | 14:44 | |
| ISTM that there are 2 types of feedback the author of a complex branch needs: | 14:50 | ||
| 1. test results, both (a) within Parrot, but on different platforms from the author's; .. | |||
| and (b) from Parrot users. | |||
| Example: (a) kid51; (b) moritz and pmichaud | 14:51 | ||
| 2. engagement from those people with the skill sets capable of understanding what the branch author is doing. | |||
| Recent examples: rurban, Nick Clark, Andy Dougherty on threads and io_cleanup1 branches. | 14:52 | ||
| dalek | sella: 3d7999a | Whiteknight++ | / (2 files): [Net] Fix MimeBase64 so long encoded outputs are broken after 76 columns. The decoder still works with this change. Add a test to prove the new behavior |
14:53 | |
| kudo/nom: f488677 | moritz++ | / (3 files): export trait for constants |
15:17 | ||
|
15:50
mvorl joined
16:04
tuxit joined
16:07
JimmyZ joined
|
|||
| dalek | rrot/native_pbc2: 347d87c | rurban++ | / (4 files): add native include/parrot/bswap.h and probe probe for endian.h, byteswap.h or OSX header for native bswap inline functions/macros. |
16:11 | |
| rrot/native_pbc2: f26b383 | rurban++ | config/auto/sizes.pm: add HAS_FLOAT128 in config hash __float128 is binary compatible to 16-bit big-endian sparc/s390 long double formats. Available since gcc 4.6 |
|||
| rrot/native_pbc2: 775883a | rurban++ | / (5 files): Fix and improve bswap.h Add missing libkern/OSByteOrder.h Abstract macros into static inline functions Use fast replacement macros Use bswap in pf_items.c |
|||
| rrot/native_pbc2: b0ab7d2 | rurban++ | include/parrot/bswap.h: Fix byteswap.h and 64bit fallback macro Forgot to define bswap macros with GNU byteswap.h Fixed bswap_64 fallback. |
16:36 | ||
|
17:01
benabik joined
17:16
Khisanth joined
17:53
contingencyplan joined
18:36
sivoais_ joined
19:28
lucian joined
|
|||
| dalek | rrot/native_pbc2: 5851213 | rurban++ | / (3 files): fix and optimize bswap Also allow FLOATTYPE_16PPC, but this format seems to be double-double, not __float128 |
20:00 | |
|
20:11
lucian joined
|
|||
| MikeFair | Howdy #parrot! :) | 20:59 | |
|
21:38
benabik joined
21:39
whiteknight joined
|
|||
| dalek | rrot/native_pbc2: 44b7e3d | rurban++ | / (4 files): Fix nvsize in config/auto/format.pm, number_4*_be pbcs nvsize should be the same as numvalsize, probed in auto::sizes, but not one of floatvalsize, doublevalsize or hugefloatvalsize. E.g. with long double used and __float128 possible hugefloatvalsize is 16 Add generated ppc pbcs |
21:40 | |
| rrot/native_pbc2: 2d302a7 | rurban++ | / (6 files): Add ppc converters, add PF_floattype_names Added and document converters, ppc needs intermediate helpers. The ppc long double is the sum of two doubles stored one after the other: double-double. |
|||
| rrot/native_pbc2: 4232a13 | rurban++ | t/native_pbc/number_4_10_le.pbc: t/native_pbc/number_4_10_le.pbc added |
|||
| whiteknight | good evening, #parrot | 22:37 | |
|
23:31
kid51 joined
23:47
benabik joined
|
|||