»ö« 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:03 zloyrusskiy left
TimToady um, none? 00:06
I think the & is optional only to allow declaration of &*foo, which would be a dynamic name 00:07
soh_cah_toa ah, ok. i wasn't sure if the meaning of & changed in p6 00:08
TimToady well, it certainly changed from what it means in p5. & can invoke in p5, but in p6 & only ever turns a verb name into a noun, like -ing in 'walking' 00:14
or more like the infinitival 'to', since it's in front 00:15
shades of Logo...
soh_cah_toa ah, interesting
00:32 thundergnat left 01:01 noganex joined 01:02 jaldhar left, jaldhar joined 01:04 noganex_ left 01:05 jevin left 01:08 jevin joined 01:17 jaldhar left 01:23 jevin left 01:26 jevin joined 01:31 colomon joined
colomon new regex engine! \o/ 01:31
01:40 im2ee left
colomon errr.... why are all (or many of?) the nom parameters passed as \$a? 01:46
01:47 mberends left
colomon nom: say 0.WHAT 01:53
p6eval nom: OUTPUT«Int()␤»
colomon nom: say (0/1).WHAT
p6eval nom: OUTPUT«Rat()␤»
01:55 jevin left
colomon nom: given "10" { say $_.WHAT } 01:55
p6eval nom: OUTPUT«Str()␤»
[Coke] nom: say +"4/2".WHAT
p6eval nom: OUTPUT«Segmentation fault␤»
[Coke] hee!
colomon ugh
[Coke] pmichaud: nom: say +"4/2".WHAT
msg pmichaud nom: say +"4/2".WHAT
... 01:56
colomon nom: say "4/2".WHAT
01:56 jevin joined
p6eval nom: OUTPUT«Str()␤» 01:56
[Coke] phenny, tell pmichaud nom: say +"4/2".WHAT
phenny [Coke]: I'll pass that on when pmichaud is around.
[Coke] nom: say +"2/4"
p6eval nom: OUTPUT«0.5␤»
colomon hey, come on, that one's easy!
[Coke] nom: say +"4/2"
p6eval nom: OUTPUT«2␤»
colomon it's +(.WHAT) that's killing it
nom: my $a = "4/2".WHAT; say $a; say +$a 01:57
p6eval nom: OUTPUT«Str()␤Segmentation fault␤»
01:57 simcop2387 left
[Coke] nom: say +"Str()" 01:57
p6eval nom: OUTPUT«0␤»
01:57 simcop2387 joined, simcop2387 left, simcop2387 joined
colomon oooo, so it's not a string, eh? 01:58
nom: my $a = "4/2".WHAT; say $a; say $a.WHAT
p6eval nom: OUTPUT«Str()␤Str()␤»
colomon or not.
[Coke] must be a funkystr! 01:59
colomon yeah
thought since I had a second of peace and quiet and my $work is stalled waiting from e-mail from France, I'd look at abs.t. 02:00
I patched nom so abs.t didn't crash any more, but I'm getting really weird results from the test 02:01
in particular, the line ok(abs($_) ~~ $_.WHAT, "got the right data type (" ~ $_.WHAT ~ ") of absolute value for $_");
seems to be triggering "Use of uninitialized value in string context" even when $_ is very clearly defined. 02:02
[Coke] "no it isn't"
. o O (You came here for an argument!) 02:03
TimToady nom: my $a = (+"4/2").PARROT
p6eval nom: OUTPUT«Method 'PARROT' not found for invocant of class 'Rat'␤current instr.: '_block1002' pc 89 ((file unknown):63434093) (/tmp/Vv8X_BzGF1:1)␤»
TimToady nom: my $a = +"4/2".WHAT.PARROT
p6eval nom: OUTPUT«Method 'PARROT' not found for invocant of class 'Str'␤current instr.: '_block1002' pc 81 ((file unknown):39361052) (/tmp/Zkxj4gcwE7:1)␤»
TimToady nom: say "4/2".WHAT.WHAT 02:04
p6eval nom: OUTPUT«Str()␤»
[Coke] nom: say +"4/2".PARROT
p6eval nom: OUTPUT«Method 'PARROT' not found for invocant of class 'Str'␤current instr.: '_block1002' pc 75 ((file unknown):64971608) (/tmp/s4eWrXkmJm:1)␤»
[Coke] yay mysteries.
TimToady nom: say "4/2".WHAT.Numeric
p6eval nom: OUTPUT«Segmentation fault␤»
TimToady nom: say Str.Numeric 02:05
p6eval nom: OUTPUT«Segmentation fault␤»
TimToady there you go
nom: say Mu.Numeric 02:06
p6eval nom: OUTPUT«Use of uninitialized value in numeric context␤0␤»
TimToady nom: say Any.Numeric
p6eval nom: OUTPUT«Use of uninitialized value in numeric context␤0␤»
TimToady nom: say Cool.Numeric
p6eval nom: OUTPUT«Use of uninitialized value in numeric context␤0␤»
colomon Str.Numeric appears to be a bunch of special case code 02:07
TimToady obviously it's the actual attempt to convert something that it thinks it ought to
colomon errr... special case code isn't really the right term.
TimToady probably just missing a :D
colomon but it's a specific routine.
nom: say 243245324245823904890328490328490283490820934] 02:09
p6eval nom: OUTPUT«bigint_get_long: number too big␤current instr.: 'nqp;Perl6;SymbolTable;add_constant' pc 14716 (src/gen/perl6-symboltable.pir:5024) (src/Perl6/SymbolTable.pm:790)␤»
colomon nom: say 243245324245823904890328490328490283490820934
p6eval nom: OUTPUT«bigint_get_long: number too big␤current instr.: 'nqp;Perl6;SymbolTable;add_constant' pc 14716 (src/gen/perl6-symboltable.pir:5024) (src/Perl6/SymbolTable.pm:790)␤»
colomon ah
yeah, Str.Numeric doesn't handle the "Not actually a number" case at all. 02:10
no, wait, it's trying to...
TimToady nom: say Str.Cool
p6eval nom: OUTPUT«Method 'Cool' not found for invocant of class 'Str'␤current instr.: '_block1002' pc 75 ((file unknown):63566680) (/tmp/dxGy1CYLpf:1)␤»
02:11 jaldhar joined
colomon nom: say nqp::radix(10, "Str", 0, 0) 02:15
p6eval nom: OUTPUT«Method 'gist' not found for invocant of class 'FixedFloatArray'␤current instr.: 'say' pc 441726 (src/gen/CORE.setting.pir:112716) (src/gen/CORE.setting:3458)␤»
colomon :\
nom: say nqp::radix(10, nqp::unbox_s("Str"), 0, 0) 02:16
p6eval nom: OUTPUT«Method 'gist' not found for invocant of class 'FixedFloatArray'␤current instr.: 'say' pc 441726 (src/gen/CORE.setting.pir:112716) (src/gen/CORE.setting:3458)␤»
colomon bah. need to go to bed. 02:17
o/
TimToady o/
02:23 pmichaud left, pmichaud joined
colomon though one last question (for those present and backloggers in the morning): there are operator, sub, and method forms of abs. Which one should be the basis for the implementation of the other two? 02:23
02:23 ciphertext left, jaldhar left 02:24 silug_ left 02:25 xinming left 02:26 ciphertext joined, silug_ joined 02:32 xinming joined 02:45 felliott joined, leprevost joined
TimToady operators and subs can be inlined, and single dispatch is really kinda what you want for a unary anyway. 02:46
that being said, however, abs() means something particular in Perl the Language
and if you call $x.abs it could instead be what Some Other Language wants it to mean 02:47
not likely a problem for abs, but other operators have strange overloadings in other languages
if our infix:<+>($a,$b) delegates to $a.'+'($b) you're likely to get concatenation instead of addition 02:49
so probably the abs(Numeric) can delegate to the method, but abs(Cool) should still enforce numericity 02:53
03:01 Chillance left
TiMBuS colomon, looks like everything in nom is a bit unsafe 03:07
nom: say Str.chop
p6eval nom: OUTPUT«Segmentation fault␤»
TiMBuS nom: say Str.pred 03:08
p6eval nom: OUTPUT«Use of uninitialized value in string context␤Decrement out of range␤current instr.: 'rethrow' pc 505413 (src/gen/CORE.setting.pir:141862) (src/gen/CORE.setting:3974)␤»
TiMBuS oh
nqp::unbox_s(self) seems to be the issue then. um
03:08 molaf joined
TiMBuS return 0 if nqp::isnull(self); ? 03:09
unless self isnt null in this case? i wouldnt know
so um. i guess i should find out what :D does huh 03:17
> Str.Numeric
Parameter '(null)' requires an instance, but a type object was passed
that fixes it but i dont even know what i did 03:18
TimToady it's just an extra constraint on the type that requires it to be defined
TiMBuS well that makes perfect sense 03:20
and i was so sure it meant 'make this function happy' 03:21
TimToady that too
TiMBuS so is erroring like that the Right thing to do, or should it actually be checking for self being defined and returning 0 03:22
TimToady beats me, you should as a language designer 03:23
*ask
03:23 Su-Shee_ joined
TiMBuS heh 03:24
03:26 woosley joined 03:27 Su-Shee left
TimToady rosettacode.org/wiki/Singly-linked_...sal#Perl_6 <-- cute use of => to do Lisp cons cells 04:05
04:14 ciphertext left 04:20 HarryS left, HarryS joined 04:24 felliott left 04:30 kaare__ joined
TimToady also, demo of [=>] to turn a Perl list into a Lispish list 04:46
thou rakudo: my $s = 'foobar'; if $s ~~ s/ ^ xyz // { say $s.perl } # Anyone know a nice workaround for this? 04:54
p6eval rakudo 1ddda5: OUTPUT«"foobar"␤»
thou i *assume* that ~~ should return False there
i can do a match, and if it succeeds then do the subst, but maybe there's something a little nicer 04:55
04:57 donri left 04:59 ciphertext joined 05:00 soh_cah_toa left 05:12 whumbl joined 05:19 whumbl left 05:26 jaldhar joined 06:06 zby_home_ joined 06:13 [Sec] left
moritz there is - a batch for rakudo :-) 06:17
dalek kudo/nom: e707e6e | moritz++ | src/Perl6/SymbolTable.pm:
fix typo in comment
06:20
06:31 [Sec] joined 06:40 woosley left 06:41 simcop2387 left
thou \o/ just served complete November main page incl. css and images from Plackdo 06:43
moritz \o/ indeed 06:44
thou lopnor++ plackdo++
06:44 ciphertext left, simcop2387 joined 06:46 ciphertext joined
moritz nqp: pir::getstderr__PP().print("foo\n") 06:46
p6eval nqp: OUTPUT«foo␤»
thou it took a *long* time to serve header.png :-)
(3m 26s) 06:47
moritz then I hope you have a caching header for it :-)
Buf handling is *very* inefficient in master
thou postimage.org/image/2qasabphg/0630df2f/ 06:48
that's not precompiled code, though 06:49
06:50 woosley joined, woosley left
thou amazingly enough, Plackdo includes an expires header 06:52
06:52 woosley joined 06:56 woosley left 07:00 donri joined 07:02 wamba joined
moritz nom: rx/./ 07:02
p6eval nom: OUTPUT«Null PMC access in clone()␤current instr.: 'nqp;QRegex;P6Regex;Grammar;nibbler' pc 34391 (src/stage2/QRegex.pir:11337) (src/stage2/QRegex.nqp:771)␤»
07:02 Tene left, Tene joined, Tene left, Tene joined
moritz nom: $_ = "foo"; say /./ 07:02
p6eval nom: OUTPUT«_block1010␤»
moritz nom: $_ = "foo"; say (/./).()
p6eval nom: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: '_block1010' pc 369 ((file unknown):59126769) (/tmp/OnPjjvB14S:1)␤»
moritz nom: $_ = "foo"; say (/./).($_)
p6eval nom: OUTPUT«Method '!cursor_start' not found for invocant of class 'Str'␤current instr.: '_block1010' pc 390 ((file unknown):2) (/tmp/1qxXLkI4oG:1)␤» 07:03
moritz nom: $_ = "foo"; say (/./).(Cursor.new, $_)
p6eval nom: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤current instr.: '_block1010' pc 390 ((file unknown):149) (/tmp/WfY0aNxnMp:1)␤»
moritz can't figure out how regex are invoked at the low level
nom: say Regex.^methods
p6eval nom: OUTPUT«Method 'gist' not found for invocant of class 'Sub'␤current instr.: 'gist' pc 478754 (src/gen/CORE.setting.pir:130216) (src/gen/CORE.setting:2216)␤» 07:04
moritz nom: say Regex.^methods.map: { nqp::p6box_s($_) }
p6eval nom: OUTPUT«Segmentation fault␤»
moritz nom: say Regex.^methods.map: { nqp::p6box_s(pir::perl6_decontainerize__PP($_)) }
p6eval nom: OUTPUT«Segmentation fault␤»
moritz nom: say Regex.^mro 07:05
p6eval nom: OUTPUT«Regex() Method() Routine() Block() Code() Any() Mu()␤»
07:06 [particle] left 07:08 [particle] joined
colomon nom: say abs -10 07:10
p6eval nom: OUTPUT«10␤»
colomon nom: say abs(-10)
p6eval nom: OUTPUT«10␤»
07:28 im2ee joined
TimToady rosettacode.org/wiki/Boxing_the_compass#Perl_6 07:30
07:32 jjore left 07:33 jjore joined
moritz it's fun to actually write running Perl 6 code :-) 07:34
TimToady ain't it though 07:35
colomon nom: use Test; given -10 { ok(abs($_) ~~ $_.WHAT, "got the right data type (" ~ $_.WHAT ~ ") of absolute value for $_"); }
p6eval nom: OUTPUT«Use of uninitialized value in string context␤ok 1 - got the right data type () of absolute value for -10␤»
colomon nom: use Test; given -10 { say $_.WHAT; ok(abs($_) ~~ $_.WHAT, "got the right data type (" ~ $_.WHAT ~ ") of absolute value for $_"); } 07:36
p6eval nom: OUTPUT«Int()␤Use of uninitialized value in string context␤ok 1 - got the right data type () of absolute value for -10␤»
moritz use .WHAT.gist or .WHAT.perl
type objects now stringify to ''
colomon ooooo
moritz and say() uses .gist on its arguments 07:37
to get a more human-readable output
colomon nom: use Test; given -10 { say $_.WHAT; ok(abs($_) ~~ $_.WHAT, "got the right data type (" ~ $_.WHAT.gist ~ ") of absolute value for $_"); }
p6eval nom: OUTPUT«Int()␤ok 1 - got the right data type (Int()) of absolute value for -10␤»
colomon :\
that's not at all what I got when I just tried that locally. 07:38
moritz how old/new is your nom?
colomon last commit is 6c8b8d1f35992bf6fbab99459ac1cf3b119c61f8, July 15 20:59:42 by you 07:39
nom: use Test; given -10 { say $_.WHAT; ok((2/3) ~~ $_.WHAT, "got the right data type (" ~ $_.WHAT.gist ~ ") of absolute value for $_"); } 07:40
p6eval nom: OUTPUT«Int()␤ok 1 - got the right data type (Int()) of absolute value for -10␤»
moritz that's new enough
07:40 jjore left
colomon the test isn't actually working either place.... 07:40
moritz rakudo: say (2/3).WHAT
p6eval rakudo 1ddda5: OUTPUT«Rat()␤» 07:41
moritz nom: say (2/3).WHAT
p6eval nom: OUTPUT«Rat()␤»
moritz nom: say abs(2/3).WHAT
p6eval nom: OUTPUT«maximum recursion depth exceeded␤current instr.: 'Numeric' pc 466376 (src/gen/CORE.setting.pir:124246) (src/gen/CORE.setting:1093)␤»
moritz nom: say (abs(2/3)) .WHAT
p6eval nom: OUTPUT«Confused at line 1, near "say (abs("␤current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)␤»
moritz nom: say (abs -2/3) .WHAT
p6eval nom: OUTPUT«Confused at line 1, near "say (abs "␤current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)␤»
moritz nom: say (abs -2/3).WHAT
p6eval nom: OUTPUT«maximum recursion depth exceeded␤current instr.: 'Numeric' pc 466376 (src/gen/CORE.setting.pir:124246) (src/gen/CORE.setting:1093)␤»
moritz nom: say (abs (-2/3)).WHAT 07:42
p6eval nom: OUTPUT«maximum recursion depth exceeded␤current instr.: 'Numeric' pc 466376 (src/gen/CORE.setting.pir:124246) (src/gen/CORE.setting:1093)␤»
moritz nom: say (-2/3).abs.WHAT 07:44
p6eval nom: OUTPUT«Num()␤»
moritz colomon: do you want to fix it, or should I?
colomon I' ve got that fixed locally already 07:45
07:45 im2ee left
colomon was just trying to clean up the weirdness in the test file before I pushed 07:45
moritz even better :-)
colomon (well, committed even, but that's just laziness.)
07:45 im2ee joined
colomon anyway, point is I don't think the abs($_) ~~ $_.WHAT test is working correctly in nom 07:46
I'd love a better way to phrase it.
07:46 jjore joined
moritz nom: say abs(2) 07:46
p6eval nom: OUTPUT«2␤»
moritz (abs $_).WHAT === $_.WHAT 07:47
is (abs $_).gist, $_.WHAT.gist
that way you also get diagnostics
07:50 jjore left
colomon well, now completely mystified by the results I'm getting here. 07:54
07:54 ciphertext left
colomon when I added the .gist I started getting a crash. removing it has not made the crash go away 07:55
oh!
typo
07:58 Raynes_ joined
colomon moritz: gist.github.com/1086118 is my current version of the test 08:00
you should be able to run it for the 0 case without my patches to nom 08:01
08:01 mtk left, Raynes left, JodaZ_ left, im2ee left, JodaZ joined, molaf left, Raynes_ is now known as Raynes, Raynes left, Raynes joined
colomon and perhaps you can puzzle out why lines 5 and 6 each generate two Use of uninitialized value in string context 08:01
messages.
I need to go back to bed. ;)
08:02 im2ee joined 08:08 ciphertext joined 08:09 Jackneill joined 08:11 Mowah joined
moritz colomon: well, .WHAT stringifies to '' 08:14
colomon: so for is(), you need .WHAT.gist 08:15
colomon moritz++
dalek ast: 9e1a6c4 | (Solomon Foster)++ | S32-num/abs.t:
Clean up tests (moritz++) and todo one.
08:19
08:23 simcop2387 left 08:25 cognominal_ joined 08:27 jjore joined, cognominal left 08:28 simcop2387 joined 08:31 jjore left, jjore_ joined 08:34 Instil left 08:41 cognominal_ left, cognominal_ joined 08:42 araujo left 08:44 jjore_ left 08:46 Instil joined 08:47 ciphertext left 08:51 Jackneill left 08:58 drbean left 09:00 Su-Shee_ is now known as Su-Shee 09:05 jjore joined 09:07 xinming left 09:08 xinming joined 09:11 zby_home___ joined, zby_home_ left 09:12 Kivutarrr joined 09:15 zloyrusskiy joined 09:35 whiteknight joined 09:48 cognominal_ left 09:55 thou left 09:57 zby_home___ left
jlaire perl6: use MONKEY_TYPING; say 'alive' 10:04
p6eval rakudo 1ddda5, niecza v7-38-gf5e9082: OUTPUT«alive␤»
..pugs: OUTPUT«pugs: *** Unsafe function 'use' called under safe mode␤ at /tmp/P7GUL8_JCH line 1, column 1␤»
10:14 buubot_backup left 10:21 whiteknight left, Instil left 10:24 Jackneill joined 10:33 buubot_backup joined 10:36 mj41 joined 10:46 Chillance joined 10:51 Instil joined 10:53 im2ee left 10:55 donri left 10:56 mj41 left 11:07 jaldhar left, araujo joined, jaldhar joined 11:08 drbean joined 11:13 tokuhir__ left 11:16 Instil left 11:20 mj41 joined 11:27 whiteknight joined 11:30 Holy_Cow joined, Holy_Cow left 11:35 mj41 left 11:40 ciphertext joined 11:46 Jackneill left 11:51 cognominal joined 11:55 MayDaniel_ joined
moritz ok, big mystery 11:56
src/core/Attribute.pm is missing a $meth.'!set_name'($meth_name) between lines 24 and 25 11:57
when I add that, the compilation of the setting loops infinitely
so, I tried to add some debug output
pir::say("things")
or even
pir::getstderr__P().print("something else \n")
or even pir::die('foo')
but no matter what I add there, it always causes the setting compilation to loop infinitely 11:58
I'm stumped, and out of ideas
12:03 hugme joined, ChanServ sets mode: +v hugme
moritz hugme: list projects 12:03
hugme moritz: I know about Math-Model, Math-RungeKutta, MiniDBI, bench-scripts, book, gge, hugme, ilbot, java2perl6, json, modules.perl6.org, november, nqp-rx, nqpbook, perl6, perl6-examples, perl6-wtop, proto, pugs, rakudo, star, svg-matchdumper, svg-plot, tardis, try.rakudo.org, tufte, ufo, web, yapsi
12:04 ccc_ joined 12:08 Instil joined 12:09 Mowah left, MayDaniel_ left 12:10 im2ee joined 12:13 zloyrusskiy left 12:15 Mowah joined 12:17 wamba left, Trashlord left, wolfman2000 left 12:18 LoRe left, pothos left, kytibe left, Util left, frettled left, saaki left, eternaleye left 12:19 Trashlord joined, wolfman2000 joined, LoRe joined, pothos joined, kytibe joined, Util joined, frettled joined, saaki joined, eternaleye joined 12:28 kid51 joined
dalek kudo/nom: fa9c35c | (Solomon Foster)++ | src/core/ (2 files):
Add prefix:<abs>(Real), redefine Real.abs to do calculation directly instead of using .Bridge.
12:31
kudo/nom: d7d46e3 | (Solomon Foster)++ | t/spectest.data:
Turn on abs.t.
12:32 nrr left 12:35 colomon left 12:43 Chillance left 12:54 wamba joined, Jackneill joined 12:55 Holy_Cow joined 13:10 JimmyZ joined 13:25 chitragupt left 13:26 chitragupt joined 13:29 tokuhir__ joined 13:30 molaf joined, Holy_Cow left 13:33 wamba left 13:48 drbean left 13:50 isBEKaml joined 13:51 Chillance joined 14:01 isBEKaml left 14:07 Kivutarrr left 14:25 kid51 left 14:33 lichtkind joined 14:34 colomon_droid joined
colomon_droid o/ 14:34
is inheritance a little wonky in nom? 14:36
nom: say exp(i ) 14:38
p6eval nom: OUTPUT«Could not find sub &i␤current instr.: '_block1002' pc 70 ((file unknown):11808160) (/tmp/ObzoVGypRc:1)␤»
colomon_droid nom: say i.exp 14:39
p6eval nom: OUTPUT«Could not find sub &i␤current instr.: '_block1002' pc 70 ((file unknown):50627832) (/tmp/PupWKydj93:1)␤»
colomon_droid arrgh
nom: say exp(1i) 14:40
p6eval nom: OUTPUT«0.54030230586814 + 0.841470984807897i␤»
14:43 Instil left 14:50 Jackneill left
lichtkind cheers brave people 14:51
colomon_droid complex exp turned out to be me misreading the test 14:56
14:59 lateau joined
colomon_droid nom: say 2 ** -1 15:02
p6eval nom: OUTPUT«0␤»
colomon_droid tsk
jlaire nom: say (2 ** -1).WHAT 15:03
p6eval nom: OUTPUT«Int()␤»
15:03 [Coke] left, isBEKaml joined 15:04 Kivutarrr joined 15:05 [Coke] joined
colomon_droid jlaire: yup, that's the problem 15:07
isBEKaml hey, did parrot change their build routines recently or so? pmc2c and c2str? I don't remember seeing them at all... 15:11
well, it might be my bad memory since I don't build stuff as often as I used to do... :| 15:12
15:12 woosley joined
isBEKaml nom: {sub say_hello() { say "hello"; }; say "foo";}; 15:15
p6eval nom: OUTPUT«foo␤»
15:15 perlhack joined
isBEKaml rakudo: {sub say_hello() { say "hello"; }; say "foo";}; 15:16
p6eval rakudo 1ddda5: OUTPUT«foo␤»
colomon_droid exp.t now working on my laptop, will push when I have wifi 15:19
15:20 perlhack left 15:25 Instil joined 15:26 colomon_droid left 15:27 colomon_droid joined, colomon_droid left 15:28 colomon_droid joined 15:33 colomon_droid left, colomon_droid joined, colomon_droid left 15:36 mj41 joined
[Coke] isBEKaml: those 2 scripts have been around forever. 15:36
they may have morphed from perl5 to something else at some point.
15:40 im2ee left
isBEKaml [Coke]: yeah, bad memory, sorry. I later figured it out after poking the logs a bit. Oh btw, they are still in p5. 15:41
15:42 Instil left 15:48 kid51 joined, jevin left 15:49 jevin joined
felher TimToady++ for rosetta code 15:54
15:54 zloyrusskiy joined, Instil joined
TimToady rosettacode.org/wiki/Function_composition#Perl_6 <-- upgraded to compose 3 functions 15:55
turning RC entries into tests would be a fun LHF for someone 15:56
sorear: is there any way to run an external program from niecza? neither run() nor qx// seem to work yet, so I can't run stty raw and such 15:58
16:03 Jackneill joined 16:12 whiteknight left
TimToady perl6: my bit @array = 1,0,0,1,0,1,0; 16:21
p6eval niecza v7-38-gf5e9082: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/aclwScWCnF line 1:␤------> my ⏏bit @array = 1,0,0,1,0,1,0;␤␤Parse failed␤␤»
..rakudo 1ddda5: OUTPUT«===SORRY!===␤Malformed my at line 22, near "bit @array"␤»
..pugs: ( no output )
16:22 mberends joined
TimToady
.oO(Who's General Failure, and what's he doing to my disk drive?)
16:22
pugs: my bit @array = 1,0,0,1,0,1,0; say @array[3];
p6eval pugs: OUTPUT«1␤»
TimToady well, okay, I'll bet it's just ignoring the type...
pugs: my bit @array = 2; 16:23
p6eval pugs: ( no output )
TimToady pugs: my bit @array = 2; say 'alive'
p6eval pugs: OUTPUT«alive␤»
TimToady yeah
16:29 simcop2387 left
lichtkind mberends: good mornings sir 16:29
16:30 simcop2387 joined, simcop2387 left, simcop2387 joined, Mowah left
mberends good evening sir lichtkind 16:32
16:44 Mowah joined 16:45 JimmyZ left 16:48 Jackneill left 16:49 woosley left 16:56 mj41 left
TimToady perl6: my Bit $x = 2; 17:01
p6eval niecza v7-38-gf5e9082: OUTPUT«===SORRY!===␤␤In my declaration, typename 'Bit' must be predeclared (or marked as declarative with :: prefix) at /tmp/2TSwoGdKMU line 1:␤------> my Bit⏏ $x = 2;␤␤Malformed my at /tmp/2TSwoGdKMU line 1:␤------> my […
..rakudo 1ddda5: OUTPUT«===SORRY!===␤In "my" declaration, typename Bit must be predeclared (or marked as declarative with :: prefix) at line 22, near " $x = 2;"␤»
..pugs: ( no output )
TimToady std: my Bit $x = 2;
p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
TimToady std: my bit $x = 2;
p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
TimToady nom: my bit $x = 1; 17:02
p6eval nom: OUTPUT«Malformed my at line 1, near "bit $x = 1"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)␤»
TimToady is looking forward to native types, esp bits
tadzik nom: my int $a = 5; 17:03
p6eval nom: ( no output )
tadzik nom: my bit $a = 1
p6eval nom: OUTPUT«Malformed my at line 1, near "bit $a = 1"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23533 (src/stage2/gen/NQPHLL.pir:6314) (src/stage2/gen/NQPHLL.pm:328)␤»
TimToady so far it hasn't occurred to anyone to add even the bit type names :) 17:04
well, except for that guy who cobbled together STD
17:07 isBEKaml left
jlaire pugs: my bit @bits = 0,1,2,3,4; say @bits 17:12
p6eval pugs: OUTPUT«01234␤»
flussence pugs: my foo @bits = 0,1,2,3,4; say @bits 17:13
p6eval pugs: OUTPUT«01234␤»
jlaire heh
17:14 mj41 joined 17:16 wooden joined, leprevost left 17:17 ccc_ left 17:34 jevin left 17:42 jevin joined 17:44 wamba joined, zloyrusskiy left 17:48 Kivutarrr left 17:49 Kivutarrr joined 17:51 Jackneill joined 17:57 godfrey999 joined 17:59 mj41 left
sorear TimToady: correct 18:01
(there's no portable way) 18:02
TimToady I don't want to be correct :)
sorear the .net process-starting APIs are very Windows-centric and I haven't understood the munging code in p5's win32_spawnvp yet 18:04
mberends sorear: you would be better off ignoring the flawed attempts at fork emulation (munging) in Windows, because run() and qx// do not rely on that anyway. The child process never needs to be a clone of the parent process in the way that Unix goes fork then child execs. 18:14
18:15 bluescreen10 joined 18:16 ciphertext left 18:18 lateau left
mberends sorear: if you call CreateProcess() from C#, Unix will perform a fork() lower down and Windows will not. For I/O redirection, both platforms can provide popen(), just not sure about C# though. 18:19
18:20 ciphertext joined 18:33 ciphertext left 18:35 tokuhir__ left 18:47 Jackneill left
sorear mberends: what I'm talking about has absolutely nothing to do with fork emulation 19:08
mberends: .net expects to start a process with two strings: the full path to the executable file, and the command tail
because on Windows, the called program is responsible for parsing the command line 19:09
mberends right, so is your worry about splitting the single unix-oriented line? 19:10
sorear not just splitting but also joining
system LIST, let's say system('echo', '\'"\'"*', '"'), has to do some interesting stuff to produce a correct command tail 19:11
mberends yes, I can see the joins happening there 19:12
I assume that .net is just a thin wrapper around the Win32 functions
sorear on Windows, yes 19:13
on Unix... I think the sensible thing to do is late-bound access to Mono.Posix
mberends yes, keep the OS awareness as far down the call chain as possible 19:14
it looks like ProcessStartInfo is the Windows class/object to pass command line arguments and also set up I/O redirection. I'm planning to use that in 6model/c on Windows as well. 19:19
19:22 jevin left, molaf left 19:23 aindilis joined 19:26 jevin joined 19:28 huf left, jevin left 19:29 huf joined, jevin joined 19:33 kst` joined 19:34 shachaf left, shachaf joined 19:35 prammer left, prammer joined 19:36 ggoebel joined 19:37 kst left 19:39 Kivutarrr left 19:51 cooper left 19:54 jevin left 19:55 cooper joined, cooper left, cooper joined 19:56 revdiablo joined, revdiablo left, revdiablo joined 19:57 jevin joined 20:04 xinming left
dalek ast: 22a02fc | (Solomon Foster)++ | S32-num/exp.t:
Added another complex test.
20:04
ast: 453290b | (Solomon Foster)++ | S (2 files):
Move gcd.t to S03-operators, switch it to operator form of gcd.
ast: 0bfac46 | (Solomon Foster)++ | S03-operators/lcm.t:
Add simple new lcm.t.
kudo/nom: afc5299 | (Solomon Foster)++ | src/core/Num (2 files):
Fix Numeric.exp($base). Add "multi" to Num.exp.
20:05
kudo/nom: 7940ef2 | (Solomon Foster)++ | src/core/ (2 files):
Add exp(Numeric, Numeric). Fix infix:<**>(Int, Int) to handle negative powers properly.
kudo/nom: 1fbe8b1 | (Solomon Foster)++ | t/spectest.data:
Turned on exp.t.
kudo/nom: 9fd4115 | (Solomon Foster)++ | t/spectest.data:
Turn on gcd.t, add lcm.t.
20:10 xinming joined 20:14 colomon joined 20:18 kaare__ left 20:33 soh_cah_toa joined 20:35 ciphertext joined
sorear mberends: ProcessStartInfo requires you to set the command tail as a single LPTSTR 20:45
colomon!
mberends sorear: yes, that's what we must do 20:49
sorear mberends: how do you turn system('echo', '\'"\'"', '*') into a command tail? 20:55
don't tell me "join(' ')"
there's quite a lot of compilcated logic in perl5:win32/win32.c that I haven't figured out
20:56 isBEKaml joined
isBEKaml hey guys, got a build failure on latest rakudo. Do you guys recognise this? gist.github.com/1086781 20:57
mberends I haven't looked in win32.c yet, but I recall that the complicated logic was the fork emulation. I'll do that soon. 20:58
mberends is watching "Getting C++ Threads Right" www.youtube.com/watch?v=mrvAqvtWYb4
TimToady sorear: obviously, you just invoke Perl 5 to do it. :P 21:01
fork emulation *should* be more straightforward for P6, but we'll see 21:02
at least there should be fewer globals to fiddle 21:03
duping data is always going to be work
sorear mberends: "system" in Perl5 doesn't even hit the fork emulator 21:06
it is mapped into a CreateProcess call
mberends good, that is the easier one for implementing p6 run() because we don't need to capture the output. 21:07
isBEKaml nom: run('date'); 21:09
p6eval nom: OUTPUT«Could not find sub &run␤current instr.: '_block1002' pc 75 ((file unknown):84032856) (/tmp/sd2l7ZybXL:1)␤»
isBEKaml rakudo: run('date'); 21:10
p6eval rakudo 1ddda5: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/nGmYCEYrc9␤ in main program body at line 22:/tmp/nGmYCEYrc9␤»
mberends "do try this at home" ;)
isBEKaml mberends: yeah, I know. I was wondering if you guys were talking about rakudo. :)
but seems not. :)
mberends no, TimToady++ was hoping that sorear++ could find a way to add run() to niecza 21:11
21:12 tokuhir__ joined
isBEKaml ah, I see. 21:12
colomon sorear: hello! 21:15
21:15 masak joined
masak saluton karaj. 21:16
isBEKaml masak! \o/
masak I found another victim^Wbeta tester today, and so I have another batch of feedback to enter into the game. :) 21:17
but I'm hopeful I'll get at least the first blog post of two out the door tomorrow. 21:18
colomon just had two eggs in a row with double yolks 21:19
tadzik hej zebro
isBEKaml colomon: two eggs make double yolks? :P
hello, tadzik!
TimToady colomon: it's them fertility drugs; pretty soon you'll be having litters of yolks
tadzik isBEKaml: ohai! 21:20
isBEKaml tadzik: how goes gsoc->work()?
tadzik isBEKaml: I passed the first half!
colomon TimToady: from my farm share, mind you
isBEKaml tadzik: great to see! congrats... :)
tadzik isBEKaml: how are you doing? 21:21
masak tadzik++ # congrats!
isBEKaml tadzik: as ever. Been busy at dayjob lately, so catching up on rakudo now. :) 21:22
tadzik oh, I'm all ache today. We were burying the cellar in my home, 32 tones of sand
I didn't even hack today! 21:23
isBEKaml hugme: hug tadzik 21:24
hugme hugs tadzik
TimToady std: /[A-Z]/
tadzik ooh, thanks :]
p6eval std 516268a: OUTPUT«===SORRY!===␤Invalid regex metacharacter (must be quoted to match literally) at /tmp/NkjJotDw2h line 1:␤------> /[A-⏏Z]/␤Potential difficulties:␤ [A-Z] appears to be an old-school character class; please use <[A..Z]> if you mean …
jlaire masak: did you backlog yet? 21:25
masak jlaire: no, working on it. 21:27
jlaire: I did catch your nopastes though. thank you.
jlaire: I did indeed not consider the "trick" with the disks. easy enough to patch though :P
jlaire masak: :) 21:28
masak they're heavy, you see. shouldn't be possible to carry/lift more than one at a time.
jlaire (I did solve it properly before coming up with that)
ah, good point
masak hm, could still put them on the floor, though... 21:29
jlaire maybe you can only carry the tiny one
the others are too havy
masak I think I'll have to make all but the tiny one... right.
jlaire heavy*
21:30 Kivutarrr joined
masak <moritz> it's fun to actually write running Perl 6 code :-) 21:32
aye!
21:37 jevin left
masak thinks he will need a more rigorous approach to the command handling 21:40
21:40 jevin joined 21:43 Psyche^ joined 21:46 Patterner left, Psyche^ is now known as Patterner
sorear colomon: How do I fudge sin.t? 21:48
21:53 kid51 left 21:54 Kivutarrr left 21:55 Kivutarrr joined
masak jlaire: I am unable to reproduce the error at the top of pastebin.com/QbJFppfa 21:59
22:01 Kivutarrr left 22:07 lichtkind left 22:14 ciphertext left
jlaire masak: hmm, let me double check 22:15
jlaire updates rakudo
masak: try this input laire.fi/t/crypt-bug.txt 22:18
22:18 drbean joined
masak tries 22:18
jlaire i.e., the bug happens for me when I haven't solved the puzzle yet
masak ah!
jlaire (still running a slightly old rakudo) 22:19
masak that makes sense.
jlaire: yup. now I reproduced it. \o/ 22:20
jlaire yay! \o/ 22:21
22:22 isBEKaml left 22:25 donri joined
masak bug fix pushed. jlaire++ 22:27
22:28 aindilis left
masak 'night, #perl6. 22:29
jlaire 'night 22:30
22:30 masak left
jlaire masak: Really quit (y/N)? Method 'lc' not found for invocant of class 'Failure' 22:31
masak: that's Ctrl-D
tadzik oh
jlaire if "y"|"yes" eq lc prompt "Really quit (y/N)? " { ... } 22:32
that's a cute line, though
rakudo: say Failure.new.defined 22:34
p6eval rakudo 1ddda5: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤ in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
jlaire rakudo: say Failure.new
p6eval rakudo 1ddda5: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤ in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
jlaire rakudo: say Failure.new('...')
p6eval rakudo 1ddda5: ( no output )
jlaire rakudo: say Failure.new('...').defined
p6eval rakudo 1ddda5: OUTPUT«Method 'handled' not found for invocant of class 'Str'␤ in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
tadzik my $a; my $b = lc $a; say $b.perl;
22:34 wamba1 joined, wamba left
tadzik rakudo: my $a; my $b = lc $a; say $b.perl; 22:35
p6eval rakudo 1ddda5: OUTPUT«Method 'lc' not found for invocant of class ''␤ in 'lc' at line 2818:src/gen/core.pm␤ in main program body at line 22:/tmp/a5pIidZ2eY␤»
tadzik hrm
jlaire changing lc's parameter to (prompt "..." // "q") fixes it
tadzik rakudo: my $a = "" // "a"; say $a.perl 22:36
p6eval rakudo 1ddda5: OUTPUT«""␤»
jlaire ...no, it doesn't
lc ((prompt "bla") // "y") 22:37
tadzik how about changing !defined to !.so 22:38
22:39 wamba1 left
colomon sorear: what needs to be fudged? 22:39
jlaire it'd add another line of code and a new variable
// is reasonably clear
but this belongs to some readlineish library
22:40 DarthGandalf left
jlaire masak: fwiw, laire.fi/t/crypt-patch.txt 22:40
22:41 Pathin left
tadzik g'nite 22:43
sorear colomon: BEGIN { @*INC.push: ... } needs to be changed somehow 22:46
colomon ah
that's not fudging so much as fixing.
sorear colomon: I vaguely consider adding a fudge to make BEGINs with that exact content happen at compile time
colomon let me ponder this a bit. some re-organization probably makes sense anyway 22:47
22:49 DarthGandalf joined 22:50 wamba joined 22:58 wamba left 23:26 ciphertext joined 23:29 orafu left, OuLouFu joined, OuLouFu is now known as orafu 23:33 bluescreen10 left