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