»ö« 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. |
|||
00:11
wolfman2000 joined
|
|||
dalek | kudo/nom: c2f008d | pmichaud++ | src/core/Array.pm: Make use of existing scalar instead of repeating getattr. |
00:14 | |
kudo/nom: e2ebf39 | pmichaud++ | src/core/Array.pm: Add a comment to hotpath checks added in c10792f (RT #111848). |
|||
00:16
havenn joined
00:27
jferrero left
|
|||
sorear | good * #perl6 | 00:32 | |
00:35
localhost left
00:36
localhost joined
00:40
havenn left
00:43
havenn joined
|
|||
japhb | sorear, I forget ... which distro do you use? And if it is Ubuntu or Debian, what are your thoughts on/experience with using badgerports to get a modern mono for an Ubuntu 11.04 system? | 00:53 | |
sorear | I use debian sid. I have never touched badgerports. | 01:02 | |
japhb | Ah well. | ||
sorear | debian has modern mono now; for a long time I was using a mono built from source | ||
it's a little involved, but much less so than (say) building a kernel | 01:03 | ||
took around 70 minutes on the dinosaur | |||
japhb | Yeah, and it appears from mono-project.com/DistroPackages/Ubuntu that 12.04 LTS will have a modern Mono, but sadly the Ubuntu I'm running (11.04) is from just before the 2.10 transition. | 01:05 | |
Since I don't want to wait for the end of April to get a full-speed Niecza ... I'm considering risking the death of F-Spot and using badgerports. | |||
sorear | if you want safety, build your own mono | 01:06 | |
then it'll go in /usr/local and you can play with $PATH | |||
use --prefix=/opt/mono-2.10 if you're really paranoid, and nuke the whole tree when you're done | 01:07 | ||
(the latter will require fiddling with more variables; see www.mono-project.com/Parallel_Mono_Environments ) | 01:08 | ||
google-- # making it difficult to copy links from search results | |||
japhb | google-- # Not being DuckDuckGo | 01:09 | |
:-) | |||
01:10
jferrero joined
01:12
Chillance left
01:13
scott_ joined
01:14
scott_ is now known as Guest81734
01:33
havenn left
01:39
mucker left
01:43
shinobicl___ joined
01:48
mucker joined
|
|||
japhb | New HPatMoR chapter up ... | 02:02 | |
japhb prepares to settle in for a long Mono build while reading. :-) | 02:03 | ||
sorear | "long"? | ||
it always built faster than Rakudo for me. | 02:04 | ||
TimToady | maybe he meant 32 bits :) | ||
japhb | sorear, pretty old 32-bit laptop. And for Rakudo, I tend to start a build and then go do something else for a while. I expected much the same. :-) | 02:05 | |
02:05
whiteknight left
|
|||
japhb | Oy vey, just cloning the Git repo is taking a while. | 02:05 | |
02:07
sisar joined
|
|||
jnthn | evening, #perl6 | 02:20 | |
colomon | o/ | 02:21 | |
jnthn | Ooh, more pmichaud++ patches | 02:23 | |
sorear | it's funny that people have to say 32 bits now. | ||
o/ jnthn , colomon , sisar | |||
sisar | sorear, hi :) | 02:24 | |
02:32
alester joined
02:34
sisar left
|
|||
jnthn | masak++ # release | 02:34 | |
02:39
cbk1090 left
02:41
pyrimidine left
|
|||
colomon | ooo, masak++ | 02:44 | |
japhb | Damn. Chapter finished before compile. :-( | ||
02:46
cogno joined
02:50
ascent_ left
02:57
REPLeffect left
03:01
cogno left
03:02
Guest18067 left
03:05
cogno joined
03:06
benabik joined
03:07
ascent_ joined
|
|||
japhb | Sheesh. At this point, it's pretty clear mono is taking longer to build than Rakudo does. By a fair margin, methinks. | 03:07 | |
03:14
REPLeffect joined
03:18
cogno left
03:22
lestrrat left
03:23
jferrero left,
lestrrat joined
|
|||
pmichaud | jnthn: ping | 03:26 | |
jnthn | pmichaud: pong | ||
pmichaud | I forgot you were in the western hemisphere :) | ||
not used to that | 03:27 | ||
03:27
jferrero joined
|
|||
pmichaud | I think we may be to the point where we need a container type that is equivalent to Scalar but also flattens | 03:27 | |
jnthn | :) | ||
OK | 03:28 | ||
pmichaud | this might also be useful to finally fix the array/hash initialization issue (which somehow got dropped from NOMMAP) | ||
jnthn | Can it not be a flag on scalar? Or do you want a type differentiation? | ||
(we already have space for a flag) | |||
pmichaud | I'm fine with making it a flag on scalar, but that means you would likely need to set the flag on every scalar that gets created | 03:29 | |
and several things become flag checks instead of type checks | |||
jnthn | Hm | ||
Well, and sometimes you need the type check to know you can flag check :) | |||
pmichaud | it feels to me like it ought to be a base class of scalar | ||
*Scalar | 03:30 | ||
jnthn | Scalar is a perfectly normal object these days, so that should be no problem. | ||
pmichaud | and then Scalar is the type that we use for non-flattening things | ||
jnthn | What would you call the other one? | ||
Container? :) | |||
pmichaud | Container works for me | ||
but since that gets reasonably low-level I figured you'd be the person to come up with the appropriate name | 03:31 | ||
even just Variable works :) | |||
japhb | phenny, ask sorear I've compiled and 'make install'ed the base mono into /opt/mono/ . What other mono-related repos (presumably mostly under github.com/mono ) should I clone/build/install to get Maximum Happiness (tm) from niecza? | ||
phenny | japhb: I'll pass that on when sorear is around. | ||
sorear | pmichaud: Huh? | ||
phenny | sorear: 03:31Z <japhb> ask sorear I've compiled and 'make install'ed the base mono into /opt/mono/ . What other mono-related repos (presumably mostly under github.com/mono ) should I clone/build/install to get Maximum Happiness (tm) from niecza? | ||
sorear | I hear you trying to change the Perl 6 bottom turtles in the background, I vanna know what's up | 03:32 | |
pmichaud | I'm trying to get rakudo to match the spec. :-) | ||
Rakudo's bottom turtles don't match the spec's bottom turtles | |||
so, I'm really fixing Rakudo's bottom turtles, not Perl 6's | |||
:-) | |||
sorear | is this an S09 thing? | ||
pmichaud | not really | 03:33 | |
rakudo: my @a; say @a.defined; | |||
p6eval | rakudo e2ebf3: OUTPUT«True» | ||
pmichaud | I suspect that should be False. | ||
sorear | japhb: glib is the only library that niecza will automatically use without asking | ||
03:33
mucker left
|
|||
sorear | pmichaud: I don't understand how that can be False in any reasonable model | 03:33 | |
pmichaud | sorear: my understanding is that arrays and hashes aren't defined until they have a value assigned to them. this has been discussed before; most recently last summer | 03:34 | |
Rakudo has mis-implemented this for quite some time; it's been on the "to do" list for fixing for a while also. | 03:35 | ||
let me see if I can find the relevant #perl6 discussions | |||
sorear | I think this is completely insane. Niecza has implemented the sane version for a while ;) | 03:36 | |
I'd be interested in knowing what model you're using, since you seem to not think it is insane. | |||
pmichaud | sorear: it's not my choice of model either | ||
I'm not switching Rakudo out of a preference, I'm switching based on previous discussions of the spec | 03:37 | ||
sorear | by "model" I mean "that which I physically cannot begin to implement a spec without first having" | ||
japhb | sorear, 1) Is there a particular repo I need to build to make that work? I don't see a bare 'glib' listed there, but I do see dbus-sharp-glib and gtk-sharp (and gtk-sharp-beans, whatever that is ...) 2) I'm one of those people who likes to just install all the optional libs that some project might want, so that I don't later get annoyed that some example code somewhere doesn't work. :-) | ||
shinobicl___ | rakudo: my @a; say @a.empty; | 03:38 | |
p6eval | rakudo e2ebf3: OUTPUT«Method 'empty' not found for invocant of class 'Array' in block <anon> at /tmp/kjeFloO1TU:1» | ||
jnthn | pmichaud: I don't feel strongly on the name, fwiw. | ||
pmichaud | perl 5 uses something along this line. | ||
sorear | I guess I'm using it in the mathematical sense - the spec is a list of axioms, but I need to know that they are consistant | ||
jnthn | pmichaud: I don't have an awesome suggestion right off. | ||
shinobicl___ | hehe... to much php for me on the last weeks | ||
sorear | having a model == convincing myself that there is *a* way to implement the axioms | ||
jnthn | sorear: If pmichaud++ implements it in Rakudo I guess that's a proof. ;) | 03:39 | |
sorear | apparently pmichaud does not think that (my @a).defined is unimplementable | ||
pmichaud | no, I know it's implementable. | ||
sorear | sure, I can just copy it after he's done ;) | ||
pmichaud | essentially my @a; initializes itself to be Array of Any (a type object) | ||
same as how my $a is initialized to a type of object | 03:40 | ||
s/type of/type/ | |||
jnthn | sorear: I forget the details, but I remember discussing this some time back and being happy it was doable. I forgot the details, but hopefully Pm remembers them better ;) | ||
pmichaud | yeah, I'm having to search. I wish there was a place where I could ack the #perl6 logs | ||
the search on perlgeek.de isn't quite powerful enough to narrow it down on its own | 03:41 | ||
I suppose I could scrape perlgeek.de's site via the text.pl hook | 03:42 | ||
sorear | oh right, I reamamber now | 03:43 | |
03:43
shinobicl___ left
|
|||
pmichaud | anyway, earlier #perl6 discussion today indicates that arrays (and hashes) need to have containers that aren't Scalar | 03:43 | |
i.e., currently treats an Array as being an aggregate of Scalar objects.... but Scalars don't flatten. So I want a container type that flattens. | 03:44 | ||
sorear | the big question that came up for me is - when autovivifying an Array object, we need to do $magic to write Array.new into the atomic container | ||
pmichaud | yes, it's related to autoviv as well :) | ||
03:44
colomon left
|
|||
sorear | as I understand this model, my @a; push @a, 5; say @a; does exactly the same operations as with s/'@'/$/g | 03:45 | |
pmichaud | correct. | ||
sorear | anyways, the autoviv magic is *not* @a = Array.new | ||
because that changes the items of the array, not the @a atomic container | |||
I guess we want some kind of primitive STORE(@a, Array.new) macro | 03:46 | ||
which coincides with &infix:<=> for scalar containers | |||
pmichaud | anyway, before I can make much progress on Rakudo's side I need to have the container type that is distinguishable from Scalar somehow :) | ||
then I can play with it all a bit and hopefully come up with something sane that also matches what TimToady has been describing | 03:47 | ||
jnthn | pmichaud: To add it, edit BOOTSTRAP.pm. Search for Scalar. It should be relatively clear what to do. | ||
sorear | re 'Variable' - I've actually seriously considered renaming it to SV, because 1. I have to type it a mazillion times 2. helps a possibly significant fraction of would-be core hackers to get it | ||
oh, and wb pmichaud | 03:48 | ||
pmichaud | jnthn: okay, I'll give it a shot. I didn't know if there would be any big gotchas in fiddling with Scalar. | ||
sorear | how are y'all michauds doing? | ||
jnthn | pmichaud: Well, there's the "container spec" thing which you can likely cargo cult your way through. | ||
pmichaud: It's the thingy that says "I'm see-through" | 03:49 | ||
BOOTSTRAP.pm just configures it on the type. | |||
03:49
cogno joined
|
|||
pmichaud | jnthn: well, part of the problem is that istr that there are some places where we treat "iscont" and "Scalar" as being roughly equivalent. | 03:49 | |
jnthn | pmichaud: You may need to diddle some bits in src/binder/container.c | ||
pmichaud | ...and yes, it impacts the bindery :) | 03:50 | |
jnthn | pmichaud: Yes, you'll likely also have to clean up there | ||
pmichaud | sorear: we michaud's continue to ride the rollercoasters here | ||
03:50
orafu left
|
|||
cogno | Masak, that may be of interest to you : convergepl.org/documentation/1.2/ctmp/ | 03:50 | |
jnthn | pmichaud: fwiw, the "binder" directory thse days would probably be better called "guts-written-in-c" or something :) | ||
03:50
leprevost joined,
orafu joined
|
|||
pmichaud | jnthn: yes, that's true also :) | 03:50 | |
jnthn | It never quite bugged me enough to change it yet. | 03:51 | |
pmichaud | anyway, I'll see if I can barrel my way through it, but I'm likely to have some questions/problems along the way | ||
jnthn | OK. I'm gonna sleep now, but I'll be about online relatively often; just phenny me, or privmsg. | 03:52 | |
pmichaud | will do. thanks for the pointers | ||
jnthn | I don't always take the time to fully backlog while on vacation :) | ||
pmichaud | I don't even take the time to fully backlog while not on vacation :) | ||
jnthn | ;-) | ||
OK, sleep time... :) | 03:54 | ||
'night o/ | |||
japhb | o/ | 03:56 | |
pmichaud | afk for me too | 03:57 | |
bbt | |||
04:04
cogno left
04:06
birdwindupbird joined
04:11
parthm joined
04:21
alester left
04:27
Su-Shee left
04:29
Su-Shee joined
|
|||
sorear | n: 1, 2i, -4 ... 256 | 04:45 | |
p6eval | niecza v15-4-g1f35f89: ( no output ) | ||
sorear | n: say 1, 2i, -4 ... 256 | ||
p6eval | niecza v15-4-g1f35f89: OUTPUT«1 0+2i -4 0-8i 16+0i 0+32i -64+0i 0-128i 256+0i» | ||
04:46
odoacre joined
05:22
leprevost left
05:34
stepnem left
05:39
stepnem joined
05:41
bbkr left
|
|||
moritz | o morning | 05:49 | |
r: say (1, 2i, -4 ... 256 | |||
p6eval | rakudo e2ebf3: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2» | ||
moritz | r: say (1, 2i, -4 ... 256)[^°] | ||
p6eval | rakudo e2ebf3: OUTPUT«===SORRY!===Preceding context expects a term, but found infix ^ instead at line 1, near "\x{b0}]"» | ||
moritz | r: say (1, 2i, -4 ... 256)[^10] | ||
moritz not quite awake yet | |||
p6eval | rakudo e2ebf3: OUTPUT«(timeout)» | 05:50 | |
05:52
kaleem joined
|
|||
sorear | hi moritz | 05:54 | |
moritz: see p6l | 05:55 | ||
moritz | nom: say (-4) / 2i | 05:58 | |
p6eval | rakudo e2ebf3: OUTPUT«0+2i» | ||
moritz | nom: say (-4) / 2i == 2i / 1 | 05:59 | |
p6eval | rakudo e2ebf3: OUTPUT«True» | ||
05:59
lestrrat left,
lestrrat joined
|
|||
moritz doesn't see any explanation for the hang on p6l | 06:06 | ||
TimToady | perl6: say (-16+0i) * (-16+0i) ~~ 256 | ||
p6eval | rakudo e2ebf3, niecza v15-4-g1f35f89: OUTPUT«True» | ||
..pugs: OUTPUT«» | |||
TimToady | seems to smartmatch okay | 06:07 | |
moritz | it seems it hangs while trying to deduce the sequence, not while generating it | ||
r: say (1, 2, 4 ... 250)[^10] | |||
p6eval | rakudo e2ebf3: OUTPUT«1 2 4 8 16 32 64 128 256 512» | ||
TimToady | so it should work even if 256 doesn't match | 06:08 | |
moritz | correct | ||
oh | 06:11 | ||
nom: say 2i != 0 | |||
p6eval | rakudo e2ebf3: OUTPUT«(timeout)» | 06:12 | |
moritz | nom: say 2i !== 0 | ||
p6eval | rakudo e2ebf3: OUTPUT«True» | ||
TimToady | huh, dededededesugaring? | ||
nom: say not 2i == 0 | 06:13 | ||
p6eval | rakudo e2ebf3: OUTPUT«True» | ||
TimToady | nom: say i != 0 | 06:14 | |
p6eval | rakudo e2ebf3: OUTPUT«(timeout)» | ||
TimToady | nom: say i != 0i | ||
moritz | != doesn't just redispatch to !== | ||
but has its own candidates | |||
p6eval | rakudo e2ebf3: OUTPUT«(timeout)» | ||
moritz | and the ones for Complex are missing | 06:15 | |
and so it t | 06:16 | ||
tries to convert to .Numeric, and then redispatches | |||
and ends up in the same candidate | |||
TimToady wonders if implementing != that way can do the correct not-raising in the face of junctions that a true ! metaop can do as a higher-order function | 06:18 | ||
06:19
mucker joined
|
|||
TimToady | seems like rewriting to !== would be cleaner in that respect | 06:19 | |
moritz | nom: my $j = 1|2|3; say $j != 3; say $j !== 3 | ||
p6eval | rakudo e2ebf3: OUTPUT«any(True, True, False)False» | ||
TimToady | niecza: my $j = 1|2|3; say $j != 3; say $j !== 3 | 06:20 | |
p6eval | niecza v15-4-g1f35f89: OUTPUT«FalseFalse» | ||
TimToady | niecza has it right | 06:21 | |
moritz | dispatching to the !== form has another advantage | ||
fewer ops to define when adding custom types | |||
TimToady | indeed | ||
06:22
lestrrat left
06:23
lestrrat joined
|
|||
TimToady | perl6: my $j = 1|2|3; say $j ne 3; say $j !ne 3 | 06:26 | |
p6eval | rakudo e2ebf3, niecza v15-4-g1f35f89: OUTPUT«FalseTrue» | ||
..pugs: OUTPUT«any(VBool False,VBool True)any(VBool False,VBool True)» | |||
tadzik | good morning | ||
TimToady | perl6: my $j = 1|2|3; say $j ne 3; say $j !eq 3 | 06:27 | |
06:27
benabik left
|
|||
p6eval | rakudo e2ebf3, niecza v15-4-g1f35f89: OUTPUT«FalseFalse» | 06:27 | |
..pugs: OUTPUT«any(VBool False,VBool True)any(VBool False,VBool True)» | |||
TimToady | pugs doesn't do not-raising since it hadn't been specced yet | ||
06:29
benabik joined
|
|||
dalek | kudo/nom: 4a247b1 | moritz++ | src/core/ (5 files): make != redispatch to not == this fixes both a hang of != with complex numbers, and not-raising with Junctions only natively typed variants of != and a (Mu, Mu) candidate remain |
06:43 | |
06:45
wolfman2000 left
|
|||
dalek | ast: 57f0c48 | moritz++ | S32-num/complex.t: != and complex numbers |
06:50 | |
06:52
y3llow left
06:53
kcwu left
06:54
bruges left
06:55
benabik_ joined
06:56
benabik left,
benabik_ is now known as benabik
07:00
benabik left
07:02
benabik joined,
havenn joined
07:05
NamelessTee joined
07:14
wtw joined
|
|||
moritz | \o/ new HPMoR chapter! | 07:29 | |
07:31
havenn left,
bruges joined
07:32
kcwu joined,
y3llow joined
07:34
y3llow left,
y3llow joined
07:36
y3llow left,
y3llow joined
07:40
tarch joined
07:46
araujo left
07:48
benabik_ joined
07:49
benabik left,
benabik_ is now known as benabik
08:03
mj41 joined
08:11
pjcj left
08:18
fglock joined
08:20
pjcj joined
|
|||
tadzik | I'm running late on those | 08:22 | |
08:33
lestrrat left
08:34
lestrrat joined
08:39
am0c joined
08:46
parthm left
08:55
lestrrat left
08:56
lestrrat joined
|
|||
moritz | I'm upgrade feather2 to Debian stable now | 08:59 | |
*upgrading | |||
just noticed that it runs oldstable, which doesn't receive security updates anymore | 09:00 | ||
tadzik | moritz++ | ||
moritz | Juerd: can I safely reboot feather2 after the kernel upgrade? | 09:01 | |
09:07
sisar joined
|
|||
moritz | oh, and I'm also running upgrades on feather{1,3} | 09:18 | |
though they don't involve major version upgrades | 09:19 | ||
The apache2 configtest failed, so we are trying to kill it manually. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now! ... (warning). | 09:26 | ||
eeks. | |||
09:28
nwc10 joined
|
|||
moritz | /usr/sbin/apache2: symbol lookup error: /usr/sbin/apache2: undefined symbol: pcre_info | 09:37 | |
oh, fun | 09:42 | ||
libpcre3 dropped some symbols | |||
bugs.debian.org/cgi-bin/bugreport.cgi?bug=665300 | 09:43 | ||
ok, apache runs again | 09:52 | ||
nom: (anon sub tract($n) { say $n; tract($n-1) if $n }).(5) | 09:54 | ||
p6eval | rakudo 4a247b: OUTPUT«===SORRY!===Cannot use 'anon' with sub declarationat /tmp/EaunHq68DB:1» | ||
moritz | hm | 09:55 | |
10:11
colomon joined
10:12
Guest81734 left
10:31
sisar left
10:32
retup_work left
10:35
bbkr joined
|
|||
bbkr | release \o/ | 10:36 | |
felher | If i write >>echo -e 'my $x; $x := 1' | nom<< it works just fine. But if i write >>echo -e 'my $x;\n $x := 1' | nom<< i get 'Cannot use bind operator with this left-hand side'. Is this expected behavior? | 10:43 | |
10:45
daxim joined
10:47
retup_work joined
|
|||
arnsholt | felher: Two things to try, I think. 1) Does the same thing happen if you put the two in files? 2) What happens if you type the two into the REPL? | 10:49 | |
felher | arnsholt: Piping the output of echo to nom should be the same as typing them into repl. | 10:54 | |
arnsholt | Should be the same, yes. Is it? (I don't have an updated nom on hand, so I can't test myself) | 10:55 | |
felher | arnsholt: if i put in a file an run it, it doesn't happen (NQP only allows binding, so NQP wouldn't work at all if re-binding on different lines wouldn't work) :) | 10:56 | |
bbkr | same behavior on OSX, weird... | ||
felher | arnsholt: yes, it is. As long as nom doesn't do something strange with a detected pipe. But since >> cat | nom << just works like repl, i don't think it does :) | 10:57 | |
bbkr | for me it happens also if put in file and piped using "cat file | perl6" | 10:58 | |
felher | bbkr: yeah, >> cat file | perl6 << is the same as executing perl6 and then typing it in. | 10:59 | |
bbkr: i don't know how high your unix-skillz are, but that is how it works: if you write programm | other-program, then other-program's standard input gets connected to the standard output of program. The catch is, that the standard input is where what you type comes from. So the other-program doesn't see a difference between you typing whats in the file and the 'cat file | other-program' | 11:02 | ||
bbkr: it can, however, detect it if it wants to. There a 'isatty(int fd)' function, that checks if your input is a tty or something different. | 11:03 | ||
to be more precise. It checks if the 'thing' associated with the file-descriptor fd is a tty or something else :) | 11:05 | ||
11:11
xinming joined
|
|||
bbkr | echo -e 'my $x;\nsay $*IN.get' | perl6 - this one works as expected, I thought that string that should be interpreted is somehow bound to $*IN, but it's not the case | 11:12 | |
felher | bbkr: if you do what you've written, then perl6 'consumes' everything including 'say $*IN.get' to execute it. $*IN.get gets executed and is waiting for a some input. But since you didn't supply any more input, it doesn't get any and sees that it has read all that there is and returns an empty string. | 11:16 | |
bbkr: >>echo -e 'my $x;\nsay $*IN.get\nblar' | perl6<< will also get you "blar" printed, fwiw :) | 11:17 | ||
bbkr | oh, nice trick for torturing people on job interviews, thanks! | 11:19 | |
felher | bbkr: what is the job you interview people for? | 11:20 | |
bbkr | perl development for getresponse.com engine | 11:22 | |
felher | bbkr: ah, so i guess you are from germany, too? | 11:24 | |
bbkr | Poland | 11:25 | |
felher | bbkr: kk :) | 11:27 | |
tadzik | bbkr: where are you hiring, ooc? | ||
11:29
pernatiy joined
|
|||
bbkr | Trojmiasto | 11:29 | |
tadzik | I see | 11:30 | |
bbkr | what should I do to include JSON::RPC in Star release? is there any review process? | 11:31 | |
tadzik | is it useful and does it pass its tests? If so, then I (or anyone else) can include it any time | 11:32 | |
11:32
jlaire left
|
|||
masak | good postnoon, #perl6. | 11:33 | |
bbkr | useful. checking compatibility with .03 release right now. | ||
masak enjoyed a nice antenoon with breakfast and HPMoR | 11:34 | ||
tadzik | hello masak | 11:36 | |
11:40
jlaire joined
|
|||
masak | ooh, more nice p6l emails. | 11:40 | |
we should predict the imminent death of other fora we wish to enliven :P | |||
bbkr | .03 release failed to build with: "/opt/local/include/unicode/uset.h:250: error: function declaration isn't a prototype" | 11:46 | |
tadzik | are you using blead parrot, maybe? | ||
benabik | ... I thought we fixed that. | ||
How do you specify ICU's location? | 11:47 | ||
bbkr | I downloaded tarball and ran " perl Configure.pl --gen-parrot", ICU is installed from MacPorts (no problem with previous release building) | ||
benabik | Oh dear, did we fix that after the release? Blarg. | 11:49 | |
bbkr | I use icu 4.6.1 | ||
benabik | We upgraded something to an error, but the way we included ICU makes the check hit it. | ||
11:50
araujo joined,
am0c left
11:51
skids left
|
|||
benabik | Blarg. I have to go and don't have a quick answer for you. It was fixed in a6b93466fca7d6a7c335d649954e5bb71e339aa7 | 11:52 | |
masak | r: .say for 1, 2i, -4 ... 256 | 11:55 | |
p6eval | rakudo 4a247b: OUTPUT«10+2i-4-0-8i16+-0i0+32i-64+0i-0-128i256+-0i» | ||
masak | \o/ | 11:56 | |
moritz++ | 12:01 | ||
12:06
not_gerd joined
|
|||
not_gerd | hello, #perl6 | 12:07 | |
bbkr: use --gen-parrot=master or fix the ICU header by replacing `uset_openEmpty();` with `uset_openEmpty(void);` | |||
bbkr | testing right now | 12:09 | |
12:24
jaldhar left
12:32
kaleem left,
kaleem joined
12:33
fgomez left
12:39
benabik left
12:46
jaldhar joined
|
|||
bbkr | --gen-parrot=master did not help :( | 12:58 | |
13:00
xinming left
|
|||
dalek | ast: f7b449b | moritz++ | S03-junctions/autothreading.t: test that != autothreads like !== |
13:04 | |
not_gerd | bbkr: can you paste your config_lib.pir somewhere? | ||
13:05
xinming joined
13:06
xinming left,
xinming joined
13:11
xinming left
13:12
xinming joined
13:19
NamelessTee left,
skids joined
|
|||
jnthn | phenny: any messages for me? :) | 13:24 | |
ah, no then | |||
13:24
xinming left
|
|||
nwc10 | lucky you. More time for holiday. | 13:24 | |
moritz | jnthn: but there's something I wanted to ask you :-) | ||
jnthn: at GPW we discussed throwing exceptions by having a hash of subs that generate those exceptions... | 13:25 | ||
jnthn | Ja. | ||
moritz | jnthn: somehow that needs to be installed in a parrot namespace | ||
jnthn: the question is, when and how? | |||
13:26
xinming joined
|
|||
moritz | immediately after it is assembled, and then at startup? | 13:26 | |
bbkr | bbkr.org/~bbkr/config_lib.pir | 13:27 | |
jnthn | moritz: Try putting them in a Pelr 6 hash at BEGIN time (e.g. in a BEGIN block). Then in the setting mainline or in an INIT block after that, grab said hash, use nqp::getattr to pull out the storage (a Parrot hash) and stick it into the Parrot ns like we do with PROCESS in BOOTSTRAP.pm | ||
*Perl | |||
nwc10: Well, waiting for a vaguely infrequent bus to take me out to a cable car so I can see some nice views at the moment :) | 13:28 | ||
So have some spare minutes anyway :) | |||
moritz | jnthn: is the setting mainline run every time we run a Perl 6 program? | 13:30 | |
not_gerd | bbkr: your ICU headers are in /opt/local/include? | ||
jnthn | Once | ||
13:30
xinming left
13:31
sisar joined
|
|||
moritz | are the namespaces serialized? | 13:31 | |
bbkr | not_gerd: /opt/local/include/unicode/icudataver.h | 13:32 | |
not_gerd: and /opt/local/include/unicode/icuplug.h | |||
jnthn | moritz: No | 13:33 | |
moritz: That's why I said build a Perl 6 hash in a BEGIN block :) | |||
And install it each time. :) | |||
e.g. | |||
moritz | ah, the INIT block is run each time | ||
jnthn | pir::op_to_install(..., nqp::getattr(BEGIN { }, Hash, '$!storage')) | 13:34 | |
moritz | but is INIT early enough? | ||
jnthn | moritz: The setting's INIT time happens when it's loaded | 13:35 | |
moritz: That happens before any program-space BEGIN blocks | |||
moritz | jnthn: ah, good | 13:36 | |
nom: constant %h = 1, 2; say %h.WHAT | 13:37 | ||
p6eval | rakudo 4a247b: OUTPUT«Parcel()» | ||
moritz submits rakudobug | |||
jnthn | Hm :) | ||
jnthn wonders how that one is meant to work :) | 13:38 | ||
Though, constant %h = { ... } gets you what you want. | |||
moritz | maybe like constant %h := (my % = ...) | ||
jnthn | Or that. | ||
moritz | n: constant %h = 1, 2; say %h.WHAT | 13:39 | |
p6eval | niecza v15-4-g1f35f89: OUTPUT«Hash()» | ||
moritz | nom: 1.foo | 13:40 | |
p6eval | rakudo 4a247b: OUTPUT«Method 'foo' not found for invocant of class 'Int' in block <anon> at /tmp/B6qDyNoYwE:1» | ||
moritz | nom: role a { }; a.foo | 13:41 | |
p6eval | rakudo 4a247b: OUTPUT«Method 'foo' not found for invocant of class 'a' in <anon> at src/gen/Metamodel.pm:1166 in block <anon> at /tmp/H3JPtdWv1O:1» | ||
pmichaud | good morning, #perl6 | 13:42 | |
moritz | good am, pm | ||
not_gerd | bbkr: could you apply gist.github.com/2170678 to your parrot checkout? | ||
after that, do a perl Configure.pl --optimize --prefix=/Users/bbkr/Developer/Perl6/rakudo/install from your parrot source directory | 13:43 | ||
if you config_lib.pir then contains some -isystem lines, running make should work again... | |||
jnthn | morning, pmichaud | 13:45 | |
Hey, we have the same idea of morning! :) | |||
pmichaud | jnthn: yes, very odd | ||
nwc10 | the declination on his compass will differ | 13:46 | |
13:47
xinming joined
|
|||
pmichaud | well, that's just because of my magnetic personality :) | 13:48 | |
jnthn | :) | 13:49 | |
13:50
kaleem left
|
|||
jnthn | OK, time for me to go and find my bus :) | 13:50 | |
back in some hours | |||
moritz | r: my $h := pir::get_root_global__PS('perl6'); nqp::bindkey($h, 'abc', 'foo') | 13:52 | |
p6eval | rakudo 4a247b: ( no output ) | ||
pmichaud | might need a 'Mu' | ||
moritz | my-variables are Mu-typed by default | 13:53 | |
13:54
plutoid joined
13:56
mucker left
13:57
mucker joined
|
|||
moritz | r: INIT { constant %h := { 'abc' => 'foo' } } | 14:01 | |
p6eval | rakudo 4a247b: ( no output ) | ||
14:01
ascent_ left,
ascent_ joined
14:02
havenn joined,
mucker left
|
|||
masak | r: say <h d r f sh>.pick(*) X~ 'uffle' | 14:02 | |
p6eval | rakudo 4a247b: OUTPUT«duffle fuffle shuffle huffle ruffle» | ||
14:03
mucker joined
|
|||
moritz | r: INIT { constant %h := { 'abc' => { 2.sqrt(:$^foo, :$^bar) } } } | 14:03 | |
p6eval | rakudo 4a247b: ( no output ) | ||
moritz | r: say <h d r f sh>.roll(4) X~ 'uffle' | ||
p6eval | rakudo 4a247b: OUTPUT«ruffle huffle ruffle shuffle» | ||
moritz | pseudo-random poetry ftw! | ||
pmichaud | is there a way to determine that a Parameter is slurpy positional? | 14:04 | |
masak | this backlog is brought to you by Dr Seuss. | ||
moritz | theres a .slurpy method | ||
and I think !.named | |||
14:05
mucker left
|
|||
moritz | yes, .slurpy && !.named | 14:05 | |
pmichaud: if you're doing that for arity/count thing, you also need to consider .capture | |||
pmichaud | sub xyz(*%abc) { 1 }; say xyz.signature.params.perl | ||
rakudo: sub xyz(*%abc) { 1 }; say xyz.signature.params.perl | |||
p6eval | rakudo 4a247b: OUTPUT«Method 'signature' not found for invocant of class 'Int' in block <anon> at /tmp/vcEGzqNMzq:1» | ||
14:05
mucker joined
|
|||
moritz | &xyz | 14:05 | |
pmichaud | rakudo: sub xyz(*%abc) { 1 }; say &xyz.signature.params.perl | ||
p6eval | rakudo 4a247b: OUTPUT«(%abc!,).list» | ||
moritz | note that Parameter.perl isn't very good at the moment | 14:06 | |
pmichaud | rakudo: sub xyz(*%abc) { 1 }; say &xyz.signature.params{'abc'}.perl | ||
p6eval | rakudo 4a247b: OUTPUT«Method 'at_key' not found for invocant of class 'List' in method postcircumfix:<{ }> at src/gen/CORE.setting:1184 in block <anon> at /tmp/jqIjDeQNiA:1» | ||
pmichaud | rakudo: sub xyz(*%abc) { 1 }; say &xyz.signature.params[0] | ||
p6eval | rakudo 4a247b: OUTPUT«%abc!» | ||
pmichaud | rakudo: sub xyz(*%abc) { 1 }; say &xyz.signature.params[0].slurpy | ||
p6eval | rakudo 4a247b: OUTPUT«True» | ||
pmichaud | rakudo: sub xyz(*%abc) { 1 }; say &xyz.signature.params[0].named | ||
p6eval | rakudo 4a247b: OUTPUT«True» | ||
pmichaud | rakudo: sub xyz(*%abc) { 1 }; say &xyz.signature.params[0].positional | ||
p6eval | rakudo 4a247b: OUTPUT«False» | ||
pmichaud | hmmm. | ||
14:07
nwc10 left
|
|||
pmichaud | okay, .slurpy and !.named | 14:07 | |
rakudo: sub xyz(*@abc) { 1 }; say &xyz.signature.params[0].positional | |||
p6eval | rakudo 4a247b: OUTPUT«False» | ||
pmichaud | rakudo: sub xyz(*@abc) { 1 }; say &xyz.signature.params[0].named | ||
p6eval | rakudo 4a247b: OUTPUT«False» | ||
pmichaud | rakudo: sub xyz(*@abc) { 1 }; say &xyz.signature.params[0].slurpy | ||
p6eval | rakudo 4a247b: OUTPUT«True» | ||
pmichaud | moritz: .capture, yes, thanks. | 14:08 | |
14:08
NamelessTee joined
14:10
JimmyZ joined,
mucker left
14:12
leprevost joined
14:15
havenn left
14:18
havenn joined
|
|||
bbkr | not_gerd: your patch worked, thanks! | 14:19 | |
not_gerd | moritz: github.com/parrot/parrot/pull/748 | 14:20 | |
masak | not_gerd++ | 14:21 | |
bbkr | not_gerd++ | ||
moritz | not_gerd: thanks. Sadly I know next to nothing about mac os, so I'd like to wait for somebody who does to apply it | ||
masak | moritz: any thoughts on the two test failures from yesterday? | 14:24 | |
moritz | masak: just that it's specific to Mac OS | ||
masak: I got a similar report at GPW | |||
masak: is it new(ish)? | 14:25 | ||
method dispatch:<.^>(Mu \$self: $name, |$c) { | 14:26 | ||
self.HOW."$name"($self, |$c) | |||
} | |||
that one is causing infinite recursion during compilation during my experiments | 14:27 | ||
probably because it's called before .Stringy or .Str or so isn't yet set up correctly | |||
any idea how to make that more robust? | |||
pmichaud | is $name not a string at that point? | 14:29 | |
moritz | I have no idea | ||
pmichaud | as listed there it seems pretty robust-ish to me | ||
moritz | I'm trying to create a hash at compile time inside the setting | ||
pmichaud | at what point inside the setting? | 14:31 | |
before Stringy/Str are defined? | |||
moritz | no, later (in Exception.pm) | ||
masak | moritz: I'm not on Mac OS. I made the release on Arch Linux for the first time yesterday. | ||
moritz | masak: oh. | ||
masak: then it is dependent on some other parameter that I don't know | |||
(maybe ICU version?) | 14:32 | ||
masak | maybe. | ||
moritz | masak: do you have ICU installed? | ||
masak | yes. | ||
icuinfo says 'Compiled-Version: 4.8.1.1' | |||
14:32
jaldhar left
|
|||
masak | it's from 2011. | 14:33 | |
moritz | gist.github.com/2171207 that's the bottom of the backtrace | ||
14:34
havenn left,
havenn joined
|
|||
pmichaud | my patch for .count seems to work -- all spectests pass | 14:35 | |
moritz | \o/ | 14:36 | |
felher | If i want to specify this sub returns a String-Array would i write "my Array of Str sub returns-array-of-strings() { ... }"? | ||
not_gerd | bbkr: alester just merged my pull request, ie --gen-parrot=master should work again | ||
moritz | n: say 0, sub { @_.elems } ... 5 | 14:37 | |
p6eval | niecza v15-4-g1f35f89: OUTPUT«0 1 2 3 4 5» | ||
moritz | pmichaud: does that sequence work with your patch? | ||
felher: yes (though NYI) | |||
pmichaud | moritz: nope | ||
but I can likely fix that. | |||
moritz | :( | ||
:) | |||
sjn | (: | 14:38 | |
pmichaud | need a short break, first -- brb | ||
felher | moritz: good :) | 14:39 | |
ty | |||
TimToady | ◡̈ | 14:41 | |
masak | ? | 14:42 | |
TimToady | might look better at irclog.perlgeek.de/perl6/2012-03-23#i_5340249 | 14:43 | |
masak | oh, Unicode sorcery. | ||
I desperately need to get gnome-terminal configured properly on Arch. | |||
TimToady | doesn't print right on my gnome terminal | ||
tadzik | looks fine in Konsole | 14:44 | |
masak | I'm not desperate enough to install KDE stuff. :) | ||
yet. | |||
TimToady | well, there's always sourcery as a fallback | 14:45 | |
huf | is it supposed to be a smiley? | ||
TimToady | yes | ||
tadzik | masak: I think it's a matter of font, not a terminal | ||
TimToady | looks good in firefox on my machine | ||
huf | i wonder why my browser cant display it right but urxvt can :D | ||
yeah, probably a bad font | |||
tadzik | I'm using Dejavu sans mono | ||
masak | tadzik: know any good fixed-width Linux fonts that do the whole Unicode thingy? | ||
huf | masak: fixed is pretty good | 14:46 | |
at least one size of it ;) | |||
tadzik | masak: dejavu sans mono is fine, terminus also has plenty of characters | ||
although I had no, this... | |||
r: say '' | |||
p6eval | rakudo 4a247b: OUTPUT«» | ||
tadzik | yeah, this square on terminus on arch, while I have it on terminus on debian :) | ||
14:47
tokuhiro_ joined
|
|||
masak | I have both DejaVu Sans Mono and Terminus installed already. neither of them gives me any Unicode characters :( | 14:47 | |
I tried playing around with the LANG envvar earlier today, but in vain. | |||
tadzik | do you see lots of UTF-8 upon typing 'locale'? | 14:48 | |
masak | no, it be filled with "POSIX". | 14:49 | |
maybe that's the problem. | |||
moritz | try setting LANG=en_US.UTF-8 | ||
14:50
thou joined
14:51
thou left
|
|||
masak | that's what I tried earlier today, through 'export LANG=en_US.UTF-8' | 14:52 | |
no change. | |||
moritz | it won't affect the terminal you're in | 14:53 | |
tadzik | masak: go for /etc/locale-gen, see if they're there | ||
moritz | you need to start a new terminal from within the shell where you changed the variable | ||
tadzik | or locale.gen | ||
masak | moritz: yes, I restarted gnome-terminal. no change. | ||
tadzik: ok, looking. | 14:54 | ||
moritz | masak: where did you define the env variable? | ||
14:55
jferrero left
|
|||
pmichaud | was there an RT ticket filed for the slurpy sequences issue? | 14:56 | |
moritz | dunno | 14:57 | |
masak | moritz: in ~/.bash_profile | ||
moritz | masak: that's probably too late | ||
masak | tadzik: hm, yes. I found /etc/locale-gen, and commented out en_US.UTF-8 | ||
moritz: any recommendations where to put it? | |||
moritz | masak: how do you launch the terminal? | 14:58 | |
14:58
jferrero joined
|
|||
moritz | if it's a desktop icon, it probably has some options to define env variables, or execute shell scripts | 14:58 | |
that's where you should do it | |||
masak | no, so far I've just beeing typing 'gnome-terminal' in xterm. | 14:59 | |
moritz | then it's ok, if you source the .bashrc inside the xterm | ||
tadzik | masak: no no, don't comment it _out_ | 15:00 | |
masak | tadzik: er, sorry. uncommented :) | ||
tadzik | masak: ok, now run locale-gen | 15:01 | |
masak | moritz++' suggestion (source .bash_profile and then start gnome-terminal) works and causes locale to spew out a lot of en_US.UTF-8 lines. | 15:02 | |
pmichaud | pmichaud@kiwi:~/p6/rakudo$ ./perl6 | ||
> say 0, sub { @_.elems } ... 5 | |||
0 1 2 3 4 5 | |||
moritz | \o/ | ||
masak | possibly tadzik's help was necessary for this to work as well (I did run locale-gen after editing the file) | ||
pmichaud | spectesting | ||
masak | but I'm still not getting Unicode chars in gnome-terminal :/ | ||
tadzik | ok, good that it works :) | ||
masak: what font are you using? | 15:03 | ||
moritz | masak: none at all? | ||
pmichaud | fwiw, I've been using rxvt-unicode as my terminal for some time and I like it. | ||
tadzik | masak: how about zażółć gęślą jaźń? | ||
yeah, urxvt is nice | |||
15:03
eiro left
|
|||
masak | tadzik: DejaVu Sans Mono. | 15:03 | |
tadzik | should be fine | 15:04 | |
masak | yeah, it should! | ||
pmichaud: ok, I'll try that one. | |||
tadzik | masak: are you _now_ on the terminal with dejavu and a proper locale? | ||
pmichaud | package is likely urxvt | ||
tadzik | try copypasting zażółć gęślą jaźń there, if not | ||
masak | tadzik: I am _now_ on that gnome-terminal, yes. | 15:05 | |
tadzik | okay | ||
hmm | |||
masak | tadzik: I see 'za?�?? g??l? ja??' | ||
though there are more question marks on my screen than in the backlog. | 15:06 | ||
tadzik | okay, that's interesting | ||
15:06
jferrero left
|
|||
moritz | masak: try xterm -en utf8 just for the lulz | 15:07 | |
tadzik | masak: are you on ssh by any chance? | ||
masak | fwiw, the `locale` output on feather (to where I'm ssh'ing and where I'm using screen) is all "POSIX". | ||
moritz | masak: first test Unicode stuff locally | 15:08 | |
perlgeek.de/en/article/set-up-a-cle...nvironment | |||
masak | but the ssh connexion has never been the problem before, so I assumed that wasn't it. | ||
15:08
eiro joined
|
|||
masak | ok. | 15:08 | |
pmichaud | the font I've been using with my terminal is called "Monospace" | ||
it appears to come from the cups package | |||
although I could be wrong about its source | 15:09 | ||
15:09
xinming left
|
|||
masak | moritz: the euro sign test works locally. | 15:09 | |
works in my ssh'd session on feather, too. | |||
moritz | masak: then don't mess with the terminal, the problem is somewhere else | ||
15:09
araujo left
|
|||
TimToady | whenever I try to look at my gnome-terminal profile, it blows up all my terminals, *and* my firefox, *and* my gnome-panel, sigh | 15:10 | |
15:10
araujo joined
|
|||
TimToady is starting to hate harder on Ubuntu | 15:10 | ||
masak | moritz: my `locale` output is now very similar to the one in your article. just my last line LC_ALL is empty. | ||
moritz | masak: that's OK (LC_ALL is just a mechanism to set all the other LC_ entries) | 15:11 | |
masak | moritz: "Setting up the terminal emulator for your terminal emulator" -- you probably meant "Setting up the encoding" there. | ||
moritz | masak: ah, yes | ||
masak .oO( yo dawg ) | |||
moritz | will fix when I get home | ||
dalek | kudo/nom: 4d6754b | pmichaud++ | src/core/ (3 files): Fix .count for subs with slurpy positionals. Partially addresses RT #111646. |
15:12 | |
15:12
pyrimidine joined
|
|||
masak | ah. screen -U was the last necessary step. | 15:12 | |
moritz++ | |||
moritz | any students around? Parrot Foundation would be available to mentor Rakudo GSoC projects | ||
masak | ah, that's nice. | ||
it's like getting color vision :) | |||
15:12
eiro left
|
|||
masak | tadzik: zażółć gęślą jaźń! zażółć gęślą jaźń! | 15:13 | |
tadzik | congratulations! :) | ||
masak | \»ö«/ | ||
tadzik | I'll buy you a beer if you can tell me what it means without asking a native Polish speaker | ||
15:13
eiro joined
|
|||
pmichaud | masak: Hey! Watch where you're flapping those things! | 15:14 | |
masak | :P | ||
moritz | ¡ǝɔıu sı ʇɹoddns ǝpoɔıu∩ | ||
15:14
PacoAir joined,
plutoid left
|
|||
masak | tadzik: it's the "lorem ipsum" of Polish, but I'm not sure what it means. | 15:15 | |
if anything. | 15:16 | ||
frankly it looks too mark-dense to be real Polish. | |||
tadzik | it's a unicode check, I think it just contains all the diacritics | ||
it means "yellow the self-counsciousness of a goose" | |||
moritz | :-) | ||
tadzik | phenny: pl en "jaźń?" | ||
phenny: pl en "jaźń"? | |||
phenny | tadzik: "self" (pl to en, translate.google.com) | ||
moritz | that's like "the quick brown fox..." | 15:17 | |
tadzik | yes | ||
masak | tadzik: so, "yellow" as a verb? as a... czasownik? | ||
tadzik | exactly. To make something yellow | 15:18 | |
masak | got it. | ||
tadzik | and a order-ish one | ||
as in "yellow it, soldier!" | |||
masak | imperative. | ||
tadzik | right | ||
masak | imperatyw | ||
tadzik | tryb rozkazujący | ||
which probably means "imperative mode" | |||
masak | right. | ||
tadzik | phenny: "tryb rozkazujący"? | ||
phenny | tadzik: "imperative" (pl to en, translate.google.com) | ||
masak | well, "mood", actually. | ||
tadzik | right | 15:19 | |
I don't think so | |||
masak | yes. that's the term. | ||
tadzik | I thought mood is about how you feel about yourself | ||
masak | there are a number of grammatical moods for verbs. they sit outside of the time forms, for example. | ||
indicative is the one with all the time forms. imperative is for orders. subjunctive mood is the weird one. conditional is for speaking hypothetically. | 15:20 | ||
tadzik | yeah. Tryb oznajmujący, rozkazujący, something and przypuszczający | 15:21 | |
masak | see en.wikipedia.org/wiki/Realis_mood | ||
pmichaud cleans up his patch a bit. | |||
tadzik | phenny: en pl "subjunctive mood"? | ||
phenny | tadzik: "subjunctive nastrój" (en to pl, translate.google.com) | ||
moritz | in French, subjunctive is slightly hypothetically | ||
is that normal? | |||
I mean, is it similar in other languages? | |||
TimToady | in classical Greek, subjunctive is less hypothetical than optative, so maybe it's an Indo-European thing | 15:22 | |
masak | moritz: it's used for wish/emotion/possibility/judgement/opinion/necessity, according to Wikipedia. | ||
moritz | masak: ok, thanks | 15:23 | |
masak | moritz: "I am locking my car, so that it not be stolen." | ||
moritz | though the logic in French always seemed leaky | ||
masak | moritz: "Mi shlosas mian auton, por ke neniu shtel*u* ghin." | ||
moritz | in particular I never understood why hoping didn't introduce subjonctif | 15:24 | |
phenny: "J'espere que" | |||
phenny: "J'espere que"? | |||
phenny | moritz: "J'espere that" (es to en, translate.google.com) | ||
TimToady | you're hoping for a certainty :) | ||
pmichaud | > my @list = <a b c d>; say @list.reduce(&infix:<~>) | 15:25 | |
abcd | |||
masak | moritz: I would indeed have guessed that such a wording would introduce the subjunctive, yes. | ||
moritz | phenny: "J'esper que"? | ||
phenny | moritz: "J'esper that" (es to en, translate.google.com) | ||
masak | but my French is verry rousty. and maybe it was never that good. :) | ||
moritz can't remember the spelling either | |||
masak | first was right, I believe. | ||
pmichaud | google is translating es to en for some reason there | ||
moritz | phenny: en fr "I hope that"? | ||
phenny | moritz: "J'espère que" (en to fr, translate.google.com) | ||
15:25
araujo left
|
|||
masak | phenny: en fr "I hope that no-one steals my car!"? | 15:26 | |
phenny | masak: "J'espère que personne ne vole ma voiture !" (en to fr, translate.google.com) | ||
masak | phenny: en fr "I hope that no-one will steal my car!"? | ||
phenny | masak: "J'espère que personne ne volera ma voiture!" (en to fr, translate.google.com) | ||
masak | looks like ordinary indicative to me. | ||
phenny: en fr "I wish that no-one will steal my car!"? | |||
phenny | masak: "Je souhaite que personne ne volera ma voiture!" (en to fr, translate.google.com) | ||
moritz | phenny: en fr "I admire that no-one steals my car"? | 15:28 | |
phenny | moritz: "J'admire que personne ne vole ma voiture" (en to fr, translate.google.com) | ||
masak | phenny: en fr "I sincerely conjecture that no-one steals my car!"? | ||
phenny | masak: "Je conjecture sincèrement que personne ne vole ma voiture !" (en to fr, translate.google.com) | ||
moritz | I'm pretty sure that admire should trigger the subjunctif | ||
TimToady | phenny: en fr "I wish that no-one would steal my car!"? | ||
phenny | TimToady: "Je souhaite que personne ne volerait ma voiture!" (en to fr, translate.google.com) | ||
masak | ooh | 15:29 | |
but isn't that conditional? | |||
TimToady | would/should are subjunctive in English | ||
masak | ah, right. | ||
TimToady | though it's going away | ||
pmichaud | moritz: I have a question on the 2012.01 Rakudo release | 15:30 | |
TimToady | mostly being replaced by past tense "If I should go" --> "If I went" | ||
moritz | pmichaud: ask away | ||
15:31
araujo joined,
araujo left,
araujo joined
|
|||
pmichaud | there's a discussion taking place on the debian packaging lists regarding Parrot and Rakudo packaging.... 2012.01 was shipped as requiring Parrot 3.11.0 -- I forgot why we didn't ship with a requirement for Parrot 4.0.0 | 15:31 | |
moritz | pmichaud: it was simply a mistake | ||
pmichaud | so, 2012.01 should work with 4.0.0 then, yes? | ||
moritz | pmichaud: nobody changed PARROT_REVISION during the development cycle, so when I looked at the file while doing the release, I thought it was already bumped | 15:32 | |
pmichaud: should work with both, yes | |||
pmichaud | okay, I'll inform the list. | ||
moritz | s/both/either/ | ||
pmichaud | thanks. | ||
moritz | you're welcome | ||
that was the first nom release, right? | |||
pmichaud | yes, I think so. | 15:33 | |
moritz | hm, no | 15:34 | |
2011.09 was | |||
pmichaud | anyway, my question was answered :) | ||
moritz | "This is the first compiler release from the latest development branch | ||
of Rakudo." | |||
dalek | kudo/typed-ex-hash: c812679 | moritz++ | src/Perl6/Actions.pm: allow "anon sub" again |
15:36 | |
kudo/typed-ex-hash: e55477f | moritz++ | src/core/List.pm: try to optimize the common case of List.Bool |
|||
moritz | note that those two commits are not really what that branch is about | ||
15:37
wtw left
|
|||
moritz | might be interesting to benchmark e55477f cherry-picked into nom | 15:37 | |
15:39
JimmyZ left
15:40
not_gerd left
|
|||
dalek | kudo/nom: 69920db | pmichaud++ | src/core/Signature.pm: Refactor Signature.count to properly handle arity for capture parameters. Fixes RT #111646. |
15:40 | |
masak takes a Fine Walk in the Fine Weather | |||
moritz | pmichaud: ah, I see you made the same prototype changes as I did in the slurpy-sequence branch | 15:42 | |
pmichaud | yes, the prototypes were wrong. :-) | 15:43 | |
moritz | and you found out while spectesting the sequence tests :-) | 15:47 | |
pmichaud | Correct. | 15:49 | |
15:50
Patterner left
15:52
pjcj is now known as TPF|pjcj,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
flussence | .oO( CSS would be a good macro language for HTML, now I think about it... ) |
15:52 | |
sorear | good * #perl6 | 15:53 | |
moritz | n: sub f(*@a) { say f.count } | ||
p6eval | niecza v15-4-g1f35f89: OUTPUT«Potential difficulties: @a is declared but not used at /tmp/ETwmhGhFtL line 1:------> sub f(*⏏@a) { say f.count }» | ||
15:53
jferrero joined
|
|||
moritz | n: sub f(*@a) { say f.count }; f | 15:54 | |
p6eval | niecza v15-4-g1f35f89: OUTPUT«Potential difficulties: @a is declared but not used at /tmp/4VeAuRYkPa line 1:------> sub f(*⏏@a) { say f.count }; fStacktrace:Segmentation fault» | ||
15:54
rafl is now known as rafl|tpf
|
|||
moritz | n: sub f(*@a) { }; say &f.count | 15:54 | |
p6eval | niecza v15-4-g1f35f89: OUTPUT«Potential difficulties: @a is declared but not used at /tmp/ZSIm_Rfcu_ line 1:------> sub f(*⏏@a) { }; say &f.countInf» | ||
moritz | n: sub f(*@a) { @a }; say &f.count | ||
15:54
rafl|tpf is now known as TPF|rafl,
tokuhiro_ left
|
|||
p6eval | niecza v15-4-g1f35f89: OUTPUT«Inf» | 15:54 | |
15:55
tokuhiro_ joined
|
|||
sorear | moritz: do you have a clue why it's segfaulting> | 15:55 | |
moritz | sorear: wait, what is segfaulting? | ||
TimToady | f calling f is an infinite regress | ||
tadzik | doesn't it segfaulting when it tries to print a stacktrace? | ||
moritz | ah, that one | ||
tadzik | s/ing// | ||
moritz | n: sub f() { f }; f | 15:56 | |
sorear | ok, that I won't worry too much about | ||
p6eval | niecza v15-4-g1f35f89: OUTPUT«(timeout)» | ||
flussence | whoa, niecza really doesn't like running in gdb.. | ||
pmichaud | is S03-sequence/limit-arity-2-or-more.t still correct per spec? | ||
moritz | pmichaud: some of them are certainly wrong | 15:57 | |
pmichaud | the spec talks about smartmatching against the current candidate | ||
sorear | if the backtrace printer is overflowing the C stack, things will go wrong | ||
dalek | ast: ca63a93 | moritz++ | S03-sequence/limit-arity-2-or-more.t: remove several surely unspecced tests |
||
sorear | masak: what mail client do you use? | 15:58 | |
moritz | pmichaud: well, that test does seem to do proper smartmatching | ||
15:58
ascent_ left,
ascent_ joined
|
|||
flussence | when I run it locally, that segfault line... isn't | 15:58 | |
moritz | flussence: might be related to the resource limit on the host | 15:59 | |
pmichaud | I don't understand how it's doing proper smartmatching. | ||
moritz | pmichaud: the RHS is something like (*-*).abs < 2 | ||
which is a WhateverCode object | |||
pmichaud | right, which takes two arguments | ||
but the current candidate is a single scalar | |||
moritz | ah | ||
flussence | moritz: probably. I just did a ulimit -v 512MB before I ran it and I think mono's stuck in a GC loop now :) | ||
moritz | pmichaud: dunno if it's specced, but it seems like useful-ish feature... maybe :-) | 16:00 | |
for aborting sequences when they have converged enough | |||
flussence | well, with no limit it successfully eats all my RAM before crashing. | ||
pmichaud | the spec says: | ||
Assuming the next candidate value is in C<$x> and the | 16:01 | ||
first element of the right side is in C<$limit>, the two operators | |||
are implemented respectively as: | |||
... last($x) if $x ~~ $limit; ...^ last if $x ~~ $limit; | |||
moritz | which implies it's non-spec | ||
pmichaud | right | ||
TimToady | perl6: my $x = 42; $x //= say "phooey"; | 16:05 | |
p6eval | pugs, niecza v15-4-g1f35f89: ( no output ) | ||
..rakudo 69920d: OUTPUT«phooey» | |||
moritz | EINSUFFICIENTTHUNKING | 16:06 | |
TimToady | oh, you were just doing conditional initialization with //= {} | ||
but it still creates the {} unnecessarily | |||
16:07
tokuhir__ joined
|
|||
TimToady is waybacklogging :) | 16:08 | ||
moritz | I think that was less than 36 hours ago | ||
16:08
havenn left
|
|||
TimToady | that's way back in backlogging years :) | 16:08 | |
16:11
tokuhiro_ left,
tokuhir__ left
|
|||
colomon is considering the fact that from C to C++, printf ("Hello world!n); became std::cout << "Hello world!" << endl; whereas from perl 5 to perl 6, it went from print "Hello worldn"; to say "Hello world"; | 16:13 | ||
colomon missed a std:: in the C++ example.... | |||
moritz proposes to add the &h built-in, which prints "Hello, Worldn" | |||
then you can just write h | 16:14 | ||
colomon | :p | ||
TimToady | "Overloading << for I/O--you think that's cute now..." | ||
16:15
pernatiy left
|
|||
TimToady | though one could argue that << represents an IO monad, implemented poorly | 16:15 | |
16:15
daxim left
|
|||
pmichaud | make it &H instead of &h :-) | 16:15 | |
16:15
simcop2387 left
|
|||
colomon | Hey, then even my 3-year-old could program Hello world! | 16:16 | |
TimToady: my real objection is the complete anti-Huffmanization of C++. All these really common things like I/O take more characters to do in C++ than in C. | 16:17 | ||
16:17
simcop2387 joined
|
|||
TimToady | well, maybe C++ is just trying to discourage you from doing I/O. :) | 16:19 | |
colomon is also remembering why he really (if ever) does test first coding in C++. The tests end up being so crazily verbose.... | |||
TimToady++ | |||
TimToady | *rarely? | ||
16:19
havenn joined
|
|||
colomon | *rarely | 16:19 | |
sorear | making perl 6 a superset of hq9+ | 16:21 | |
16:22
MayDaniel joined
16:24
lestrrat left
16:26
lestrrat joined
16:29
mj41 left
16:38
szbalint left
16:40
fglock left
|
|||
TimToady | sorear: does niecza have anything like viv's --yaml option? | 16:40 | |
sorear | No. | 16:45 | |
it used to, but I haven't figured out how that would interact with BEGIN | 16:46 | ||
I am now thinking that a working --yaml would have a lot of properties in common with a working quasi { } | 16:49 | ||
sorear pokes masak | |||
moritz | -quaml | ||
pmichaud | TimToady: I have some questions about flattening, when you have time | 16:51 | |
16:56
birdwindupbird left
|
|||
TimToady has some time, and possibly even some answers, which have some vague possibility of being correct...ish... | 17:00 | ||
pmichaud | I should first note that I haven't been expecting %h<a> = 1,2,3; to ultimately store a Parcel into %h<a>. In earlier versions of Rakudo and the spec, the item assignment resulted in the Parcel being converted to something else (e.g., a Seq). | 17:03 | |
In nom I just never got around to figuring out what it should be converted to. | |||
the somewhat analogous case is something like %h<a> = @b | 17:04 | ||
moritz | one thing i like about the "every array element is an item" is that it means that whenever I do @a[$i], I know that i have to @() it to iterate over it | ||
pmichaud | which ends up turning the flattening-array @b into a scalar array | ||
moritz | if that changes, I need to introspect the array item, or always contextualize it | ||
sorear | +1 to keeping "every array element is an item" | 17:05 | |
pmichaud | r: my @b = <a b c>; my %h; %h<a> = @b; say %h.perl | ||
p6eval | rakudo 69920d: OUTPUT«("a" => ["a", "b", "c"]).hash» | ||
moritz | r: my @b = <a b c>; my %h; %h<a> = @b; say 1 for %h<a> | ||
p6eval | rakudo 69920d: OUTPUT«1» | ||
moritz | r: my @b = <a b c>; my %h; %h<a> = @b; say 1 for @%h<a> | ||
p6eval | rakudo 69920d: OUTPUT«===SORRY!===Invalid hard reference syntax at line 1, near "%h<a>"» | ||
moritz | r: my @b = <a b c>; my %h; %h<a> = @b; say 1 for @(%h<a>) | ||
p6eval | rakudo 69920d: OUTPUT«111» | ||
sorear | pmichaud: do you still think Parcel should mutate into some sort of List when assigned to a non-flattening container? | 17:07 | |
pmichaud | sorear: I have no problem with it remaining a Parcel... but it needs to be a scalar Parcel I think. | ||
i.e., something that doesn't flatten unless commanded (because it's in a container) | |||
we'd mutate it into some form of List if we wanted to keep Parcel itself as an uncommon sort of thing to appear in data structures | 17:08 | ||
moritz | currently I don't see much use in mutating it | 17:09 | |
TimToady hates having to put .list in so many places | |||
pmichaud | TimToady: well, prefix @ then | ||
moritz | TimToady: better than having to put a contextualizer everywhere | ||
pmichaud | join ';', @%hash<a> | ||
TimToady hates that too | |||
that doesn't work | |||
moritz | so, can we make a prefix:<@> ? | 17:10 | |
join ':', @ %hash<a> | |||
TimToady | to me, it's like any other function return that is non-commital on flattening | ||
pmichaud | TimToady: you mean the .<a> part? | ||
TimToady | yes | 17:11 | |
foo 1,2,3, bar(), 4,5 | |||
pmichaud | actually, it's not the .<a> that is making it scalar | ||
it's the fact that the element is in a scalar container | |||
TimToady | bar does not commit to whether the result flattens until foo binds it | ||
pmichaud | in particular, if we were to have %h<a> := @b then I might indeed expect %h<a> to flatten | 17:12 | |
sorear | TimToady: I see %foo<h> as being like $foo_h | ||
TimToady | sorear: well, I don't see a $ there | ||
pmichaud | if we have my @b = <a b c>; my %h; %h<a> = @b; say join ';', %h<a> | 17:13 | |
sorear | pmichaud: the idea that hashes and especially arrays could contain flattening elements makes me uneasy | ||
pmichaud | would we expect %h<a> to flatten there? | ||
sorear: yes, I have the same uneasiness, and especially for arrays | 17:14 | ||
TimToady | I'd expect that to flatten | ||
pmichaud | ouch. | ||
example coming up. | 17:15 | ||
TimToady | but it's the join that flattens it | ||
pmichaud | my @b = <a b c>; my @a = 0..3; @a[2] = @b; my @c = @a | ||
does @c end up with 4 elements or 6? | 17:16 | ||
17:19
mj41 joined
|
|||
TimToady | what you're really asking there is whether = flattens or keeps the () as one element | 17:19 | |
pmichaud | well, if we assume it keeps the () as one element, then my @d = (1, 2, (3, 4), 5) becomes very different from what we have now, I think. | 17:20 | |
TimToady | nodnod | ||
pmichaud | currently it flattens, but all of the elements of @a are scalar so that we end up with @c.elems == @a.elems when were done | 17:21 | |
TimToady | perl6: my @a = 0..3; @a[1] := (1,2,3); say join ';', @a[1] | 17:22 | |
p6eval | niecza v15-4-g1f35f89: OUTPUT«1 2 3» | ||
..pugs, rakudo 69920d: OUTPUT«1;2;3» | |||
TimToady | perl6: my @a = 0..3; @a[1] := 1,2,3; say join ';', @a[1] | ||
p6eval | niecza v15-4-g1f35f89: OUTPUT«1 2 3» | ||
..pugs: OUTPUT«1» | |||
..rakudo 69920d: OUTPUT«1;2;3» | |||
TimToady | perl6: my @b = <a b c>; my @a = 0..3; @a[2] = @b; my @c = @a; say @c.perl | 17:25 | |
p6eval | niecza v15-4-g1f35f89: OUTPUT«[0, 1, ["a", "b", "c"], 3].list» | ||
..rakudo 69920d: OUTPUT«Array.new(0, 1, ["a", "b", "c"], 3)» | |||
..pugs: OUTPUT«[0, 1, ["a", "b", "c"], 3]» | |||
17:26
kaare_ joined
|
|||
TimToady | perl6: my @b = <a b c>; my @a = 0..3; @a[2] = @b; my @c = @a; say join ';', @c[2] | 17:27 | |
p6eval | pugs, rakudo 69920d, niecza v15-4-g1f35f89: OUTPUT«a b c» | ||
TimToady | perl6: my @b = <a b c>; my @a = 0..3; @a[2] = @b; my @c = @a; say join ';', @c[2][] | ||
p6eval | rakudo 69920d, niecza v15-4-g1f35f89: OUTPUT«a;b;c» | ||
..pugs: OUTPUT«a b c» | |||
TimToady | perl6: my @b = <a b c>; my @a = 0..3; @a[2] = @b; my @c = @a; say join ';', @c[2][*] | ||
p6eval | rakudo 69920d: OUTPUT«a;b;c» | ||
..pugs: OUTPUT«a» | |||
..niecza v15-4-g1f35f89: OUTPUT«Unhandled exception: Cannot use value like Whatever as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 256 (Any.Numeric @ 5)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/VlODS_wCRF line 1 (mainline @ 2… | |||
TimToady | perl6: my @b = <a b c>; my @a = 0..3; @a[2] := @b; my @c = @a; say join ';', @c[2] | 17:30 | |
p6eval | pugs: OUTPUT«a;b;c» | ||
..rakudo 69920d: OUTPUT«a» | |||
..niecza v15-4-g1f35f89: OUTPUT«a b c» | |||
TimToady | perl6: my @a = 0..3; @a[2] := <a b c>; my @c = @a; say join ';', @c[2] | ||
p6eval | pugs: OUTPUT«a;b;c» | ||
..rakudo 69920d: OUTPUT«a» | |||
..niecza v15-4-g1f35f89: OUTPUT«a b c» | |||
17:31
Vlavv_ joined
17:32
tarch left,
fglock joined
|
|||
TimToady | perl6: my @a = 0..3; @a[2] := <a b c>; my @c = @a; say join ';', @a[2] | 17:32 | |
p6eval | pugs, rakudo 69920d: OUTPUT«a;b;c» | ||
..niecza v15-4-g1f35f89: OUTPUT«Potential difficulties: @c is declared but not used at /tmp/gJvZiXESPE line 1:------> my @a = 0..3; @a[2] := <a b c>; my ⏏@c = @a; say join ';', @a[2]a b c» | |||
17:33
Chillance joined,
pernatiy joined
|
|||
TimToady doesn't see a great deal of agreement in the "current model" | 17:33 | ||
17:34
Vlavv` left
|
|||
TimToady | I think I'm willing to flatten/itemize = as it currently does, but := probably needs to stay non-committal | 17:35 | |
17:36
mucker joined
|
|||
TimToady | and postfix:<[]> is less of a problem to me than .list | 17:36 | |
perl6: my @a = 0..3; @a[2] := <a b c>; say @a[2].WHAT | 17:38 | ||
p6eval | rakudo 69920d, niecza v15-4-g1f35f89: OUTPUT«Parcel()» | ||
..pugs: OUTPUT«Array» | |||
masak | sorear: I'm on Gmail; why? | 17:41 | |
the web application, that is. | |||
pmichaud | by "not a great deal of agreement" -- do you mean among implementations or self-consistency within nom? | ||
TimToady | among impls | 17:45 | |
masak | sorear: re working --yaml output having lots of properties in common with working quasi { }: I love how everyone is thinking of macros these days. ;) | 17:46 | |
though I don't see the connection. | |||
maybe you're after the AST objects, and feel that quasis fit in there somewhere. | |||
pmichaud | well, iirc pugs predates Parcel handling, so I'm not surprised it isn't in agreement | ||
pugs: say (1,2,3).WHAT | 17:47 | ||
p6eval | pugs: OUTPUT«Array» | ||
17:47
havenn left
|
|||
geekosaur | that's my recollection too, the whole "oh, list wont work for that" happened later than Pugs | 17:47 | |
pmichaud | niecza's differences seem to be in handling of := in array elements. And I suspect much of that is because sorear++ is (smartly) waiting for the relevant specs to solidify a bit :) | 17:48 | |
anyway, if we can leave things as they are-ish, I'm happy. :) | 17:49 | ||
TimToady | here's the proximate cause of my frustration, trying to get gist.github.com/2173143 to work without .list, or at least without hte first .list | ||
(btw, this only works in niecza right now at all; rakudo seems to not like the any() === Burning, so the fire never propgates) | 17:50 | ||
pmichaud | how about @!neighbors[$i][$j].any ? | ||
it kind of puts the action on the wrong side, yes. | 17:51 | ||
masak | pmichaud++ # for prodding TimToady about list semantics | ||
TimToady | that doesn't work either | ||
masak | TimToady++ # for trying to get to the bottom of the pros and cons of the different models | ||
pmichaud | perl6: my @a; @a[2] = <a b c>; say @a[2].any.perl | 17:52 | |
p6eval | pugs: OUTPUT«(#<Array:0x7fbcbbd226d1>)» | ||
..rakudo 69920d, niecza v15-4-g1f35f89: OUTPUT«any("a", "b", "c")» | |||
pmichaud | "doesn't work" as in "isn't working in niecza with .any" or as in "no, I don't want to do it that way"? | 17:53 | |
r: my @a = 'r', 2, 's'; my @b; @b[2] = @a; say @b.perl | 17:54 | ||
p6eval | rakudo 69920d: OUTPUT«Array.new(Any, Any, ["r", 2, "s"])» | ||
TimToady | it works in niecza with .any, but not rakudo | ||
pmichaud | r: my @a = 'r', 2, 's'; my @b; @b[2] = @a; say @b[2].any.perl | ||
p6eval | rakudo 69920d: OUTPUT«any("r", 2, "s")» | ||
TimToady | problem might be more to do with enums | ||
pmichaud | r: my @a = 'r', 2, 's'; my @b; @b[2] = @a; say @b[2].any === 2 | 17:55 | |
p6eval | rakudo 69920d: OUTPUT«any(False, True, False)» | ||
masak | TimToady: if you manage to golf it, I'll submit it. | ||
pmichaud | yeah, I'm guessing it's an enum issue more than a junction / array issue | ||
masak | r: enum A <b c d>; my @l = (b, b, c, d); say "OH HAI" if any(@l) === c | 17:56 | |
p6eval | rakudo 69920d: OUTPUT«OH HAI» | ||
masak | r: enum A <b c d>; say "OH HAI" if any(b, b, c, d) === c | 17:57 | |
p6eval | rakudo 69920d: OUTPUT«OH HAI» | ||
masak | worksforme | ||
pmichaud | r: enum CS <Empty Tree Burning>; my $a = [Empty, Empty, Tree]; say $a.any === Tree | 17:58 | |
p6eval | rakudo 69920d: OUTPUT«any(False, False, True)» | ||
pmichaud | r: enum CS <Empty Tree Burning>; my $a = [Empty, Empty, Tree]; say $a.any === Burning | 17:59 | |
p6eval | rakudo 69920d: OUTPUT«any(False, False, False)» | ||
pmichaud | r: enum CS <Empty Tree Burning>; my @a = [Empty, Empty, Tree]; say @a[0].any === Burning | ||
p6eval | rakudo 69920d: OUTPUT«any(False, False, False)» | ||
pmichaud | r: enum CS <Empty Tree Burning>; my @a = [Empty, Empty, Tree]; say @a[0].any === Tree | ||
p6eval | rakudo 69920d: OUTPUT«any(False, False, True)» | ||
TimToady | it's acting more like maybe it's not calculating the neighbors right, maybe | ||
pmichaud | r: enum CS <Empty Tree Burning>; my @a = [Empty, Empty, Tree]; say ? ( @a[0].any === Tree ) | ||
p6eval | rakudo 69920d: OUTPUT«True» | ||
18:01
mucker left
|
|||
TimToady | ooh, a clue, every cell has 3 neighbors | 18:01 | |
pmichaud | r: enum CS <Empty Tree Burning>; my @a = [123, [Empty, Empty, Tree]]; say ? ( @a[0][1].any === Tree ) | 18:02 | |
p6eval | rakudo 69920d: OUTPUT«True» | ||
pmichaud | r: my @a = <a b c>; given @a { say .[1] } | 18:05 | |
p6eval | rakudo 69920d: OUTPUT«b» | ||
18:07
am0c joined
|
|||
pmichaud | fwiw, the line | 18:09 | |
has Cell-State @!grid; | |||
looks wrongish to me | |||
(probably not at all a source of the bug, but the elements of @!grid aren't directly Cell-States if I'm reading this correctly.) | 18:10 | ||
18:10
am0c_ joined
|
|||
pmichaud | also, how about @!grid = @new at the end of method step, instead of the for loop? | 18:12 | |
or is it important to keep the same array containers? | 18:13 | ||
pmichaud guesses the latter. | |||
18:13
am0c left
|
|||
pmichaud | r: my $a = [2,1,0]; my @b = <x y z>; say @b[$a] # curious | 18:15 | |
p6eval | rakudo 69920d: OUTPUT«z y x» | ||
18:15
am0c__ joined
|
|||
pmichaud | feels like .list might not be necessary in method Str | 18:15 | |
since @!grid[$i] is already Positional, it gets treated like a slice | |||
(I could be wrong/missing something there though) | 18:16 | ||
masak | pmichaud: agree on 'has Cell-State @!grid;' looking wrong. this is why I don't use array element typing yet, or in general any NYI-but-silent feature that might break my code. | 18:17 | |
pmichaud | oh, I see @b[$a] returned a scalar result, though. | ||
r: my $a = [2,1,0]; my @b = <x y z>; say @b[$a.list] # curious | |||
p6eval | rakudo 69920d: OUTPUT«z y x» | ||
pmichaud | r: my $a = [2,1,0]; my @b = <x y z>; say @b[$a.list].perl # curious | ||
p6eval | rakudo 69920d: OUTPUT«("z", "y", "x")» | ||
pmichaud | r: my $a = [2,1,0]; my @b = <x y z>; say @b[$a].perl # curious | 18:18 | |
p6eval | rakudo 69920d: OUTPUT«("z", "y", "x")» | ||
pmichaud | oh, nm, it didn't return a scalar result. It got .gisted | ||
18:18
am0c_ left
|
|||
TimToady | gist.github.com/2173143 now has a half golfed example; nieca makes 3 different neighbor lists of 8 Bools, while rakudo makes 3 identical lists | 18:20 | |
pmichaud | I'm wondering if the nested if/for modifiers are confusing rakudo | 18:21 | |
...or if rakudo is even parsing that correctly :-) | |||
the 'if' and 'for' apply to .... the take? | 18:22 | ||
TimToady | they're both inside the gather | 18:23 | |
take if for is the list comprehension | |||
pmichaud | I also wonder if this is a variant of the 'take' bug | 18:24 | |
pmichaud experiments | |||
TimToady | yes, inverting to an outer 'for' fixes it | ||
18:24
buubot_backup left
|
|||
TimToady | maybe not scoping $_ right? | 18:25 | |
pmichaud | putting { } around the take also fixes it | ||
(including the if/for) | |||
gist.github.com/2173487 | |||
TimToady | changine it to a grep also fixes | 18:26 | |
*ng | |||
pmichaud | so yes, I suspect a parsing or other bug with the list comprehension | ||
TimToady: okay, thanks for the help re: flattening -- I'll be able to rest easier now :) | 18:29 | ||
TimToady | and my quibble with niecza is that this requires a .list: my @a = 0..3; @a[2] := <a b c>; say any(@a[2].list) eq 'b' | 18:32 | |
18:32
mj41 left
|
|||
TimToady | (which shouldn't because of the :=) | 18:32 | |
perl6: my @a = 0..3; @a[2] := <a b c>; say so any(@a[2]) eq 'b' | 18:33 | ||
p6eval | pugs: OUTPUT«*** No such subroutine: "&so" at /tmp/ixp4oNBGj7 line 1, column 37 - line 2, column 1» | ||
..niecza v15-4-g1f35f89: OUTPUT«False» | |||
..rakudo 69920d: OUTPUT«True» | |||
TimToady | perl6: my @a = 0..3; @a[2] = <a b c>; say so any(@a[2]) eq 'b' | 18:34 | |
p6eval | rakudo 69920d, niecza v15-4-g1f35f89: OUTPUT«False» | ||
..pugs: OUTPUT«*** No such subroutine: "&so" at /tmp/bqMaBypncK line 1, column 36 - line 2, column 1» | |||
TimToady | perl6: my @a = 0..3; @a[2] = <a b c>; say so any(@a[2][]) eq 'b' | ||
p6eval | pugs: OUTPUT«*** No such subroutine: "&so" at /tmp/KWYAtvdGZJ line 1, column 36 - line 2, column 1» | ||
..rakudo 69920d, niecza v15-4-g1f35f89: OUTPUT«True» | |||
TimToady | I think I can live with .[] | ||
for the assigned case | 18:35 | ||
masak | I can sort of see why it's a pity that it's needed, though. | ||
but I don't know the exact consequences of "fixing" it. | |||
TimToady wants to have his cake and eat it to and also not be allergic to wheat | |||
*too | |||
18:35
am0c_ joined
|
|||
pmichaud | I think "fixing it" likely involves either a major re-think of many already settled cases, or else some hard-to-explainish special casing to get it to work | 18:37 | |
(at the spec level) | 18:38 | ||
TimToady | but assigning a list to a scalar does something much different in Perl 5 anyway, so maybe this falls into the category of making assignment do what a P5 programmer expects if they expected something that P5 doesn't in fact do :) | ||
18:38
am0c joined
|
|||
TimToady | and as usual, use binding to do anything with purer semantics | 18:38 | |
pmichaud | afk for a bit | ||
TimToady was gonna write a p5 parser this morning, sigh | 18:39 | ||
18:39
am0c__ left
|
|||
TimToady | I guess it's viv or PPI or MAD | 18:39 | |
doing it in viv is harder, but has more potential upside for us here | 18:40 | ||
18:41
am0c_ left
18:44
am0c left,
TPF|rafl is now known as rafl
18:45
TPF|pjcj is now known as pjcj
18:46
buubot_backup joined
18:48
thou joined
|
|||
masak | were you gonna write a p5 parser for something primarily not related to #perl6? | 18:52 | |
18:57
am0c joined
|
|||
masak | r: say q:to /EOT/ | 18:58 | |
p6eval | rakudo 69920d: OUTPUT«===SORRY!===Colons may not be used to delimit quoting constructs at line 1, near ":to /EOT/"» | ||
masak | r: say q :to /EOT/ | ||
p6eval | rakudo 69920d: OUTPUT«===SORRY!===Colons may not be used to delimit quoting constructs at line 1, near ":to /EOT/"» | ||
masak | n: say q :to /EOT/ | ||
p6eval | niecza v15-4-g1f35f89: OUTPUT«Unhandled exception: Here document used before body defined at /home/p6eval/niecza/boot/lib/CORE.setting line 1362 (die @ 3)  at /home/p6eval/niecza/src/Op.pm6 line 320 (HereStub.zyg @ 4)  at /home/p6eval/niecza/src/Op.pm6 line 23 (Op.ctxzyg @ 3)  a… | ||
masak | sorear: what does that error message mean? | ||
TimToady | yes, for $job | 18:59 | |
masak | anyone against the idea of adding "here documents" as a feature in perl6.org/compilers/features ? | ||
I think it belongs there. | |||
pmichaud | isn't it there already? I thought I saw it. | ||
masak | TimToady: I was looking at STD5.pm6 the other day. | ||
pmichaud | anyway, +1 to adding heredocs to features if not already present | 19:00 | |
masak | TimToady: it looks like a pared-down version of STD.pm6, with a little too much Perl 6 think still in it. did it ever parse any Perl 5? | ||
pmichaud: I tried greeping for various things -- and I really don't see it in there. | 19:01 | ||
pmichaud | maybe add autoviv there too | ||
masak | aye. | ||
pmichaud | masak: I think I was thinking of something else | ||
oh, autoviv is there | 19:02 | ||
moritz++ # autoviv on features page | |||
TimToady | only the P5Regex part actually worked | 19:07 | |
masak | ah. | 19:08 | |
TimToady | and doubtless the rest has bitrotted wrt P6's STD | ||
masak | TimToady: there's some sort of cosmic irony in you getting to write a second Perl 5 parser ;) | 19:09 | |
TimToady | don't I know it | 19:10 | |
pmichaud | I'm not sure "irony" is the correct word. :-P | 19:16 | |
perhaps "justice" :-P | |||
masak | it's just made more funny because STD.pm6 came in between. | 19:18 | |
TimToady | maybe I should just copy over the yacc grammar and see if it parses :) | ||
PerlJam | "second perl 5 parser"? isn't more like 3rd? | 19:19 | |
pmichaud | those who learn from the mistakes of the past are doomed to repeat them | 19:20 | |
ummmm, hmm. | |||
TimToady | 3rd perl parse, but not 3rd p5 parser | ||
19:23
PacoAir left
|
|||
dalek | kudo/nom: a4c78fb | pmichaud++ | src/core/Parcel.pm: Use "$()" in Parcel.perl to show when a Parcel is in a scalar container. I'm not sure that the spec ultimately end up with something like "scalar Parcels" (cf. "scalar arrays"), but since they exist in Rakudo for the time being we should at least make their presence clearer to the people who encounter them. |
19:23 | |
19:23
PacoAir joined
19:28
alester joined
|
|||
dalek | atures: 98cf39f | (Carl Mäsak)++ | features.json: [features.json] added heredocs |
19:32 | |
PerlJam | Coding in C is *so* tedious these days. | ||
TimToady | well, there's a start: Can't locate object method "parse" via package "STD_P5" at ./viv5 line 4206. | 19:33 | |
alester | I still like it! | ||
PerlJam | alester: yeah, but for some things where I can think of a solution in 2 seconds but it needs some of the higher level construct from a HLL, there's just so much typing involved. | 19:34 | |
alester | Oh, I know. | ||
pmichaud hands PerlJam a COBOL compiler. | |||
19:35
havenn joined
|
|||
TimToady | You have a problem in C, so you say, "I know! I'll use macros!"...and so on | 19:36 | |
You have a problem, so you say "I know! | 19:38 | ||
now you don't know that you have two problems | 19:39 | ||
colomon has a problem | |||
TimToady | look in the back of the book | 19:40 | |
19:45
havenn left
19:48
leprevost left
19:55
GlitchMr joined
20:01
alester left
|
|||
awwaiid | at the index? OH IC! You are so wise sir. I will build an index of my problems. | 20:07 | |
20:07
thou left
20:08
havenn joined
|
|||
masak | "...now you have an indexed problem." | 20:08 | |
20:13
thou joined
20:14
lichtkind joined
|
|||
masak | C has an austere kind of elegance about it. but I'd better be needing all that runtime speed it provides, 'cus I'm not about to express my ideas in it just for the fun of it. | 20:18 | |
20:19
thou left,
MayDaniel left
20:23
thou joined
|
|||
Tene | masak: I express ideas in C mostly for the fun of it. The majority of my C coding is recreational. | 20:25 | |
jnthn | Afternoon | 20:30 | |
masak | jnthn! \o/ | ||
jnthn | masak! \o/ | 20:31 | |
masak | Tene: mine too, in the sense of "hobby coding". not in the sense of "I think this is the most expressive medium for this idea". | ||
jnthn | masak: Curious release naming reason. :P | ||
20:35
M_o_C joined
|
|||
masak | jnthn: have you met any Perl people down there? :) | 20:36 | |
jnthn | No. :) | ||
I didn't really make any effort to, mind. | 20:37 | ||
uh-oh...Kiev Perl workshop dates are out | |||
<- temptation | |||
dalek | atures: 42afc5c | (Carl Mäsak)++ | features.json: [features.json] unbroke the json Sorry 'bout that. :/ |
20:38 | |
jnthn | .oO( Just Some Old Notation ) |
20:39 | |
20:39
fgomez joined
20:40
fgomez left
20:41
fgomez joined
|
|||
jnthn | pmichaud: How goes the refactors? | 20:41 | |
colomon just learned that the openNURBS 5.0 libraries have a .NET version.... | 20:44 | ||
pmichaud | jnthn: since we were able to resolve the most recent flattening issues, refactoring Scalar is much less urgent and less of a potential blocker | ||
(see backlog for discussion, starting at... | |||
irclog.perlgeek.de/perl6/2012-03-23#i_5341181 ) | 20:45 | ||
jnthn | Will do, thanks | ||
pmichaud | I was able to clean up .count and .arity a bit, especially on signatures with slurpies | 20:46 | |
and/or captures | |||
jnthn | Just saw those patches. Nice. | ||
pmichaud | r: my $p = (1,2,3); say $p.perl; | ||
p6eval | rakudo a4c78f: OUTPUT«$(1, 2, 3)» | ||
masak | \o/ | 20:47 | |
pmichaud | r: my %h; %h<a> = 1,2,3; say %h.perl; | ||
p6eval | rakudo a4c78f: OUTPUT«("a" => $(1, 2, 3)).hash» | ||
pmichaud | r: my @a = 0..3; @a[1] = 1,2,3; say @a.perl; | ||
p6eval | rakudo a4c78f: OUTPUT«Array.new(0, $(1, 2, 3), 2, 3)» | ||
masak | r: my %h; %h<a> = 1, 2, 3; .say for %h<a> | 20:50 | |
p6eval | rakudo a4c78f: OUTPUT«1 2 3» | ||
masak | r: my %h; %h<a> = 1, 2, 3; .say for %h<a>[] | ||
p6eval | rakudo a4c78f: OUTPUT«123» | ||
masak | r: my %h; %h<a> = 1, 2, 3; .say for @ %h<a> | ||
p6eval | rakudo a4c78f: OUTPUT«===SORRY!===Non-declarative sigil is missing its nameat /tmp/gUAL1NqNnu:1» | ||
masak | r: my %h; %h<a> = 1, 2, 3; .say for @(%h<a>) | ||
p6eval | rakudo a4c78f: OUTPUT«123» | ||
masak | r: my %h; %h<a> = 1, 2, 3; .say for @%h<a> | ||
p6eval | rakudo a4c78f: OUTPUT«===SORRY!===Invalid hard reference syntax at line 1, near "%h<a>"» | ||
masak | r: my %h; %h<a> = 1, 2, 3; .say for %h<a>.list | 20:51 | |
p6eval | rakudo a4c78f: OUTPUT«123» | ||
pmichaud | @%var doesn't exist :) | ||
masak | nodnod | ||
pmichaud | although @$var does | ||
(in the spec, not necessarily in nom) | |||
masak | r: my $var = [1, 2, 3]; .say for @$var | 20:52 | |
p6eval | rakudo a4c78f: OUTPUT«123» | ||
pmichaud | r: my $var = [1,2,3]; say for $var; | ||
p6eval | rakudo a4c78f: OUTPUT«» | ||
masak | dot. | ||
pmichaud | r: my $var = [1,2,3]; .say for $var; | ||
p6eval | rakudo a4c78f: OUTPUT«1 2 3» | ||
pmichaud | \o/ | ||
rakudo++ | |||
masak | it's 2012. rakudo is nice to use. :) | 20:53 | |
pmichaud | so..... what happened to improve startup time so much? | ||
masak | bs. | ||
pmichaud | (I missed the discussions/commits/changes that made that possible) | ||
masak | in other news, jnthn++ rocks. | 20:54 | |
Tene | pmichaud: jnthn's bounded serialization work | ||
masak | (what I said.) :) | ||
Tene | although it made startup time about 2x longer for me | 20:55 | |
I should check if that's still the case. | |||
gfldex | pmichaud: 6guts.wordpress.com/2012/02/10/boun...er-errors/ | ||
lichtkind | pmichaud: glad to see you back | 20:57 | |
20:57
GlitchMr left
|
|||
pmichaud | on the one test that I ran, start time was... good enough that I wondered if I had accidentally run p5 by mistake :) | 20:58 | |
lichtkind: glad to be back, at least for a bit. | |||
jnthn | pmichaud: Essentially, we serialize meta-objects when pre-compiling | ||
pmichaud | jnthn: I figured it would be something like that. fantastic. | ||
jnthn | pmichaud: And just deserialize them now at startup rather than doing all the work to recreate them. | ||
pmichaud: It also means World.pm got a bunch shorter and less messy :) | 20:59 | ||
And if you compute a constant and pre-compile, then it's not recomputed again. | |||
For an evil use for this, see example in jnthn.net/papers/2012-gpw-meta-programming.pdf | |||
pmichaud | <x> in a regex can call a predeclared regex? | 21:00 | |
(lexical)? | |||
jnthn | yes | ||
pmichaud | there were a number of design issues with that, I thought. | ||
especially when being used in a grammar | 21:01 | ||
masak | do tell. | ||
jnthn | pmichaud: It's a compile time decision, in case you were wondering. | ||
pmichaud: The predeclaration requirement will catch people out though, I fear... | |||
It means you can't write mutual recursion. Well, unless you stub. :) | 21:02 | ||
But maybe we should be pushing people to grammars for that... | |||
Or maybe we need a totally different design. | |||
masak | r: say "foo" /<x>/; my regex x { foo }; | ||
p6eval | rakudo a4c78f: OUTPUT«===SORRY!===Confusedat /tmp/r_6yzUyfr9:1» | ||
pmichaud | so, if at compile time there's a &x in scope, the regex always uses that even if a subgrammar defines a 'x' regex? | 21:03 | |
masak | r: say "foo" ~~ /<x>/; my regex x { foo }; | ||
p6eval | rakudo a4c78f: OUTPUT«Method 'x' not found for invocant of class 'Cursor' in regex <anon> at /tmp/YNc4hRZeAp:1 in method ACCEPTS at src/gen/CORE.setting:8300 in block <anon> at /tmp/YNc4hRZeAp:1» | ||
masak | r: my regex x { foo }; say "foo" ~~ /<x>/; | ||
p6eval | rakudo a4c78f: OUTPUT«=> <foo> x => <foo>» | ||
jnthn | That isn't predeclared. | ||
That latter one is. | |||
masak | right. I was testing what you were saying. | ||
jnthn | pmichaud: Yes. Note that an &x in scope has to be a regex. A sub x will not do it. | 21:04 | |
masak | yeah, that's unintuitive. | ||
r: sub x { say "OH NOES" }; say "foo" ~~ /<x>/; | |||
p6eval | rakudo a4c78f: OUTPUT«Method 'x' not found for invocant of class 'Cursor' in regex <anon> at /tmp/O0lUpTPLWK:1 in method ACCEPTS at src/gen/CORE.setting:8300 in block <anon> at /tmp/O0lUpTPLWK:1» | ||
jnthn | masak: Welcome to one pass parsing. | ||
pmichaud | r: my regex x { foo }; grammar ABC { rule TOP { <x> }; rule x { bar }; }; say ABC.parse('foo').perl | ||
p6eval | rakudo a4c78f: OUTPUT«Match.new(orig => "foo", from => 0, to => 3, ast => Any, list => ().list, hash => EnumMap.new("x", Match.new(orig => "foo", from => 0, to => 3, ast => Any, list => ().list, hash => EnumMap.new()), ))» | ||
masak | jnthn: subs manage this. | ||
jnthn | masak: A sub call is unambiguous. | ||
You're comparing apples and oranges. | 21:05 | ||
pmichaud | I'm worried about the example I just pasted. | ||
masak | ah, because no method-call fallback. | ||
pmichaud | It prefered the outer lexical regex to the one defined in the grammar. | ||
jnthn | pmichaud: It bothers me too. | ||
masak | I'm starting to feel it's a syntactical muddling of two things. | ||
pmichaud | it is | ||
we had a huge discussion about this around a year or so ago | |||
masak | well, I'm starting to feel I don't like it. | ||
jnthn | pmichaud: Frankly, I'd be happy to make people write <&x> always if they must write regexes outside of grammars. | 21:06 | |
pmichaud | and that's why nom wasn't supporting lexical regexes... because there's a huge conflict present | ||
masak | jnthn: +1 | ||
21:06
skids left
|
|||
pmichaud | what about.... | 21:06 | |
masak | jnthn: always &x if you mean a lexical regex. | ||
jnthn | pmichaud: It was one of those cases where the 15 minutes to implement it seemed to be the most likely way to make people realize it was nasty and get a clarification. ;-) | ||
pmichaud | r: grammar ABC { method x { foo }; method TOP { <x> } }; grammar DEF is ABC { method x { bar } }; say DEF.parse('foo').perl | 21:07 | |
p6eval | rakudo a4c78f: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&foo' called (line 1)Undefined routine '&bar' called (line 1)» | ||
jnthn | At which point all the tests that rely on it can also be declared wrong and fixed. :) | ||
pmichaud | r: grammar ABC { rule x { foo }; rule TOP { <x> } }; grammar DEF is ABC { rule x { bar } }; say DEF.parse('foo').perl | ||
p6eval | rakudo a4c78f: OUTPUT«Match.new(orig => "foo", from => 0, to => -3, ast => Any, list => ().list, hash => EnumMap.new())» | ||
pmichaud | r: grammar ABC { rule x { foo }; rule TOP { <x> } }; grammar DEF is ABC { rule x { bar } }; say DEF.parse('bar').perl | ||
p6eval | rakudo a4c78f: OUTPUT«Match.new(orig => "bar", from => 0, to => 3, ast => Any, list => ().list, hash => EnumMap.new("x", Match.new(orig => "bar", from => 0, to => 3, ast => Any, list => ().list, hash => EnumMap.new()), ))» | ||
pmichaud | okay, that one is okay. but | 21:08 | |
r: grammar ABC { my rule x { foo }; rule TOP { <x> } }; grammar DEF is ABC { rule x { bar } }; say DEF.parse('bar').perl | |||
p6eval | rakudo a4c78f: OUTPUT«Match.new(orig => "bar", from => 0, to => -3, ast => Any, list => ().list, hash => EnumMap.new())» | ||
jnthn | Yeah, no lexical one there | ||
pmichaud | that one isn't. | ||
jnthn | You explicitly have to write "my" to install it as lexical | ||
Right, that one sure ain't, and it's awkward. | |||
pmichaud | anyway, we chose not to enable lexical regexes specifically so that people wouldn't rely on code that we know will someday break. | ||
I'll see if I can find the #perl6 thread | 21:09 | ||
jnthn | Can we choose to get a spec clarification while ripping them out? :) Or can I be free to remove reliance on this out of any spectests too? :) | ||
pmichaud | the spec clarification is incredibly non-trivial | 21:10 | |
jnthn | Ugh. | ||
pmichaud | last I heard, TimToady+ was speculating that anonymous regexes were in fact part of another inheritance component | ||
sort of like braids | |||
jnthn | Only deserves one + for that ;) | ||
mmmm...braids... | |||
pmichaud | TimToady++ | ||
21:11
thou left
|
|||
pmichaud | (gotta fix the +'s) | 21:11 | |
jnthn | :) | ||
21:12
orafu left
21:13
orafu joined
|
|||
masak | pmichaud: oh btw, the .gist output of Match nowadays is often informative enough for .perl to be omittable: | 21:15 | |
r: grammar ABC { my rule x { foo }; rule TOP { <x> } }; grammar DEF is ABC { rule x { bar } }; say DEF.parse('bar') | |||
p6eval | rakudo a4c78f: OUTPUT«#<failed match>» | ||
pmichaud | masak++ | ||
21:15
sudokode left
|
|||
masak | um, bad example :) | 21:15 | |
pmichaud | no, that was good enough. | ||
it shows the match failed, much better than the .perl output did :) | 21:16 | ||
masak | r: say "foo" ~~ /o*/ | ||
p6eval | rakudo a4c78f: OUTPUT«=> <>» | ||
masak | huh!? | ||
masak submits rakudobug | |||
pmichaud | that matched at the beginning :-) | ||
masak | oh! | ||
pmichaud | IT'S NOT A BUG!!! :) | ||
masak | r: say "foo" ~~ /o+/ | ||
p6eval | rakudo a4c78f: OUTPUT«=> <oo>» | ||
jnthn | :D | ||
masak unsubmits | |||
stupid quantifiers... :P | 21:17 | ||
fglock | regex is hard :P | ||
pmichaud | we could unspec the quantifiers if you want :) | ||
masak | I could totally do that right now. | ||
don't tempt me :P | |||
"Perl 6 regexes no longer support quantifiers. They're too hard to learn." | |||
jnthn wonders if masak's commits to the specs are a negative number :) | 21:18 | ||
Tene | "Perl 6 recommends going shopping as an alternative to learning quantifiers." | ||
masak | I counted something like 11 removals of stuff from the spec in 2011. | ||
that I did, that is. | |||
pmichaud | anyway, I'll find the current state of lexical regexes. | 21:21 | |
I do remember it as being a huge "here be dragons" area | |||
jnthn | I'm quite sure it is. :) | ||
Seemed I made it breathe a little fire. :) | |||
Tene | yep, I still have slower startup, around 0.7-0.8s rather than 0.4 like it was before the bs merge | ||
jnthn | Wow. | 21:22 | |
21:23
dorlamm joined
|
|||
Tene | It drops a bit if I unset PERL6LIB, or maybe that's just sampling variance. | 21:23 | |
Both parrot and rakudo were built from clean checkouts. | |||
timotimo | how would i manually override the ?? !! operator? | 21:25 | |
or rather, how do i define my own ternary operators? | |||
pmichaud | jnthn: github.com/perl6/mu/blob/master/mi...m.txt#L447 has part of it | 21:26 | |
jnthn | pmichaud: oh...just regexes outside of grammars... | 21:27 | |
masak | timotimo: infix:<?? !!> | ||
pmichaud | those would be lexical, though. | ||
Tene | jnthn: if you'd like to get access to my laptop to diagnose the issue, let me know. | 21:28 | |
pmichaud | the point being that <x> should make use of a regex defined in the grammar slang, not lexical | ||
jnthn | pmichaud: Aha. | ||
pmichaud | I'll still find the discussion -- now I have a date range :) | 21:29 | |
jnthn | Tene: OK. I'm kinda hoping the release that just went out advertising faster startup will spring up somebody else whose like "LIES!!!" and then there's a couple of data points and it's easier to extract the commonality | ||
Tene: At the moment I have on report of slower and many of faster. | 21:30 | ||
masak | 1. negative PR 2. ??? 3. profit! | ||
jnthn | *one | 21:31 | |
Tene: I dunno if you have a C-level profiler you could run on it. Then I could compare it to what I see in such a run. | |||
Tene | jnthn: I can run whatever you'd like me to run. | ||
timotimo | p6: sub infix:<blip bloop>($a, $b, $c) { say "a: $a"; say "b: $b"; say "c: $c"; }; 1 blip 2 bloop 3; | ||
p6eval | rakudo a4c78f: OUTPUT«===SORRY!===Confusedat /tmp/7ACm5BiEr7:1» | ||
..pugs: OUTPUT«***  Unexpected "blip" expecting operator at /tmp/1w4Avdcdb8 line 1, column 82» | |||
..niecza v15-4-g1f35f89: OUTPUT«Unhandled exception: No value for parameter '$c' in 'infix:<blip bloop>' at /tmp/K2KhtV5Pl7 line 0 (infix:<blip bloop> @ 1)  at /tmp/K2KhtV5Pl7 line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 3838 (ANON @ 3)  at /home/p6eval/niec… | |||
Tene | If you can give me appropriate arguments to valgrind or whatever, I can run that. | 21:32 | |
jnthn | Tene: Not right off, but I can likely figure something out. | ||
Tene | great | ||
timotimo | that didn't work so well | ||
jnthn | If it produces output that kcachegrind can read, then I have a box back home where I managed to get that running. | ||
timotimo | it does work with <?? !!>, though | 21:33 | |
21:33
Trashlord left,
Trashlord joined
|
|||
masak | timotimo: maybe it's still the case that one can't define new operators. | 21:33 | |
at least there used to be a bug like that. | |||
timotimo | mhm | 21:35 | |
will i also be able to define a quarterny operator? like infix:<a b c>? | 21:37 | ||
pmichaud | gotta shuttle kids to practice -- bbl or bbt | ||
masak | timotimo: I suppose so. | 21:38 | |
pmichaud | looks like 2010-07-20 was the bulk of the discussion on lexical regexes | ||
masak | so, about around the Rakudo Star release? | 21:39 | |
Tene | jnthn: allalone.org/callgrind.out.11171 | ||
pmichaud | yes | ||
irclog.perlgeek.de/perl6/2010-07-20#i_2578599 # a good bit of the discussion | |||
gotta run -- bbl | |||
jnthn | Tene: Thanks. | 21:40 | |
Tene | jnthn: I've only used callgrind a couple of times ever; if that doesn't work for you, or you want me to run other benchmarks or whatever, please let me know. | 21:42 | |
jnthn | Tene: Will do. Thanks. | 21:43 | |
21:43
fgomez left
21:44
fgomez joined,
fgomez left,
fgomez joined
21:57
fglock left,
am0c_ joined
|
|||
masak | r: class A { has $.req = die 'You must supply the parameter :req to the .new method' }; say A.new | 21:58 | |
p6eval | rakudo a4c78f: OUTPUT«You must supply the parameter :req to the .new method in method <anon> at /tmp/dG4xh7V9MM:1 in block <anon> at src/gen/CORE.setting:600 in method BUILDALL at src/gen/CORE.setting:578 in method bless at src/gen/CORE.setting:568 in method new at src/gen/COR… | ||
masak | \o/ | ||
tadzik++ | |||
tadzik | hm> | 21:59 | |
? | |||
looks like I accidentally Tene's karma :) | 22:00 | ||
jnthn | masak: Now write a module to add an "is required" trait :) | ||
masak | tadzik: no, that's from 2010 :) | ||
tadzik | hm | ||
22:01
am0c left
|
|||
masak | tadzik: the irclog URL that pmichaud provided. | 22:01 | |
tadzik | howdy, that was long ago | ||
masak | jnthn: should be entirely possible. | ||
tadzik | that was not my idea either :) | 22:02 | |
"tadzik | and bless myself, like in Perl 5" | |||
oh joy :) | |||
and I was asking for Moose-like BUILD back then | 22:03 | ||
oh, I was supposed not to speak of that never again | |||
masak | :P | 22:04 | |
yah, 'cus you're wrong :P | |||
tadzik | right | ||
TimToady | only half wrong :) | 22:05 | |
after that we did discuss the possibility of setting lazy thunks beforehand | 22:06 | ||
which would also not die prematurely, but would have the advantage that you could use the default in the BUILD | |||
has $!foo = 42; submethod BUILD() { $!foo *= 2 } # 84 | 22:07 | ||
22:07
colomon_ joined,
colomon left,
colomon_ is now known as colomon
|
|||
TimToady | but = would just STORE without a FETCH and throw away the lazy value | 22:07 | |
tadzik | that demoralizes me again :) | 22:08 | |
TimToady | not sure what the performance ramifications would be though | ||
probably not big, but it has to hang the thunk off the FETCH call somehow | 22:09 | ||
it might also have surprising results by not running code at BUILD time either, but at first reference to the attr later | 22:10 | ||
masak | yeah. | 22:11 | |
TimToady | has $!start = now; # would be at first $.start call, not at .new time | ||
unless BUILD forced the call at the point it now calls the default thunks | |||
masak | feels like what we have now is simpler to explain and reason about. | 22:12 | |
TimToady | and works with native structs that can't support lazy attrs | ||
masak | and that. | 22:13 | |
TimToady was just thinking about rotates on compact arrays of bits... | |||
for rosettacode.org/wiki/Bitwise_operations#Perl_6 | |||
22:15
fgomez left
|
|||
tadzik | good night #perl6 | 22:16 | |
lichtkind | blogs.perl.org/users/lichtkind/2012...eport.html | ||
masak | 'branoc, tadziku. | 22:17 | |
lichtkind | TimToady: did you consider actors (sorry if disturbs your circles) | ||
good night | |||
22:18
alester joined,
fgomez joined
|
|||
masak | lichtkind: sure TimToady considered actors -- you don't get to have "scripts" and "programs" without first having actors. ;) | 22:18 | |
TimToady | the guy who disturbed our circles was Kepler... | 22:26 | |
masak | I thought he just bend them a little. | 22:27 | |
bent* | |||
masak .oO( Kepler was an excentric ) | |||
TimToady | no, that was Copernicus :) | 22:28 | |
masak | dang! | 22:29 | |
TimToady | then there's Newton, who confused parabolas with the ends of ellipses... | 22:30 | |
22:30
am0c_ left
|
|||
TimToady | because we all know that artillery shells go in parabolas until the reach orbit, and then their paths magically turn into ellipses instead | 22:31 | |
*they | |||
masak | TimToady: have you perchance read the Baroque Cycle? | 22:32 | |
22:32
tokuhiro_ joined
|
|||
TimToady | remind me not to sail across the Pacific | 22:32 | |
masak | :P | ||
22:33
Patterner left
22:34
Psyche^ joined,
Psyche^ is now known as Patterner
22:37
skids joined
|
|||
sisar | .pm , .pm6 , .pl - what is the difference among them ? is there a .pm5 ? | 22:40 | |
masak: hm, The Baroque Cycle looks interesting... any good ? | 22:41 | ||
masak | sisar: I've only read the first book. it's slow and long, but I liked the tone of it. the second and third are said to be better. | 22:43 | |
sisar | ah, will add it to my oh-so-long list of to-read books :) | ||
masak | sisar: think of it as a weird kind of reverse SF. it's in the past, it's about things that sorta-kinda actually happened, but with a mix of characters that did and did not exist in actual history. | 22:44 | |
22:46
japhb_ joined
|
|||
japhb_ | I never made it past the first book in The Baroque Cycle. It was just too slow for me. | 22:47 | |
[Coke] sees pmichaud++ in backscroll: o/ | |||
japhb_ | TimToady, is RosettaCode the primary place you're putting "Here's how to do this in Perl 6" examples these days? | 22:48 | |
TimToady | I did read them all, in fact, eventually, but after getting stuck in the first book for a year :) | ||
masak | japhb_: I think I would've considered it too slow if not for MJD's judgement that this is the form of writing where Stephenson finally has room for all he wants to say. | ||
TimToady | fortunately, they're the sort of book you can pick up again, and there are enough reminders of what went before | ||
I don't know of anyone else who can make economics that interesting | 22:49 | ||
masak | I was a bit confuzzled by the rather broad person gallery in the first book. not fatally so, but still. | ||
yeah, the economics angle surprised me. | |||
sisar | masak: i would love to see a blog post titled 'What is a macro ?' with both a general discussion/definition and macros in the perl6 context :) | ||
japhb_ | masak, I can see that. But I think Cryptonomicon was about as slow as I could manage and still love it. Slower than that ... and I've got faster things to read. :-) | ||
masak | I expected it to be mostly Newton/science. | ||
TimToady | all Stephenson's books are about economics on one level or another | ||
masak | sisar: strangelyconsistent.org/blog/macros...hey-really | 22:50 | |
sisar | huh, masak++ | ||
masak | instant gratisfaction :P | ||
TimToady | as for the person gallery, you already know Newton, so you really only have to track Daniel, Eliza and Jack strongly | ||
masak | nod, but there were all these nobles... | 22:51 | |
TimToady | well, and there's Liebnitz | ||
22:51
alester left
|
|||
masak | Liebnitz is cool :) | 22:51 | |
he's doing mines *and* differential calculus. | |||
TimToady | mines is actually where I got stuck for a year :) | ||
masak | heh :) | ||
sisar | masak: "Forget the "abstract" part, it's just been put there to scare you into thinking this is tricky." <- love this line :) | 22:53 | |
(from your blog post) | |||
masak | well, in a very real sense "Syntax Tree" would've conveyed the concept just as well. | 22:54 | |
sisar | exactly ! | ||
masak | maybe people just love their TLAs. | ||
sisar | MIA - masak is awesome :) | 22:55 | |
masak blushes :) | |||
japhb_ nudges TimToady re: his RosettaCode question | |||
22:56
kaare_ left
|
|||
sisar | my previous question, re extensions... anyone ? | 22:56 | |
masak | sisar: .pm and .pm6 -- no real difference, except that the former may be Perl 5 code. | 22:57 | |
sisar: .pm extension means "this is a module", .pl extension tends to mean "this is a script" | 22:58 | ||
sisar: some people don't use the .pl extension so much. if you're on Unix, there's no real need to give your Perl script an extension. | |||
22:58
havenn left
|
|||
sisar | yeah, but ain't a module a script... i mean both have the same perl code, it's not a differetn type of file format | 22:59 | |
japhb_ | .pl tends to have a connotation of "This is a perl script, and I want it to run in an environment that pays attention to file extensions -- e.g. web servers (in CGI mode), Windows, etc." | ||
23:00
sudokode joined
|
|||
sisar | anyways, thanks for the answer | 23:00 | |
every module begins with Module::Name ? | |||
masak | sisar: a module is just Perl code, yes. but if you do .pm you create the expectation that it'll be imported by other code. | ||
sisar: that's the difference. such an expectation does not exist for .pl | 23:01 | ||
sisar | i meant "module Module::Name; " | ||
[Coke] wonders how many days of backlog this is. yeesh. | |||
masak | sisar: every *module* begins with that, yes. every .pm file does not. | 23:02 | |
sisar: could equally well be a role or a class or a grammar. | |||
or it could begin with some other declarational stuff. | 23:03 | ||
sisar | but if i see such a line at the beginning of a .pm file, what is it there for ? | 23:04 | |
japhb_ | 'module' says among other things that it is a Perl 6 module, not a Perl 5 module (which typically begins with 'package Module::Name;' | 23:05 | |
jnthn -> dinner | |||
masak | sisar: it declares the contents of the file as being part of a particular namespace, and the namespace being a module. | 23:06 | |
sisar | oh, ok. | 23:07 | |
any good guide for learning to write tests using TAP ? | 23:08 | ||
(from basics) | 23:09 | ||
masak | three step guide: (1) 'plan <some number>;' (2) 'ok <some test>;' (3) there is no third step, that's it. | 23:12 | |
sisar | masak, you do like 'three-step guides' don't you ? ;-) | 23:14 | |
masak | (1) yes (2) yes (3) yes | ||
japhb_ | 1. yes 2. ??? 3. profit! | 23:15 | |
sisar | 1. ask masak 2. ??? 3. profit! | 23:16 | |
masak | now that is a meme that I wouldn't mind spreading. | 23:17 | |
maybe I should print that on t-shirts and hand out to people. | |||
23:22
NamelessTee left,
wooden left
|
|||
sisar | i found a good exercise, try to understand the Pod::To::HTML. Why good? Because you end up learning three languages, perl6, Pod, & HTML in the process ! | 23:23 | |
sorear | masak: I was wondering what you were using for the (>) (>>) stuff | ||
masak: not just "ASTs" but "ASTs that defer declarators" | 23:24 | ||
sisar | i thought he did that by hand... # >, >> stuff | ||
s/by hand/manually | |||
masak | sorear: I'm doing that by hand. it's become a sort of Zen exercise at this point. | 23:26 | |
it's how I would like a decent email client to work, ideally. | |||
sorear: what does deferring declarators have to do with --yaml ? | 23:27 | ||
sorear | hahah I love the use of 木 there | ||
masak | :) | ||
sorear | masak: The error is fundamentally about BEGIN { say q:to/bar/ } ... | 23:28 | |
masak: I guess it's triggering because of questionable folding | |||
sisar | masak, i agree. It looks much cleaner than the usual cruft 'john doe wrote on $date $time' | ||
masak | I've done that for years. | 23:29 | |
I tend to put the name that people put in their signatures. that makes it hard to automate. | |||
sorear | whee, present. | 23:32 | |
23:32
dorlamm left
|
|||
masak | it'd be cool if you could somehow overshoot backlogging and end up in the future. | 23:34 | |
masak .oO( I accidentally forelogged five minutes ) | |||
sorear | <3 | 23:37 | |
23:38
whiteknight joined
|
|||
masak | then you would watch in some sort of tingly horror as the IRC log unfolded *exactly* as you had seen it, and no matter what you did, there was no way to change it. | 23:39 | |
pmichaud | ...where do you guys think I've been the past several months! I saw the future irclog and realized I shouldn't be in it. :) | 23:42 | |
but, the log is back to the point where I'm suppose to be writing again. | |||
masak boggles at trying to imagine a seven-month forelogging | 23:43 | ||
pmichaud | "tingly horror", yes. | ||
masak | more like electric shocks. | 23:44 | |
23:45
sivoais_ joined
23:47
eiro_ joined
|
|||
masak | 'night, #perl6 | 23:53 | |
see you in the forelog. | |||
23:55
eiro left,
geekosaur left,
jevin left,
TimToady left,
sivoais left,
Tene left,
krakan left,
ivan`` left
|
|||
sorear | nocht masak | 23:55 | |
23:59
wooden joined,
wooden left,
wooden joined
|