|
Parrot 4.1.0 "Black-headed Parrot" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 28 February 2012. |
|||
| benabik | whiteknight: I'm buried in IMCC. | 00:00 | |
| I found something that makes IMCC enter an infinite loop. | |||
| whiteknight | benabik: I'll send flowers | ||
| that doesn't surprise me at all, with the infinite loop. Anything you need a second set of eyes on? | 00:02 | ||
| benabik | Nope. The parser in init_fixedintegerarray_from_string is horrible. | 00:03 | |
| The strangest thing is that I can't be strict about the presence of ( and ) because in one place it got a plain '0' | 00:04 | ||
| Everywhere else it got '(0)' | |||
| Of course, even weirder is that IMCC generates strings for this thing to parse instead of generating the FIA itself. | |||
| whiteknight | ha | 00:05 | |
| so that's where the infinite loop is? | |||
| benabik | Yeah. If you do a line like `.const 'FixedIntegerArray' $0 = "test"` | ||
| whiteknight | that simple thing creates an infinite loop? | ||
| benabik | It sits there continuously calling strtoul forever and not advancing. | ||
| whiteknight | dafaq? | 00:07 | |
| this is terrible | |||
| benabik | I think it's something darbelo through together to tear something else horrible out. | 00:08 | |
| It works as long as the user never hits it. | |||
| *threw | |||
| whiteknight: I would like a look-over before pushing it to master: github.com/Benabik/parrot/commit/5...611dd046ae | 00:11 | ||
| cotto | benabik: can you add a test? | 00:12 | |
| benabik | tests, tests, tests... | 00:14 | |
| cotto | the error message on 1956 looks incomplete | ||
| benabik | cotto: No, it's expecting a comma | 00:15 | |
| That is probably not particularly clear. | |||
| cotto | ah. I'd quote it then. | ||
| benabik | There used to be similar text for ( and ) which would have made that more obvious. | 00:16 | |
| But yes, quoting is a good idea. | |||
| cotto | benabik++ | ||
| benabik | t/compilers/imcc/syn/regressions.t | 00:17 | |
| That's... promicing. | |||
| cotto | that file's not as big as I'd expect | 00:18 | |
| how pleasant | |||
| benabik | :-D | ||
| whiteknight | which strtoul was it getting stuck on, the one on line 1971? | 00:21 | |
| benabik | whiteknight: Yeah. | ||
| whiteknight | actually, that's the only instance there | 00:22 | |
| how did you even discover this bug? | |||
| benabik | :-D | ||
| By misreading the PDD on PIR. | |||
| I thought the .const declaration needed the type of PMC returned from the immediate sub. | |||
| Which just happened to be an FIA. | |||
| (Was testing how easy it is to get a PMC from the constant table to a PMC register) | 00:23 | ||
| So I had a 'test' :immediate and a .const 'FIA' $0 = 'test' | |||
| whiteknight | gotcha. | 00:25 | |
| and that doesn't work, I take it? | |||
| I never really understood the .const 'type' syntax | |||
| benabik | The only types that can go there is 'Sub', 'Float', 'Integer', and 'String' | 00:26 | |
| It might have been able to take more when there was an initialize_string VTABLE (or whatever it was called) | |||
| whiteknight | ah, that makes a little bit more sense, but 'Sub' never had an initialize_string | ||
| benabik | And 'Sub' gets you the Sub PMC or the result of an immediate. | 00:27 | |
| IMCC does the lookup. | |||
| whiteknight hates PIR the more I learn about it | |||
| benabik | Yeah. | ||
| Added quotes and tests: github.com/Benabik/parrot/commit/9...61071dc42a | 00:30 | ||
| (Running tests before pushing to master...) | 00:31 | ||
| Oh, I left 'FixedIntegerArray' off the list of types you can .const | 00:32 | ||
| It's very bizzare. | |||
|
00:34
TonyC joined
|
|||
| benabik | Huh. One of the tests to fail worked. :-( | 00:34 | |
| dinner & | 00:38 | ||
| whiteknight | I don't see any problem with that patch. If all tests pass, commit it | 00:39 | |
| benabik | I tried to rip out the "track a pointer and index" bits. | 00:46 | |
|
00:58
TonyC joined
01:03
TonyC joined,
particle1 joined
01:06
nopaste joined
|
|||
| whiteknight | this file.... | 01:12 | |
| ~2500 lines of terrible abstraction-breaking code | |||
| I'm using existing data structures here (SymReg *) to store | |||
| various global items (currently only PMC constants). | |||
| The index in the constant table is in SymReg * ->color | |||
| data member. This looks odd, but the register number | |||
| from imc.c:allocate is also there for variables, | |||
| so it's a little bit consistent at least. | |||
| that comment really sums it all up | 01:13 | ||
| benabik | A little bit consistant? | ||
| whiteknight | "I'm going to use the wrong data structure for the job, and make sure all the field names don't match their purpose" | 01:15 | |
| So when reading color here it's either a constant table index | |||
| or a Parrot register number, depending on data type. | |||
| yay! | |||
| benabik | yay! | 01:17 | |
| At least make is a union? | |||
| whiteknight | We really need two APIs for the packfile subsystem: One for runtime read-only accesses and one for creating packfiles from a compiler | 01:18 | |
| We can start moving a lot of this pbc.c logic into the second API | |||
| ...And then expose that API through appropriate PMC types | 01:19 | ||
| benabik | +many | 01:21 | |
| whiteknight | don't codetests get run on this file? | 01:23 | |
| There are two broad classes of functions in this file: those that deal with packfiles, and those that deal with symreg bookkeeping | 01:25 | ||
| Thats it! I've found my next project | 01:26 | ||
| There's only so much of this crap that a man can take | |||
| cotto | :D | 01:28 | |
| whiteknight | pc[-1] = add_const_table_pmc(imcc, changed_sig); | 01:37 | |
| that makes me want to vomit | |||
| "My loop has an off-by-one error! I know, I'll use a negative offset to pretend like it's not a problem" | 01:39 | ||
| bacek_at_work | whiteknight, just run "git rm -rf compilers/imcc". It will solve many-many problems in trade off of just one. | 01:43 | |
| whiteknight | yeah, it's tempting | 01:47 | |
|
01:51
kid51 joined
|
|||
| dalek | rrot: 67bd75b | jkeenan++ | frontend/pbc_dump/main.c: [codingstd] Add 'ASSERT_ARGS(<function_name>) in 8 locations in 2 files. A |
01:54 | |
| rrot: 16f74d9 | jkeenan++ | frontend/parrot_debugger/main.c: [codingstd] Add 'ASSERT_ARGS(<function_name>) in 8 locations in 2 files. A |
01:56 | ||
| rrot/remove_sub_flags: d6a4648 | Whiteknight++ | src/ops/core (2 files): Fix a few variable names to better represent what they do |
01:57 | ||
| rrot/remove_sub_flags: 3787eed | Whiteknight++ | / (3 files): A few small fixes so Test/More.pbc runs and include/test_more.pir does the right thing. A few more tests run correctly, but there is still some weirdness. |
|||
| whiteknight | With that, it's time for bed. Goodnight | 01:58 | |
| benabik | fulltest takes a while... | 02:04 | |
| pbc_dump and parrot_debugger both fail c_arg_assert.t | |||
| (in case anyone's board and wants to fix code std issues. | 02:06 | ||
| *bored | |||
| kid51 just fixed them | 02:17 | ||
| benabik | So you did. kid51++ | ||
| dalek | rrot: 5779c32 | benabik++ | / (2 files): imcc: Be more strict in parsing FixedIntegerArrays The previous implementation would sit and spin on strtoul when handed invalid input. This version performs more sanity checks as it parses, although it doesn't require the presence of surrounding parenthesis due to the parser giving it just '0' while parsing compilers/pct/src/PCT/HLLCompiler.pir |
02:18 | |
| cotto | whiteknight++ #first the build breaks, then there's weirdness, then you win | ||
|
02:23
woosley joined
02:26
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#153 (master - 67bd75b : jkeenan): The build was broken. | 02:26 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/9......67bd75b | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/860525 | |||
|
02:26
travis-ci left
|
|||
| benabik | Just timeouts | 02:28 | |
| cotto | don't forget that tomorrow is Ļ day | 02:35 | |
| benabik | Half-tau day | ||
| cotto | or that | 02:36 | |
|
02:42
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#154 (master - 16f74d9 : jkeenan): The build is still failing. | 02:42 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/6......16f74d9 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/860542 | |||
|
02:42
travis-ci left
|
|||
| cotto | time to prepare to subvert $dayjob's uptime counter | 02:43 | |
| benabik | ? | ||
| cotto | we have one of these: www.mysafetysign.com/mark-a-day-saf...-5018.aspx | 02:45 | |
| kid51 | I tested those commits several different ways before committing ... so I don't know what travis-ci is complaining about. | ||
| benabik | kid51: It's complaining that fulltest takes too long. | 02:46 | |
| __ days without a velociraptor attack? | |||
|
02:53
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#155 (master - 5779c32 : Brian Gernhardt): The build was fixed. | 02:53 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/1......5779c32 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/860606 | |||
|
02:53
travis-ci left
03:03
mdupont joined
04:51
aloha joined
|
|||
| aloha | (parrot/parrot) Issues opened : 734 (Missing declarations and prototypes should be errors) by petdance : github.com/parrot/parrot/issues/734 | 04:52 | |
| dalek | rrot: d296f64 | petdance++ | lib/Parrot/Pmc2c/PMC.pm: Initialize $hout before we use it |
05:02 | |
|
05:07
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#156 (master - d296f64 : Andy Lester): The build was broken. | 05:07 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/5......d296f64 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/861143 | |||
|
05:07
travis-ci left
|
|||
| benabik | whoops | 05:09 | |
|
06:09
johbar_work joined
|
|||
| cotto | all done | 06:48 | |
| imgur.com/a/ItveK#0 | |||
|
07:03
woosley left
08:26
mj41 joined
09:14
lucian joined
09:33
alin joined
10:06
bacek joined
10:44
betterworld joined
10:53
mj41 joined
|
|||
| nine | msg whiteknight An interesting idea. I guess checking the flag in the GC should have only minimal performance impact (affects only GC runtime). The is_shared flag just begs to be used this way. It makes me a bit nervous to have foreign PMCs floating around, but I'll just give it a try. | 11:33 | |
| aloha | OK. I'll deliver the message. | ||
| nine | bacek: I'll try whiteknight's suggestion of using a flag on the PMC to tell the GC to not touch them. This way it doesn't matter that these constants may be used in arbitrary ways. | 11:34 | |
| bacek: I'll have a look at finalization as soon as the runtime stuff works. Considering that I had to change child interp creation massively, I'm not surprised that tearing them down is more broken than not... | 11:35 | ||
|
12:16
benabik_ joined
12:21
bluescreen joined
13:14
fperrad joined,
johbar_work joined
14:01
johbar_work1 joined
14:21
contingencyplan joined
14:45
PacoAir joined
15:04
benabik joined
|
|||
| benabik | ~~ | 15:04 | |
|
15:04
benabik_ joined
|
|||
| nine | o/ | 15:14 | |
| benabik | \\o nine. How's things? | ||
| nine | benabik: Fine, thanks. Got a good suggestion for my constants problem from whiteknight and am anxious to get home so I can try it out | 15:18 | |
| benabik | nine: Sharing the PMCs seems like not a bad idea. It could end up with concurrency problems but as long as it's deliberately pointed out, it should work alright. | ||
| nine | as long as those 'constants' really are constant it should work | 15:19 | |
| benabik | Yes. | ||
| nine | How's things over there? | 15:21 | |
| benabik | Caffinated! | ||
| Didn't sleep well last night but had a coupon for free espresso. | 15:22 | ||
| nine | which is almost as good | ||
| benabik | So I can be nice and awake for a phone interview. There's no way this could go wrong. :-/ | ||
| nine | s!:-/!:-)! | 15:23 | |
| benabik | The good news is that I could probably charge my laptop via vibrating at the moment. | ||
| nine | Sounds like a good occasion for grabbing your running shoes | 15:28 | |
| benabik | If I didn't have to be in the office, that'd be grand. | ||
| nine | Ah, always those details in the way | 15:29 | |
| benabik | yarble | ||
| Probably going to go punch things tonight, so that'll be good. :-) | |||
| nine | Well speaking of being at the office. Time to go home for me. Wish you success with your interview. Though I can't imagine something that could make someone nervous who pokes at IMCC's internals... | 15:31 | |
| benabik | :-D | ||
| tadzik | ;) | ||
|
15:45
Psyche^ joined
16:18
mdupont joined
16:27
alester joined
|
|||
| nine | Where else than in PackFile_ConstTable_unpack can a PMC get into a ConstantTable? | 18:07 | |
| benabik | The PackfileConstTable PMC for someone building a new packfile. | 18:09 | |
| I think that's all, but not completely sure. | |||
|
18:10
dmalcolm joined
|
|||
| cotto | ~~ | 18:13 | |
|
18:24
bluescreen joined
|
|||
| dalek | rrot: 8032bfa | jkeenan++ | lib/Parrot/Pmc2c/PMC.pm: Under 'use strict', you must declare a lexical ('my') variable before you use it. |
18:32 | |
|
18:45
dngor joined
18:48
autark joined
19:03
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#157 (master - 8032bfa : jkeenan): The build is still failing. | 19:03 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/d......8032bfa | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/865916 | |||
|
19:03
travis-ci left
19:23
mj41 joined
19:30
dngor joined
19:54
lucian joined
19:57
seme joined
|
|||
| seme | hi guys... any reason 4.1.0 is not on the ftp site? | 19:58 | |
| ooh is 4.1 only devel? | |||
| are odd releases development and even releases stable? | 19:59 | ||
| nine | seme: doesn't look like comparing ftp://ftp.parrot.org/pub/parrot/releases/devel to ftp://ftp.parrot.org/pub/parrot/releases/stable | 20:00 | |
| seme | yeah it is odd... I saw the announcement about the 4.1 release and assumed it was a stable release but I can only find it in the devel branch of the ftp site | 20:01 | |
| nine | there seems to be no obvious system on what's devel and what's stable | ||
| I guess I'm the only regular on this channel who doesn't know the secret :) | 20:03 | ||
| seme | he hee well don't sweat it... I usually run from teh git repo any way | 20:04 | |
|
20:12
pjcj joined
|
|||
| seme | where is the source for HLL::Grammar? the squaak example grammar files implement the HLL::Grammar but the docs reference the PCT::Grammar | 20:13 | |
| Coke | we prefer "supported" over "stable". every 3 months is a supported release. | 20:14 | |
| they happen to be numbered .0, .3, .6, and .9 | |||
| seme | I see... thta is why stable and supported mirror each other | ||
| works for me | |||
| any poniters on the whole HLL::Grammar vs PCT::Grammar thing... I'm reading through the docs but they dont' match some of the examples I see out there... any pointers would be appreciated | 20:15 | ||
| Coke | seme: that I can't help with, sorry | 20:16 | |
| seme | ooh I see... I think that HLL::Grammar is from the nqp stuff | 20:22 | |
| at least thats the only place I can find it | |||
| moritz | there's an src/HLL/Grammar.pm in nqp, yes | 20:27 | |
| there's also a src/HLL/Grammar.pm in nqp-rx | 20:28 | ||
| seme | I'm very confused as to which grammar to use and specifically I'm confused as to why the squaak example implements the HLL::Grammar which doesn't appear to be a part of the parrot src but pynie uses the PCT::Grammar which does appear to be part of the parrot src... What is the relationship between them? | 20:29 | |
| moritz | iirc squaak uses NQP-rx, which is bundled with parrot as the parrot-nqp executable | 20:30 | |
| NQP-rx is basically the successor of the PCT grammar engine plus the NQP compiler | |||
| and then there's a new NQP compiler, which can be found at github.com/perl6/nqp/ | 20:31 | ||
| dalek | kudo/nom: 34b7b10 | tadzik++ | src/Perl6/Actions.pm: Fix DOC phasers for the new add_phaser() API. felher++ for noticing |
||
| moritz | you won't find NQP-rx's HLL::Grammar in the parrot repo, because parrot only imports the compiled version of NQP-rx | ||
| github.com/perl6/nqp-rx/ has the src/HLL/Grammar.pm | 20:32 | ||
| seme | ok that makes sense | ||
| ok so if I follow the squaak example then my grammar should implement the HLL::Grammar which is basically the NQP-rx grammar | |||
| and the docs for the squaak tutorial and the NQP-rx stuff should match right? | 20:33 | ||
| moritz | yes | 20:34 | |
| seme | ok that makes sense :) | ||
| moritz | sense is overrated :-) | ||
| seme | one other thing... are perl 6 rules NQP-rx ? | 20:36 | |
|
20:49
johbar_work joined
|
|||
| Coke really wishes we could start to clean up our trail of old technologies. | 20:55 | ||
| seme | seriously... for a complete newbie like me it is really confusing | ||
| cotto | Nuking all the old stuff is easy. Keeping things that depend on the old stuff working is less so. | 20:58 | |
| Coke | cotto: what depends on the old stuff? | 20:59 | |
| say blackpan and lose a beak. | |||
| cotto | lua, largely | ||
| Coke | blackpan? darkpan. | ||
| fair enough. I'd worry about breaking lua, yes. | |||
| cotto | yeah. darkpan is no longer an acceptable argument | ||
| seme | what about deprecating things over time | 21:00 | |
| Coke | certainly don't worry about breaking tcl. ;) | ||
| oh. I got a text today from particle. Any idea what that was about? | |||
| cotto | I don't know about anything special happening. | 21:01 | |
| though he's a busy fellow, so it could be for something old | |||
| nine | Damn.... IMCC is the source of my rouge constants | 21:11 | |
| moritz | it's a very old meme around here | 21:14 | |
| "who's to blame?" -- "IMCC" | |||
| nine | moritz: well in this case, it's not even at fault. It just does it's job. But this means that any compiler would have to set this flag on the constants, or I'd have to find a better place where to do that | 21:18 | |
| bacek | nine, github.com/parrot/pirc | ||
| nine | bacek: sounds very nice but seems very inactive as well? | 21:20 | |
| cotto | both true | ||
| well, definitely inactive | 21:21 | ||
| the problem with any pir compiler is that it has to compile pir | |||
| bacek | cotto, actually problem is to be bug-compatible with IMCC... | 21:26 | |
| cotto | bacek: well pir essentially is "whatever imcc does" | 21:31 | |
| bacek | cotto, afaik we ditched our "deprecation policy". Nothing can stop us from replacing imcc with pirc and declare it's "new pir". Fixing nqp/rakudo/lua shouldn't be too hard. | 21:32 | |
| cotto | I'm not sure that's the right direction though. The big problem isn't that we have a questionable pir compiler, but that pir is the main non-C way of interacting with parrot. | 21:34 | |
| *main non-C low-level way of interacting with parrot | 21:35 | ||
| bacek | cotto, better way - split Packfile* PMCs into 2 sets - runtime and compile time. Then resurrect PIRATE | 21:38 | |
| but bringing pirc as imcc replacement will be a good start | |||
| cotto | bacek: what's the advantage of pirc over just using imcc as part of the bootstrap to get PIRATE built? | 21:40 | |
| bacek | cotto, test bench for Packfile* splitting. | ||
| cotto | bacek: doing that with imcc does sound hairy | ||
| bacek | and bringing pirc should be smaller than making full pirate | 21:41 | |
| smaller task | |||
| cotto | yes | ||
| bacek | something like "GSoCable" | ||
| dalek | nxed: 44a04cf | NotFound++ | pir/winxed_ (2 files): update installable files |
21:43 | |
|
21:48
lucian joined
|
|||
| dalek | rrot: 86bb3b3 | NotFound++ | ext/winxed/ (2 files): Update winxed snapshot to 1.6.devel 44a04cfa7b - Use pir compile method instead of obsolted ways |
21:58 | |
|
22:23
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#158 (master - 86bb3b3 : NotFound): The build was fixed. | 22:24 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/8......86bb3b3 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/867531 | |||
|
22:24
travis-ci left
22:38
donaldh joined
23:09
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 23:15 | |
| tadzik | good evening whiteknight | 23:16 | |
| whiteknight | hello tadzik | ||
|
23:42
contingencyplan joined
|
|||