#parrot Parrot 0.6.1 "Bird of Paradise" Released | parrotcode.org
Set by moderator on 29 April 2008.
pmichaud Null PMC access in invoke almost always refers to trying to call a non-existing function 00:01
obra is there a faq for this sort of stuff?
pmichaud we could create one. But I don't know where to put it. 00:02
particle wiki
00:02 patspam joined
pmichaud actually, one probably already exists. But I don't know where it is. 00:02
fwiw, it's not specific to rakudo -- it really exists for Parrot and for PCT
in PIR, "foo"(1) gives "Null PMC access in invoke()" if foo doesn't exist. 00:03
00:05 TonyC joined
pmichaud reporting sane line numbers is RT#43629 and RT#53082 00:05
obra and there's no way to find out what the missing sub being called was/ 00:06
?
pmichaud I'm looking up the RT ticket for that one :-) 00:07
obra Ticket # won't help me much ;) it's all fine
wknight8111 sane line numbers? I vote for that one!
pmichaud RT#49972 explains why it doesn't work.
I'm pretty sure I'll need to update PCT to report missing subs
since I don't think Parrot will do it anytime soon 00:08
obra is there a way to tell rakudo to keep running after a parrot failure? 00:10
00:10 zarchne joined
pmichaud ... try ? 00:11
fudge allows
$?rakudo try [num] 'reason'
obra was pondering whether p6 gives us enough rope to make ok() insert an inner frame that wraps a try in there.
pmichaud which puts 'try' blocks around the tests that follow
obra ok 00:12
pmichaud it's very useful to read the fudge code at the beginning
obra Sorry. I'm very much a newbie at this
pmichaud svn.pugscode.org/pugs/t/spec/fudge
in truth, we all are. Even I'm having to look up the items as you ask for them :-) 00:13
obra nods
#? rakudo [num] try 'reason'
particle and i keep giving wrong answers
pmichaud no space between #? and rakudo
yes, I typoed above 00:14
TimToady obra: I've tried all sorts of such tricks, and the preprocessing is by far the most straightforward
obra TimToady: understood 00:15
it's also the most likely to work early on
TimToady but the main advantage of the fudge approach is that it is completely obvious when you aren't using it
obra Even if we'll be able to do sick things once we have a fully operational death star.
er. Perl 6 implementation
TimToady whereas all sorts of niggly hooks, you don't know if they're turned on or off
pmichaud I really like the fudge impl, fwiw. TimToady++ and particle++ 00:16
TimToady with fudge, just *don't do it*, and if it works, you're golden
the disadvantage of fudge is that you have to be a little disciplined in how you write individual tests
pmichaud discipline in a specification test suite is probably a good thing, though. 00:17
particle discipline for the masses! freedom for all!
obra Is my discipline obviously lacking in this: paste.husk.org/11313 ?
pmichaud obra: you may be the first person to try 'try' in fudge :-) 00:18
particle obra: s/\\#\\$\\?/#?/ 00:19
TimToady you don't have to put the number if it's 1
pmichaud oh yes, I had the number in the wrong position in my examples.
Apparently tonight I'm only good for general pointers, not for exact syntax :-| 00:20
TimToady that's why the number is where it is, so it's easy to tell if it's missing
obra particle: you win
TimToady pointers...are those kinda like references, whatever those are?
obra except, no
adding a second test of ok(1); reports two failures
or maybe I have another typo 00:21
pmichaud obra: you may be the first person to try 'try' in fudge :-) :-)
or in rakudo, for that matter.
particle it works in rakudo
we have sanity tests for try, iirc
obra nods
pmichaud no, I meant fudge's try in rakudo
particle ah, mebbe 00:22
pmichaud I know that try { ... } "works" in rakudo.
TimToady it's easy enough to look at the .rakudo file and see what fudge did with it
the thing about try is that it can't really tell how many tests ran inside a block before it failed 00:23
(if you use the block syntax)
pmichaud gives the whole thing a try.
er
TimToady presumably that sort of thing gets caught by the "planned" number
obra #?rakudo 1 try 'i hate this'
(try { is( 2147483647 + 2147483647, 4294967294); }) // fail('i hate this')
I would expect a trailing ; 00:24
Is that my p5 showing through?
TimToady could be a buglet
obra also, it looks like there's no sub fail defined. 00:26
pmichaud aha
that's likely
obra should that be 'flunk'?
or is flunk something else?
pmichaud what's the p6 def for fail()?
TimToady fixed the ; 00:27
pmichaud (i.e., where is it defined?)
particle fail is for grammars
pmichaud just for grammars?
particle well, probably not
but it's likely that's why flunk exists
pmichaud fail() is mentioned in S04
TimToady okay, fixed that too 00:28
obra TimToady++ # fast enough turnaround that I didn't manage to get into fudge
TimToady should be flunk in any case, since fail would return an exception instead of continuing
pmichaud is flunk() a Test.pm function? 00:29
particle not yet
pmichaud I mean in pugs
we need to add flunk() to Test.pm 00:30
TimToady yes, pugs has flunk, I believe
pmichaud Test/lib/Test.pm
261:sub flunk (Str $desc?, :$todo, :$depends) returns Bool is export {
(in pugs)
obra needs to wander home. thanks for the intro help
pmichaud thanks, obra!
TimToady obra++
obra with luck I'll manage to get this far enough along to move arith.t into spec over the next couple days and write about it 00:31
particle obra++
nopaste "chromatic" at 69.71.189.252 pasted "[proposed PATCH] Throw Exception when invoke()ing NULL PMCs" (26 lines) at nopaste.snit.ch/12871 00:37
obra paste.husk.org/11314 00:38
that's a first, bad stab at "make fudge's flunk work"
pmichaud looks pretty good to me 00:39
although could even simply do proclaim(0, $reason) 00:40
particle it's two separate patches, but it looks pretty good
pmichaud having "flunk" there does make it clearer
two separate patches?
obra the two changes are not tightly coupled
particle sure, one is to fix proclaim to include the description
it's worth applying 00:41
obra wonders if he actually has a commit bit to Parrot
pmichaud I'm confused... doesn't proclaim already include a description?
obra: if no, I'll apply in just a second
00:41 patspam left
pmichaud (also dealing with kids and students in other windows) 00:41
particle if it's todo, it includes only the todo reason from fudge 00:42
obra if $todo is defined, that was clobbering the reason
particle not the individual test reason
obra er. which seemed kind of subpar
pmichaud applying. 00:43
00:43 Zaba joined
obra thanks 00:43
pmichaud r27279. 00:44
dalek r27279 | pmichaud++ | trunk:
: [rakudo]:
: * Add flunk() function to Test.pm .
: * Patch courtesy Jesse Vincent (obra++)
diff: www.parrotvm.org/svn/parrot/revision?rev=27279
pmichaud (chromatic's patch) .... doesn't Parrot already throw an exception when invoking a NULL PMC? I don't see the purpose of the patch. 00:49
particle it makes the invokecc op throw an exception before trying to invoke a PMCNULL 00:51
rather than having the Null PMC throw an exception when the invoke vtable function is called
00:52 pasty joined
particle at least it has a type, GLOBAL_NOT_FOUND, that you can catch 00:52
pmichaud that seems... wrong
How do we know that the Null PMC is due to a global not found?
it could've come from a variety of sources
particle i agree. 00:53
the exception should be thrown in find_global
pmichaud I don't want an exception there, either
particle hey, you're looking for something to invoke, and i can't find the thing you're looking for
pmichaud did you mean find_name? 00:54
or get_global?
in either case, how do you know that the thing you're looking for was something to invoke ?
particle i'm too far removed to know the exact name
pmichaud we use get_global and find_name to get things other than subs
and "null" is the standard way we have to determine that the thing doesn't exist.
if parrot is going to try to solve this problem, it needs to do so in the code it generates for a symbolic sub call invoke 00:55
i.e., instead of generating
$P0 = find_name 'foo'
$P0(...args...) 00:56
it needs to generate
$P0 = find_name 'foo'
unless null $P0 goto label
throw "cannot invoke 'foo'"
label:
$P0(...args...)
bbiab -- kid request 00:57
00:58 slavorg joined
pmichaud ...but I'm thinking I can do the equivalent in PCT without having to modify Parrot 00:59
Tene debates between cardinal, lolcode, and naptime.
Coke pmichaud: tcl is currently doing the latter.
particle tcl is doing naptime? 01:00
Coke if there's a shortcut, that'd be nice, but the various languages might not deal with it the same. 01:01
no, but I am.
pmichaud I think I'll add it as a flag or option to PCT 01:02
Coke tempting to to put that in an opcode. invoke_by_name 01:03
pmichaud no, because we have to do calling conventions
Coke hurm. find_or_die, then. =-) 01:04
(but that's probably not worth it.) 01:05
pmichaud it would be nice to have find_name with an optional flag to decide whether to throw the exception or not 01:10
but that's just another form of find_or_die I guess.
particle we've previously discussed compiler pragmata
Coke yah. I'm fine with it either way. I don't like pragmata at the assembly level. 01:11
particle .failure_mode 'throw'
.failure_mode 'null'
whatever.
Coke perhaps some PIR sugar to automatically throw an exception, though. that I could get behind.
particle $P0($P1, $I2) :throw 01:12
Coke I was thinking it would go on the find_name.
particle easy enough if you make that a method on the namespace 01:13
just need to update NameSpace PMC to use PCCMETHODs more fully 01:14
particle needs food &
Tene Wow, I forgot how slow cardinal was. 01:28
nopaste "tene" at 67.111.53.82 pasted "cardinal is really slow" (30 lines) at nopaste.snit.ch/12872 01:29
Tene 10s just to call a couple of functions. 01:30
most of it is just parsing.
--target=parse is 9s 01:34
01:37 grim_fandango joined
pmichaud parsing is still the slow part of things, yes. 01:48
that's why I'm looking at revising pge
(looking at cardinal's grammar to see if there's anything obvious) 01:49
although it shouldn't take 9s to parse that relatively small program. 01:50
ohhhhh 01:51
probably ought to memoize the <ws> rule
it's almost worth creating a subrule just for that
I think pct should provide a memoize function for <?ws> 01:52
Tene clever 01:53
obra how would one define an lvalue .sub for a rakudo core function? 01:57
Tene obra: what are you looking to make?
obra undefined 01:58
purl i guess undefined is false, but so are some defined values
obra er
undefine
pmichaud lvalue sub... I suspect one just puts a sub on the lhs of an assignment 02:09
but I'm not sure it will store the value anywhere 02:10
that's not exactly something we've done yet :-)
what is undefined?
purl well, undefined is false, but so are some defined values
pmichaud er, undefine?
oh, you're just looking for something that is rw? 02:11
.sub 'undefine' 02:12
.param pmc x
$P0 = new 'Undef' # this isn't real p6, but it works
copy x, $P0
.end
obra something that modifies its argument 02:13
I'm digging for where in the syns I saw the spec for undefine.
or whether I'm hallucinating
I see it in Perl6/Spec/Functions.pod and throughout the tests 02:15
but only a single reference in dev.perl.org/perl6/doc/design/syn/S04.html 02:16
(copy was the bit I hadn't figured out) 02:18
Tene I'm trying to recall what the problem was with persuading cardinal to allow function calls as arguments. 02:20
I had it all figured out, but didn't get around to fixing it before I forgot it, quite a while back.
obra so, assuming that undefine is supposed to be a core function, I have the patch, with test
Tene It's recursive somehow... 02:21
02:26 rdice joined
Tene I don't know if the parse tree for foo(1) in cardinal is funny or scary. 02:26
obra hey rdice 02:28
rdice ahoy!
pmichaud undefine is probably not in the synopses yet 02:29
that's true for a lot of the builtin functions. Spec/Functions.pod is essentially the draft of S29, iirc
obra nods
do you want an undefine? ;)
pmichaud if the spec doesn't cover something, then Spec/Functions.pod is the next-best-thing for now 02:30
sure!
patches welcome.
purl That's swahili for "Put up or shut up."
obra Pasted to: paste.husk.org/11315
next question:
purl it has been said that next question: is the source sensible?
pmichaud in this case it's english for "If you send me a patch I'll be very happy and give you a karma point." :-)
obra I'd guessed ;) 02:31
Tene karma++
obra my $a;
$a++
BOOM
pmichaud rakudo needs help with its Undef work
technically P6 no longer has an Undef
so we have to define the Failure type
and then define the increment operation on it
and I think we just haven't quite gotten around to that yet 02:32
Tene I wonder how much this grammar could be condensed without losing anything important...
pmichaud Tene: I think that memoizing <.ws> will save a ton of parsing time
after that, ltm will be the best bet. I didn't see any obvious grammar condensations in my quick perusal of it
Tene pmichaud: I'm looking for sanity in trying to fix it, not for speed.
the current grammar allows foo(1), but not foo(foo(1)) 02:33
pmichaud *that's* odd
I thought you were talking about something like foo(bar) where 'bar' is another function
Tene It appears that all you need to do is add <command> to basic_primary, but that loops forever. 02:34
pmichaud (working on applying obra patch, but also need to svn up parrot so will take a few mins)
obra pmichaud: no worries. 02:35
Tene the things I'm looking at cleaning up are some of the multiple-variants-on-the-same-name which all call each other.
obra is there a right place for failing tests of incrementing from undef?
pmichaud good question. I'd guess somewhere in S03 (operators)
Tene Oh! I should make a graph! Where's the grammar-to-graphviz script, I wonder...
pmichaud probably whatever is testing the increment operator itself
I think there's already an autoincrement.t in t/spec/03-* 02:36
02:36 davidfetter joined
pmichaud tene: adding command to basic_primary is probably correct, but you have to make sure it gets tested before other things that might be a subset 02:37
dalek r27280 | pmichaud++ | trunk: 02:42
: [rakudo]:
: * Add 'undefine' function and a simple test.
: * Patch courtesy Jesse Vincent (obra++).
diff: www.parrotvm.org/svn/parrot/revision?rev=27280
pmichaud also, anything that can be converted from 'rule' to 'token' would probably speed things up a bit also
so as to avoid all of the extra calls to <.ws>
obra I can't actually find anywhere in S03 that says we should coerce an undefined value to 0 for autoinc
pmichaud it likely falls under the "anything not mentioned is still like p5" 02:43
otoh, S04 says that if we try to do something with a Failure value, then it throws an exception
so.... I dunno. At this point I'd probably ask p6c, p6l, TimToady, or #perl 02:44
er, #perl6
Tene pleasedieinafire.net/~tene/cardinal.png
pmichaud or pugs. :-) 02:45
obra bah. my pugs commit bit appears busted. 02:46
Pasted to: paste.husk.org/11316
anyone with a pugs bit easily able to add those to autoincrement tests cribbed from the syn? 02:47
pmichaud I've got one -- just a sec
note that there was recently some dicussion on postfix:<++> on p6l; I don't know that anything made it into the spec. 02:48
obra nods 02:49
all I've done is added the weird examples from the syn
pmichaud well, the weird examples were the things being discussed. :-) But I'm pretty sure the changes you made are still spec-compatible. Besides, we should write to what's written in the spec, not what's discussed on list. :-)
r20354 (pugs) 02:50
Tene rules like the <mrhs> rule in cardinal make me nervous. 02:51
pmichaud seems reasonable
they've just chosen to handle ',' as a syntactic element outside of an opp 02:52
obra pmichaud: thank you.
pmichaud (operator precedence parser)
obra -> sleep
pmichaud obra++ # many nice patches
obra maybe tomorrow, I'll try to get arith.t to pass
oh. last question
Tene Why have <mrhs> that just calls <args>, though?
obra rakudo appears to require () on function calls at this point.
pmichaud (I'll be travelling much of tomorrow... but others will be around to help)
obra I also have a ton of actual work I need to do ;) 02:53
pmichaud NQP requires (), but rakudo doesn't
er, rakudo shouldn't.
Tene Even the method is just: make $( $<args> );
obra hm. I wonder why it flips out when I don't have () for ok and for undefine
pmichaud ok '1'; # fine in rakudo
Tene > say "foo";
foo
purl bar
Tene yeah, works fine.
obra Syntax error at line 10, near "undefine $" 02:54
current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)
pmichaud interesting.
obra hm.
pmichaud nopaste source?
obra maybe it's just undefine.
pmichaud even undefine should work.
ah 02:55
obra Pasted to: paste.husk.org/11317
pmichaud I suspect the grammar is stopping at 'undef'
obra heh
got it
ok. kaia has just appeared. I really need to run
pmichaud if so, easily fixed.
nopaste "pmichaud" at 76.183.97.54 pasted "results after fixing 'undef' (and also 'self')" (19 lines) at nopaste.snit.ch/12873 02:57
pmichaud fixed in r27281. 02:58
Tene: (mrhs) Grammar authors often create "stub" rules to clarify things in the grammar 02:59
dalek r27281 | pmichaud++ | trunk:
: [rakudo]:
: * Make sure that 'undef' and 'self' aren't prefixes of a larger identifier.
: * Bug reported by Jesse Vincent (obra++)
diff: www.parrotvm.org/svn/parrot/revision?rev=27281
pmichaud for example, I've see things like (p6 equivalent) token then { 'then' }
you're correct that in this case it could be eliminated, since <mrhs> is only called in one location ( <assignment> ) 03:00
Tene The <mlhs> thing is a bit weird...
pmichaud it's "multiple left hand side", yes?
Tene Yeah.
Essentially: rule mlhs { <lhs> | '(' <mlhs> ')' } 03:01
pmichaud they might not have been easily able to write a self-recursive rule 03:02
(I'm just pulling at straws... ) 03:03
Tene Please note: this isn't significant questioning, just idle chatter while I try to swap this whole grammar in.
pmichaud right
same here
(while I do other stuff, such as close the 20+ windows I've managed to open over the past 90 minutes)
tetragon Hrm... When is the symbol '_environ' defined? 03:15
Tene pmichaud: s/rule/token/ in several places reduced the time to 4.1s for me. 03:17
pmichaud tene: yes, that's pretty significant. If I get a few free tuits tonight I might quickly add memoize to PCT::Grammar and try that
Tene Really, <primary> should be calling <command>, not the other way around... 03:20
03:20 petdance joined
Tene Wait, why does Cardinal's grammar have both infix:= and an assignment rule? 03:25
wtf?
oh, multiple assignment, I guess.
pmichaud hmmm?
that would be odd
wknight8111 cardinal is ruby-ish, right?
pmichaud I suspect infix:= is extra
multiple assignment is within the assignment rule
wknight8111 purl cardinal? 03:26
purl cardinal is mail.freesoftware.fsf.org/pipermail...dinal-dev/ or the Ruby-on-Parrot project. or xrl.us/uyz3
Tene I wonder if there would be problems if I just implemented infix:, instead
pmichaud is the current comma handling causing an issue?
I think you're probably better off keeping commas out of the opp, for most languages
Tene not really, but it looks like it would possibly simplify some things. 03:27
pmichaud (I could be wrong about that, but that'd be my first guess)
actually, I suspect that cardinal is currently using infix:= where it should be using <assignment> 03:28
(in terms of generated code)
Tene nodnod
me too
pmichaud afk for a while 03:32
tetragon Got parrot to compile/link on OS X without '-undefined dynamic_lookup' set 03:37
(Including OpenGL)
With -fvisibility=hidden removed from the flags (and not using -j2), there were two points that I encountered difficulty 03:46
2) The GLUT callbacks needed to be pointed at libparrot to before they could link 03:48
1) When linking libparrot, I needed to add '-Wl,-U -Wl,_environ' for it to work as pmc/env.c refers to the undefined symbol char **environ 03:50
(That linker flag allows the specified symbol to be undefined) 03:51
Tene Ack, the precedence is all off in cardinal 03:58
Or possibly not precedence...
n + 1 parses as n( 'infix:+'( 1 ) ); 03:59
04:01 japhb joined, Zaba_ joined
Tene Allowing a full <primary>:: or <primary>. before a call? That doesn't sound right. 04:01
That would allow a call on 'if's and function defs and such. 04:02
Infinoid tetragon: the "environ" symbol is provided by the C library, on linux. yours doesn't? 04:05
Tene 1 + 1 parses, but 1 - 1 doesn't?
Weird.
Infinoid a comment in the source says it is specced in POSIX.1, but if that were the case, we could probably just #include something, rather than declaring it directly
tetragon The symbol is declared in env.c, but the linker wants the symbol 04:06
Infinoid well, its declared as extern, so it is looking for the actual implementation of it somewhere else
(the code assumes its provided by the C library)
tetragon haha, libSystem.dylib doesn't define a symbol "environ" 04:07
Infinoid do you have an environ manpage?
tetragon It's there 04:08
Infinoid on linux, its apparently considered part of the execve() API, so its listed on that manpage, and apparently declared by unistd.h
tetragon Complete with the same declaration line that's in env.c
Infinoid k, so what do you have to link against to get it? :)
% nm /lib/libc.so.6 | grep environ 04:09
00000000000335c0 t __add_to_environ
00000000003449f0 B __environ
00000000003449f0 V _environ
00000000003449f0 V environ
0000000000343240 b last_environ
tetragon That's not how it's done on OS X
"Shared libraries and bundles don't have direct access to environ" (from environ(7))
Infinoid well, that's not POSIX-compatible
so be it. we should rework env.pmc to handle OS X in a different way 04:10
tetragon The manpage tells how to access it
Tene oh, it's trying 'is equal' instead of 'is equiv'
tetragon I'll have to add in some changes to use _NSGetEnviron() in crt_externs.h to get environ's address 04:11
(And hope that someone out there has an OS X 10.5 Intel Mac available for testing. I've noticed differences from time to time between the i386 and ppc OS X ports) 04:12
Be back in a few minutes
Infinoid you could probably work around it by declaring a parrot global named Parrot_environ, that goes into the parrot executable, and is initialized to environ
Tene Hm.... infix:< doesn't work. 04:16
04:22 tetragon joined
tetragon Bah, the i386 (10.4) environ manpage makes no mention of any issues such as those on the (10.5) ppc. 04:25
04:26 Theory joined
Infinoid really. so does it work? 04:27
the _NSGetEnviron() hack looks pretty easy to implement, in any case...
tetragon devworld.apple.com/DOCUMENTATION/Da...ron.7.html
shorten tetragon's url is at xrl.us/bj3qd
tetragon That appears to be the same as is on my 10.5 box 04:28
Infinoid I was reading developer.apple.com/documentation/D...ron.7.html 04:30
shorten Infinoid's url is at xrl.us/bj3qh
dalek r27282 | infinoid++ | trunk:
: [rakudo] Fix trailing whitespace in named-unary.pir.
diff: www.parrotvm.org/svn/parrot/revision?rev=27282
Infinoid ...which looks identical.
tetragon The manpage on my 10.4 box is almost identical to that of recent FreeBSD
You'd almost think that Apple has multiple paths to the exact same data
Infinoid what's something I can #ifdef for, for OSX fixes? 04:31
maybe their site is just case insensitive...
tetragon By default, HFS+ is case insensitive 04:32
But with some of the documents, there really are multiple possible paths
Infinoid well, the leading directories are definitely case-insensitive
devworld.apple.com/dOcUmEnTaTiOn/Da...ron.7.html 04:33
shorten Infinoid's url is at xrl.us/bj3qd
tetragon And I can 'use DaTa::DUMper' just fine in Perl 5 here
Infinoid devworld.apple.com is an alias for developer.apple.com 04:34
(a CNAME in DNS)
lucky you, I guess :)
tetragon (Although, the warnings that can occur as a result of a miscapitalised package name are rather tedious)
Infinoid I bet it causes weird %INC mismatches. 04:35
so... what can I #ifdef for, to detect OS X?
can I just "#ifdef darwin"? 04:36
Tene It's real slow, but I can run a simple fibonacci series now with cardinal. 04:38
Infinoid ooo, Tene++
Tene A few hacks, and swiping some stuff from rakudo without checking the ruby spec, but it seems to work okay.
tetragon I've used __APPLE_CC__ in the past 04:39
Infinoid I see "darwin" being used elsewhere 04:40
src/events.c:115:#if defined(linux) || defined(darwin)
04:40 Theory joined
tetragon I think that one's parrot-specific 04:41
But I can see 04:42
Infinoid I'm ok with that
nopaste "Infinoid" at 75.28.78.127 pasted "tetragon: how about something like this?" (63 lines) at nopaste.snit.ch/12874
Infinoid (that'll probably fail c_indent.t)
tetragon Failed 04:44
Couldn't find _environ 04:46
I'm trying with __APPLE_CC__ for now
Works with the check switched to #ifdef __APPLE_CC__ 04:47
Infinoid both checks, I'm guessing 04:48
thanks
are any other compilers available on OS X other than Apple's?
(intel-cc for example?)
tetragon Looks like xlc (IBM's C compiler) is available 04:49
But xlc does come with a gcc compatibility mode (at least on AIX) 04:50
Infinoid well, this probably won't work for that compiler then... dunno how much we care
tetragon I'm not sure if that extends to OS X and Apple's changes to gcc
Infinoid seems unlikely
then again, without supporting bundles and frameworks, I doubt it would be very useful at all on OS X 04:51
tetragon xlc supports all that
Infinoid ok. well, if we want to support xlc builds in parrot at some point in the future, these #ifdefs might need to be extended
04:51 Psyche^ joined
tetragon I'm just not sure about __APPLE_CC__ or how commonly used xlc is 04:51
tetragon wonders why darwin's hints file sets ld to 'c++' 04:53
Infinoid mingw does that too. it's kinda annoying... takes more memory for (apparently) no reason
nopaste "Infinoid" at 75.28.78.127 pasted "Current rev of patch, doing final testing on linux prior to checkin" (62 lines) at nopaste.snit.ch/12875 04:56
tetragon PARROT_OS_NAME is 'DARWIN' on my box 04:57
Infinoid (only things changed in this patch version are #ifdef name, and preprocessor token indentation)
uck, I'm tired. s/token/command/ 04:58
tetragon Builds and links 05:00
Is there any specific test that would be affected by environment variables?
Infinoid probably t/pmc/env.t 05:01
unfortunately, that one is failing some tests here after the patch
tetragon Started failing here, too 05:02
Infinoid ... makes me wonder if class_init() didn't actually get called
tetragon But I do have the stacktrace of an interesting case
Infinoid oh, did it crash?
it just reports bad values here
tetragon Test 6 tried to allocate 4GB 05:03
Infinoid awesome!
purl it has been said that awesome is not that word
Infinoid purl, it has been said that purl is a tard.
purl OK, Infinoid.
tetragon I'll paste it and a trace
Infinoid purl, it has been said that you? 05:04
purl it has been said that i am a tard.
Infinoid pats purl
purl pats Infinoid back, harder
nopaste "tetragon" at 216.126.67.44 pasted "Test 6 of t/pmc/env.t on OS X after the patch" (184 lines) at nopaste.snit.ch/12876
Tene Anyone interested in reviewing a few cardinal patches before I commit? 05:05
Infinoid I wouldn't have a clue, sorry 05:06
Infinoid <-- lowlevel guy
tetragon: that backtrace makes sense if my_environ was never initialized
05:07 iblechbot joined
Infinoid unfortunately, if class_init() isn't being called, the reason why is a bit beyond me. 05:12
more later. goodnight
tetragon All this line number switching is making gdb a bit... interesting... 05:13
Infinoid just imagine, we're going to be doing exactly the same thing, once we fix up the .pbc file format a little more :)
you'll not only have line numbers from multiple files, you'll have them from multiple languages! 05:14
tetragon Yay, finally reached the point of interest 05:15
And my_environ ended up as "$2 = (char **) 0x7004" 05:16
Infinoid what do you get when you call _NSGetEnviron() directly? 05:17
and what do you get when you print *((char***)0x7004) ?
(I don't know if its returning the value of the environ pointer, or the address of it.) 05:18
(it looks suspiciously like the address.)
tetragon Same value
And the manpage does specify that it is the address of environ 05:19
Infinoid ok, so if you put a * before the call to _NSGetEnviron(), it might work
...but this doesn't explain why it fails on linux.
dalek r27283 | tene++ | trunk: 05:23
: Replace several 'rule's with 'token's.
: Decreases parsing time by more than 50%.
: Start cleaning up some strange parsing rules.
diff: www.parrotvm.org/svn/parrot/revision?rev=27283
r27284 | tene++ | trunk:
: Rearrange the cardinal grammar to reduce breakage.
: Change 'equal' to 'equiv' in the optable.
: Comment out some stuff.
: Steal some comparison ops from rakudo.
diff: www.parrotvm.org/svn/parrot/revision?rev=27284
r27285 | tene++ | trunk:
: Add a simple fib test to 02-functions.t.
diff: www.parrotvm.org/svn/parrot/revision?rev=27285
r27286 | tene++ | trunk:
: "print" doesn't have a newline in ruby.
: "puts" is the ruby version of "say".
diff: www.parrotvm.org/svn/parrot/revision?rev=27286
tetragon DIdn't stop the test from failing, but it doesn't crash 05:25
It seems like a number of other people simply #define _environ (*_NSGetEnviron()) 05:27
tetragon yawns 05:30
05:40 jjore joined
Infinoid tetragon: the tests are failing because apparently environ is moving around at runtime. (if I had to guess, I'd say it might be a side effect of spawning a thread) 06:06
the #define you mentioned above seems to work better.
nopaste "Infinoid" at 75.28.78.127 pasted "tetragon: Testing this now." (22 lines) at nopaste.snit.ch/12877 06:07
Infinoid seems like a similar issue to one we ran into with thread-specific "errno" in glibc, a couple years ago 06:09
old code that just declared "extern int errno" suddenly stopped working 06:10
All tests successful on linux/amd64. if it works for you too, I'll check it in. 06:11
06:20 grim_fandango joined
dalek r27287 | tene++ | trunk: 06:22
: Fix metadata on new file.
diff: www.parrotvm.org/svn/parrot/revision?rev=27287
06:23 uniejo joined 06:31 desertmax joined
desertmax What does VTABLE_morph do, when getting a NULL/PMCNULL-pointer? 06:34
Okay, I've found the macro. This would be really dumb. 06:41
07:19 Zaba joined
dalek r27288 | fperrad++ | trunk: 07:24
: [pcre]
: - detabify
diff: www.parrotvm.org/svn/parrot/revision?rev=27288
07:59 desertmax joined 08:48 nopaste joined 09:02 iblechbot joined 09:11 rotty` joined 09:20 TonyC joined 10:27 ambs joined
ambs is back 10:27
11:06 rdice joined 11:15 Coke joined 11:35 wknight8111 joined
mj41 developers.slashdot.org/article.pl?...19/0259236 Hackontest — 24h Open Source Coding Marathon 11:45
Jonathan That sounds...RSI-inducing. 11:51
11:53 desertmax_ joined
tetragon Infinoid: All tests in t/pmc/env.t pass with the simple #define patch 12:00
mj41 and on Google OS blog google-opensource.blogspot.com/2008...-time.html 12:10
shorten mj41's url is at xrl.us/bj3xx
dalek r27289 | jkeenan++ | trunk: 12:15
: Applying patch submitted in RT 53592. Touch-ups to config/auto/pcre.pm and
: two files of unit tests for that config step class.
diff: www.parrotvm.org/svn/parrot/revision?rev=27289
12:27 muixirt joined
dalek r27290 | infinoid++ | trunk: 12:27
: [pmc] env.pmc wants to use **environ directly, which isn't possible on OSX.
: * Fix it to look up the address of environ at runtime, on OS X.
: * Other architectures should be unaffected.
: * tetragon++ for reporting, discussing and testing. 12:28
diff: www.parrotvm.org/svn/parrot/revision?rev=27290
Infinoid tetragon: thanks 12:33
what else was on your linker failure list?
Coke skips review. 12:34
12:34 ruoso joined
tetragon With -fvisibility=hidden removed from the flag lists, the OpenGL callbacks 12:34
Coke Infinoid: env was working on my osx platform. did you break it? =-)
tetragon They needed to by pointed at libparrot
Coke (or did I miss an intermediate patch that changed something.)
tetragon I did a run that threw errors on undefined symbols instead of looking them up dynamically 12:35
(at runtime)
environ is not defined when linking shared libraries 12:36
Infinoid out of curiosity, does that mean tests failed before?
tetragon No
I think what was happening then is that it would look _environ up dynamically at runtime 12:37
(It being dyld)
And it would be found
Infinoid I vaguely remember that this is leading up to removing some other, bigger breakage, but I can't remember the details 12:39
tetragon If parrot weren't linked against libparrot (and libparrot was only found through dynamic lookup) I think failure would have been more likely 12:40
Infinoid fortunately, that isn't very likely :) 12:45
tetragon I think I'll do another -undefined=error (the default) build tonight, this time without removing all references to -fvisibility=hidden
Infinoid ok 12:46
I don't understand what needs to be done to the opengl callbacks, so some more details, or a patch, would help there 12:47
tetragon I got it to go with editing a single line in Makefile
(Although that is only for testing purposes)
Infinoid (oh, that's the breakage I was remembering! -undefined dynamic_lookup.) 12:48
tetragon In the rule for $(LIBGLUTCB_SO), I added -lparrot to the list of arguments to $(LD)
(and it's dependency list really should have libparrot added to it) 12:49
Anyway, I'm off 12:51
12:54 Ademan_ joined 12:57 janus joined 13:09 Juerd joined 13:18 mire joined
Coke purl, 68+709+88 13:23
purl 865
Zaba purl, nine eleven times two thousand three hundred and fifty six! 13:25
purl Zaba: huh?
13:34 rdice joined
Coke purl, msg chromatic news.perlfoundation.org/2008/05/200...osals.html :: look for the text "A Perl 6-dependent project." 13:35
purl Message for chromatic stored.
shorten Coke's url is at xrl.us/bj3v3
Coke is down to < 50 tcl tickets left in the parrot queue. 13:40
obra coke++ 13:43
(rt-tickets)--
ambs :D
13:44 rdice_ joined
Infinoid holodeck programs? ouch. 13:50
Coke I'm just moving them out of perl's RT into partcl's issue tracker. 13:51
sorry, obra. =-)
obra what is partcl using? 13:53
Coke I opened a googlecode project.
obra is articl going to use gcode svn as well? 13:54
er. "parcl"
Coke Just recently, with the impending 1.0 boot from the repository, and the fact that tcl's 80 tickets were crowding the parrot RT queue.
"partcl" =-)
obra I managed to get a _different_ subset of jerry's name.
it's early. i can't type. or something
Coke partcl ain't particle.
obra I know it. I just can't type.
Coke it's leaving the repo. mdiep wants github; I think the svn repo in gcode would be fine. 13:55
but for now, it's still hanging out here.
obra nods
13:58 Andy left 14:05 rdice joined 14:11 gryphon joined
ambs moderates a bunch of more MT comments... 14:13
14:39 Zaba joined
ambs lol@partcl and particle! 14:42
Tene perhaps I should rename "cardinal" to "carticle" 14:45
particle wonders where the popularity of his nick came from 14:46
Coke rubicule
cotto_home phpicle 14:49
Tene particle: you're just such a sexy man.
Infinoid par-tickle!
particle isn't ticlish 14:50
Infinoid isn't tclsh either :)
particle er, tclish?
darned muscle memory
Infinoid hehe
Tene lots of lab time in class today, any requests on what I should work on? 14:51
particle converting pugs/t/ to t/spec/ 14:52
Tene Hm. I don't have a copy of pugs on my laptop, and no internet connection except on my phone. 14:53
particle i wouldn't co all of pugs, it'll take a week and a day 14:54
just svn co svn.pugscode.org/pugs/t pugs/t
Tene no internet connection on the laptop. 14:55
particle ah. i see. you can't connect your laptop to the internet via your phone
Eevee if you *can* I'd love to know how 14:56
Tene I could, but the docs on doing that are all online, and I never remember to try when I do have a net connection 14:57
Eevee haha, same 14:58
particle almost has it figured out
pmichaud does have it working, via bluetooth
Eevee figuring it out via a 3"x3" screen is a little harder
particle www.pmichaud.com/sandbox/gprs.txt 15:00
Infinoid I can connect my laptop to the internet via my phone 15:01
its a mess of rfcomm, bluetooth, and ppp, but it works :)
Tene goes to check out of the hotel 15:02
paco solaris10-sparc-gcc : make test: Failed 1/581 test programs. 1/11005 subtests failed.
particle wants to use his usb connector, so he can charge the phone simultaneously
Eevee oh right I have linux on my laptop now
linux can wire anything into anything
particle which test, paco?
on windows, the gprs modem Just Works 15:03
paco # Failed test 'atan, part 2' # at t/op/trans.t line 380. # got: 'not 0.000000ok 1 # ' # expected: 'ok 1 15:04
Eevee from my previous attempt I seem to recall something about bluetooth intertubes being half-disabled on the treo 700p
Infinoid there's an AT command that I had to use, to tell it how to connect to AT&T 15:09
there's an array of connection types, and mine was missing the entry it needed
Eevee sounds like how far I got 15:19
except that didn't actually work 15:20
particle can connect, but immediately gets SIGHUP
Eevee of course 15:21
my laptop battery is completely dead at the moment
that might be a more useful problem to solve
Infinoid :)
particle wonders what it would take to implement the CALLER package in rakudo 15:22
Infinoid hmm. I'm having rfcomm issues at the moment. thinking about implementing the bluetooth stack in rakudo while we're at it :) 15:24
particle what's the perl 6 socket api look like? 15:25
obra particle: pugs has tests 15:27
particle pugs/t> ack socket 15:28
>
Eevee ack++
Infinoid rfcomm issues solved by rebooting phone. 15:30
Eevee technology sure has progress 15:31
now we can even reboot our phones
I can't wait until I have to reboot my toaster
or patch it to fix a remote execution vulnerability 15:32
Infinoid I'm looking forward to rebooting my toothpaste dispensor
Eevee whoops, s/progress/progressed/
Infinoid and running seti@home on my toaster 15:33
Eevee if they built f@h in, they could claim that their toaster cures cancer 15:34
Infinoid New And Improved! Cures Cancer! Real Soon Now.
Infinoid re-reads parrotbyte.pod 15:35
Eevee * may not cure cancer
Infinoid in the future, toaster heating elements will be made by Intel 15:36
Eevee the dial will be labeled "1 2 3 3.99999823565 5" 15:37
Infinoid Black & Decker toaster oven commercials will tell you to look for the Intel Inside logo 15:38
Eevee then Apple will release their own line of toasters that only toast Apple bread
Infinoid ...but have seamless itunes integration, of course
Eevee you can toast in time with your music!
* for a nominal fee on top of the cost of the song 15:39
Infinoid it can waggle the toast to the beat
Eevee I can imagine the commercials now
toast silhouette dancing around
15:49 davidfetter joined
dalek r27291 | infinoid++ | trunk: 15:49
: [cage] set svn:mime-type on t/steps/auto_pcre-02.t
diff: www.parrotvm.org/svn/parrot/revision?rev=27291
16:06 sjansen joined
pmichaud pong 16:17
16:18 Theory joined
particle donkey kong 16:19
pmichaud seriously considers registering itoast.com
looks like it's taken. how about itoaster? 16:20
particle it burns an apple logo into your bread
pmichaud heh
dalek r27292 | ambs++ | trunk: 16:21
: Make version number be printed consistently with other tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=27292
paco solaris10-Sun C 5.9 SunOS_sparc : parrot compiles Ok, make perl6 says : Hello, world. :) 16:32
making tests
purl making tests is probably more of the advocatus diaboli side of coding for me :)
16:37 itz joined
pmichaud afk # flight 16:38
16:56 gryphon joined 16:57 barney joined
paco solaris10-Sun C 5.9 SunOS_sparc : make test : All tests successful. Files=581, Tests=10996 17:25
17:27 Theory joined
Coke imagines most six letter .com domain names are taken (review) 17:32
Jonathan sees most of the backscroll seems to be about toasters 17:33
Coke gets toasted 17:34
davidfetter The Online Attribute Storage System? 17:35
Coke s/System/Technique/! 17:37
davidfetter d'oh 17:40
17:41 cotto_work joined
particle Two-sided Object Application of Scorching Technique 17:43
Eevee applauds 17:46
Jonathan May or may not have time for Parrot/Rakudo stuff this weekend...either way, will do another Rakudo Day next week. :-) 17:50
17:50 itz_ joined
Coke ... what does ticket 31151 mean? 17:51
Automate string vtable generation"
I vote close the ticket. =-) 17:52
Coke will hit the list.
Jonathan Doesn't mean that much to me...maybe check...yes, that's right. :-)
Infinoid could it mean autogenerating src/vtable.tbl? 17:57
Jonathan But...what from? 17:58
Infinoid I guess pmc2c could do that, but it doesn't seem like a very good idea
and I don't know what it has to do with strings 18:00
18:14 ambs joined
dalek r27293 | bernhard++ | trunk: 18:15
: [Eclectus]
: Put library functions into src/builtins/all.pir
diff: www.parrotvm.org/svn/parrot/revision?rev=27293
18:21 slightlyoff joined
rillian is c99 supposed to pass its tests? 18:21
ambs someday 18:22
:D
Jonathan -> dinner 18:23
18:23 AndyA joined
rillian t/spi....Method 'get_scalar' not found for invocant of class 'Undef' 18:23
I've made PCT do that
:)
ambs: so running codec source through it is a little ambitious of yet?
Infinoid Coke: your "Automate string vtable generation" was in TODO in subversion r26, 2001-09-10 18:24
ambs rillian, in fact, I was kidding, but I really think c99 is not yet in a stable point to pass its tests.
Infinoid, are you training for archeologist? 18:25
18:25 japhb joined
Infinoid no, just looking for good excuses to use my shiny new svn-bisect tool :) 18:25
ambs lol
particle rillian: check the svn log on languages/c99/ for hints 18:29
rillian well, c99 parses 'hello world' and even gets the string into PIR, but fails to call 'say' on it
dalek r27294 | bernhard++ | trunk: 18:30
: [Eclectus]
: No need to recompile driver_nqp.pir for every script invocation.
diff: www.parrotvm.org/svn/parrot/revision?rev=27294
rillian particle: thanks
btw, I had a NQP questions 18:31
question
particle i *knew* we had a reason for commit messages :)
ambs particle, we have?
rillian when you say $<else>=<block> in a rule, why does $<else> end up an array instead of a single result, even when there's only one of them?
particle because in the grammar, else has a question mark after it 18:32
so it's an array that contains either 0 or 1 value
18:32 grim_fandango_ joined
particle + makes an array of 1 or more 18:32
* 0 or more
rillian particle: aha, thanks. that makes sense finally 18:33
not used to the language doing so much thinking for me :)
18:38 ruoso_ joined 19:08 Theory joined 19:19 rdice joined
cotto_work barney, ping 19:21
seen barney 19:22
purl barney was last seen on #parrot 3 days and 1 hour ago, saying: I think that whiteknight wrote some new content [Apr 29 11:21:48 2008]
19:29 Ademan_ joined
dalek r27295 | bernhard++ | trunk: 19:31
: [Eclectus]
: Keep the generated *.nqp files.
: Fix some test names, avoid whitespace.
diff: www.parrotvm.org/svn/parrot/revision?rev=27295
barney cotto_work: pong 19:35
cotto_work what are you using as a grammar for the pct version of plumhead? 19:36
is there something known to work from an acceptable license that you're copying? 19:38
19:39 particle[ventus] joined
barney It's been a while. As far as I remember I copied from grammars in Parrot repos. Starting from scratch for PHP specific stuff. 19:43
cotto_work nuts
it'd be nice if there were a way to steal/modify the grammar from the reference implementation without messing up licensing issues 19:44
barney Also an article from ANTLR 'Island grammars',
I'd suggest to collaborate with the PHC guys, even though PHC is currently not very active. 19:46
paco hi, I am trying to make a 64 bit parrot executable in solaris10-sparc but - perl Configure.pl --ccflags=m64 - gives me a 32bit executable. any idea ? - my kernel is 32bit but I can make and execute 64 bit binaries : hello64: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped
particle[ventus] paco: likely you'll need to experiment and modify config/hints/solaris.pm 19:47
cotto_work is there any reason not to try to get the PHP guys to relicense the (two) relevant files in PHP
's source?
particle[ventus] if you ask on the mailing list, andy dougherty may be able to help. he's never in #parrot, though
paco ok, i can experiment.., I only ask because I dont know if there is interest .. 19:48
particle[ventus] yes, there is definitely interest 19:49
64bit++
paco ok, thanks particle
particle[ventus] i'd love to get 64bit compiles working on windows, too
barney cotto_work: Nothing speaking against it. I never talked to PHP guys, as I don't really know PHP. 19:50
found my PHP references: "PHP kurz&gut" from O'Reilly and PHP GE-PACKT from mitp-Verlag 19:53
cotto_work cool. I'll coordinate with allison and find out what would be needed. It would certainly take away some of the guesswork to be able to copy the upstream implementation with impunity.
Coke (licensing) Or you could move the language out of the parrot repo and avoid any licensing issues. 19:54
s/any/many/
barney cotto: Sounds good
purl i seem to remember a line from "The Italian Job" about that.... ;)
Coke I need to ask allison about getting out of the parrot repo.
particle[ventus] what do you need to ask? 19:55
cotto_work Coke: that's also a possibility, but it's nice to have all the code in one place
barney Having it in the Parrot repos is also nice for sharing modules between languages implementations 19:58
Coke cotto_work: all the languages are getting booted by 1.0 20:00
particle[ventus]: primarily if the TPF will cede the copyright, or how that'll work. 20:01
Eevee Coke: where are they going?
Coke Eevee: "elsewhere"
cotto_work Coke, true, but I expect parrot to have stabilized by that time
(somewhat)
Coke by 1.0? one can hope. =-)
... We need to have a release party, btw. 20:02
cotto_work having it there in the meantime would help keep it from bitrotting
Coke (perhaps at one of the yapc's, whenever it happens)
cotto_work: sure, just trying to help avoid a licensing kerfuffle.
cotto_work I appreciate it 20:03
barney cotto_work: How are your licensing woes with MS ? 20:04
cotto_work no word yet, and my boss is out for the day so I can't ask him 20:05
20:13 mire joined 20:15 Psyche^ joined 20:18 davidfetter joined
spinclad Tene: re anyone speak ruby, check with mncharity on #perl6, maybe # old backlog, i know 20:32
20:45 ruoso__ joined
davidfetter boa tarde, ruoso__ 20:47
vc em brasil?
ambs davidfetter, PT 20:48
:)
davidfetter finds this very confusing
ruoso__ (~ruoso@201009044136.user.veloxzone.com.br) has joined #parrot
ambs can't guarantee, in fact
Coke was verwirrend ist?
Tene spinclad: I just asked the ruby repl instead
20:53 ruoso__ joined
Coke idly wonders if any parrot folk have done a medi-fast diet. 21:01
dalek r27296 | bernhard++ | trunk: 21:03
: [Eclectus]
: Keep the *.pir files generated during 'make test'.
diff: www.parrotvm.org/svn/parrot/revision?rev=27296
r27297 | bernhard++ | trunk: 21:07
: [Eclectus]
: Clean up generated *.pbc files.
diff: www.parrotvm.org/svn/parrot/revision?rev=27297
barney Is there an example for calling a sub written in NQP from PIR ? Without dumping NQP to PIR first. 21:12
ambs Coke, yes, I need a diet. 21:13
particle[ventus] the nqp needs to be compiled to a pbc, barney
barney To a *.pbc file ? Or is there a HLLCompiler stage 'compile to pbc and load it' ? 21:16
particle[ventus] to a *.pbc file
barney OK. That's what I have now. Besides that I compile to PIR, in order to make debugging easier. 21:17
21:28 IllvilJa joined
dalek r27298 | bernhard++ | trunk: 21:43
: [Eclectus]
: Fix dependency of driver_nqp.pbc
diff: www.parrotvm.org/svn/parrot/revision?rev=27298
21:52 contingencyplan joined 21:55 wknight8111 joined 22:05 ambs left 22:37 Limbic_Region joined 22:47 mire joined 22:52 lidden joined 23:05 braceta joined 23:07 tetragon joined
tetragon grumbles at the relative instability of OS X 10.5 on her iBook 23:08
Infinoid relative to? 23:12
23:13 tewk joined
tetragon 10.4 23:13
I went from no crashes to at least two panics in the past month
Infinoid hmm 23:14
hope they fix that soon
airport &
purl That doesn't look right. Try 'airport code for CITY' or 'airport name for CODE' instead.
tetragon Actually, it was two in the past week 23:16
Tene ouch 23:17
airport name for SFO
purl KSFO is SAN FRANCISCO INTERNATIONAL AIRPORT, SAN FRANCISCO, California USA 23:18
tetragon And in both cases, I'm busy recovering data from vim recovery files
airport name for YTZ
purl CYTZ is TORONTO/CITY CENTRE AIRPORT, TORONTO, Ontario Canada
Tene qwhois tetragon
tetragon Bah, that one is known as "Toronto Island Airport" (its old name).
Tene airport name for SLC 23:19
purl KSLC is SALT LAKE CITY INTERNATIONAL AIRPORT, SALT LAKE CITY, Utah USA
Limbic_Region airport name for DIA 23:24
purl I can't find an airport for KDIA.
Limbic_Region really - it is a small airport in south america 23:25
airport name for DEN
purl KDEN is DENVER INTERNATIONAL AIRPORT, DENVER, Colorado USA
tetragon airport name for YKZ 23:27
purl CYKZ is BUTTONVILLE AIRFIELD, TORONTO, Ontario Canada
tetragon airport name for YOO 23:28
purl CYOO is OSHAWA AIRPORT, OSHAWA, Ontario Canada
tetragon airport name for CNU8 23:31
purl I can't find an airport for CNU8.
23:46 Theory joined