»ö« 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.
sorear good * #perl6 00:31
sorear ponders replying to Wenzel
colomon sorear, o/ 00:56
adu what does <x>: mean? 01:10
TimToady don't backtrack into it 01:11
phenny TimToady: 08 May 22:48Z <diakopter> tell TimToady try 3875928375982735.383854792874359827349682.floor on p6eval
TimToady perl6: say 3875928375982735.383854792874359827349682.floor 01:12
p6eval rakudo 415791: OUTPUT«3875928375982729␤»
..pugs, niecza v17-2-gb8fcf85: OUTPUT«3875928375982735␤»
adu TimToady: you've been soo helpful today :)
TimToady well, everyone here is that way because someone was helpful to them at some point 01:13
adu why is this not working? 02:03
"24" ~~ m{ \d ** 1..3 { +$0 < 256 or fail } }
TimToady put () around the capture 02:04
otherwise it doesn't get into $0
adu YEY thanks :) 02:05
that looks so much nicer on the eyes than [ \d | <[1..9]> \d | '1' \d \d | '2' <[0..4]> \d | '25' <[0..5]> ]
colomon or it could be +$/, instead of $0 ? 02:06
oh, no, never mind
TimToady and I'd write that <?{ $0 < 256 }> which tests a boolean expression more succinctly
adu ok
TimToady since it's not clear that 'or fail' is going to be the eventual backtrack trigger 02:07
colomon TimToady++
TimToady but <?{ ... }> will continue to work whatever
adu "257" ~~ m{ \d ** 1..3 <?{+$/ < 256}> }
YEY it fails :)
adu I've learned so much in one day 02:08
TimToady don't worry, you'll forget most of it by tomorrow. :)
sisar moritz++ # range bugfix 02:10
adu how do I use tokens and rules in matches/regexes? 02:16
TimToady wanting to usually means you should write a grammar instead, but there's some support for calling <Grammar::rule> I think 02:18
generally a grammar is invoked with .parse though
adu ok
TimToady we may revise our view of that as we get more experience 02:19
adu I'm having trouble loading the whole grammar
TimToady syntactically? 02:20
adu if I do use dreme::datum::Grammar then it says Cannot call 'trait_mod:<is>'; none of these signatures match...
I probably suck at writing grammars 02:21
TimToady well, it'd be nice if it told you the line number, but rakudo is a bit weak on that for run-time errors (and traits, though run at compile time, are basically run-time code) 02:22
adu the only "is" is at the top
grammar dreme::datum::Grammar is HLL::Grammar;
should I delete the HLL::Grammar when testing with perl6?
TimToady I don't know; is that from parrot somewhere?
adu yes, well I started with parrot's language template 02:23
TimToady it sounds like one of those bits of nqp that doesn't really translate to P6 02:24
but I've never done anything with HLL::Grammar
in theory, just declaring 'grammar' should give you whatever base classes are necessary for a normal grammar 02:25
adu hmm
ok, the "use" worked i think 02:26
now how do I access this "parse" method?
adu ok perlcabal.org/syn/S32/Rules.html says for the Grammar API, See Abstractions.pod 02:36
adu where is Abstractions.pod? 02:38
TimToady beats me; I've never seen that file before, despite my name being on it... 02:42
anyway, dinner &
oh, another thing you might try is running it under niecza, which has a different set of not-yet-implementeds than rakudo
bbl & 02:43
adu hmm 02:49
adu I keep getting Could not locate compile-time value for symbol dreme::datum::Grammar 03:05
how do I load a grammar? 03:06
adu what's the difference between require and import? 03:13
and need?
and use?
adu is so confused 03:39
diakopter hm 03:40
PerlJam adu: what about?
adu import, require, use, need 03:40
diakopter did you see S11? 03:41
adu I'm reading S11 right now
but I'm not sure if it applies
because they seem to be for packages and modules
and I'm trying to import a grammar
diakopter about a 1/3 of the way through it it explains what need/import/use do 03:42
and require
just to be certain, you're reading perlcabal.org/syn/S11.html ?
adu yes
so I do this: use dreme::datum::Grammar; 03:43
and perl6 says "Nil"
then: dreme::datum::Grammar::TOP
and perl6 says Could not find symbol 'dreme::datum::Grammar::&TOP'
PerlJam adu: what's the name of the file that contains dreme::datum::Grammar? 03:44
adu dreme/datum/Grammar.pm
diakopter omg I just typed that exact question
adu in the current dir
I can pastebin it
PerlJam adu: please do 03:45
adu: your grammar declaration needs to be grammar dreme::datum::Grammar { ... } too:q 03:46
adu pastebin.com/dukkRaqd
diakopter did you try the { } form 03:47
adu hmm nope
diakopter might be a bug that makes that necessary
adu it would be nice if S11 mentioned grammars too
diakopter agree 03:47
adu I'm still getting "Could not find symbol 'dreme::datum::Grammar::&TOP'" 03:49
diakopter can you pastebin the file that's using the grammar? 03:49
adu I'm not importing it from a file 03:49
I'm using rakudo's repl 03:50
diakopter ah
that has problems, I seem to recall
adu ok I put it in a file 03:51
pastebin.com/q55xnv6e 03:52
diakopter I don't know that TOP will be accessible like that
adu hmm ok 03:54
how do I parse the grammar then?
diakopter r: gist.github.com/2641674 03:54
p6eval rakudo 415791: OUTPUT«Could not find symbol 'dreme::datum::Grammar::&TOP'␤ in block <anon> at /tmp/ekUGDqcmae:88␤␤»
PerlJam adu: dreme::datum::Grammar.parse($string); # assuming you meant use the grammar to parse something 03:55
diakopter r: gist.github.com/2641674
p6eval rakudo 415791: OUTPUT«Method 'ww' not found for invocant of class 'dreme::datum::Grammar'␤ in regex ws at /tmp/aDpwCyHU4r:11␤ in regex datum at /tmp/aDpwCyHU4r:31␤ in regex TOP at /tmp/aDpwCyHU4r:3␤ in method parse at src/gen/CORE.setting:8932␤ in block <anon> at /tmp/aDpwCyHU4r:88…
diakopter hmm
adu PerlJam: that gives me: "Could not find symbol 'dreme::datum::&Grammar'" 03:56
there must be something I'm missing about packages or importing 03:57
diakopter it worked ("broke") in my gist
maybe loading Grammars from another file doesn't work
it might not be implemented
PerlJam diakopter: it does work.
diakopter or spec'd, for that matter
oh
PerlJam ww might not be implemented though 03:58
diakopter adu: see my gist?
adu so you put it in the same file 03:59
PerlJam Hmm
adu that'll do for now
PerlJam adu: it works in separate files too, but it dies the same way as diakopter's gist 04:00
adu this is why I wanted to run it :)
so I could get feedback
PerlJam something weird is going on with <ww> 04:01
diakopter n: gist.github.com/2641674
p6eval niecza v17-2-gb8fcf85: OUTPUT«Unhandled exception: Unable to resolve method ww in class Grammar␤ at /tmp/CR6C7oeO3w line 16 (Grammar.ws @ 3) ␤ at /tmp/CR6C7oeO3w line 36 (Grammar.datum @ 4) ␤ at /tmp/CR6C7oeO3w line 11 (Grammar.TOP @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line…
adu I also have a lot of missing rules
diakopter: PerlJam: thanks! 04:03
diakopter yw 04:05
adu bizarre, 04:14
the first argument is @*ARGS[0]
I thought it would be $*ARGS[0] 04:15
PerlJam adu: but @*ARGS is an array
adu must be thinking of perl5 04:16
oops
PerlJam yeah, in perl5 the sigil changes, not in Perl 6
warp0x00 is it ready yet 04:20
PerlJam warp0x00: is what ready?
warp0x00 dinner 04:21
PerlJam and ready for what exactly?
warp0x00 me to eat
diakopter hm
adu lol 04:22
warp0x00 perl6: say 3; 04:28
p6eval pugs, rakudo 415791, niecza v17-2-gb8fcf85: OUTPUT«3␤»
warp0x00 perl5: say 3;
what is with the u+2424 04:29
i must be missing a font 04:30
PerlJam you don't like newlines?
warp0x00 is that what that is
PerlJam ah, yes. that's a newline symbol
warp0x00 what font do i need for that
diakopter small N and L
depends on your platform
warp0x00 debian gnu/linux 6.0 04:31
so once various compilers pass all the tests 04:34
does that mean it its time to write more tests
adu I'm using gnu-unifont, and I can see NL just fine 04:35
warp0x00 idk what that is
and aptitude finds nothing
ah its just called unifont 04:36
adu unifoundry.com/unifont.html
warp0x00 downloading
warp0x00 i have a plush bonsai kitten 04:36
adu, welp i assume th next time i restart x or my client it will work 04:37
adu if you're on linux, you might have to log out 04:38
i dunno
warp0x00 more like bug out
just the program 04:39
i can see it now
p6eval: print 3; 04:40
perl6: print 3; 04:41
p6eval pugs, rakudo 415791, niecza v17-2-gb8fcf85: OUTPUT«3»
warp0x00 perl6: print 3.$\;
p6eval niecza v17-2-gb8fcf85: OUTPUT«===SORRY!===␤␤Unsupported use of $\ variable; in Perl 6 please use the filehandle's :ors attribute at /tmp/ptYB9JlSQ2 line 1:␤------> print 3.$\⏏;␤␤Parse failed␤␤»
..rakudo 415791: OUTPUT«===SORRY!===␤Unsupported use of $\ variable; in Perl 6 please use the filehandle's :ors attribute␤at /tmp/2kezzu296Z:1␤»
..pugs: OUTPUT«*** ␤ Unexpected "\\;"␤ expecting variable name␤ at /tmp/EfD6KxSIrZ line 1, column 10␤»
TimToady just use say
perl6: say 3 04:42
p6eval pugs, rakudo 415791, niecza v17-2-gb8fcf85: OUTPUT«3␤»
warp0x00 you just use say
adu hmm 04:42
how do I get ws to not match? 04:43
I'm getting the match "number => <1 #|comment|#>"
TimToady use token instead of rule maybe
inchok78 hello all 04:44
adu hello 04:45
inchok78 can u recommend webpages with stories of Perl 6 used for production work? 04:49
join #kubuntu
(boy am I rusty) 04:51
sisar is having fun and wasting time with ie.microsoft.com/testdrive/Graphic...chEffects/ 04:52
sorear inchok78: 'stories' isn't really how stuff gets done. 04:54
masak might havge something, but he won't be here for a few more hours
also, 'production' is a pretty nebulous concept 04:55
we once had a user in #mono come in asking if it was production ready... after much harassing, I got them to admit their goal: create a website able to serve equal or greater traffic load to Wikipedia 04:56
inchok78 ok... non-technical people trying to get a 30000 feet feeling for whether Perl 6 is able to be a player in a project BEFORE the programmers get involved...
this is about connecting a heart recording device to a remote database 04:57
diakopter I think a good definition of used in production is: used in business or large-scale personal activities
inchok78 forgive my ignorance and if my tone is not right, forgive that too
diakopter :)
there's lots of forgiveness around here
sorear inchok78: I'm not mad at you
inchok78 yeah. i used to do scripting in 5.8 or something, when the universe was young. now i do project for big research and haven't touched a proper programming lang. in 5 yrs 04:58
sorear Perl 5 and Perl 6 are being developed concurrently 04:59
sorear Perl 5 is still a lot faster and is less likely to break on you 04:59
inchok78 oh
(i used to keep tabs on pugs back in the day) 05:00
sorear for various regrettable reasons, Perl 6 did a lot of stalling back in the mid-2010s 05:01
diakopter inchok78: to get that 30000 feet feeling would be difficult at this point, I think.
inchok78 mmhhhh 05:02
sorear I'm the main developer of one of the currently active implementations and I have a lot of forest/trees problems, yeah 05:03
performance (broadly construed) of implmentations currently... in a word, inconsistantg
some things work compellingly better than Perl 5. other things will cause major slowdows. You don't get to know in advance 05:04
is this a project which requires certainty or high speed? if so, definitely stay away from 6
inchok78 got that. i will do my due diligence 05:05
inchok78 just for curiosity, what is the implementation you're working on? 05:05
diakopter niecza 05:06
diakopter github.com/sorear/niecza 05:06
inchok78 thanks... will look it up on the windows machine... this here kubuntu has no web access 05:07
sorear fwiw, niecza works fine on mono 05:08
oh, wait, if you haven't looked it up yet you must not be commenting on that 05:09
inchok78 my wife is a mono guru. i am not currently into programming but want to get back on soooo badly
sorear inchok78: I'm sorry I can't give a straight answer. I won't say "use Perl 6" because there are a zillion things that are still very much broken with it. I won't say "avoid it" because there are even more things that work fine. 05:10
inchok78 i guess that sums it up. looking niecza on the other computer, but pretty aware this is mostly to satisfy my curiosity at this point 05:11
sorear another note... popular perception of Perl 6 among programmers is still mostly at the "dismal failure" stage 05:13
diakopter and they're probably mostly right, by their definition of dismal failure. 05:14
inchok78 i clearly recall that was the feeling on reddit a few years ago, but then left that too (...)
sorear the community was in a sorry state 2-3 years ago, and sometimes information propagates amazingly slowly through the internet
adu I think perl6 definitely needs more tutorials 05:15
TimToady if success is eventually defined by not letting the bastards wear you down, we've gotten real good at that part of it :)
the tutorials could use work though :)
diakopter to amend my previous statement, I agree that there is also lots of false information believed. 05:17
adu YEY 05:20
pastebin.com/GJ3enmmw
0 to Scheme in less than a day! 05:21
diakopter anyone like/dislike my definition of used in production?
adu++ # most impressive
inchok78 may I say, usage of "production" differs slightly across segments of industry 05:22
in my case, since it involves clinical/medical/veterinarian, a production system is one that has been validated to comply with applicable laws and regulations and is used to produce (quack!) information that is to be delivered to a customer 05:23
TimToady production, in the case of a language, also implies more commitment to backward compatibility than you're likely to find yet in Perl 6 05:23
adu Go took that step recently 05:24
they released "Go 1"
inchok78 (even though you'd be surprised what crap can be validated by the naive organization)
TimToady yes, and we'll get there as soon as our implementations and specs/tests converge on each other
shinobicl hi,,, i'm finished a module for perl6. i dont think it's ready for the ecosystem, though. But i think is good enough for a beta version. 05:26
TimToady at that point we'll also provide the user the ability to freeze at a particular semantic version, even if emulated by something newer
shinobicl github.com/shinobi/p6/tree/master/...ayCalendar
adu diakopter: thanks
adu diakopter: I think "used in production" has more to do with risk than business or large-ness 05:27
diakopter I think you and TimToady are defining "production ready", which is different from what I was defining 05:28
adu like keeping 1 person's heart beating isn't large or busy, but the risk of railure is high 05:29
fail
diakopter that's definitely a business activity
adu i suppose
TimToady shinobicl_: \o/ 05:37
diakopter is still reading WorkdayCalendar.pm 05:38
shinobicl_ hi... had to switch computers...
i'm on a tablet now :(
diakopter ooo repeat-until
diakopter shinobicl++ # it looks neat 05:42
shinobicl_: which implementation(s) did you develop on?
shinobicl_ rakudo only
afaik niecza does not have Date yet 05:43
diakopter oh
adu crap
diakopter I wish I knew enough to comment on how idiomatic it is
adu parrot won't let me do that 05:44
shinobicl_ do what?
adu have 2 languages 05:48
ergh 05:55
moritz \o 06:47
adu hi moritz 06:48
moritz r: say 241025348275725.3352 06:50
p6eval rakudo 415791: OUTPUT«241025348164334␤»
moritz r: say 241025348275725.3352.WHAT
p6eval rakudo 415791: OUTPUT«Rat()␤»
moritz wtbh 06:51
r: say 241025348275725.WHAT
p6eval rakudo 415791: OUTPUT«Int()␤»
moritz r: say 241025348275725
p6eval rakudo 415791: OUTPUT«241025348275725␤»
adu r: say (a=>1).WHAT
p6eval rakudo 415791: OUTPUT«Pair()␤»
adu r: say :a(1).WHAT 06:52
p6eval rakudo 415791: OUTPUT«Pair()␤»
diakopter wtbh?
adu diakopter: which one? 06:53
diakopter I'm asking what wtbh means
moritz what the bloody hell
diakopter oh; heh 06:54
adu I'm guessing moritz is not from texas
moritz no, I'm not
diakopter is
adu wow
moritz I'm closer to great britain than to use US, which might explain some of my vocabulary :-)
diakopter but I live in Cali now 06:55
moritz r: say 241025348275725.3352.perl
p6eval rakudo 415791: OUTPUT«301281685344656669/1250␤»
moritz so it's just Rat.Str that is broken 06:56
phew
for a moment I thought the number parsing code is off again
diakopter did you see TimToady's r2s? 06:56
moritz no
diakopter in the backlog he gisted one 06:57
moritz ok
diakopter but it didn't work in p6eval parrot because of different word size
but it worked on TimToady's local rakudo
diakopter if I recall correctly 06:58
me++ for exposing the bug 06:59
well, masak++ too 07:00
karma me
aloha me has karma of 1.
diakopter giggle
adu lol
karma adu
aloha adu has karma of 1.
adu yey
moritz ok, the real problem is that Rat.floor falls back to Num, which it should not 07:02
jnthn morning, #perl6
diakopter ahoy
adu hi jnthn
jnthn is teaching today and will be fairly distracted. But I'm aboutish :)
moritz \o jnthn 07:03
r: say (-9) div 4
p6eval rakudo 415791: OUTPUT«-2␤»
diakopter r: say (-9) mod 4 07:04
sisar ^ thats the same bug i reported a few days back :)
p6eval rakudo 415791: OUTPUT«-1␤»
moritz sisar: I know
sisar: and I have to take it into account when fixing Rat.floor 07:05
adu how is that a bug?
sisar oh right. :)
moritz adu: div is supposed to round down
adu: not towards zero
sisar adu: "$x div $y == floor($x/$y)" 07:06
yeah, what moritz++ said
adu I wrote a blog entry about that
sisar "round down" ~~ "round towards -Inf " :)
adu straymindcough.blogspot.com/2012/02...ivmod.html
moritz adu++ # nice survey 07:08
adu :) thanks
moritz n: say <1/3>.gist 07:47
p6eval niecza v17-2-gb8fcf85: OUTPUT«0.33333333333333331␤»
dalek kudo/nom: 2abb9b7 | moritz++ | src/core/Rat.pm:
fix Rat.floor
07:49
kudo/nom: b0cd3cb | moritz++ | src/core/Rat.pm:
rewrite Rat.Str to use code by TimToady++

in particular it does not go through Num now
kudo/nom: 24ffc9c | moritz++ | src/core/Str.pm:
Revert "add native str concatenation op"

This reverts commit ad3a7b6403d430a681a497b9ec4b67d0eeeacd52. It lead to occasional segfaults in splice.t
ast: bc7e40e | moritz++ | S32-num/rat.t:
test stringification of big Rats (RT #112822)
moritz note that this fails a few tests in t/spec/S32-num/stringify.t; I'll take care of them later today
adu nom nom
diakopter p6eval: rebuild rakudo 07:52
I forget the lingo
moritz diakopter: that functionality is gone
diakopter oh :) 07:53
moritz diakopter: lost in the move to a different box
dalek ast: 59349dc | moritz++ | S32-num/rounders.t:
unfudge rounders.t for rakudo
07:56
diakopter n: $_="pattern"; s[pattern] = say(44) 08:13
p6eval niecza v17-2-gb8fcf85: OUTPUT«44␤»
diakopter interesting
moritz diakopter: what did you expect? 08:18
diakopter oh; I was just testing out what I was reading in S05 08:19
didn't have an expectation
I guess "interesting" meant "interesting that it worked" 08:20
moritz that's the good kind of "interesting" :-) 08:24
afk
dalek rlito: b8def8a | (Flavio S. Glock)++ | / (4 files):
Perlito5 - javascript: add GLOB references
08:28
dalek rlito: 47648d1 | (Flavio S. Glock)++ | README-perlito5-js:
Perlito5 - javascript data model: about compile-time lexicals
08:52
colomon moritz: DId you change Rat.floor and Rat.Str because Rat.Num is wrong? 08:57
moritz colomon: because Rat.Num isn't precise enough for large rats 08:58
colomon won't that affect all uses of Rat.Num, not just those two? 08:59
moritz no, I didn't touch Rat.Num 09:00
colomon not your changes, the imprecision problem.
moritz colomon: well, Num only has that much precision. Users of Rat.Num have to work with that.
it's not that Rat.Num is too imprecise, it's that Num is too imprecise 09:01
rindolf fglock: here? 09:04
colomon r: say 3875928375982735.383854792874359827349682.floor 09:05
p6eval rakudo 24ffc9: OUTPUT«3875928375982735␤»
colomon r: say 3875928375982735.383854792874359827349682.ceil
p6eval rakudo 24ffc9: OUTPUT«Method 'ceil' not found for invocant of class 'Rat'␤ in block <anon> at /tmp/Zsk1OGwc_u:1␤␤»
jnthn ain't it .ceiling 09:06
colomon r: say 3875928375982735.383854792874359827349682.ceiling
p6eval rakudo 24ffc9: OUTPUT«3875928375982730␤»
fglock rindolf: hi!
moritz .ceiling not yet fixed
colomon r: say 3875928375982735.383854792874359827349682.floor.Num 09:07
p6eval rakudo 24ffc9: OUTPUT«3.87592837598274e+15␤»
rindolf fglock: hi.
sorear r: say 3875928375982735.383854792874359827349682.WHAT
p6eval rakudo 24ffc9: OUTPUT«Rat()␤»
jnthn
.oO( ceiling still floored )
sorear r: say '383854792874359827349682'.chars
p6eval rakudo 24ffc9: OUTPUT«24␤»
fglock :)
rindolf fglock: what's up?
sorear r: say 3875928375982735.383854792874359827349682.denominator 09:08
p6eval rakudo 24ffc9: OUTPUT«500000000000000000000000␤»
sorear r: say 3875928375982735.383854792874359827349682.denominator.chars
p6eval rakudo 24ffc9: OUTPUT«24␤»
sorear does rakudo know the difference between rats and fatrats?
fglock rindolf: all is fine, hope you are well too
sorear a number that long ought to be a Num
r: say (2**64).chars 09:09
p6eval rakudo 24ffc9: OUTPUT«20␤»
rindolf fglock: why are the Perlito -I paths limited to 20 characters or so? I tried setting up a shell script to run it from its installation path (to test if some of my CPAN code works with it), and it trimmed the path and complained about missing modules.
colomon n: say 3875928375982735.383854792874359827349682.WHAT
p6eval niecza v17-2-gb8fcf85: OUTPUT«Num()␤»
sorear r: say pi.WHAT 09:10
p6eval rakudo 24ffc9: OUTPUT«Num()␤»
fglock rindolf: that's perlito5, right? are you using perl5 or node.js backend?
rindolf fglock: yes, it's Perlito5 - I think it happens with both.
fglock rindolf: stupid bug: $lib = substr($ARGV[0], 2, 10); # no idea why it is limited 09:12
I'll fix
rindolf fglock: thanks!
masak mornin', #perl6
fglock I think it was copy-pasted from some other line
sorear hi masak. 09:12
tadzik hi masak
rindolf masak: good morning. 09:13
sorear (I will sleep& as soon as someone notices my Rakudo query, maybe sooner)
dalek rlito: 933767d | (Flavio S. Glock)++ | / (2 files):
Perlito5 - unlimited -I path (rindolf++)
09:14
sorear sleep&
jnthn Rakudo certainly makes a Rat/FatRat distinction. I think it 09:15
oops
think it does it at the point of operation.
rindolf fglock: ah, without a test. :-(
fglock rindolf: btw about modules, Exporter.pm doesn't work yet because globs are still under implementation 09:17
rindolf fglock: I see. 09:18
daxim coke, you're my hero. www.reddit.com/r/perl/comments/tdq8...ification/ 09:19
colomon jnthn: looking at the code, it looks to me like Rakudo makes the Rat / FatRat distinction but only when doing operations on Rat; it appears to allow you to construct what should be illegal Rats.
r: say Rat.new(10, 45984695385934859843905893789385943859038590839485983).WHAT 09:20
p6eval rakudo 24ffc9: OUTPUT«Rat()␤»
colomon guess it is a bit of an interesting question what that should do
n: say Rat.new(10, 45984695385934859843905893789385943859038590839485983).WHAT
p6eval niecza v17-2-gb8fcf85: OUTPUT«Num()␤»
masak would someone like to help me put together a good reply to www.reddit.com/r/perl/comments/tdq8...on/c4lvyhw ? 09:21
moritz masak: I'm in a meeting, but after that I'll help you 09:22
masak here's what I have so far: S29 specifies fork/wait. 09:23
Rakudo certainly doesn't implement it. does Parrot have it? don't know. does Niecza implement it? will find out. 09:24
Rakudo implements IO and sockets. don't know about Niecza -- guessing not. Rakudo doesn't have async stuffs yet.
C embedding -- see zavolaj. 09:25
masak CPAN -- see, to a limited extent, blizkost. 09:25
arnsholt masak: In re ZeroMQ, it's in my inqueue of stuff to do
phenny arnsholt: 08 May 18:57Z <moritz> ask arnsholt if anything is blocking the merge of the cstr branches
arnsholt Just blocking on tuits 09:26
And that, right
No, nothing blocking to my knowledge. Just never got around to it
I'll try to get it merged today 09:31
colomon n: say "3875928375982735.383854792874359827349682".FatRat 09:34
p6eval niecza v17-2-gb8fcf85: OUTPUT«3875928375982735.5␤»
colomon r: say "3875928375982735.383854792874359827349682".FatRat 09:35
p6eval rakudo 24ffc9: OUTPUT«Method 'FatRat' not found for invocant of class 'Str'␤ in block <anon> at /tmp/3yoEonTvzo:1␤␤»
colomon r: say "3875928375982735.383854792874359827349682".Rat 09:35
p6eval rakudo 24ffc9: OUTPUT«3875928375982735.383854792874359809218276␤»
tadzik masak: Rakudo has .poll for non-blocking stuff though 09:39
MuEvent uses those
still, the .poll we have is quite LTA 09:40
masak ok. 09:42
arnsholt: ok, great.
tadzik and I know of no fork besides the one we were using through NativeCall
masak S29 specifies it.
arnsholt masak: But if people want/need it, I'd be happy to provide help with Zavolajing up an interface 09:44
masak \o/ 09:47
arnsholt Hmm. I should ask the missus if she'd consider a trip to Frankfurt in late August 09:49
Also, get around to submitting a Zavolaj talk
masak \o/ 09:55
masak when I read 6guts.wordpress.com/2012/05/08/sin...hackathon/ this morning -- jnthn++ -- I got the feeling that, wow, we're really building up steam now. have we even been this productive? 09:56
dalek blets: cefc0f9 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
add some links for regex modifier and num types
09:59
masak r: my $var = 5; say $var; { say $var; temp $var = 42; say $var }; say $var 10:03
p6eval rakudo 24ffc9: OUTPUT«5␤5␤42␤5␤»
masak \o/
masak starts a background job in his brain to find out what fun uses 'temp' can be put to 10:04
tadzik hmm 10:06
frettled masak: I was very jnthn++ when I read about temp and let 10:07
tadzik r: my $a = 3; sub transaction { temp $a = 7; say "a = $a. Commiting"; OUTER::$a = $a }; transaction(); say $a
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
frettled I think I have around a bazillion use cases, give or take a few fantazillions.
tadzik r: my $a = 3; sub transaction { temp $a = 7; say "a = $a. Commiting"; OUTER::<$a> = $a }; transaction(); say $a 10:08
p6eval rakudo 24ffc9: OUTPUT«a = 7. Commiting␤3␤»
tadzik meh
oh, right
r: my $a = 3; sub transaction { let $a = 7; say "a = $a. Commiting"; OUTER::<$a> = $a }; transaction(); say $a
p6eval rakudo 24ffc9: OUTPUT«a = 7. Commiting␤7␤»
masak r: my $a = 3; sub transaction { let $a = 7; say "a = $a. Commiting" }; transaction(); say $a 10:11
p6eval rakudo 24ffc9: OUTPUT«a = 7. Commiting␤7␤»
masak don't need the OUTER::<$a> thing.
just make sure not to fail out of that block ;)
tadzik huh 10:12
okay, I don
't get it :)
masak that's what "let" does. it's "set this variable to this value... but if we start backtracking/failing, revert it".
r: my $a = 42; sub foo { let $a = "this will never stick"; say $a; fail }; say $a; foo; say $a 10:13
p6eval rakudo 24ffc9: OUTPUT«42␤this will never stick␤this will never stick␤»
masak o.O
masak submits rakudobug
tadzik :> 10:14
masak my hands are cursed.
jus' gonna make sure that's how 'let' is actually spec'd.
There is also a C<let> function that sets a 10:15
hypothetical value. It works exactly like C<temp>, except that the
value will be restored only if the current block exits unsuccessfully.
exhibit A.
moritz r: sub f { LEAVE say 'leaving A' ; fail "foo"; }; f
p6eval rakudo 24ffc9: OUTPUT«leaving A␤»
masak In any case, returning an unthrown exception is considered failure 10:16
from the standpoint of C<let>.
exhibit B.
it's a bug.
moritz r: sub f { UNDO say 'leaving A' ; fail "foo"; }; f 10:25
p6eval rakudo 24ffc9: ( no output )
masak yeah. should trigger. 10:27
moritz same underlying cause 10:28
jnthn Hmm, what underlies that one?
moritz because let uses an UNDO to restore the state
jnthn And UNDO...doesn't trigger here?
colomon std: 'abc def' ~~ ms/abc def/ 10:30
p6eval std f4748eb: OUTPUT«Use of uninitialized value $x in pattern match (m//) at STD.pm line 66537.␤Use of uninitialized value $x in concatenation (.) or string at STD.pm line 66576.␤===SORRY!===␤Bogus term at /tmp/uhlig4Lkiw line 1 (EOF):␤------> 'abc def' ~~ ms/abc …
colomon :\
n: 'abc def' ~~ ms/abc def/
p6eval niecza v17-2-gb8fcf85: OUTPUT«===SORRY!===␤␤Bogus term at /tmp/a7iNtI9TEu line 1 (EOF):␤------> 'abc def' ~~ ms/abc def/⏏<EOL>␤␤Undeclared routines:␤ 'def' used at line 1␤ 'ms' used at line 1␤␤Parse failed␤␤»
colomon std: 'abc def' ~~ m:s/abc def/ 10:31
p6eval std f4748eb: OUTPUT«ok 00:00 42m␤»
colomon n: 'abc def' ~~ m:s/abc def/
p6eval niecza v17-2-gb8fcf85: ( no output )
masak are next/redo/last (or a subset of those) meant to trigger UNDO? 10:36
it feels odd for them to trigger KEEP...
though I seem to be able to say that with a bit more certainty about next and last than about redo. curious :) 10:37
tadzik (Perl 5 question, or is it?) having a sub like "do_something_ok" used for testing, is there a way to, somehow, test if it fails? 10:39
masak you want to test the testing function? 10:41
(just trying to understand your question)
depends how it fails, I guess. 10:42
tadzik not really
I have a function which does use ok() inside itself
I want to test its opposite reaction, somehow. I expect this test to fail
so I really want something like that_function_nok(), but it's not available 10:43
masak right.
moritz invokes_like &function, $result, $string;
masak localize &ok to mean &nok :P
though moritz++' proposal is probably saner. 10:44
tadzik where does invokes_like come from?
moritz tadzik: you write it 10:45
tadzik :)
masak .oO( aw man! no-one told me when I went into this software business that I'd have to write stuff on my own! :( ) 10:47
tadzik I just thought it might be an already-solved problem 10:47
masak you wanted to re-use stuff? what are you, a hippie? :P 10:48
tadzik ;)
masak "That's not how we do things in an Enterprise environment."
mikec__ heh 10:49
colomon phenny: tell TimToady Just looking over quote:mm in Niecza and std, wondering if there was a copy and paste mistake. Seems to me that maybe quote:mm is implemented the way quote:ms should have been (it's not there at all) and quote:mm should also have .tweak(:mm) ? 11:08
phenny colomon: I'll pass that on when TimToady is around.
colomon phenny: tell TimToady errr... or does quote:mm not make any sense at all? "The :mm (or :samemark) variant may be used on a substitution...." 11:12
phenny colomon: I'll pass that on when TimToady is around.
moritz mm// would be m:ignoremark// 11:24
just as ms is m:sigspace and ss is s:samespace
afk
cognominal p6: my int $a = "1" # this should not kick up from rakudo REPL 11:40
p6eval niecza v17-2-gb8fcf85: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/0IDibzbhXB line 1:␤------> my⏏ int $a = "1" # this should not kick up␤␤Parse failed␤␤»
..pugs, rakudo 24ffc9: ( no output )
cognominal r: my int $a = "1" ; say $a 11:42
p6eval rakudo 24ffc9: OUTPUT«1␤»
mikec__ eee 11:42
colomon moritz: the sigspace.t file seems to claim mm// implies :sigspace as well. but that doesn't make sense to me, and I don't see any trace of it in S05
cognominal strange, maybe this is due to local modifs
masak colomon: that might be a fossil. 11:42
colomon masak: or a thinko? 11:43
masak masak: ISTR that mm// used to mean "match sigspace".
colomon oh!
masak the spec commit log can probably be trawled to confirm this, but... orka!
colomon orka? 11:44
colomon hmmm.... The line mentioning ms// changed 18 months after the surrounding lines. 11:50
and the quote:mm in STD.pm6 certainly makes more sense if it used to me m:s//
colomon masak: fossil indeed: github.com/perl6/specs/commit/cb59...66ff45fd25 11:54
so, am I brave enough to patch STD.pm6 myself? 11:55
jnthn r: sub f { UNDO say 1; Mu }; f 11:58
p6eval rakudo 24ffc9: OUTPUT«1␤»
jnthn r: sub f { UNDO say 1; fail }; f 11:58
p6eval rakudo 24ffc9: ( no output )
jnthn r: sub f { UNDO say 1; fail }; say f.defined
p6eval rakudo 24ffc9: OUTPUT«False␤»
jnthn r: sub f { UNDO say 1; fail }; say f.DEFINITE
p6eval rakudo 24ffc9: OUTPUT«True␤»
jnthn Hmmm...I wonder if UNDO is considering DEFINITE or defined. 11:58
dalek ast: 8a1e45c | (Solomon Foster)++ | S05-modifier/sigspace.t:
Turns out mm// should have been switched to ms// years ago.
12:02
jnthn /* Otherwise, need to consider the definedness of the return value. */ 12:03
if (IS_CONCRETE(result))
...yeah, that'll not get failures.
jnthn It's a very easy fix, but I'm at $classroom right now. 12:05
dalek d: 8632387 | (Solomon Foster)++ | STD.pm6:
Change quote:mm to quote:ms, update Copyright for 2012.
12:11
dalek blets: 4e43cd1 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
minor fixes
12:20
colomon don't think I've ever committed to std before. I feel very daring.... ;)
dalek ecza: daf09af | (Solomon Foster)++ | src/ (2 files):
Switch quote:mm to quote:ms and add an action for it.
sisar colomon++ 12:21
dalek blets: e6c936a | (Herbert Breunung)++ | docs/ (6 files):
rename file of appendix F
12:25
frettled yay 12:37
[Coke] moritz_: that alert is several weeks too late. Thanks. ;) 12:44
Oh. You added a dot.
ARGLEBARGLE.
moritz_: is that spec? it's different than P5, no? 12:45
[Coke] moritz_: updated. 12:46
jnthn has laregly picked up the impression that this is somewhere we *should* be different from P5 :)_ 12:47
[Coke] TimToady: FYI, I'm pretty sure most of those badly named parrot config items came from p5 about 12 years ago. ;)
daxim++ 12:51
smash hello everyone 12:57
frettled Hello, smash! 12:58
[Coke] au, sorear, colomon: recent rakudo advances are causing our percentages to slip!
masak smash! \o/ 12:59
[Coke]: but... that's a *good* thing, right? I mean, the net number of features implemented in compilers has increased.
[Coke] masak: ... I'm trying to guilt them into passing more tests. 13:00
masak by the way, I like how at one point Niecza was
masak at the same point as Rakudo, or even past it. 13:00
[Coke] it's a common motivational technique that works better when I don't explain it in front of them. ;)
masak and then the benefits of nom kicked in.
[Coke]: oh, crap. sorry :P
colomon [Coke]: I just got three more passing tests!
[Coke] masak: also, hey... you owe me a pugs patch. ;) 13:01
colomon: WOOO
masak [Coke]: I do?
[Coke] btw, rakudo just got like 200+ yesterday. :(
masak in the future, I'll try not to make it seem we're all on the same side here... :P
[Coke] masak: yes. the only reason I started testing pugs was because you and ingy were going to hack on it!
masak [Coke]: it's right there on my list of priorities. 13:02
smash pugs still lives !?
masak right below macros for Rakudo and finalizing p6cc2011.
[Coke] smash:
# 05/08/2012 - rakudo++ (21760); niecza (93.61%); pugs (41.9%)
PerlJam smash: pugs is still on life-support, but it lives :)
[Coke] those are yesterday's numbers. rakudo is over 22K before today's run, though.
smash very nice 13:03
[Coke] "Impl", "pass","fail","todo","skip","plan","spec"
# 05/08/2012 - rakudo++ (21760); niecza (93.61%); pugs (41.9%)
"niecza", 20371, 16, 762, 1455, 22589, 24103
"pugs" , 9119, 9, 3339, 1555, 14022, 23964
"rakudo", 21760, 70, 709, 1884, 24423, 24113
rakudo's failure #'s slipping. wonder if that was due to the libpath issue. 13:04
tadzik huh, why are "spec" numbers different between implementations? 13:09
masak and why is Rakudo's "plan" higher than its "spec"? 13:10
mikec__ heh 13:11
[Coke] tadzik: I believe spec is "number of spec tests I looked at while running". different due to individual t/spectest.data 13:11
tadzik mhm 13:12
[Coke] masak: Probably due to "no plan" 13:14
[Coke] masak: I'm only guessing on that one. 13:14
masak how would "no plan" make "plan" higher? :P 13:15
dalek ast: 52e175f | (Solomon Foster)++ | S05-modifier/counted.t:
Fix plan. (Suspect there may be a skip count problem under Rakudo.)
[Coke] masak; t/spec/test_summary - I just run it. 13:16
daxim [Coke], we can haz pugs on <perl6.org/compilers/features>? is it enough to symlink roast as Pugs.hs/t/spec and then execute t/run_spectests? 13:17
[Coke] daxim: check out HACKING in github.com/perl6/Pugs.hs
daxim - some enterprising soul could add pugs to compiler features, sure. 13:18
(probably not going to be me, at least not until June.)
masak: so, I don't see anything obvious there to explain your question.
daxim what's so special about June?
[Coke] daxim;I have a huge project due this month 13:19
$dayjob
daxim aha 13:19
jlaire n: module A { }; say A.WHAT 13:20
p6eval niecza v17-3-gdaf09af: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.STable.FindMethod (System.String name) [0x00000] in <filename unknown>:0 ␤ at Niecza.P6any.InvokeMethod (Niecza.Frame caller, System.String…
dalek ast: 30c291b | (Solomon Foster)++ | S06-multi/proto.t:
Refudge for niecza.
[Coke] daxim - so, in the meantime, by all means, start hacking on that. ;) 13:30
colomon moritz_: what's your justification for 241025348275725.3352.Str ~~ /241025348275725\.33/ ? 13:45
dalek ast: de9b0b4 | kboga++ | S05-modifier/counted.t:
remove erroneous DOES marking, in answer to 52e175f
13:50
colomon moritz_: actually, now reading what the spec actually say and getting worried that both approaches are incorrect.... 14:04
dalek ast: 0d67b20 | kboga++ | S05-modifier/counted.t:
Oops, restore doc comment accidently removed in de9b0b4, kboga--
tadzik oh, kboga++ keeps rocking :) github.com/rakudo/rakudo/pull/66 14:22
colomon ack, there are mistakes all over the specs for Rat.perl and Rat.Str. :( 14:22
kboga tadzik, mostly copy pasted from the ng branch, was just wondering why this wasn't in the nom branch yet :) 14:24
tadzik kboga: nice catch :)
colomon phenny: tell TimToady We need to talk about Rat.perl and Rat.Str....
phenny colomon: I'll pass that on when TimToady is around.
tadzik and nice patch 14:24
(pun indented)
kboga :) 14:24
tadzik I'm at $work atm so I can't really give it a try though :( 14:25
kboga np, also, the pack.t tests seem to require Buf to have a contents method, couldn't find it in the spec's tho... 14:26
tadzik you should probably ask masak++ about it
masak yeah, probably. 14:28
masak claims he knows a bunch about pack/unpack and how to implement them in Perl 6.
myself, I think he's just a poser. :P 14:29
kboga didn't he implement that initial version I blatantly copy pasted? :) 14:29
masak probably. 14:30
I hear he's tried to port the Perl 5 tests to Perl 6 as well, but nothing concrete's even come of that.
kboga: here's a gist from long ago about pack/unpack: gist.github.com/1239203 14:31
tadzik hmmm. Doesn't perlito have a perl5-to-perl6 compiler?
PerlJam Do we have a list of the things that were once implemented and working in Rakudo, but got left behind as we moved from alpha to ng to nom?
jnthn [Coke]: Is that 21xxx passing number you posted today from yesterday's run? 14:35
jnthn is curious where the increasing failures come from too... 14:36
brrt r: sprintf("hello, %d", 42); 14:37
p6eval rakudo 24ffc9: ( no output )
brrt r: say(sprintf("hello, %d", 42)); 14:37
p6eval rakudo 24ffc9: OUTPUT«hello, 42␤»
jnthn kboga++
kboga masak: oh, so pack should really impose some kind of type restriction on the item its packing using a certain template rule? 14:39
test failures come from: t/spec/S32-num/stringify.t (so it seems)
jnthn ah, ok
Which I think moritz++ is on top of already 14:40
masak kboga: yes, that's a good summary. Perl 6 is more type-constrained in this area than Perl 5. so it needs to disallow certain combinations.
kboga: that said, we still want to make easy things easy, so it's a balance for sure. one we haven't found yet. 14:41
jnthn
.oO( it's like trying to balance a camel on the wings of a butterfly )
14:42
masak metaphor++ 14:43
frettled Are you trying to see how many metaphors you can balance on the head of a pin, or how big a metaphor you can phase through the eye of a needle? 14:44
colomon actually, by current spec most of the Rat tests in stringify.t are wrong. 14:45
kboga I'm curious about how compact structs will mix with pack & unpack. Somehow it reminds me of Convert::Binary::C. 14:46
gfldex S03 says: "Any class composing the Pattern role may choose to provide a single ACCEPTS method to handle everything, which corresponds to those pattern types that have only one entry with an Any on the left above." 14:47
gfldex yet i can't find any role named Pattern, is that NYI? 14:47
jnthn Wow, I didn't even know it existed... 14:52
jnthn wonders if there's any spectests for it 14:53
kboga: Compact structs should go fairly nicely with it.
Well, they probably are an alternative I guess...
Taking a Buf and using the data in it to populate the compact struct. 14:54
Though, we could actually implement the data extraction from Buf using unpack I guess.
jnthn You get into all kinds of fun questions about what "compact" implies 14:57
Like, does it mean "pack it as tightly as you can" or does it mean "pack it as tightly as the usual way to back a struct on the underlying architecture would allow"
s/back/pack/ 14:58
[Coke] how soon until I can use perl 6 instead of J2EE. bleargh. 15:11
jnthn: yes, yesterday's run (it's even got the date in it, sir. ;)
fglock tadzik: perlito has some basic perl5-to-perl6 stuff implemented, just to try out and see what kind of problems would come up 15:14
fglock tadzik: are you interested in p5-to-p6? 15:20
sisar if I recompile Rakudo, do I need to recompile _all_ my modules too ? coz i'm getting an error: "Missing or wrong version of dependency 'src/gen/Metamodel.pm'" 15:36
sisar hmm, maybe i need to recompile panda first ? 15:38
gfldex p6: my @data = $<1 2 3>, $<4 5 6>; say @data.perl; 15:54
p6eval niecza v17-3-gdaf09af: OUTPUT«[Any, Any, Any, Any, Any, Any].list␤»
..rakudo 24ffc9: OUTPUT«Array.new(Any, Any, Any, Any, Any, Any)␤»
..pugs: OUTPUT«\(undef, undef, undef, undef, undef, undef)␤»
colomon interesting 16:01
guess that's $/{1 2 3} etc?
n: "abc" ~~ /(.)*/; my @data = $<1 2 3>; say @data.perl 16:03
p6eval niecza v17-3-gdaf09af: OUTPUT«[Any, Any, Any].list␤»
colomon n: "abc" ~~ /(.)*/; my @data = $<1 2 3>; say @data.per
p6eval niecza v17-3-gdaf09af: OUTPUT«Unhandled exception: Unable to resolve method per in class Array␤ at /tmp/p4JczqkKid line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3840 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3841 (module-CORE @ 65) ␤ at /home/p…
colomon bah
n: say 241025348275725.3352.WHAT 16:04
p6eval niecza v17-3-gdaf09af: OUTPUT«Rat()␤»
gfldex i think $<...> is just a syntax error but i would not wonder to be wrong 16:05
colomon std: $<1 2 3> 16:05
p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
colomon n: my %hash = 1..10 X=> 3; say %hash<1 2 3> 16:06
p6eval niecza v17-3-gdaf09af: OUTPUT«3 3 3␤»
gfldex if it's not just a false positive on line noise i would it expect to do the same as $(1,2,3)
*would expect
colomon $a<1 2 3> is the same as $a{1, 2, 3} 16:07
gfldex maybe TimToady can enlighten us here 16:08
colomon I think (as I said) that $<1 2 3> ought to be the same as $/{1, 2, 3} (where $/ is the match result) 16:09
colomon n: "456" ~~ /<digit>*/; say $<digit> 16:10
\
p6eval niecza v17-3-gdaf09af: OUTPUT«#<match from(0) to(1) text(4) pos([].list) named({}.hash)> #<match from(1) to(2) text(5) pos([].list) named({}.hash)> #<match from(2) to(3) text(6) pos([].list) named({}.hash)>␤»
colomon n: "456" ~~ /<1=digit><2=digit><3=digit>/; say $<123> 16:11
p6eval niecza v17-3-gdaf09af: OUTPUT«===SORRY!===␤␤Unrecognized regex assertion at /tmp/t6CcR74EDi line 1:␤------> "456" ~~ /<⏏1=digit><2=digit><3=digit>/; say $<123>␤␤Parse failed␤␤»
colomon n: "456" ~~ /<digit=3><digit=3><digit=3>/; say $<1 2 3>
p6eval niecza v17-3-gdaf09af: OUTPUT«===SORRY!===␤␤Unrecognized regex assertion at /tmp/zs2UA3mvLT line 1:␤------> "456" ~~ /<digit=⏏3><digit=3><digit=3>/; say $<1 2 3>␤␤Parse failed␤␤»
gfldex i found it perlcabal.org/syn/S02.html#Twigils
colomon n: "456" ~~ /<d1=digit><d2=digit><d3=digit>/; say $<d1 d2 d3> 16:12
p6eval niecza v17-3-gdaf09af: OUTPUT«#<match from(0) to(1) text(4) pos([].list) named({}.hash)> #<match from(1) to(2) text(5) pos([].list) named({}.hash)> #<match from(2) to(3) text(6) pos([].list) named({}.hash)>␤»
colomon n: "456" ~~ /<d1=digit><d2=digit><d3=digit>/; say ~$<d1 d2 d3> 16:12
p6eval niecza v17-3-gdaf09af: OUTPUT«4 5 6␤» 16:12
colomon there you go
n: say 241025348275725.3352.nude 16:13
p6eval niecza v17-3-gdaf09af: OUTPUT«301281685344656669 1250␤»
colomon n: say 241025348275725.3352.Rat.nude
p6eval niecza v17-3-gdaf09af: OUTPUT«258138148003301834 1071␤»
colomon :\
colomon this is going to be one stupid looking test in rat.t 16:15
gfldex as long as nobody tries to google for "nude rat" ... 16:16
jnthn back 16:18
colomon gfldex: already plenty of hits for that without p6
colomon 's code is now .Rat.norm.nude anyway 16:21
..... which NIecza doesn't implement yet. Arrrrrgh! 16:22
this is quickly becoming a rathole
TimToady might be awake enough to discuss rats 16:23
phenny TimToady: 11:08Z <colomon> tell TimToady Just looking over quote:mm in Niecza and std, wondering if there was a copy and paste mistake. Seems to me that maybe quote:mm is implemented the way quote:ms should have been (it's not there at all) and quote:mm should also have .tweak(:mm) ?
TimToady: 11:12Z <colomon> tell TimToady errr... or does quote:mm not make any sense at all? "The :mm (or :samemark) variant may be used on a substitution...."
TimToady: 14:24Z <colomon> tell TimToady We need to talk about Rat.perl and Rat.Str....
colomon TimToady: I think I sorted out the mm/ms thing -- when mm// became ms//, STD.pm6 was never updated to match. (I have now done so.) 16:24
TimToady I saw that
TimToady wonders if we should allow <1=digit> and such
and maybe simplify <~~1> to <1>
colomon well, I was just trying it to get $<1 2 3> to make sense
colomon as for Rats -- my big question is, are we really serious about "The .perl method will produce a decimal number if the denominator is a power of 10, or normalizable to a power of 10 (that is, having factors of only 2 and 5 (and -1)). Otherwise it will normalize and return a rational literal of the form -47/3." ? 16:25
(and that should be <-47/3>, right?)
the spec is not at all consistent on this.
TimToady
.oO(now they want the specs to be *consistent*, sheesh...)
16:26
colomon I'm working on implementing a new Rat -> Str conversion that follows what the spec actually says. :)
TimToady well, the spec might be wrong :) 16:27
it's happened once or twice
colomon the spec certainly is wrong somewhere here... it's 100% definitely not consistent
masak r: "foobarbaz" ~~ /$<foo>=(...)$<bar>=(...)$<baz>=(...)/; my (:$foo, :$bar, :$baz) := $/; .say for $foo, $bar, $baz 16:28
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤Binding to signatures in my declarations not yet implemented. Sorry. ␤at /tmp/S72cea3Vyz:1␤»
masak huh!
should the above work? or some equivalent of it? 16:29
sometimes we want to mass-assign from Match objects.
TimToady why not? Captures are named that partly because they're like match objects
masak r: "foobarbaz" ~~ /(...)(...)(...)/; my ($foo, $bar, $baz) = $/[^2]; .say for $foo, $bar, $baz
p6eval rakudo 24ffc9: OUTPUT«=> <foo>␤␤=> <bar>␤␤Nil␤»
masak r: "foobarbaz" ~~ /(...)(...)(...)/; my ($foo, $bar, $baz) = $/[^3]; .say for $foo, $bar, $baz 16:30
p6eval rakudo 24ffc9: OUTPUT«=> <foo>␤␤=> <bar>␤␤=> <baz>␤␤»
masak off-by-one fail ;)
jnthn masak: The error message is accurate.
masak that it's not yet implemented? 16:31
tadzik fglock: it just came to my mind that it could be used to translate pack/unpacn tests to Perl 6
jnthn masak: Yes.
masak: It knows what it is, and it knows that it doesn't know how to do it :) 16:32
TimToady tadzik: I seriously doubt that bit of the translator is implemented
colomon TimToady: personally I like essence (as I take it) of the stated Rat rules; I just want to clean up the rest of the spec bits to match.
TimToady or do you mean translate everything around the tests, but leave the formats the same?
tadzik TimToady: possible; just a random thought 16:33
masak jnthn: I think this used to work, in b, no?
jnthn masak: "work"
PerlJam TimToady: does <!~~1> exist? If so, what would that become if <~~1> became <1>?
jnthn masak: Also, the implementation of it was horrible.
masak oki 16:34
tadzik phenny: tell sisar yes, you need to recompile ALL THE THINGS
phenny tadzik: I'll pass that on when sisar is around.
TimToady reducing <~~1> to <1> doesn't help get rid of <~~foo> anyway, since <foo> means something different
but <1=foo> is easier to read than $1=<foo>
jnthn It's probably more consistent to leave it as <~~1>
<1=foo> wfm though
TimToady as for <!...>, that's really a sort of metaoperator, and recursively calls <...> 16:35
s/calls/parses/
so you can pretty much put a ! in front of any assertion, even ones that don't make sense
std: / <!foo=bar> / 16:36
p6eval std 8632387: OUTPUT«ok 00:00 41m␤»
TimToady that would set $<foo> then immediately fail if bar matched :/
TimToady n: 'foobar' ~~ / <?foo=bar> /; say $/ 16:39
p6eval niecza v17-3-gdaf09af: OUTPUT«Unhandled exception: Unable to resolve method bar in class Cursor␤ at /tmp/RsVoOywMev line 1 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2803 (Regex.ACCEPTS @ 4) ␤ at /tmp/RsVoOywMev line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.…
TimToady duh
n: 'foobar' ~~ / <?foo=ident> /; say $/
p6eval niecza v17-3-gdaf09af: OUTPUT«#<match from(0) to(0) text() pos([].list) named({}.hash)>␤»
TimToady n: 'foobar' ~~ / <?foo=ident> /; say $<foo>
p6eval niecza v17-3-gdaf09af: OUTPUT«Any()␤»
masak TimToady: maybe the ones that don't make sense could have nice error messages, like "you did A and B, but they don't make sense" :) 16:40
PerlJam I don't know ... they makes sense, just not *useful* sense :)
TimToady maybe we could fill memory with nice error messages that most people will never see 16:41
some things just have to be erroneous
masak n: fork; say "alive" 16:42
p6eval niecza v17-3-gdaf09af: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'fork' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1364 (die @ 3) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33) ␤ at /home…
dalek ast: eeb63aa | moritz++ | S32-num/stringify.t:
fudge some Rat stringification tests for rakudo
16:43
TimToady masak: easy to fix: just port blizkost to niecza, then call P5's fork
colomon :p 16:44
jnthn star: use NativeCall; sub fork() is native returns Int { * }; fork(); say "alive"; 16:45
p6eval star 2012.04: OUTPUT«alive␤»
jnthn :)
TimToady um, shouldn't it have said alive twice if it really worked?
eval: fork; print "alive\n"; 16:46
buubot_backup TimToady: alive 1
jnthn TimToady: It does, but p6eval doesn't capture the one from the subprocess.
TimToady ah
eval: sleep 1 if fork; print "alive\n";
buubot_backup TimToady: alive 1
TimToady how does it lose STDOUT from the grandkid? 16:47
masak moritz_: I wrote a reply to www.reddit.com/r/perl/comments/tdq8...on/c4lvyhw
moritz_ masak++ 16:49
masak: sorry for abandonding you on this one
sergot hi o/ 16:49
masak sergocie! \o/ 16:50
sergot masak! \o/
masak moritz_: no worries at all. I'm glad I remembered ;)
fglock tadzik: t/op/pack.t uses simple perl5, it should be easy to re-edit to perl6 by hand (if the expected results are the same)
sergot I'll be 'back' in few days. It'll be the end of school masak! :) 16:51
ingy [Coke]: I've fallen into an ActivePit! 16:52
masak moritz_: what's the URL to your post about "no, passing all the spectests won't mean anything". 16:53
moritz_ masak: perlgeek.de/blog-en/perl-6/when-we-...wrong.html 16:54
masak thanks.
moritz_ it's easy to search for if you happen to remember the title :-)
TimToady colomon: anyway, I've taken a dislike to the part of the spec that stringifies Rat via Num, which violates POLS by throwing away precision above the decimal point for largish numbers 16:55
masak well, I tried ddg'ing before asking.
moritz_: used your post in a reply here: www.reddit.com/r/perl/comments/tdq8...on/c4lzli7 16:56
moritz_ masak: I ddg'ed too. But I remembered the exact title :-)
masak aye, that helps. 16:57
TimToady I think a Rat.Str should always produce the integer part exactly, and how much of the fraction is negotiable
TimToady of course, my stupid little routine doesn't handle :base, nor did it bother to round the last digit 16:58
it was more a proof of concept
and running 1/3 all the way out to 50 digits could be construed as antisocial :) 16:59
fglock p5-to-p6 would emit unmaintainable code that goes through an emulation layer, that's not good for translating tests (this is not a perlito specific problem) 17:10
masak nod. 17:15
though for narrower use cases, it's still possible to get something useful out the other end.
TimToady I could see a use for a translator that does the easy stuff, but just marks the hard stuff rather than trying to emulate it 17:16
fglock hmm - that sounds... easy 17:19
TimToady contemplates the delicious disruption of putting overbars on the repeating digits of a rat that repeats... 17:22
(and of reading those overbars correctly on input :) 17:23
sorear good * #perl6 17:26
masak: the Mono documentation is pretty clear that calling fork() from inside Mono is a Bad Idea
something something finalizer threads not being copied to the new process
masak oki 17:34
jlaire I want to create and export many subs of the form sub h1($x) { f('h1', $x) } for various values of h1, any suggestions for a good way to do that? I'm using niecza 17:48
moritz_ jlaire: I could only help you with rakudo 17:49
jlaire moritz_: that would be interesting to see, too 17:50
I just don't have enough memory to compile rakudo at the moment
moritz_ jlaire: perlgeek.de/blog-en/perl-6/2012-rak...lists.html 17:51
jlaire moritz_: thanks, I'll read it
I'm trying to create a library/dsl for generating CSS, somewhat like lesscss but inside Perl 6 17:53
sorear jlaire: it seems you can't use eval until I fix the newest bug 17:54
jlaire sorear: okay
I'm in no hurry with this
sorear jlaire: try generating your subs using a closure, like sub make_foo($foo) { sub ($x) { f($foo, $x) } } 17:55
then poke them into $::EXPORT::DEFAULT::($foo) at BEGIN time; some trial and error will be needed, and it might not work at all
I have to leave now&
moritz_ n: trait_mod:<is>(sub f() { "oh hai" }, :export); 17:56
p6eval niecza v17-3-gdaf09af: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'trait_mod:<is>' used at line 1␤␤Potential difficulties:␤ &f is declared but not used at /tmp/Sbb1hzPnKC line 1:␤------> trait_mod:<is>(sub f⏏() { "oh hai" }, :export);␤␤Unhandled exce…
jlaire thanks, I'll experiment
at the moment I'm generating lesscss with a Perl 5 script, which is then translated to css; I'd love a single tool that does both steps 17:57
moritz_ in rakudo you can also put stuff into EXPORT packages 17:58
r: module A { package EXPORT::DEFAULT { }; BEGIN EXPORT::DEFAULT::<&foo> := sub () { say 'OH SHARK' } }; import A; foo() 17:59
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&foo' called (line 1)␤»
moritz_ oops. 18:00
r: module A { our package EXPORT::DEFAULT { }; BEGIN EXPORT::DEFAULT::<&foo> := sub () { say 'OH SHARK' } }; import A; foo()
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&foo' called (line 1)␤»
masak TimToady: [backlog] in English, n-ple negation is considered nonstandard. in Polish, it's mandatory. 18:03
tadzik hm?
daxim "I don't know nobody!" 18:08
masak tadzik: I'm no expert, but it seems to me there are often >1 negation in negated Polish sentences. 18:09
daxim slavic is funny that way
masak tadzik: words like "nobody", "nowhere" etc get used rather than "anybody", "anywhere" as would be the case in English. 18:10
nom &
tadzik I see 18:11
yeah, double negation is normal :)
TimToady masak: yes, English is in the minority on that issue 18:12
jnthn moritz_: Hmm...why'd that import not find foo? 18:13
moritz_ jnthn: I don't know
r: module A { sub f() is export { } }; import A; f() 18:14
p6eval rakudo 24ffc9: ( no output )
moritz_ r: module A { sub f() is export { } }; module B { }; import B; f()
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&f' called (line 1)␤»
moritz_ I thought it might wronly use the UNIT::EXPORT. It doesn#t 18:15
jnthn yeah, that was top of my guess list. But glad it's not that :)
r: module A { package EXPORT::DEFAULT { }; BEGIN OUR::EXPORT::DEFAULT::<&foo> := sub () { say 'OH SHARK' } }; import A; foo()
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&foo' called (line 1)␤»
jnthn r: module A { package EXPORT::DEFAULT { }; BEGIN EXPORT::DEFAULT::<&foo> = sub () { say 'OH SHARK' } }; import A; foo() 18:16
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&foo' called (line 1)␤»
moritz_ r: module A { sub f() is export { } }; say A::EXPORT::DEFAULT::.keys
p6eval rakudo 24ffc9: OUTPUT«&f␤»
jnthn wt?
moritz_ r: module A { package EXPORT::DEFAULT { }; BEGIN EXPORT::DEFAULT::<&foo> = sub () { say 'OH SHARK' } }; say A::EXPORT::DEFAULT::.keys 18:17
p6eval rakudo 24ffc9: OUTPUT«Could not find symbol 'A::EXPORT::&DEFAULT'␤ in block <anon> at /tmp/YcRu5ZDxGA:1␤␤»
moritz_ r: module A { our package EXPORT::DEFAULT { }; BEGIN EXPORT::DEFAULT::<&foo> = sub () { say 'OH SHARK' } }; say A::EXPORT::DEFAULT::.keys
p6eval rakudo 24ffc9: OUTPUT«Could not find symbol 'A::EXPORT::&DEFAULT'␤ in block <anon> at /tmp/r9bbdlawoS:1␤␤»
jnthn r: module A { package EXPORT { package DEFAULT { } }; BEGIN OUR::EXPORT::DEFAULT::<&foo> := sub () { say 'OH SHARK' } }; import A; foo() 18:18
p6eval rakudo 24ffc9: OUTPUT«OH SHARK␤»
moritz_ r: our package A::EXPORT::DEFAULT { }; BEGIN A::EXPORT::DEFAULT::<&foo> = sub () { say 'OH SHARK' }; say A::EXPORT::DEFAULT::.keys
p6eval rakudo 24ffc9: OUTPUT«&foo␤»
moritz_ r: our package A::EXPORT::DEFAULT { }; BEGIN A::EXPORT::DEFAULT::<&foo> = sub () { say 'OH SHARK' }; import A; f()
p6eval rakudo 24ffc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&f' called (line 1)␤»
moritz_ r: our package A::EXPORT::DEFAULT { }; BEGIN A::EXPORT::DEFAULT::<&foo> = sub () { say 'OH SHARK' }; import A; foo()
p6eval rakudo 24ffc9: OUTPUT«OH SHARK␤»
jnthn moritz_: Looks like the package EXPORT::DEFAULT { } inside A does the wrong thing. 18:20
moritz_: It's looking rather too hard for an EXPORT to already exist. 18:21
And then finds UNIT::EXPORT.
moritz_ oh, right
jnthn dinner, bbiab
colomon TimToady: aiiii! so not only are the spectests and examples in the spec wrong, the spec itself is wrong too? yowsa! 18:40
TimToady: mind you, I think I agree with your basic idea. 18:41
fglock I'm reading old stuff to find more about Perl5 implementation decisions 18:42
www.perl.com/pub/1999/09/topaz.html - I wonder why no perl5-in-perl5 at that time
[Coke] r: sub f { UNDO say 'leaving A' ; die "foo"; }; f 18:44
p6eval rakudo 24ffc9: OUTPUT«foo␤ in sub f at /tmp/DOMBKYe3eC:1␤ in block <anon> at /tmp/DOMBKYe3eC:1␤␤»
moritz_ does anybody know a nice palindrome which contains non-ASCII characters? 18:51
TimToady en.wikipedia.org/wiki/Palindrome#No...alindromes 18:53
[Coke] moritz_: ΝΙΨΟΝ ΑΝΟΜΗΜΑΤΑ ΜΗ ΜΟΝΑΝ ΟΨΙΝ. 18:54
jlaire can't think of any finnish ones with ä or ö
[Coke] (jeppesn.dk/utf-8.html) I probably should have run it through gtrans first. ;)
TimToady something about "winds" 18:55
moritz_ TimToady++, [Coke]++ 18:56
TimToady phenny: gk en "ΝΙΨΟΝ ΑΝΟΜΗΜΑΤΑ ΜΗ ΜΟΝΑΝ ΟΨΙΝ"?
phenny TimToady: "NIPSON sins MONAN NOT COVERED" (el to en, translate.google.com)
TimToady oh, okay, that's an alpha privative on "laws", so "lawless" 18:57
jlaire phenny: "saippuakivikauppias"?
phenny jlaire: "soap stone dealer" (fi to en, translate.google.com)
TimToady yeah, but that's ascii... 18:58
jlaire right
jlaire สวัส is phonetically palindromic, kinda 19:00
jnthn back from noms 19:17
rindolf jnthn: hope you enjoyed your meal. 19:27
jnthn rindolf: yes, thanks :) 19:37
rindolf jnthn: what did you have?
jnthn rindolf: Some mushroomy pasta dish :) 19:39
rindolf jnthn: ah.
jnthn: with cream?
jnthn Yeah. Cream, and some white pepper. 19:40
TimToady perl6: gist.github.com/2648301 19:45
p6eval rakudo 24ffc9, niecza v17-3-gdaf09af: OUTPUT«241025348275725.3352␤42.666667␤0.5␤0.333333␤0.25␤0.2␤0.166667␤0.142857␤»
..pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting operator␤ at /tmp/nEgANf2kzT line 10, column 25␤»
TimToady this is more like what we should have by default for Rat.Str 19:46
colomon: ^^
moritz_ will steal it for rakudo :-) 19:47
TimToady the precision is determined by the size of the denominator remaining after removing the integer part
but with a minimum of 6 19:48
but that automatically gets shortened for things that go evenly into decimal
jnthn TimToady++, moritz_++
rindolf jnthn: nice.
TimToady the funny thing is that it's using string increment to round the fractional part :) 19:49
TimToady also, I'm sure the whole thing could be made considerably more efficient 19:50
TimToady it's also possible all the hanky panky with %% 2 and %% 5 is unnecessary due to the +1 fudge 19:51
dalek kudo/nom: 9a49814 | jnthn++ | src/ops/perl6.ops:
Consider .defined, not just .DEFINITE, when deciding whether to run KEEP/UNDO phasers. Fixes fail() not triggering UNDO, and that in turn fixes the 'let' handling.
19:56
moritz jnthn++
TimToady yes, it seems unnecessary, since multiplying by 2 or 5 can give at most one more digit, which the fudged length will catch even for 1/5000000000 and such 19:57
jnthn Tagged the ticket for it testneeded too. Plus one about ff 19:59
TimToady simplified the gist 20:03
perl6: gist.github.com/2648301
p6eval pugs: OUTPUT«*** ␤ Unexpected "denominator"␤ expecting operator or "}"␤ at /tmp/N4yZd76w5k line 9, column 22␤»
..rakudo 24ffc9, niecza v17-3-gdaf09af: OUTPUT«0.0000000002␤0.0000000005␤»
TimToady moritz: ^^ use this one instead 20:04
colomon TimToady: interesting, your approach to this was very different than mine...
TimToady if yours is faster and produces the same results, go for it 20:05
I was more prototyping policy than anything else
TimToady the important part is to leave the integer part out of the precision calculation entirely 20:07
the rest is negotiable, but 6 digits for repeaters seems to fit with the %f format default 20:08
and gets all the repeating digits for 1/7 20:09
the important thing is that it never loses precision for denominators that are sufficiently decimal 20:10
I *think* one digit of slop is enough to guarantee that, but I have no proof... 20:11
anyway, the gist above has a rudimentary test of that out past the six digit minimum 20:12
and seems to work for those two numbers anyway
there's probably a faster way to take the log10 of the number than look at the length of the string conversion 20:13
jnthn figgers out what's up in #112624 20:14
colomon well, my approach was very different, as I was only trying to get all the decimal digits for cases that were supposed to be exact according to the existing spec.
jnthn Not sure I've got the energy to fix it tonight, though.
jnthn leaves it for tomorrow
TimToady colomon: well, turns out you can get that for "free" with this approach 20:15
jnthn moritz: I think rt.perl.org/rt3/Ticket/Display.html?id=112586 is taken care of now? 20:17
TimToady it's also probably faster to compare the number with 1_000_000 than to stringify it and max with 6 20:18
so that line would be something more like: 20:19
my $want = $r.denominator < 1_000_000 ?? 6 !! $r.denominator.Str.chars + 1;
or maybe that wants to be 100_000, since we should fudge a large 6-digit number up to 7 20:20
okay, gist revised again 20:23
perl6: gist.github.com/2648301
p6eval rakudo 9a4981, niecza v17-3-gdaf09af: OUTPUT«0.0000000002␤0.0000000005␤»
..pugs: OUTPUT«*** No such method in class Int: "&Str"␤ at /tmp/h4BykFVpxF line 9, column 15-81␤»
shinobicl_ hi all.... is there a way to get a "review" to a perl6 module i did, so it gets published in modules.perl6.org? 20:24
jnthn shinobicl_: Does it already have a META.info? 20:28
shinobicl_ yes
github.com/shinobi/p6/tree/master/...ayCalendar
jnthn Then it just needs to end up in github.com/perl6/ecosystem/blob/ma.../META.list
shinobicl_ i just have a doubt about what to put exactly on the source-url field 20:29
dalek osystem: 17179c6 | jonathan++ | META.list:
Add Date:WorkdayCalendar to ecosystem; shinobicl++.
20:30
jnthn shinobicl_: Put the URL of the git repo: git://github.com/shinobi/p6.git 20:31
shinobicl_ thanks!
ok
jnthn oh, wait...
You have one repo for all Perl 6 stuff
I think it's meant to be one per module
shinobicl_ oh i see
jnthn yeah...otherwise I suspect panda won't know to look inside that "p6" directory 20:32
jnthn I guess easiest solution is that GitHub lets you rename a repo, and then just do a commit that moves stuff out of the directoy into top-level 20:33
shinobicl_ i'll create a new one then 20:33
jnthn ah, ok 20:34
jnthn Let me know when you're done and I can update the ecosystem list again. 20:34
TimToady I think there's a bug in r2s for values that round up .9999 and such; it won't carry back to the integer part 21:01
shinobicl ahh... another thing..... i'm using "Date" as the namespace for WorkdayCalendar 21:06
shinobicl should i use this namespace or "DateTime" instead? 21:06
dalek blets: fab2926 | (Herbert Breunung)++ | docs/_nav- (2 files):
repair spacing in header and footer
21:07
shinobicl i ask because there is a module listed as DateTime::Utils 21:11
moritz if you work with dates, Date. If you work with dates and times, DateTime 21:13
TimToady well, maybe it's a "can't happen" 21:16
TimToady I can't come up with a case that forces it to carry back to the integer part 21:26
sergot_ 'night o/ 21:27
spider-mario in case you’re interested and you understand french, I’ve had a little discussion regarding the readability of a Perl 6 code vs. its Common Lisp equivalent 21:28
progmod.org/forum/sujet/333/message/3949/
(the Lisper is Zeta)
[Coke] huh chrome offers to translate, says it has, but it's allf rench to me.
TimToady wonders if dalek will report the spec change I just pushed for Rat.Str
[Coke] TimToady++ # there you go 21:28
TimToady oh, I don't care about the karma, I just wanted people to see it :)
colomon TimToady: just got a notification for it in my e-mail. :) 21:28
colomon TimToady: why did you change it there and not in S02? 21:28
TimToady lazy :)
colomon BTW, S02 also seems to say that every number with a decimal point should either become a Rat or a RatStr. Does that seem likely to stay to you? 21:28
dalek ecs: e1cc4fa | larry++ | S02-bits.pod:
also tweak Rat.Str description here for colomon++
21:32
TimToady where does it say that?
colomon TimToady: search for "Allomorphic Rats"
lichtkind TimToady: grrrreetings
what is actuall U ?
some sort of undefined?
TimToady I do still think that .perl should try for decimal notation if it works. 21:33
colomon TimToady: agreed.
TimToady it means it's not a real object
colomon TimToady: if it is exact
jnthn lichtkind: As in, Any:U style things?
lichtkind: It means it's a type object.
Equivalent to checking that .DEFINITE is False 21:34
colomon TimToady: should Rat.perl be one of either N.M or <N/M> ?
TimToady yeah 21:35
lichtkind jnthn: i dunno i just saw moritz to use the U method
TimToady yes, only if it's exact do you get N.M
lichtkind so its true if its a type object?
jnthn lichtkind: Method? Oh...then I dunno :) 21:36
lichtkind jnthn: what is this Any:Uß
jnthn lichtkind: It's a type modifier. 21:38
jnthn r: class A { }; sub foo(A) { say "ok" }; foo(A.new); foo(A); 21:38
p6eval rakudo 9a4981: OUTPUT«ok␤ok␤»
TimToady colomon: it doesn't say 'any number with a decimal', it says 'any rational literal'
jnthn r: class A { }; sub foo(A:U) { say "ok" }; foo(A.new); foo(A);
p6eval rakudo 9a4981: OUTPUT«Parameter '' requires a type object, but an object instance was passed␤ in sub foo at /tmp/V5K06_21PO:1␤ in block <anon> at /tmp/V5K06_21PO:1␤␤»
jnthn r: class A { }; sub foo(A:D) { say "ok" }; foo(A.new); foo(A);
p6eval rakudo 9a4981: OUTPUT«ok␤Parameter '' requires an instance, but a type object was passed␤ in sub foo at /tmp/lXw6kMrJui:1␤ in block <anon> at /tmp/lXw6kMrJui:1␤␤»
TimToady but it does seem that pi.perl should probably print 3.141592653589793238 rather than the fractional form 21:39
TimToady or maybe it should return the .Str form 21:39
jnthn Uh...pi should be a Num, no?
colomon jnthn: that's what I'm asking.
jnthn rakudo: say pi.Num
p6eval rakudo 9a4981: OUTPUT«3.14159265394248␤»
jnthn grr
rakudo: say pi.WHAT
p6eval rakudo 9a4981: OUTPUT«Num()␤»
colomon I think TimToady has a real good case for making it a RatStr 21:40
TimToady constant pi is export = 3.14159_26535_89793_23846_26433_83279_50288; 21:40
jnthn Having an irrational number being a Rat is irrational!
TimToady I see no 'e' there...
jnthn my constant pi = 3.14159_26535_89793_238e0; 21:40
From Rakudo.
colomon TimToady: pi.perl should totally return the .Str form
jnthn pi.perl should probably do whatever $any-other-num.perl would do ;) 21:41
TimToady jnthn: well, that's not according to spec, then
jnthn TimToady: Then I think the spec is being silly. 21:42
lichtkind is pi officially part of prelude?
TimToady yes, and so are e and i 21:43
TimToady it's fine by me if a RatStr also provides a pre-converted .Num value 21:45
TimToady likes allomorphic literals 21:45
jnthn Is RatStr still multiple inheritnace?
ah, just found the bit in S02. Yes. 21:46
TimToady last I heard
jnthn remains unfond of ending up with MI being used in CORE.setting 21:48
(It's not that it's a problem in any technical sense. I just...find MI uncomfortable.)
(As does 6model, which takes "this is MI" to mean "skip these nice optimizations"...) 21:49
masak something about this irclog.perlgeek.de/perl6/2012-05-09#i_5563296
made me write this gist.github.com/2649172
I don't know what you think. sometimes I just like stories. :)
TimToady putting on my lit crit hat, the ending seems a bit abrupt... 21:53
au that reads like the first half of a story...
TimToady why do I feel like that poor guy in Star Wars saying "Almost there...Almost there..." 21:54
masak I'm sorry, I don't know the ending to this one.
TimToady we need some young, over-confident whippersnapper to nail the heat exhaust port... 21:55
au it may worth noting that both p5 and p6 now both meets and exceeds the scope of the initial apocalypse/exegesis vision, although I'm not exactly sure how to work that into the narrative. :)
diakopter Stay on target ...
TimToady well, I'm sure I can find some bits that P5 has ignored... 21:56
masak au: I think that's all part of the tuning fork narrative. Perl split into 5 and 6, providing everything from redundancy to heterogeneity.
TimToady 'course, there are some bits that P6 has ignored too... :) 21:57
au :)
TimToady had an interesting mental sideslip the other day, when he thought "tuning fork" and said "pitch fork" instead 21:59
which...almost works...
masak :D
diakopter pitch ;pipe 22:00
masak a pitch fork has more than two branches, right? we need more Perls.
MOAR
actually, I wish someone would develop more successful Perls.
diakopter peace pipe
masak but maybe there's not niches enough for more than Perl 5 and Perl 6? 22:01
TimToady well, there are other attempts to revise Perl 5 out there
hopefully they'll turn out to be better designed and less successful than PHP :D
TimToady s/and/or/ 22:02
masak there are parts about perl5i that reach halfway to Perl 6 and then stop.
like, they have a Str.reverse 22:03
that's about what you'd get if you stopped being inspired by Perl 6 about 2008, I guess :)
hm, seems .flip was born in 2009. 22:04
jnthn 'night #perl6 22:15
diakopter /
masak 'night, #perl6
spider-mario good night
tadzik /
spider-mario ffffuuu-
I broke it :(
tadzik happens to the best of us 22:16
masak tell me about it.
tadzik a sleepy-tale? Or how do you call it 22:16
dalek blets: a5200d9 | (Herbert Breunung)++ | docs/appendix- (2 files):
adding constants e i pi
22:17
huf bedtime story?
tadzik oh, yes 22:18
huf i had to swap for a bit to find the phrase 22:19
tadzik lichtkind: tablets.perl6.org/appendix-e-exciti...-construct shouldn't "when 'g'" be "when /g/"?
also, the top-left if seems to have some trailing }} 22:20
lichtkind tadzik: depends if eq is nuff 'g' works too
tadzik lichtkind: but the Perl 5 version uses =~ /g/
so that's more like when /g/ than when 'g'
lichtkind right 22:21
the braces are added in translation
i fix that
tadzik tablets.perl6.org/appendix-e-exciti...nd-setters
that one probably wants has $.speed is rw; 22:22
otherwise "$hg1.speed = 100;" is illegal
dalek blets: f337812 | (Herbert Breunung)++ | docs/appendix-e-exciting.txt:
fix case construct, tadzik++
22:23
lichtkind yes 22:24
tadzik lichtkind++
dalek blets: ca4edcb | (Herbert Breunung)++ | docs/appendix-e-exciting.txt:
attr should be "is rw" tadzik++
tadzik oh, did you see the "Wrath of the Lichtking" I, khem, drawed? :P 22:25
lichtkind my brother is a wow veteran all these jokes are long made :)
by myself :)
tadzik i.imgur.com/V7z2j.jpg
lichtkind hahha 22:26
tadzik heh, should've suspected that
lichtkind i keep that
tadzik it's time for me too. Good knight #eplr6 22:28
Some men, when in need to write something, think "I know, I'll use two hands!". Then they have #eplr6
huf :) 22:29
lichtkind haha 22:43
good night tadzik
sorear good * #perl6 23:29
[Coke] "I know, I'll use a J2EE container to house this app." Now I have ... well, more than 2 problems, anyway. 23:36
sorear Best Perl 5 error message: (Do you need to predeclare my?) 23:51