»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
pmichaud TimToady (and others who want to contribute): github.com/perl6/specs/issues/18 01:43
(just made a minor edit; reload) 01:44
colomon plan? 01:45
pmichaud .plan is the lazy form of .push
perlcabal.org/syn/S32/Containers.html#plan 01:46
colomon bless you.
errr, rather, pmichaud++
pmichaud afaik it's nyi in rakudo, but can be easily made into yi
colomon so plan will definitely do the job, right?
pmichaud yes, but I'm not sure that's really intended to be the canonical way of combining the elements of two lists 01:47
(or more)
colomon I don't know about that (don't know enough about .plan to judge yet) but it does kind of feel like there ought to be a graceful operator to do this. 01:48
pmichaud oh, and actually plan (as defined in S32) *won't* do it, because it flattens. 01:49
I'll update the ticket.
updated. 01:50
colomon++ 01:51
colomon so, graceful operator? 01:52
pmichaud I don't know yet. :-)
colomon almost seems like the pipe operator should do this? 01:53
pmichaud I'm hoping that's not the case. It may be the case.
colomon (I mean, not that it's implemented that away now, but could be.)
pmichaud (|@x, |@y) concerns me a little bit because it'll mean we need "lazy Parcels". We might need them anyway, but that will mean I get to start bugging jnthn++ about it :) 01:54
i.e., the binder would have to know how to deal with Parcels that have "bare" active iterators in them. 01:55
pmichaud ...although I guess it would really end up being (|@x, |@y).list ... which doesn't frighten me _quite_ as much. 02:03
but our mechanism for piping things is currently eager-ish.
colomon pmichaud: just so it's clear, I'm proposing we spec an operator to do this. I don't know what we've got now that can implement it, other than brutally using gather / take. 02:04
pmichaud colomon: okay, good clarification. I suspect "spec a new operator" falls into TimToady++ realm. 02:05
colomon and it seems like a low-level approach is likely to be best, anyway.
pmichaud yes
colomon (implementing it, I mean)
colomon suspects infix:<followed-by> is a bit long 02:06
pmichaud in some way it feels similar to the metaops, like reduction or zip or something, since we're doing something to multiple lists 02:07
colomon agreed
infix:<ZZ>?
colomon is sure TimToady will swoop in and fix an inelegant solution sooner or later. 02:08
pmichaud well, it's more like a reduction
[followed-by] @a, @b
but without the flattening that reduction implies :-)
anyway, yes, I'll await the swoop. 02:09
colomon [,] @a, @b
?
pmichaud Knowing the answer to this question may speed me a fair bit along on fixing some of the other List issues
(...and it may not :-)
colomon ah, I was proposing we just come up with something in the full knowledge we'll probably have to do a search and replace when TimToady++ gets involved. 02:10
pmichaud [,] is already specced to mean "make a new Array"
well, I don't need the answer so much for an immediate code problem as I do for the overall question of improving the List implementation 02:11
I mean, I could just define a @x.CONCAT(@y) and patch it all up internally and it wouldn't really answer my overall understanding of flattening behavior 02:13
that's why the question is more about the canonical answer than "let's just make something that works"
colomon It's just I get the urge to implement something when I realize there's a hole, you know? :) 02:14
pmichaud I've updated the original issue to clarify that I'm looking for the canonical answer and the underlying reason for the question. colomon++ again. 02:16
colomon btw, this conversation is memorialized anyway, no? ;) 02:18
pmichaud yes, but it's less formal than a conversation in an issue thread, I think.
it's more conducive to back-and-forth discussion, as we've been having here.
a reply in an issue thread might be taken as "here's the answer" even when it's meant to be more speculative :) 02:19
my main intent for putting things into specs/issues is to keep a list of the outstanding questions, so they aren't forgotten 02:20
secondarily, they can record the major points of decision and discussion
for back-and-forth discussion and brainstorming/exploration, I feel like IRC is better suited for that
afk, time to walk the dog 02:21
thou tadzik: is this known panda build failure: paste.lisp.org/display/130520 04:25
thou This is perl6 version 2012.06-87-g499cc68 built on parrot 4.5.0 revision RELEASE_4_5_0 04:34
thou (and panda github master) 04:40
thou i've found that the problem file will compile OK if I remove one directory from PERL6LIB: paste.lisp.org/display/130520#1 05:29
maybe an issue with my using recent git version of nom 05:30
thou anyways, in case someone else runs into it, a workaround is to install the dependencies (File::Tools, JSON::Tiny, Test::Mock) with $SRC/ext in PERL6LIB, and then install panda itself (.) without it in PERL6LIB 05:50
dalek nda: a5814af | moritz++ | bootstrap.pl:
[bootstrap.pl] avoid a warning if $PERL6LIB is not set
06:06
tadzik thou: oh, that rings a bell 06:20
thou morning, tadzik! 06:21
tadzik thou: can you try boostraping on offline-bootstrap branch?
tadzik good morning thou :) 06:21
moritz \o 06:27
tadzik: I have a patch that fixes bootstrapping in the master branch for me 06:28
based on thou++'s observations
tadzik great
thou ==> Succesfully installed panda
tadzik did you try offline-bootstrap yet?
thou (with offline-bootstrap)
moritz no
tadzik \o/
okay, I need to go to work now :) 06:29
Will catch up with you later
thou ok!
dalek nda: 04b6755 | moritz++ | bootstrap.pl:
make bootstrap.pl more robust

do not add ext/ to lib once ext/ is installed
moritz thou++
thou hmmm, seems that offline-bootstrap didn't install anything in ~/.perl6, so i'd have to point PERL6LIB at ~/.panda/src/* or some such to get at my modules. FYI, test is simply: rm -rf ~/.perl6 ~/.panda; perl6 bootstrap.pl; perl6 $HOME/.perl6/bin/panda 06:47
moritz thou: does panda's master branch work for you after my latest patch? 06:48
thou i expect it will, i'll verify 06:51
moritz: yes, works well 06:53
moritz \o/
moritz -> commute
moritz do we have a good name for non-native types? 08:03
brrt objects?
sorear boxed types? 08:05
refernece types?
[1] officially, there is no "str" type, even if rakudo supports it and niecza plans to
hoelzro are there any known bugs in the regex engine? maybe some that have been fixed since Rakudo * 2012.06? 08:13
I'm making use of a fairly trivial one, but the program locks up when matching
and the problem is *really* hard to duplicate outside of my program
moritz hoelzro: the common cause for infinite loops in the regex engine is quantification of zero-width matches 08:15
hoelzro: if you do <.foo>+ and foo can match zero characters, it loops
kresike hello all you happy perl6 people 08:25
hoelzro =( 08:31
moritz: the regex is just /^ bot <[:,]>/
and it only triggers when invoked at a certain point in the call stack 08:32
moritz hoelzro: that's very odd
hoelzro moritz: you're telling me =) 08:33
moritz hoelzro: what string or object are you matching on? 08:34
hoelzro moritz: just a string
"yo"
moritz yo, that's weird 08:35
hoelzro indeed 08:36
any recommendations on how to debug this? 08:37
I might try running it with rakudo HEAD when I get home
moritz try to make it reproducable
and give masak++ or me a tarball
and then one of us will try to golf it down 08:38
hoelzro yeah, I'm trying
the problem is it's an XMPP bot
and when I give the bot a "fake" connection that creates the same messages, the regex magically works
moritz oh 08:39
hoelzro: try $str = $str.encode.decode; before matching against $str
hoelzro: it could be some oddity related to internal representation of the string 08:40
hoelzro moritz: thanks, will do
hang on
moritz r: say nqp::box_s(nqp::unbox_s("foo").encoding)
p6eval rakudo 74e183: OUTPUT«use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤===SORRY!===␤error:imcc:The opcode 'repr_box_str_p_s' (repr_box_s…
moritz r: say nqp::p6box_s(nqp::unbox_s("foo").encoding)
p6eval rakudo 74e183: OUTPUT«No such method 'encoding' for invocant of type 'String'␤ in block <anon> at /tmp/rByhyF7rpN:1␤␤»
hoelzro moritz: no dice 08:41
hoelzro wait, nvm! 08:41
that worked!
moritz \o\ /o/
hoelzro: do you get that string from $socket.recv? 08:42
hoelzro moritz: sort of; it was created from JSON parsed from a string from a socket
moritz hoelzro: then it's kinda surprising that the JSON parsing worked, but the regex match didn't :-) 08:43
hoelzro it's really odd
I think I was testing for the lock up wrong on this machine
so now I have to go back and check =/
moritz anyway, the good news is that there's a parrot branch that makes IO a bit more sane
hoelzro I was doing say 'before'; return unless $msg.body =~ /$re/; say 'after' 08:44
ok, cool
moritz the bad news is that it will be merged after this month's parrot release
hoelzro meh, I can wait
moritz so it'll be in rakudo 2012.09
erm, 08
hoelzro I should try to get my getsockname stuff into Parrot while I can
cognominal__ r: say ?!a 09:02
p6eval rakudo 74e183: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&a' called (line 1)␤»
moritz hoelzro: with the offensive string, please try nqp::p6box_s(pir::encodingname__SI(pir::encoding__Is(nqp::unbox_s($YOURSTRING)));
cognominal__ r: say ?:!a
p6eval rakudo 74e183: OUTPUT«True␤»
moritz hoelzro: and tell me the result
cognominal__ did not read the doc, but I would have expected this one to be false.
moritz (ie, say the result of that expression)
cognominal__: its value is false
cognominal__: not the pair itself
cognominal__ yes, I rephrase: I expected the pair to be false too. 09:04
moritz hm 09:05
cognominal__: do you have a use case where it's useful to be false?
it might be useful behavior. I don't know :-)
cognominal__ I was asking myself the same question :)
I suppose I could translate my gut feeling by the expectation ?:!a would be a huffmanization of ?:!a.value 09:07
or more vaguely that it dwims :)
moritz otoh with the current factoring, you can write while my $pair = @queue.shift { ... } 09:08
and have it DWYM even for false Pair values
cognominal__ but, it may break important things
meaning? 09:09
hoelzro moritz: for some reason, it's working on this machine =/
I'll try your solution when I get back home
Coleoid I'm looking at roast/TODO and seeing numbers a la r28344, which I cannot find in rt.perl.org... 09:40
Have I gone astray in some part of this, or should this work?
sorear things that match r\d+ are SVN revisions 09:41
Coleoid Ahh...
moritz Coleoid: those notes are probably out of date :( 09:42
they were commits to the synopsis, at the time when the synopsis were still in svn
sorear historically #perl6 has used the Parrot SVN repo, which contained Parrot and Rakudo, and the Pugs repo, which contained *everything else*
moritz (and even before that, the synospis were in their own svn repo somewhere on svn.perl.org) 09:43
Coleoid I recall, wayback, the specs being in pugs, and rakudo being in parrot...
sorear but in the last few years we've 1. split the repos into more managable pieces 2. moved everying onto github
Coleoid So is there a process to resolve these links, 09:44
...to current git change IDs, or are many of these likely to be done already? 09:45
moritz you can do a 'git log' in the specs repo, and search for the SVN revision number (without the leading 'r') 09:46
sorear github.com/perl6/specs/commit/5665...1378e33874
on a lark I checked 'specs' first 09:47
it's there.
moritz but it is unlikely to give you good ideas what to work on
Coleoid Is there a more up-to-date source of test/spec TODOs?
moritz Coleoid: I think currently the best idea is to look at the last few months of spec commits, and check the tests if they have been updated 09:48
Coleoid (Checking...) 09:51
moritz usually I have a huge load of roast tasks in the back of mind 09:52
I'm surprised to find that I can't seem to remember any
Coleoid Please let me know if some return to roost.
jnthn good day o/ 09:54
moritz \o jnthn 09:55
jnthn (roast tasks) there's also the testneeded queue. 10:05
moritz aye 10:07
but many of those are non-trivial
because the tickets only mention what the stuff should *not* do
or much is about how errors are reported, for which you need typed exceptions to do the testing right 10:08
jnthn Ah, true. 10:11
cognominal__ putain, je voudrais faire des courses pour bouffer 10:16
c'est quoi ce temps à la con? c'est la faute au nouveau gouvernement ou c'est l'héritage sarkozien?
moritz cognominal__: wrong channel? 10:17
cognominal__ oops
jnthn phenny: "putain"?
phenny jnthn: "whore" (fr to en, translate.google.com)
jnthn whoa!
I thought it was just "Darn" 10:18
tadzik :)
cognominal__ that's a standard expletive
jnthn Political rants...they get ugly :P
cognominal__: At school the worst they taught us was, "zut alors" 10:19
cognominal__ I wonder who I need to blame for the bad weather
jnthn, I hear "zut" twice a year, at most 10:20
jnthn hah!
Typical high school French. Teaching you the untrendy curses.
cognominal__ but, that's was intended for #perlfr where we curse a lot. 10:21
cognominal__ I suppose, if I had a child, I would ask him to say "zut" when talking at the familial table with no illusion about what he would say elsewhere 10:22
moritz just learned "merde" 10:23
cognominal__ with putain and merde, you can go a long way.
cognominal__ I wonder what the french translation of the "Big Lebowsky" use for "fucking" 10:25
*uses
brrt ... 10:27
that is possible to find out 10:28
arnsholt cognominal__: I lolled at "c'est la faute au nouveau gouvernement ou c'est l'héritage sarkozien?" 10:29
=)
As did one of my colleagues, when he came over to see what I was laughing at ^_^
jnthn
.oO( The new government have already achieved growth...in the number of clouds above France )
arnsholt I really need to clean up some warnings in nqp_dyncall.ops just too hard to find the errors among all the warnings 10:35
jnthn: Is there an easy way we can stash the stuff created for a callback after it's been created? 10:43
If there isn't, I think we'd be forced to leak some memory for callbacks
Speaking of memory leaks and such, is there a chance that anonymous subs can get GCed? 10:45
jnthn Anonymous subs certainly can get GC'd, yes. 10:46
sorear it depends on how they are created 10:47
jnthn And closures taken of them very certainly can.
sorear anonymous subs created by closure cloning can be GCed
anonymous subs created by the compiler for 'eval' cannot
(don't use eval.)
arnsholt I was thinking of something like this: native-func(sub(int $ival) { say $ival }) 10:48
jnthn Yes, that's at risk.
arnsholt 'k. Hopefully not a big deal, at least initially 10:49
jnthn I mean, if it's called back during the call to native-func it's OK
If the callback is stashed somewhere and invoked by a later native call, that could be more problematic.
arnsholt Indeed. File under "manually managing memory" I suppose 10:50
But the other thing: Is there some place we can easily stash a few pointers of data about a sub? 10:51
jnthn Does dyncallback not give you a way to keep some data around and have it passed back to you when the callback is invoked? 10:52
arnsholt Sure, that's not the problem
jnthn Yeah, userdata 10:53
arnsholt The problem is that we don't know whether a callback will be invoked several times or only once, so it's not safe to free the data in the callback handler
jnthn Ah, I see.
So we'd end up leaking that.
arnsholt Currently we'll allocate a string, a struct and the callback function itself every time a sub is passed as a callback arg
So, depending on the size of the callback function, a few hundred bytes a pop, I guess 10:54
jnthn Well, you can keep an array of pointers to that userdata
Just in a static or something like that. 10:55
And maybe some op to free things up afterwards.
In general, we can't know when it's OK to free it. We'll probably have to provide a way in Zavolaj for the user to give hints. 10:56
arnsholt Yeah, we'll probably want a few toggles to mark the C data in structs and arrays as freeable as well I think 10:58
cognominal__ nqp: say( <e a b g d >.sort) 11:25
p6eval nqp: OUTPUT«5␤»
cognominal__ hum
I have trouble with nqp. how to get the sorted array instead of the length 11:26
tadzik it probably stringifies it that way
use join
nqp: say( <e a b g d >.sort.join(", "))
p6eval nqp: OUTPUT«Method 'join' not found for invocant of class 'ResizablePMCArray'␤current instr.: '_block1000' pc 58 ((file unknown):171419499) (/tmp/9a4LGju2KR:1)␤»
tadzik nqp: say( pir::join(<e a b g d >.sort, ","))
p6eval nqp: OUTPUT«,␤»
tadzik grr
nqp: say( pir::join(", ", <e a b g d >.sort)) 11:27
p6eval nqp: OUTPUT«a, b, d, e, g␤»
tadzik aye
cognominal__ and that the beginning of it cuz I will need to pass the function that does the sort.
tadzik: where is the "nqp" sort routine defined? 11:28
is that pmc stuff?
tadzik I think so 11:29
moritz in ResizablePMCArray
tadzik it may be a Parrot VTABLE, but I'm not sure
moritz not a vtable, just a method 11:30
cognominal__ so when it does not find a regular method it defaults to a parrot vtable method?
moritz no
vtables and methods are called differently 11:31
cognominal__ so concretely where is defined the sort method in my case? 11:31
moritz parrot/src/pmc/fixedpmcarray.pmc 11:32
bbkr How can I slurp png image into variable? I added :bin flag to open but slurp tells me "This type cannot unbox to a native string" 11:33
moritz I don't think we do binary slurp yet 11:34
you probably need my $f = open :bin, $filename; my $buf = $f.read(1e32); $f.close or so 11:35
cognominal__ apparently I can pass a compare func :)
bbkr moritz: I need to endode it for transport using Base64, which accepts only string. And binary buf will not decode to Str for the same reason that slurp failed :( 11:37
moritz bbkr: erm, what?
bbkr: how are you calling decode? 11:38
(the obvious fix is to implement base64 encoding on buffers)
bbkr I've tried your solution and it also fails on read 11:40
my $f = open ("/Users/bbkr/Developer/Perl6/MongoDB/logotype/logo_32x32.png", :bin); my $b = $f.read(1e32); $f.close; # trying sample image
This type cannot unbox to a native string
moritz huh 11:41
tadzik huh, which type 11:42
moritz hm, 1e32 might be a bit big
tadzik r: my $a = 1e32
p6eval rakudo 74e183: ( no output )
tadzik r: my $a = 1e32; say $a
p6eval rakudo 74e183: OUTPUT«1e+32␤»
moritz bbkr: I can read 1e5 bytes from my 'perl6' binary 11:43
and it only returns 68435 bytes
bbkr same issue
moritz then your rakudo build is broken 11:44
star: my $f = open('bin/perl6', :bin); say $f.read(1e5).bytes; $f.close
p6eval star 2012.06: OUTPUT«open is disallowed in safe mode␤ in sub restricted at src/SAFE.setting:2␤ in sub open at src/SAFE.setting:5␤ in block <anon> at /tmp/DRhkJxnGlV:1␤␤»
moritz meh
bbkr opening perl6 binary works fine, opening png fails 11:48
moritz works fine here with a 24571 byte PNG image 11:49
bbkr can you try to download github.com/bbkr/mongo-perl6-driver..._32x32.png and try?
maybe some byte sequence insice causes this issue
moritz just a sec 11:50
bbkr inside*
moritz works fine here
moritz reads 4837 bytes, same as 'wc -c' 11:50
kresike bye all 11:52
bbkr moritz: I found my mistake - had space after open and bracket :) 11:53
tadzik aaaargh
moritz oh
tadzik that sounds infuriating 11:54
moritz still the error is LTA
tadzik however you write that
yep
bbkr reports
thanks :)
moritz it should eithe constrain the type to Str, or should coerce to it
tadzik the first thing we ever put into Perl::Critic is checking for things like this 11:55
subcall (foo); "please write me as subcall((foo)) to not confuse everybody"
bbkr everything works now, including slurp and base64 on binary data 12:04
felher I just read that a Hash is a EnumMap. But a EnumMap is supposed to be immutable according to specs, while a Hash isn't. If i create a sub like 'sub some-sub(EnumMap $em) ', i'd expect $em to be immutable. Which it doesn't have to be, because i can put a Hash in it. Is it supposed to be that way? 12:05
Or maybe i got something wrong?
moritz felher: well, the expection that $em will be immutable is simply wrong
*expectation
that's not how Liskov works 12:06
it only gives weaker assertions of the type "if I can call method m on EnumMap, then I can call it on any subclass of EnumMap too" 12:07
felher moritz: you're right. That isn't how Liskov works. But i find it to be odd nevertheless. Like if there were a subclass of String in the standard Java library, that is mutable. Well, not that bad, but it may be the same direction. 12:14
moritz felher: as long as it's only odd (and not bad) that's OK :-) 12:16
felher moritz: okay. What do you think about mentioning it in the EnumMap spec, that Hash is a EnumMap, but not immutable. So that noone comes across EnumMap and thinks it's a good idea to have a class that gets EnumMaps and uses them while relying on them being immutable? 12:30
moritz felher: that's something that belongs in user docs, not in the specs 12:31
felher moritz: okay :) 12:31
moritz felher: and yes, EnumMap and Hash are still TODO. You can add them if you want :-)
felher moritz: k. If i have some spare time this weekend. But probably not until next tuesday is over. :) 12:33
After tuesday, chances are i have some time to spare :)
dalek c: 9231982 | moritz++ | lib/objects.pod:
start "objects" language documentation
12:42
c: 9439739 | moritz++ | TODO:
note that Hash and EnumMap are TODO
colomon www-fp.cs.st-andrews.ac.uk/~icfppc/task.pdf 12:44
moritz nice :-) 12:47
now we just have to allow multiple robots at once per level, and have them leave land mines at certain spots... 12:51
PerlJam Some of you probably saw it on #parrot, but I thought I'd mention it here anyway: blogs.perl.org/users/rurban/2012/07...sting.html 14:29
Seems like a good resource for someone to setup test environments for Rakudo
sirrobert Apparently .can does not recognize fallback methods set up with .^add_fallback (gist.github.com/3105446). Is that intended? 15:23
jnthn Hmmm 15:25
Lemme see what S12 says on .can
Yeah, it probably should. Looks like NYI. 15:26
.oO( Not that .^add_fallback is in any way spec'd... )
TimToady does that add a method, or a place to look for methods that can be modified after the fact, as CANDO specs 15:27
jnthn TimToady: It's more in CANDO space.
TimToady: It's the guts behind "has $!a handles *;" style wildcarding constructs.
TimToady: Which now seems to have scaped into people's code. :/ 15:28
TimToady ah, good
jnthn Despite me insistently saying "please, do it with handles if you can" :)
*escaped
TimToady I mean, the semantics, not the escape :)
jnthn I'm a bit hazy on CANDO.
TimToady well, maybe it's an eval-class escape valve
jnthn Yeah, I guess. 15:29
Well, I'm a bit hazy on .^can too.
TimToady we should probably look at where it escaped, and why
diakopter scaped indeed
jnthn Well, in at least one case when I enquired the answer was, "oh, I didn't know about handles *"
TimToady the intent of can is to be lazy with respect to fallbacks 15:30
jnthn Do we expect .can to return something you can invoke?
Or something you can iterate that produces things to invoke?
Or both?
TimToady both is usually nice, except when it isn't... 15:31
jnthn In b we tried to make it both and it got horrible.
In nom I stripped it back to "an iterable thingy"
And haven't heard yelps of surprise
Mostly because it gets used in boolean context.
TimToady iterable is more important than invokable, I suspect
jnthn And "has no elements" is false, as desired. 15:32
TimToady and there's always [0]()
jnthn Well, you can .^find_method if you just want to get something invokable too :)
I guess a related question is, should .+ and .* operate in terms of .^can? 15:33
jnthn Which'd mean they will consider fallbacks too... 15:33
TimToady why not?
jnthn I don't particularly have reasons for them not to :)
masak greetings, #perl6 15:34
jnthn In fact, I'd more argue for them doing so :)
jnthn Just wanted to get a feeling of what's expected so I can implemented a righter thing. 15:34
o/ masak
masak back-clogs 15:38
colomon ooo, back clogging is much harder than forward clogging. you have to be careful not to dance into something you don't see... 15:42
TimToady! \o/
masak also, the clogs are really hot.
TimToady that's from the IR
masak <Coleoid> I recall, wayback, the specs being in pugs, and rakudo being in parrot... 15:43
this comment gave me the mental image of Perl 6 unfolding over the years like an intricate flower...
TimToady is only briefly on before commuting to Seattle to see Cid Taliessin Hudspeth. 15:44
colomon Cid++
one of our local "cloggers": www.nicgareiss.com/Premise.html 15:45
masak .oO( because the world needs more Walls ) :P 15:47
anyway, Cid++
TimToady colomon: I admired your malaprop at irclog.perlgeek.de/perl6/2012-07-04#i_5784968 15:55
[Coke] Tear down this Wall? 16:26
bbkr Which group has the right to take tickets in RT? I'm currently in Everyone and Unprivileged and I cannot take ticket or assign tags. 16:35
sirrobert was afk a bit 16:36
I don't think I can use 'handles' for what I'm trying to do =) that's why I was using .^add_fallback 16:37
I tried... really =)
sirrobert how can I check if a given class/role/package has been defined? 16:43
ooh... maybe I *can* use handles... 16:45
sirrobert is afk.
bbkr star: class A{}; Any.HOW(A).WHAT.say 16:46
p6eval star 2012.06: OUTPUT«use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤use of uninitialized value of type Mu in string context in any <anon> at src/gen/BOOTSTRAP.pm:104␤␤===SORRY!===␤error:imcc:The opcode 'get_how_p_p_p' (get_how<3>) wa…
bbkr it says for me error is in line 158519259 :)
jnthn wow :)
sirrobert heh
jnthn Yeah, we should catch that bogus syntax rather earlier :)
bbkr I'm not sure how to report it, I mean - what is expected 16:47
I'll report that get_how_p_p_p method name is leaking to user-level error 16:49
reported 16:52
flussence rn: my $x = 'abcde'; my $e = :e<e>; say $x.match(/ $e.value /).perl;
p6eval niecza v19-13-g442e075: OUTPUT«Match␤»
..rakudo 74e183: OUTPUT«Match.new(orig => "abcde", from => 5, to => -3, ast => Any, list => ().list, hash => EnumMap.new())␤»
flussence rn: my $x = 'abcde'; my $e = :e<e>; say $x.match(/ {$e.value} /).perl; 16:53
p6eval rakudo 74e183: OUTPUT«Match.new(orig => "abcde", from => 0, to => 0, ast => Any, list => ().list, hash => EnumMap.new())␤»
..niecza v19-13-g442e075: OUTPUT«#<match from(0) to(0) text() pos([].list) named({}.hash)>␤»
flussence I don't get what I'm doing wrong there.
[Coke] who wants RT perl6 ticket access? 16:55
bbkr me please
I had access before but for some reason i cannot take or assign tag to ticket now 16:56
login "bbkr"
[Coke] ok. just need 30 minutes to find hte damn link. ;)
bbkr thanks 16:58
how should "\ " (escaped space) behave in regexp? match literally? 16:59
r: say " " ~~ /\ /;
p6eval rakudo 74e183: OUTPUT«q[ ]␤␤»
benabik r: say " " ~~ / ' ' /;
p6eval rakudo 74e183: OUTPUT«q[ ]␤␤»
bbkr std: q\ \ # this should be quoting or routine call? 17:07
p6eval std 3b49ac8: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'q' used at line 1␤Check failed␤FAILED 00:00 40m␤»
[Coke] bbkr: we removed the implicit old link between parrot commiters and perl6 bugadmins. that might have dropped you if you weren't n channel at the time to speak up.
[Coke] bookmarks this link so he can stop digging through parrot to find it.
bbkr: done. 17:08
bbkr [Coke]: I was not on channel during that
thanks
bbkr both taking and tag assigning works ;) 17:10
moritz jnthn: the problem with 'handles *' is that it needs something which can make receive arbitrary methods 17:21
jnthn: so that in turn needs a fallback somehow
jnthn moritz: Ah...so it's being used as an escape hatch for doing your own dispatch, as such?
moritz jnthn: yes 17:25
GlitchMr Hello 17:35
masak GlitchMr! \o/ 17:37
diakopter can NQP read environment variables? 17:43
hoelzro moritz: btw, I "fixed" my regex lock up issue 17:50
moritz diakopter: yes, via pir::new__Ps('Env') 17:54
diakopter moritz: is that a hash of some sort? 17:56
PerlJam It's a PMC
diakopter that much I knew :)
PerlJam :)
moritz diakopter: it has a similar API, yes
PerlJam yes, it's a very hashy PMC
moritz ie you can $env<key> 17:57
*can use
diakopter kthx 17:57
moritz yw
diakopter in NQP how would I get a string that has only the alphanumeric chars from another string? 18:01
moritz diakopter: there's a match(string, regex, :global) method 18:04
so something like nqp::join('', match($string, /\w+/, :global))
diakopter how about alphanumerics or spaces? 18:07
/<[\w' ']>+/ ?
PerlJam Isn't there also subst? my $foo := subst($string, $regex, '', :global); # ?
moritz yes 18:11
diakopter: <[\w\ ]> I think
masak reads homepages.cwi.nl/~ralf/OOHaskell/paper.pdf with interest 18:37
benabik masak++ 18:40
moritz r: class A { }; class B is A { has $.x; method new(*%a) { bless(A.new, |%a) } }; say B.new(x => 5).x 18:41
p6eval rakudo 74e183: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&bless' called (line 1)␤»
moritz r: class A { }; class B is A { has $.x; method new(*%a) { self.bless(A.new, |%a) } }; say B.new(x => 5).x
p6eval rakudo 74e183: OUTPUT«No such method 'x' for invocant of type 'A'␤ in block <anon> at /tmp/aVF27bmDW7:1␤␤»
moritz is that suppost to work? 18:44
masak not sure. 18:46
I thought the first arg to .bless wasn't an object so much as an underlying representation. 18:47
jnthn It's a candidate.
masak whether "underlying representation" is what jnthn calls "repr", I don't know.
moritz so, what exactly is a candidate?
jnthn Soemthing that CREATE gave you back
moritz is it an object?
jnthn Normally you pass * there and it calls CREATE for you.
Yes.
moritz so, what kind of object? 18:48
jnthn It just hasn't had any initialization work done yet.
Whatever type you called CREATE on.
moritz so, CREATE is the closer equivalent to p5's bless
jnthn r: class A { has $.x = 42; }; say A.CREATE.x; say A.new.x;
p6eval rakudo 74e183: OUTPUT«Any()␤42␤» 18:49
moritz and bless doesn't do any blessing, just initialization?
jnthn Right, it already knows its type.
moritz then it's misnamed, IMHO
jnthn r: class A { has $.x = 42; }; say A.CREATE.WHAT; say A.new.WHAT;
p6eval rakudo 74e183: OUTPUT«A()␤A()␤»
jnthn What do you want to call it? :)
I agree it's different to what Perl 5 does. 18:50
GlitchMr bless is confusing with Perl 5
moritz jnthn: INIT_ATTRIBUTES or so
jnthn moritz: eww, no
moritz also
jnthn moritz: It's what you call in a custom .new
It's quite user facing.
moritz if the candidate is already a proper object, we could just make .bless a method on that object 18:51
jnthn True
moritz then you could write self.CREATE.init(|%attrs) or so
or maybe s/init/INIT/
jnthn It shouldn't be uppercsae since you call it yourself and it isn't magical :)
BUILDALL and BUILD are uppercase 'cus they get called for you and are magical in that sense. 18:52
moritz well, 'bless' is good in the sense that it's unlikely to collide with user-supplied methods 18:53
jnthn Today you can write self.bless(*, |%attrs), which means you don't have to chain methods.
Yes, that too :)
moritz OTOH it's a constant FAQ what that * means, and what you could pass to it instead
jnthn True. You normally don't care to do anything other than the default 18:54
dalek c: 9c4688c | moritz++ | lib/Mu.pod:
[Mu] document bless and CREATE
19:02
moritz so, there's no API for reblessing an object into a subclass, right? 19:03
jnthn moritz: Right. 19:08
moritz: .^mixin is currenlty implemented in terms of a 6model primitive for doing so.
masak p6l email about .trans sent. 19:09
moritz sheds the bike 19:12
masak++ 19:14
on the surface, the arguments for splitting the methods are convincing
masak yay
moritz can't tell you anything about under-the-surface yet 19:15
masak understood. knowing that would be highly interesting, of course.
in a way, I'm also only on the surface level of the whole discussion so far. but I thought throwing it out there might help make a dive.
colomon masak++ 19:16
moritz I just thought it would be nice to be able to switch off range-DWIM in .trans 19:18
masak I don't immediately see the use case for that. 19:19
moritz following the thoughts of design astronautism, one could switch on features with named args
masak: the use case is mostly if the substitutions lists are generated 19:20
moritz otoh then one can generate them as lists, not strings 19:21
so, never mind
masak right. 19:23
I'm not proposing scrapping things like "a..z" in .trans, by the way. I rather like that feature. and it's like tr///
moritz yes, I understood that
flussence r: say ([..] <a z>).perl 19:24
p6eval rakudo 74e183: OUTPUT«"a".."z"␤»
flussence I didn't expect that one to work... :)
jnthn r: say ([..] <a z>).list.perl 19:25
p6eval rakudo 74e183: OUTPUT«("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z").list␤»
colomon r: say ([..] <a g z>).perl
p6eval rakudo 74e183: OUTPUT«"a".."g".."z"␤»
colomon errr.... that's wrong, isn't it?
r: say ([..] <a g z>).list
flussence r: say +([..] <a g z>).list
jnthn I suspect that it will complain if you try and listify it.
p6eval rakudo 74e183: OUTPUT«No such method 'succ' for invocant of type 'Range'␤ in sub postfix:<++> at src/gen/CORE.setting:1347␤ in method reify at src/gen/CORE.setting:4829␤ in method reify at src/gen/CORE.setting:4950␤ in method reify at src/gen/CORE.setting:4950␤ in method gimme at s…
rakudo 74e183: OUTPUT«No such method 'succ' for invocant of type 'Range'␤ in sub postfix:<++> at src/gen/CORE.setting:1347␤ in method reify at src/gen/CORE.setting:4829␤ in method reify at src/gen/CORE.setting:4950␤ in method gimme at src/gen/CORE.setting:5328␤ in method elems at s…
jnthn Right.
masak r: say ("a".."g".."z").min.^name 19:26
p6eval rakudo 74e183: OUTPUT«Range␤»
masak so it associates to the... left. 19:27
moritz std: 1..2..3
p6eval std 3b49ac8: OUTPUT«===SORRY!===␤".." and ".." are non-associative and require parens at /tmp/7khn6N9xv0 line 1:␤------> 1..2..⏏3␤Check failed␤FAILED 00:00 41m␤»
moritz r: 1..2..3
p6eval rakudo 74e183: ( no output )
colomon bug indeed. ;) 19:28
nr: 1..2..3
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤".." and ".." are non-associative and require parens at /tmp/8EmLGgsfcy line 1:␤------> 1..2..⏏3␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1402 (die @ 5) ␤ at…
..rakudo 74e183: ( no output )
colomon n: say ([..] <a g z>).perl 19:29
p6eval niecza v19-13-g442e075: OUTPUT«===SORRY!===␤␤Cannot reduce with .. because structural infix operators are diffy and not chaining at /tmp/Moczmc98Wi line 1:␤------> say ([..]⏏ <a g z>).perl␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/…
colomon niecza++
masak submits rakudobug 19:32
colomon masak: not sure what to think about the .trans thing, but I'm still pleased you raised the question 19:33
masak like me, then :) 19:34
moritz likes masak 19:35
masak flies like an arrow
colomon I find the spec kind of confusing, and the code implementing it in niecza makes it one of the more complex core functions.
if not *the* most complex.
moritz 118 lines in rakudo 19:36
colomon n: say 2678 - 2561 ~ " in niecza" 19:37
p6eval niecza v19-13-g442e075: OUTPUT«117 in niecza␤»
colomon wouldn't be surprised if it's more or less the same code... 19:38
LSM class involved?
moritz yes
colomon yeah, probably the same code, then. :)
moritz written by masak++, iirc
sorear one of these days I'm going to rip out niecza's .trans and replace it with something that uses the _real_ LTM engine 19:39
masak ISTR so too.
sorear alas niecza-shaped tuits are in short supply these days.
masak sorear: the Rakudo team has plans for that too.
jnthn We actually have a real LTM engine now :) 19:40
moritz yes, but it's not easy to interface to it
jnthn It was hard to write, it should be hard to interface to :P 19:41
I don't know that it's all that bad actually.
moritz :-)
well, it would be *much* easier if array-variable interpolation was supported 19:42
jnthn Yeah. That's tricky to get right.
due to
a | @a | bc
Style things
moritz and especially if we had some API that also gives us the index of the matching array element
jnthn: you know that @a doesn't participate in the LTM unless it's a compile-time constant? 19:43
jnthn moritz: Is that in S05?
moritz "An interpolated array using junctive semantics is declarative 19:45
(participates in external longest token matching) only if it's
known to be constant at the time the regex is compiled.
"
S05:1252
jnthn Oh. 19:46
moritz but TimToady++ said that in general there's still LTM between the array elements
jnthn Oh, wait
iiuc 19:47
moritz so a | @b | bc is more like [a | b] || [|@b]
jnthn a | @a | bc /
er
/ a | @a | bc /
I don't think it's saying you don't get LTM semantics even if @a isn't known until runtime
Notice the "external" bit
token x { <y> }; token y { a | @a | bc } 19:48
moritz external = external to the array, in my reading
jnthn Here, it's not be incorporated into x's LTM
Oh, I read it as "external to this rule"
moritz we've had that discussion recently 19:49
jnthn Hm, it could be either. :)
OK
moritz with pmichaud++ and TimToady++
jnthn I'm happy for it to be the easier one ;)
moritz let me try to find it in the logs
jnthn I musta missed it.
dalek p/toqast: 5c66ca4 | jnthn++ | src/QAST/Operations.nqp:
vivify => ifnull; pmichaud++.
dalek kudo/toqast: ecd9c1b | jnthn++ | src/QPerl6/Actions.pm:
Chase op name change.
19:50
moritz jnthn: discussion starts at irclog.perlgeek.de/perl6/2012-06-28#i_5766030
jnthn nmake 19:51
oops
jnthn moritz: aha 19:53
jnthn moritz: Then yes, your interpretation is correct. 19:53
masak I've golfed the segfault from a few days ago. 20:04
it might be the strangest I've ever seen. but it's very consistent. lots of components, though.
r: use Test; class A {}; (-> &c, $m { A.new()(); CATCH { default { ok 1, $m } } })(A, "")
p6eval rakudo 74e183: OUTPUT«(signal SEGV)» 20:05
masak submits rakudobug
[Coke] masak++
masak feel free to submit shorter versions to the channel if you find any. I will add them to the RT ticket.
gfldex Segmentation fault (core dumped) # under cygwin 20:06
masak note that A is sent in as &c, and that was the original issue: a non-Callable was invoked.
moritz r: class A {}; (-> &c, $m { A.new()(); CATCH { default { say $m } } } )(Mu.new, '')
p6eval rakudo 74e183: OUTPUT«Null PMC access in find_method('gist')␤ in block <anon> at /tmp/aD6vfCqowe:1␤ in block <anon> at /tmp/aD6vfCqowe:1␤␤»
masak that looks like a clue of some sort. 20:07
moritz masak: but shouldn't it fail to bind in the first place?
I mean, A to &c
masak yes.
and maybe it does, I dunno.
moritz r: sub f(&c) { }; f(class { })
p6eval rakudo 74e183: OUTPUT«Nominal type check failed for parameter '&c'; expected Callable but got <anon> instead␤ in sub f at /tmp/a0Rp2HjxT2:1␤ in block <anon> at /tmp/a0Rp2HjxT2:1␤␤»
masak but the A.new()(); these is necessary.
which indicates the first line gets run. 20:08
r: use Test; class A {}; (-> &c, $m { CATCH { default { ok 1, $m } } })(A, "")
p6eval rakudo 74e183: OUTPUT«(signal SEGV)»
masak I stand corrected. :)
that explains a lot. the CATCH catches binding errors.
and then the $m never gets bound, because the binder wasn't done!
moritz erm, what?
masak I couldn't have trolled Rakudo better if I had wanted to! :D 20:09
moritz a CATCH block catches... no way
masak yes way.
that's what happens.
moritz I... hope that it's not supposed to catch those.
masak it's so obvious now.
no, I don't think it is.
moritz ah, and that's why I got the null PMC access
masak but I can see why that falls out. I think binding is lexically done inside of the callee. 20:10
moritz r: sub f(&x) { CATCH { default { say "OH NOES" } } }; f 3
p6eval rakudo 74e183: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'f' will never work with argument types (int) (line 1)␤ Expected: :(&x)␤»
jnthn Huh, I thought exception handlers weren't set up until after the binding...
moritz r: sub f(&x) { CATCH { default { say "OH NOES" } } }; f Mu.new
p6eval rakudo 74e183: OUTPUT«OH NOES␤»
moritz that's a short version :-)
masak++ 20:11
masak now without the segv :)
moritz aye
masak crypt++ # found it while hacking around with real code
moritz the rest was probably just necessary to turn a Null PMC Access into a segfault, or so
sorear masak: man 3 crypt? 20:12
moritz sorear: nope, his adventure game
masak I don't know what I was thinking when naming it... 20:13
apparently I wasn't thinking of man 3 crypt. :) 20:14
moritz its setting is a crypt?
masak the innermost room is a crypt, yes.
you haven't played it yet, moritz? :)
moritz masak: no 20:14
jnthn: looking at the generate code, it seems it 1) does a capture_lex 2) sets up the exception handler 3) calls perl6_take_dipatcher 4) declares $_, $/, $! and call_sig and 5) calls bind_signature 20:15
jnthn hah 20:16
Good news: block and exception handlers got a divorce in QAST :)
*blocks
moritz new $P1043, 'ExceptionHandler' 20:17
set_label $P1043, control_1042
$P1043."handle_types_except"(.CONTROL_ALL)
I guess the binder does not generate a CONTROL exception
jnthn Yeah, ain't it f**king wonderful that we have to make a PCC method call to set up an exception handler :/
I...don't think they should be control exceptions. 20:18
Failing to bind is a real exception.
masak don't swear in an RT ticket! :P
moritz thinks so too
jnthn It's that the handler shouldn't be set up at that point.
moritz jnthn: so, that's another GCable just for the call that sets up the exception handler?
jnthn Yeah
moritz would it help if i convinced the parrot folks to provide an op that does it instead? 20:19
jnthn It'd probably be more efficient that way but...dunno how interested I am in opening the exceptions in Parrot can of worms. 20:21
lichtkind jnthn: great grant report 20:22
does it mean we can have widgets soon?
jnthn lichtkind: widgets?
moritz: Provided there was such an op I guess it'd be easy to update the code gen to use it. 20:23
dalek p/toqast: 20331f5 | jnthn++ | src/QRegex/ (2 files):
Add a way to turn an NFA into QAST rather than PAST.
20:24
p/toqast: 0eb3cc4 | jnthn++ | / (3 files):
Add BlockMemo, a way to segregate the hack we use for caps and nfa storage.
p/toqast: ecf6316 | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Use QAST::BlockMemo, to hopefully get QRegex::P6Regex::Actions::qbuildsub to be generating valid QAST (though probably still not quite gonna work yet).
lichtkind jnthn: binding to gui tk with callbacks 20:27
jnthn lichtkind: Oh! 20:28
lichtkind: arnsholt++ is hacking on callbacks at the moment :)
arnsholt Yeah, I'm kind of hoping to make a GTK demo as a proof of concept/demo
masak \o/ ++arnsholt 20:30
tadzik \o/
jnthn That'll be very cool
arnsholt: Are you gonna be at YAPC::EU, btw?
arnsholt Don't think so unfortunately 20:31
Fits kind of weirdly with holidays and stuff this year
jnthn Aww. Was gonna say, if so, maybe submit a Zavolaj talk :)
arnsholt I've been considering it actually =)
But I've started to look for likely workshops and such this fall, and then I can do one for YAPC::EU next year perhaps 20:32
[Coke] jnthn: parrot seems genuinely interested in doing the right thing by rakudo (re exception can of worms)
masak it's still a can of worms ;) 20:33
lichtkind maybe you want come to bologna 20:34
ipw was fun
arnsholt Hmm. That might work 20:37
jnthn [Coke]: Figuring out the "right thing" is probably not so easy. I'm not even sure how various bits manage to work at the moment. :) 20:38
masak meanwhile, on #postgresql: gist.github.com/3107323 ;) 20:39
arnsholt Oooh, sounds like a good 'un 20:42
flussence do they have ir clogs? 20:44
[Coke] jnthn: fair enough. as long as you're avoiding it for a *good* reason. ;) 20:52
pmichaud good afternoon, #perl6 21:17
jnthn evenin, Pm o/ 21:18
[Coke] phenny: help?
phenny [Coke]: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see inamidst.com/phenny/ for more general details. My owner is sbp.
pmichaud jnthn: regex { a | @b | @c }; @b and @c participate in ltm only if they're constant at the time the regex is compiled
TimToady++ pointed that out a couple of weeks ago :) 21:19
jnthn pmichaud: Yes, moritz++ pointed me at the conversation :)
pmichaud good deal. Yes, that makes arrays a lot easier, although we'll need some dynvars to let us know if a given array is in | or || context
(when the regex is being compiled)
dalek p/toqast: 804bcfa | jnthn++ | src/QAST/ (2 files):
Get some box/unbox infrastructure in place.
21:20
p/toqast: bed7038 | jnthn++ | src/HLL/Compiler.pm:
Make sure $*PASTCOMPILER is available (still some regex engine leftovers there...will clear up later.
sorear How can you tell if they are constant?
pmichaud they have to have been declared constant at compile-time
jnthn To a first approximation, "do we have a compile time value for it"
[Coke] cannot figure out how to get phenny to respond to help queries. 21:21
benabik phenny: help 21:22
phenny benabik: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see inamidst.com/phenny/ for more general details. My owner is sbp.
[Coke] benabik: and the followup from that results in a suggestion to use help which doesn't work.
benabik [Coke]: Oh. Well, details. 21:23
masak lol I again blog here! strangelyconsistent.org/blog/july-1...u-can-read 21:24
jnthn lawl 21:25
flussence I wonder 21:25
.help
flussence hm, maybe it's disabled to avoid spamming the channel. 21:26
benabik Also don't work in PM 21:27
lichtkind ahhh due my intense weeks of writing tablets my fingers learned to write gi instead of hg 21:31
dalek p/toqast: dd04942 | jnthn++ | src/QAST/ (2 files):
Fix some bugs in BlockMemo handling.
21:33
kudo/toqast: 4498bea | jnthn++ | src/QPerl6/Actions.pm:
Start using qbuildsub for regex building.
jnthn rakudo/toqast now has some regex support back in place. Up to 12804 passing spectests. 21:36
And all sanity tests pass.
masak whoa. 21:37
jnthn++
lichtkind jnthn++ 21:56
dalek p/toqast: 014837a | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Fix qalt_nfas to recurse to itself.
22:15
p/toqast: cd6dfc3 | jnthn++ | src/QAST/Block.nqp:
Implement QAST::Block.symtable.
dalek kudo/toqast: 266d7b6 | jnthn++ | src/QPerl6/Ops.pm:
First crack at box/unbox wiring. Wins some more tests at least.
22:19
kudo/toqast: 101c115 | jnthn++ | src/QPerl6/Actions.pm:
Fix subset compilation.
kudo/toqast: 9edea62 | jnthn++ | src/QPerl6/World.pm:
Fix BEGIN time and thus roles.
masak good night, #perl6 22:41
dalek p/toqast: 03261ac | jnthn++ | src/QAST/Compiler.nqp:
Add qastnode, for an abitrary QAST tree inside a QAST::Regex.
23:20
p/toqast: f574160 | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Various regex related tweaks to help QAST'd Rakudo work.
kudo/toqast: 94bb03f | jnthn++ | src/QPerl6/Actions.pm:
Fix quotepair.
23:21
kudo/toqast: 08c051a | jnthn++ | src/QPerl6/Actions.pm:
s/pastnode/qastnode/ in regex handling.
kudo/toqast: 613d647 | jnthn++ | src/QPerl6/Actions.pm:
Various regex fixes; gets a bunch of S05 tests passing again.
geekosaur 's brain keeps edit correcting that to "toast" 23:23
dalek kudo/toqast: f97e527 | jnthn++ | src/QPerl6/Actions.pm:
Fix @bar>>.foo compilation.
23:35
jnthn Enough for today. Now up to 14997. :) 23:35
cognominal_ nqp: my $a := :a<b>; say ($a) 23:36
p6eval nqp: OUTPUT«Confused at line 2, near "say ($a)"␤current instr.: 'nqp;HLL;Grammar;panic' pc 22385 (src/stage2/gen/NQPHLL.pir:8546) (src/stage2/gen/NQPHLL.pm:326)␤»
cognominal_ nqp: my $a := :a<b>; say($a)
p6eval nqp: OUTPUT«b␤»
cognominal_ nqp: my $a := a => 'b' ; say($a) 23:36
p6eval nqp: OUTPUT«b␤»
cognominal_ nqp: my $a := :a('b') ; say($a) 23:37
p6eval nqp: OUTPUT«b␤»
cognominal_ hum.
flussence I wish I knew enough to figure out that build error :( 23:43
flussence uh oh 23:55
I checked out nqp/toqast and reverted 80306ff, and it still failed with the same error
maybe it was some internal resource limit, and that was what initially pushed it over the edge... 23:57