»ö« 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:00 static_perl left 00:04 uasi joined 00:07 daniel-s joined 00:14 flussence_ joined 00:15 flussence left 00:19 sayu joined 00:26 whiteknight left
dalek rixel: f4e52be | diakopter++ | src/ (3 files):
300% speedup of loops by caching a pool of instruction and state objects; zero allocations on incrementing loops now
00:28
00:29 kensanata left 00:32 Limbic_Region left, tokuhiro_ left
diakopter sorear++ # pointing out that incrementing while loops shouldn't use allocations 00:38
00:52 ZapZ left 00:58 uasi left 01:05 replore_ joined 01:31 sftp left 01:33 sftp joined 01:38 hypolin joined 01:46 thou left 02:07 sayu left, thou joined
dalek ecza: 1a92563 | (Solomon Foster)++ | lib/ (2 files):
Implement naive version of unlink.
02:09
colomon sorear: seems like proper error handling for unlink is going to require catching C# exceptions. Not sure if it's worth trying to do that yet, or how to go about it... 02:11
diakopter colomon: did you make unlink marked as unsafe? 02:12
colomon diakopter: yup.
sorear niecza automatically catches C# exceptions and turns them into Perl6 exceptions
diakopter oh goody :)
colomon (as you could easily tell by clicking on the github link. ;) 02:13
sorear: in some cases here they should probably turn into return values of False.
hard to say, since unlink is not spec'd at all as far as I can tell. :(
dalek rixel: c4fed67 | diakopter++ | src/ (4 files):
add lexical block descend and noop opcodes
02:14 donri left
[Coke] adds 48 more files to t/spectest.data 02:27
(for niecza)
[Coke] kicks off a spectest run to make sure. 02:28
sorear colomon: catching exceptions in C# is exactlythe same as in Java 02:31
[Coke] colomon: niecza could run a lot of S32-num/atan2.t, if only I could figure out how to fudge it. 02:32
02:43 am0c joined 02:45 wolfman2000 joined
[Coke] Files=324, Tests=9343, 899 wallclock secs ( 3.21 usr 1.92 sys + 1454.20 cusr 61.61 csys = 1520.94 CPU) 02:49
(it's really on 323 files, I had to back one out.)
*only
dalek ast: 000e1e4 | Coke++ | S06-advanced/callframe.t:
remove vim directive
02:50
ast: 3a7da94 | Coke++ | / (29 files):
niecza fudging
ecza: c042c3c | Coke++ | t/spectest.data:
run fudged tests.
03:00 Woodi left, Woodi joined
[Coke] Files=323, Tests=9343, 1053 wallclock secs ( 3.21 usr 1.92 sys + 1469.49 cusr 65.24 csys = 1539.86 CPU) 03:11
(there's a real run.)
03:29 daniel-s left 03:32 daniel-s joined
[Coke] gist.github.com/1291893 - niecza test summary output. 03:40
03:55 satyavvd joined 03:56 envi_ joined
sorear [Coke]: thanks 04:01
[Coke] sorear: no problem. 04:02
04:04 uasi joined 04:07 envi_ left 04:25 uasi left
sorear is struggling to work out the details of recursive serialized unit loading 04:33
04:37 uasi joined
dalek kudo/nom: f25b3b9 | moritz++ | src/core/ (2 files):
use native ints in the setting
05:05
05:06 daniel-s left 05:08 risou_awy is now known as risou 05:12 orafu left, orafu joined 05:18 lestrrat left 05:19 lestrrat joined 05:20 soh_cah_toa left
moritz std: /<[-]>/ 05:41
phenny moritz: 16 Oct 23:00Z <[Coke]> tell moritz that A61354_1 in S12-class/basic.t smells like the eval/try issue.
p6eval std 580b69a: OUTPUT«ok 00:01 121m␤»
05:42 wolfman2000 left
moritz [Coke]: it does indeed 05:44
good morning
[Coke] moritz: I still haven't gone to bed yet. Uhoh. 05:46
moritz nom: say ('a'^.. 'f') 05:48
p6eval nom 6f8660: OUTPUT«"a"^.."f"␤»
moritz nom: say ('a'^.. 'f').list
p6eval nom 6f8660: OUTPUT«b c d e f␤»
05:51 dual joined, uasi left
dalek ast: 12561b6 | moritz++ | S12-class/basic.t:
update test to deal with eval changes, [Coke]++
05:54
05:54 kaleem joined 05:55 uasi joined 06:05 wtw joined, wtw left, wtw joined, kaare_ joined 06:15 static_perl joined 06:16 xinming joined, thou left 06:17 uasi left 06:21 uasi joined
dalek ecza/serialize: eee0cbb | sorear++ | / (8 files):
Add framework for detecting stale precompiled modules
06:24
06:31 koban joined, koban left 06:32 mkramer left, mkramer joined 06:35 daniel-s joined
Woodi can I get mildew source from somewhere ? 06:36
moritz I'm pretty sure you can 06:39
iirc it's in the perl6/mu repo on github 06:40
dalek ast: 979e069 | moritz++ | S05-mass/rx.t:
update hyphen-in-char-class test to match current spec
sorear good luck getting it to run though 06:41
it seems to be incompatible with recent versions of gcc
Woodi thanx for location
just want to try to understand few things in C way. 06:42
sorear last time I tried it, it OOMed while trying to build the setting 06:43
Woodi it still require pugs/Haskell ?
sorear no, mildew is C/Perl5 06:44
06:50 uasi left 06:54 agentzh joined
dalek ecza/serialize: 288db48 | sorear++ | lib/ (3 files):
Use precompiled IL when using a precompiled module
06:55
ecza/serialize: cbf3a16 | sorear++ | lib/Kernel.cs:
Add an entry point to generated assemblies so mono obj/MAIN.exe works again
07:01
sorear stefan@stefans:~/rel/niecza$ mono-sgen obj/CORE.exe 07:02
Hello, world (0)
sorear -> sleep
tomorrow:
* get the full setting to freeze/thaw correctly
07:02 am0c left
sorear * try and implement compiling-code-against-the-setting 07:02
* try and implement "use"
rest of the week: 07:03
* chase regressions
07:03 baest_ joined 07:05 baest left 07:10 mj41 joined, uasi joined 07:14 wamba joined 07:19 satyavvd left
snarkyboojum colomon: I implemented unlink and mkdir too (on the weekend), but didn't commit them ;) 07:30
07:30 baest_ is now known as baest
snarkyboojum colomon: do you need to return True on line 2108? Seems redundant to me (referring to github.com/sorear/niecza/commit/1a92563b93) 07:31
07:31 uasi left
dalek ast: c7d1f65 | moritz++ | S06-other/main-usage.t:
unfudge a passing MAIN test
07:38
07:55 arthur-_ left 08:05 arthur joined 08:11 wk_ left 08:26 cognominal joined 08:28 dakkar joined 08:31 [Coke] left 08:35 arthur left
masak morning, #perl6 08:47
moritz \o masak
tadzik 'morning 08:48
dalek kudo/nom: c28552e | (Geoffrey Broadwell)++ | src/core/Main.pm:
DWIM better in orig-string role in MAIN_HELPER()

In the first snapshot orig-string was too aggressive, and in the second snapshot it was too conservative. This middle ground seems to DWIM better than either extreme did.
08:53
kudo/nom: 548e56a | moritz++ | src/core/Range.pm:
BUILD should be a submethod
08:54
kudo/nom: ded7222 | moritz++ | tools/build/NQP_REVISION:
bump NQP revision
09:02 wk joined, xinming left 09:03 jrockway left, xinming joined, jrockway joined 09:13 am0c joined 09:20 arthur joined 09:25 am0c left 09:26 am0c joined 09:27 xinming left, xinming joined
masak t/spec/S05-mass/rx.rakudo parsefails on nom's 'make spectest'. 09:30
Unsupported use of - as character range;in Perl 6 please use .. at line 338, near "]>/, 'unes" 09:31
moritz masak: the NQP revision bump from ded7222 should fix that 09:32
masak: or are you already on that version?
masak no, seems not. moritz++ 09:34
moritz $ ./perl6 -e 'class A { has $.x = "foo" }; say A.new.perl' 09:39
A(x => "foo")
oops. Should be .new 09:40
09:40 am0c left
moritz that's the beauty of pasting to the channel, I actually read the stuff more carefully :-) 09:40
09:41 daxim joined
moritz my current .perl approach doesn't try to perfectly recreate the objects, but rather just goes through all attributes with accessors, and constructs a .new call from it 09:41
if people would prefer that, I could also emit something like
09:42 jonasbn joined
moritz do { my $new := nqp::create(A); nqp::bindattr($new, A, '$!x', "foo") } 09:42
09:42 jonasbn left
moritz ... and return $new from that 09:42
that would reproduce private attributes 09:43
but wouldn't look so nice
masak I don't think we want to reproduce private attributes anyway... 09:44
moritz and the second point is that the current approach respects the classes' privacy 09:45
this implementation also calls the accessor instead of using nqp::getattr() 09:46
(by design choice, not because it's easier to implement :-) 09:47
nom: say 2e0.perl 09:48
p6eval nom f25b3b: OUTPUT«2␤»
moritz nom: say (1/2).perl
p6eval nom f25b3b: OUTPUT«1/2␤»
moritz nom: say 1.e 09:50
p6eval nom f25b3b: OUTPUT«Method 'e' not found for invocant of class 'Int'␤ in block <anon> at /tmp/1euhPcc2ev:1␤ in <anon> at /tmp/1euhPcc2ev:1␤»
moritz ... and my patch breaks Int.perl, because that currently just falls back to Mu.perl, which falls back to Mu.Str 09:51
09:52 uniejo left
moritz nom: say "\x25b6" 09:55
p6eval nom f25b3b: OUTPUT«▶␤»
moritz .u 25b6
phenny U+25B6 BLACK RIGHT-POINTING TRIANGLE (▶)
10:09 hypolin left
moritz nom: say (1..5).roll 10:11
p6eval nom ded722: OUTPUT«1␤»
moritz nom: say (1..5).roll(*)
p6eval nom ded722: OUTPUT«(timeout)» 10:12
moritz kinda hoped it would produce some values before timeouting
masak is that how &say works? 10:13
oh, I guess with a lazy list, it is.
moritz well, the old say would work that way
nom: print (1..5).roll(*)
masak .oO( as the old say goes... )
p6eval nom ded722: OUTPUT«(timeout)4112224123521123143544355154344345245421524425132342445325125413421532313535324422222533223144553152345251545531223122343251313135114355545354341444515521124242513514215442334512232253253115351244435554113334235552555223152125415144114442425552133315233324443…
moritz but the new one .gist's, and that hangs 10:14
masak wait... so you're saying... that 'print' works... but 'say' doesn't... :/
masak feigns great confusion for the sake of demonstration 10:15
so confusing!
moritz it could be made to work, probably
what's the phenny syntax for translating from en to de? 10:16
masak phenny: en do "donut"?
phenny masak: The en to do translation failed, sorry!
masak phenny: en de "donut"?
phenny masak: "Krapfen" (en to de, translate.google.com)
moritz phenny: en de "one one one"?
phenny moritz: "ostzonensuppenwürfel ostzonensuppenwürfel ostzonensuppenwürfel" (en to de, translate.google.com)
masak haha, "Krapfen"! :)
moritz we use "donut" (and sometimes even "doughnut") for the round ones with a hole though 10:17
masak I know what a würfel is, but what is a würfel?
er, what is a ostzonensuppenwürfel?
moritz phenny: en de "one one"?
phenny moritz: "One One" (en to de, translate.google.com)
masak phenny: de en "ostzonensuppenwürfel"?
phenny masak: "All Clips" (de to en, translate.google.com)
masak ok, this is more confusing than print/say ;) 10:18
moritz ostzone = estern germany
masak right.
moritz and suppenwuerfel = a cube (wuerfel) of spice you put into a soup (suppe)
masak oH!
10:18 envi_ joined
masak like a buillon cube? 10:18
moritz that's the proper word, yes 10:19
masak er, bouillon*
moritz not sure how that relates to "one one one" though
masak well, maybe it's the recipe for the world famous Dreiostzonensuppenwürfelsuppe :) 10:20
phenny: en de "two two two"? 10:28
phenny masak: "zwei zwei zwei" (en to de, translate.google.com)
moritz seems to be an easter egg; most google hits for "ostzonensuppenwürfel" seem to be about the google translate thing :-) 10:29
10:30 [Coke] joined
masak how did you learn about it? 10:30
seems to be related to a band somehow: de.wikipedia.org/wiki/Ostzonensuppe...achenkrebs 10:32
static_perl are you guys hungry or something 10:33
tadzik yep, and just making me a breakfast 10:34
masak static_perl: :D
static_perl conversation ends up with wuerfen machen :p
masak phenny: en de "fudge"? 10:35
phenny masak: "Fondant" (en to de, translate.google.com)
masak phenny: en fr "fudge"?
phenny masak: "truquer" (en to fr, translate.google.com)
static_perl phenny: en it "masak"? 10:36
phenny static_perl: "masak" (en to it, translate.google.com)
masak phenny: ms en "masak"? 10:38
phenny masak: "cooked" (ms to en, translate.google.com)
static_perl haha
masak speaking of food... 10:39
static_perl exactly
masak phenny: et en "mee saak"?
phenny masak: "honey harvest" (et to en, translate.google.com)
tadzik what's 'ms'?
masak Malay.
tadzik you hope they're not into cannibalism, Mr Carl Cooked ;) 10:40
static_perl well being a chef is not a bad profession too i think 10:41
10:42 arthur left
static_perl they must have some sort of regular expression on spices 10:43
masak tadzik: if I hadn't just been on the verge of making fun of East German cuisine, I would berate you for intolerance ;)
tadzik ;) 10:47
static_perl can't wait for recipe being patented 10:48
colomon snarkyboojum: the spectests say unlink returns True if it works. 10:53
11:02 arthur-_ joined 11:04 replore_ left
colomon is it TEST_JOBS=4 11:24
?
yes, yes it is. 11:25
11:26 arthur-_ left
dalek ecza: 8d23b25 | (Solomon Foster)++ | lib/CORE.setting:
Simple sub close.
11:27
11:39 arthur-_ joined, Patterner left 11:42 Psyche^ joined, Psyche^ is now known as Patterner
moritz jimmycuadra.com/posts/ecmascript-5-array-methods "every" instead of all(), "some" instead of any() 12:08
12:11 itz joined
moritz filter vs. grep 12:19
12:21 Alias joined
masak lots of languages seem to choose 'filter'. 12:28
moritz didn't 'grep' mean 'get regular expression' or some such? 12:30
thinking more about it, it would make sense to switch .comb and .grep 12:31
masak moritz: Wikipedia says g/re/p (global / regular expression / print) 12:32
moritz still specific to regexes 12:33
12:33 zag joined
moritz whereas you don't need regexes to comb for certain values 12:34
masak dives into macros some more 12:36
frettled masak++ nice blog post about AST and macros, BTW :)
frettled got delayed in reading that one.
masak more to come ;) 12:37
frettled goodie
masak frettled: a foretaste: what will this do? 'quasi { class C {} }'
moritz conflict on the second application? 12:38
masak correct.
but that's not the interesting bit. there's a bunch of "events" that trigger as we parse a class declaration. these can't go to the ordinary, global World, since we don't want to register C at parse-time. 12:39
they have to go to a sandboxed world particular to that quasi, and be stored up awaiting actual macro application.
moritz $ ./perl6 -e 'quasi {class C {} }; say C' 12:40
C()
moritz submits masakbug
frettled heh
masak yes, I know I so deserve each one of those ;)
moritz masak: I guess you'll have to add a new $*ST when starting to parse the quasi 12:41
masak correct.
good thing it's a contextual! :D
moritz the question is if that's enough
probably not 12:42
masak well, it's definitely trickier than just that.
frettled masak: but in answer to your question: "confuse me" ;)
masak you got it.
whoa, src/Perl6/SymbolTable.pm is 1.7 kLOC... 12:44
masak attempts to take it all in in one sitting
moritz std: quasi :COMPILING { } 12:45
p6eval std 580b69a: OUTPUT«ok 00:01 124m␤»
moritz looks at S06-macros/opaque-ast.t 12:47
can you actually use $COMPILING::x inside a macro but outside a quasi?
hm, should be OK
moritz thinks that the macro branch can pass at least the first test in that file :-) 12:48
masak Block.body ? 12:50
seems it expects it to return an AST...
moritz aye
masak moritz: COMPILING is defined as "Lexical symbols in the scope being compiled", so outside of a quasi should be fine. 12:52
moritz masak: afaict macros should be routines, they aren't in your branch
try macro a { return quasi {} }
masak not sure I had seen that particular use case before.
(with COMPILING in the macro) 12:53
moritz: Attempt to return outside of any Routine
moritz: that needs fixing. thanks.
masak puts it on his TODO list
dalek ast: 8cfef27 | moritz++ | S06-macros/opaque-ast.t:
heavily fudge opaque-ast.t
12:54
moritz masak: your branch passes two subtests in that file. Congratulations! 12:55
masak by the way, those tests in that file all appear fine, but I expect I will have lots more as I get going with tests.
which should be soon.
moritz those tests have all the usual characteristics of 1) being written before they were implemented and 2) being written by just reading the specs, and trying to deal with the most obvious issues 12:56
masak lols at the method name .steal_WHO 12:57
moritz: exactly. I consider what I'm doing right now a very realistic prototyping of things. after which I'll be in a good position to write some sufficiently probing tests. will probably tear things down and build them up again based on the tests, but might take shortcuts here and there. 12:59
benabik steal_WHO?
masak benabik: covers the case when 'class A::B {}' was parsed before 'class A {}', so A already has a .WHO 13:01
benabik masak: Ah. Clever. 13:02
masak mostly I just like colorful verbs in code ;)
13:02 mtk left
masak wonders if .curry_role shouldn't be .prime_role 13:09
eiro 13:10
dalek kudo/nom: 16a3b95 | moritz++ | src/core/terms.pm:
prevent startup error if %*ENV<HOME> is empty
13:11
kudo/nom: 4e43906 | moritz++ | src/core/ (3 files):
much improved Mu:D.perl
13:11 GlitchMr joined
masak ok, I see now why SymbolTable.pm is as big as it is. it handles *all* the declaration-y bits in Rakudo. 13:12
and it's written entirely by two very prolific guys: 13:13
someone called Jonathan Worthington, and someone called jnthn.
;)
dalek ast: 44e9737 | moritz++ | S02-types/num.t:
unfudge Num.perl tests that now pass
masak (with a patch in the middle by tadzik)
tadzik this "Jonathan Worthington" is the one stealing all the karma from jnthn
13:14 mtk joined
moritz masak: I've also touched that files once or twice 13:14
masak ok. 13:15
my branch has a slightly old base...
looking now at HLL::Compiler::SerializationContextBuilder 13:16
13:16 tokuhiro_ joined, wk left 13:17 pmurias joined
moritz I wonder if sub addr should be replaced by nqp::where in there 13:21
13:21 lateau__ joined
masak aha! so "fixing up" is for when we go straight for runtime after compiling, and "deserializing" is when we've persisted stuff and taken a break between compiling and running. 13:21
13:22 zag left
masak actually, something called "installation" seems to figure in the latter case, too. 13:24
moritz and it might be that you only need to delay/intercept the installation
13:25 jerome_ left
masak errands & 13:25
colomon t/spec/integration/advent2009-day23.t hanging on niecza? 13:30
13:32 localhost left
moritz colomon: the last test says ok 4 # SKIP hangs 13:32
13:33 benabik left
moritz colomon: so either your copy of roast is out of date, or you're invoking the test in a way that doesn't involve fudge, but should 13:33
13:33 localhost joined, benabik joined
colomon t/fudgeandrun t/spec/integration/advent2009-day23.t is what I just did 13:33
and it sure looks like it's hung again on test 4
moritz colomon: so what's your git sha1 of the t/spec/ repo? 13:34
[Coke]++ fudged that file yesterday
13:35 benabik left
[Coke] colomon;if there's an updated version of t/spectest.data, you must update roast also. 13:38
tadzik (%ENV<HOME> // %ENV<HOMEDRIVE> ~ %ENV<HOMEPATH>)
colomon Pretty sure I tried pulling t/spec this morning
tadzik that should be File::HomeDir or so
colomon oh, I see what happened 13:39
[Coke] colomon;I usually start out in niecza with "make spectest" to rebuild anything in niecza that needs it.
colomon: wozzat?
bbkr_ What is infix:<but> for? I cannot find any sample usage for it.
colomon that only works if your t/spec isn't changed locally 13:40
works fine now
tadzik bbkr_: 0 but True for example 13:41
it's like does, but for objects, or something like this
or not
The property can then be mixed in or, alternatively, applied using the but operator. but is like does, but creates a copy and mixes into that instead, leaving the original unmodified 13:42
bbkr_: perlcabal.org/syn/S14.html search for "The property can" 13:43
13:43 PacoLinux joined
bbkr_ tadzik: thanks, nicely explained in S14 (i was looking for it in S03) 13:45
13:49 arthur-_ left 13:50 thou joined 13:52 GlitchMr left
colomon niecza's still failing t/spec/S06-signature/passing-arrays.t after the update 13:52
[Coke] checks. 13:53
13:53 GlitchMr joined
dalek ecza: 2f61b1e | (Solomon Foster)++ | t/spectest.data:
Turn on unlink.t.
13:55
[Coke] colomon: I just did a git rb/make spectest (to get a rebuild), then a git rb (pull --rebase, sorry), in t/spec ... and the tests passes except for a TODO.
so prove is happy with it. 13:56
this is on OS X 10.6.8
colomon you sure? I get two fails in a row, one of which is fudged and one isn't.
[Coke] Mono JIT compiler version 2.6.7
colomon [Coke]: test is "an Int is not a Hash" 13:57
[Coke] ok 7 - an Int is not a Hash 13:59
colomon weird 14:00
wonder if a full rebuild of niecza will help. 14:01
[Coke] Maybe "make spectest" isn't reubilding things for me? Iunno.
It looked like it
reboot, brb. 14:02
14:07 tokuhiro_ left
[Coke] back. 14:09
any lucK?
14:10 GlitchMr left 14:21 agentzh left 14:24 molaf joined 14:25 alastyr left
ingy TimToady: I am getting failures sending email from ingy.net to wall.org. (ingy.net is hosted by gmail...) 14:27
colomon [Coke]: got myself distracted paying bills. testing now
[Coke]: nope, still fails
[Coke]: seems a very odd error to be platform-dependent... 14:28
[Coke] my roast is at: 14:29
44e9737
and niecza: 8d23b25
colomon my niecza is 2f61b1e, but the only difference is turning unlink.t on 14:33
and my roast is 44e9737
14:34 wtw left 14:39 eiro left
dalek ecs: 05414aa | moritz++ | S24-testing.pod:
[S24] expand on &todo, &skip
14:40
colomon [Coke]: my mono is Mono JIT compiler version 2.10.2 14:53
14:54 arthur-_ joined
moritz colomon: fwiw that test also fails here 14:54
not ok 7 - an Int is not a Hash
# /home/moritz/p6/niecza/t/spec/S06-signature/passing-arrays.niecza line 37
colomon \o/ # it's not just me
moritz (and the one before also fails, but that is TODO'ed
[Coke] colomon: I can do a mono upgrade, but ISTR there was an upper limit on supported monos when I tried this last time. 14:55
moritz: what version of mono?
moritz [Coke]: 2.10.1
niecza: sub f(%h) { }; f(1); say 'alive'
[Coke] hokay. I'll see what macports gives me. hang on.
p6eval niecza v10-54-g2f61b1e: OUTPUT«Potential difficulties:␤ %h is declared but not used at /tmp/9QJTwkEIL6 line 1:␤------> sub f(⏏%h) { }; f(1); say 'alive'␤␤alive␤» 14:56
moritz p6eval suffers from the same error
14:56 imarcusthis left
[Coke] 2.10.6 is macport latest. give me a few hours to up, rebuild, spectest, in between $DAYJOB 14:56
moritz niecza: role A { }; sub f(A $) { }; f(3); say 'alive' 14:57
p6eval niecza v10-54-g2f61b1e: OUTPUT«␤Unhandled Exception: Nominal type check failed in binding A $ in MAIN f; got Int, needed A␤ at /tmp/WZI_X0YTHX line 0 (MAIN f @ 0) ␤ at /tmp/WZI_X0YTHX line 1 (MAIN mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2176 (CORE C1040_ANON @ 2)…
[Coke] colomon: did you see my note about fudging atan2.t?
colomon [Coke]: no 14:58
[Coke] phenny, you suck.
colomon niecza: say atan2(2, 3)
p6eval niecza v10-54-g2f61b1e: OUTPUT«0.588002603547568␤»
colomon [Coke]: might have been me being oblivious rather than phenny. :)
[Coke] colomon: that file is generated, so fudging it was non-obvious. If you can figure it out, niecza is passing a lot of those tests. 14:59
14:59 bluescreen10 joined
colomon [Coke]: ah, sure, I'll stick it on my to-do list 14:59
[Coke] colomon: danke.
meetings. see you in a day. :P
colomon ugh. I hate meetings.
dalek p: f748de0 | moritz++ | src/HLL/SerializationContextBuilder.pm:
use nqp::where in SerializationContextBuilder
15:00
15:00 imarcusthis joined 15:05 pmurias left, jerome_ joined 15:06 araujo left 15:09 kaleem left 15:11 GlitchMr joined, araujo joined 15:15 amkrankruleuen joined 15:27 bluescreen10 left 15:28 bluescreen10 joined
[Coke] mono is not light on the deps. 15:32
bah. cannot complete upgrade, libgdiplus failed. 15:33
flussence_ distro?
15:34 flussence_ is now known as flussence
flussence (gentoo claims libgdiplus is optional, at least) 15:34
15:35 bluescreen10 left 15:36 bluescreen10 joined 15:43 bluescreen10 left 15:44 bluescreen10 joined 15:45 MayDaniel joined 15:47 Holy_Cow joined, bluescreen10 left 15:48 bluescreen10 joined 15:49 bluescreen10 left, bluescreen10 joined
[Coke] is there something I can do locally to make it MOAR OPTIMIZED? 15:50
er, *rakudo, not it. 15:51
(say I'm willing to live on the edge with optimize=3)
moritz --optimize=3
alias perl6='perl6 --optimize'
[Coke] so it's a runtime thing. thank you.
Is there a way yet to change the default optimize at config time? 15:52
moritz no
but something like an env var shouldn't be too hard to implement
flussence isn't the default supposed to be 2? or does that just mean "default when the flag is passed"?
moritz the code for the decision is in src/Perl6/Compiler.nqp lines 21-25 15:53
[Coke] masak++ blog post on macros.
also, jnthn++ # blog post on optimizaiton 15:55
flussence oh, seems like it is 2 unless it's explicitly disabled
15:56 donri joined
[Coke] ugh; undeclared dependency in macports for a package mono declares on. (google "macport <lib> failure" if it happens to you.) 16:01
16:04 MayDaniel left
TimToady masak: your class C in a macro is probably very much like the GLOBALish unification that happens on a compunit level 16:10
in a sense, a macro is a compilation unit, and instantiation requiries a "linkage" of potentially conflicting viewpoints 16:12
more generally, whenever you have generic code, instantiation may require contextualization 16:13
16:15 bluescreen10 left
TimToady though a platonist or an aristotelean might give you very different views of what a successful contextualization looks like :) 16:16
16:16 bluescreen10 joined, plobsing_ joined 16:17 dakkar left
TimToady one could view the whole nominal/structural/duck/monkey typing issue in this light of the Philosophy of Genericity/Specificity 16:17
16:18 kaleem joined
TimToady macros, formal parameters, roles, methods, variables are all just ways of talking generically 16:18
16:19 dual left
TimToady it's the distinction between a common noun and a proper nouns too 16:19
16:20 plobsing left, mj41 left
TimToady is spouting tagmemic notions again... 16:20
with macros it's just a bit more obvious that you're speaking in multiple contexts at the same time 16:21
16:21 bluescreen10 left 16:22 bluescreen10 joined
TimToady had better go try to get his email back up... 16:23
sorear good * #perl6 16:25
[Coke] ho, sorear. 16:28
[Coke] yawns waiting for mono-latest-package to build. 16:29
16:30 bluescreen10 left 16:31 bluescreen10 joined 16:32 GlitchMr left 16:34 kaleem left 16:41 bluescreen10 left, bluescreen10 joined
masak moritz++ # todo, skip 16:48
16:50 mkramer left
masak TimToady: I was thinking of comp unit unification too when I wrote that. 16:52
16:53 kaleem joined
ingy o/ 16:56
17:06 kaleem left, kaleem joined 17:12 bluescreen10 left, bluescreen10 joined 17:18 daniel-s left
masak \o 17:21
17:24 bluescreen10 left
[Coke] colomon: downloaded, rebuilding niecza... 17:25
17:26 bluescreen10 joined 17:30 Chillance joined
TimToady is desolate to have insulted masak++'s intelligence 17:30
17:32 im2ee joined 17:35 risou is now known as risou_awy, bluescreen10 left, bluescreen10 joined 17:41 zby_home joined, daxim left
masak TimToady: not at all; however, I'm horrified how much of the spouting you wrote above makes sense to me at this point :P 17:43
17:46 uasi joined
masak but perhaps that's how a BDFL effectively rules the land. by planting his memes and mental models in people in the community. 17:47
also it's both hubristic and humbling at the same time to think really hard about something, only to realize that TimToady already has quite a detailed map of that terrain. :) 17:52
17:55 GlitchMr joined 18:02 uasi left
ingy makes a note to impregnate masak soon 18:04
18:04 MayDaniel joined
diakopter hmm 18:05
18:10 bluescreen10 left
araujo masak, making sense out of TimToady .... yah, you should be horrified 18:11
araujo hides
masak ;)
18:11 japhb_ joined, bluescreen10 joined
moritz I've reached that state occasionally too 18:11
colomon TimToady: was catching up on the infix:<xx> change from earlier this month. Is it too late to make a pitch for leaving the operator as it was, except with a new rule that if the left-hand side is a closure, that closure is called repeatedly? 18:13
18:13 benabik joined
TimToady probably :) 18:13
masak that feels less elegant. 18:14
colomon masak: less elegant than requiring infix:<xx> to be special? 18:15
masak we're all special.
infix:<&&> is special.
colomon I'm not
masak if you're not special but everyone else is, that's quite exceptional... 18:16
colomon The existence of special operators is no reason to frown open the creation of more special operators.
masak you make a valid point.
however, I'm thinking back to the times when I've wanted [ 0 xx ^$size ] xx ^$size to DWIM 18:17
and I like the new proposal.
TimToady I choose to believe in the optimizer figuring out staticness here
masak er, [ 0 xx $size ] xx $size
and if the optimizer doesn't figure out staticness, that's probably not a big deal either. 18:18
infix:<xx> doesn't feel like a hot-path, tight-loop thing. 18:19
colomon I'm not worried about speed (in this case, anyway) 18:20
moritz what are you worried about? 18:21
colomon consistency
moritz with what?
colomon all the other x-y operators
ie rand-letter x 10 is one letter repeated ten times
moritz note that other places that could lead to accidentally shared references already thunk 18:22
(default values in function, default values for attributes)
colomon rand-letter xx 10 is ten letters, possibly different
masak you have a point there. 18:23
japhb_ TimToady: I'm a bit confused about S06:3374-3383 . It appears to me that this is ambiguous given for example two MAINs defined as: 'multi MAIN(Int $bar, Bool :$foo = False)' and 'multi MAIN(Int :$foo)' . Am I correct in this belief? 18:24
TimToady colomon: if you want that kind of consistency, we should make x thunky too 18:26
moritz japhb_: I'm pretty sure that's a fossile 18:27
*fossil
grrrr
masak hugs moritz 18:28
moritz japhb_: arguments are passed with --name=value. --name now always assumes Bool
and doesn't inspect the next argument
japhb_ moritz, Ah, OK. Is there anything in that paragraph that needs to be saved? Otherwise, I'll nuke the whole thing.
moritz japhb_: don't think so 18:29
also the line
--name "spacey value" :name«'spacey value'»
japhb_ Right, I'll nuke that as well
moritz is fossiled too
colomon TimToady: or my proposal could be extended to infix:<x> and infix:<X> too. ;) 18:30
japhb_ thanks!
moritz++
moritz (some of the tests might still test for the old behavior too)
TimToady what is the approved way to pass a list of shell-globbed files as the argument to a --name=value 18:31
the other way lets you say --foo *.ext 18:32
moritz but we don't even know if the other way is computable
TimToady nevertheless, that's a common idiom 18:33
moritz TimToady: I don't use it often at all...
18:33 shinobicl joined
moritz TimToady: and with the old spec that's only possible of the shell glob expands to a single value 18:33
18:34 soh_cah_toa joined
TimToady no, it says all args up to the next --bar 18:34
moritz it does?
well, then we can just autopromote an empty list to True
and say that --foo --bar is the same :foo :bar, and --foo *.ext --bar is :foo(glob('*.ext')), :bar 18:35
18:35 wk joined
moritz but then we can't allow options right before positional parameters 18:35
ie we make mixing options and arguments *really+ painful 18:36
... which, IME, is the much more common idiom
japhb_ Another line in the same section (I forget which), says that the first non-option *terminates option processing*. Can't have both behaviors.
moritz agreed 18:37
TimToady the args are part of the option, so your logic is ill there... 18:38
moritz I'm officially in favor of disabling that magic, and requiring things like --foo="$(echo *.ext)" for what TimToady wants to do
japhb_ Personally, I'm happy with "The default parser requires = , and if you want something different, do your own parse."
TimToady O 18:39
japhb_ Which is an escape hatch that is already in the spec
moritz TimToady: sorry, I don't understand that
TimToady typo
moritz TimToady: if --foo a1 a2 --bar treats a1 and a2 as arguments to foo, how can we pass positional arguments to MAIN after named params?
s/params/arguments/ 18:40
TimToady that's what -- is for
18:40 mkramer joined
moritz -1 18:40
japhb_ OK, but this still doesn't address the ambiguity I brought up at the start of the conversation.
Or rather, moritz's solution did, but I don't see how TimToady's does. 18:41
moritz TimToady: that makes the much more common case harder
TimToady that's just sig ambiguity
japhb_ But the signatures aren't ambiguous per se. They're only ambiguous when = is optional for non-Bool options
18:41 mberends joined 18:42 mj41 joined
moritz how about we allow --foo= *.txt 18:43
and withoute the =, --foo is Bool
japhb_ Ah, just a trailing = indicating "I want to capture the args up to the next option"? 18:44
moritz yes
TimToady distinguish from --foo=''
moritz can't be 18:45
you can't have it both ways *and* eat your cake
or you could invent --*foo for slurpy foo
TimToady hasta go work on his email more, but still doesn't like imposing one switch culture; don't care if it's a trait, or a canned pre-MAIN processor, but we need to support multiculuralism here
18:46 envi_ left
TimToady not tell people how they have to do it 18:46
afk &
benabik Generally these kinds of decisions are done via type information given to the option parser.
japhb_ There's another issue. in '--foo= *.txt', *.txt could expand to things that have leading '--', so effectively if we try this, it has to be the last option anyway (there can be only one of these, and it must end option parsing, except that it gobbles the rest of the line.
So then I don't see the value of bothering, since that's what a slurpy array is for. 18:47
benabik, the signature of MAIN is that type information. However, MAIN can be a multi -- with disagreeing type information.
benabik japhb_: I'd argue it's perfectly valid for the option parser to throw up its hands at that point. 18:48
japhb_: Or decide to prefer Bool over non-bool or similar. 18:49
18:49 Holy_Cow left
masak is happy to see S19 being discussed 18:51
18:52 dual joined
japhb_ benabik, If we allow no '=' but prefer Bool, we're effectively creating action at a distance. Whether an '=' is required on an option that does have an argument changes depending on whether an argumentless option can be found in any other MULTI. It's not a dealbreaker, but it smells fishy to me. 18:52
18:52 kaare_ left
japhb_ Plus then we suspiciously complicate the interaction between the command line parser and the dispatcher. 18:53
Unlike the existing behavior which is: "Here is the canonical parse of the command line. Are there any matching dispatch candidates?" we would be changing to
benabik If you're going to try to parse command line options without any type information then trying to do complex things like "optional =" is probably just going to have lots of painful corners. 18:54
japhb_ "OK, looking at the first argument, there are a couple interpretations. How many candidates match either interpretation *so far*? If matches exist with both interpretations, we need to continue building a tree of interpretations, trying to find a non-conflicting, non-ambiguous parse. Otherwise we finally throw our hands up." 18:55
Too much magic for my taste.
benabik It's a perfectly reasonable level of magic in some ways.
It is a lot to do though.
japhb_ benabik, the parsing is *generating* a set of type information that it is trying to match against the type information from the dispatch candidates.
benabik japhb_: The problem is creating a non-ambiguous parse without type information ahead of time. 18:56
japhb_ That's part of why arguments are passed through val(), which is trying to figure out what types are there, so it can inform the dispatcher.
benabik, right.
benabik japhb_: Option parsers that do things like optional =s and automatic --no- options tend to receive type information to inform the parse. 18:57
japhb_ And we either to make the parser and the dispatcher get to know each other approximately as well as Cursor and Match, or we can't DWIM like that.
masak all that ever comes in from the command line is strings. we pass them through val() to "enrich" their types. this is what makes MAIN dispatch different from regular MMD.
japhb_ right ...
masak in a way, it's similar to the problems we had with trying to unite calling context and MMD.
benabik The only way to unambiguously know if --foo bar is :(:foo<bar>) or :(:foo, 'bar') is to inform it ahead of time. Which, in this scheme requires inspection on the MULTI canidates. 18:58
masak (in that you have two things each needing the outcome of the other)
benabik Or a set of pragmas, or similar.
japhb_ benabik, right, but what if both dispatch candidates exist?
benabik japhb_: Disambigation rule or explode, implementer's choice. :-D 18:59
japhb_: What happens if multi candidates are ambiguous?
18:59 MayDaniel left
benabik Probably what needs to get done is to have a 90% parser that requires = and have the system be modular enough to have a pragma or inspection base system get `use`d 18:59
japhb_ I see three options: 1. Don't DWIM, just error in that case. 2. Warn to the user that a guess is being made. 3. Require =
masak, exactly
19:00 kaleem left
japhb_ benabik, sure. And my argument is that that escape hatch already exists in the spec, where it says that if you need non-default option parsing, use your own grammar. 19:00
19:00 kaleem joined
moritz 2. seems very wrong. You ship a program to the user, and he calls it in an unexpected way, and Perl 6 warns (not the program) 19:01
japhb_ Agreed.
And also I think '--foo *.txt' magic is also much less valuable for Perl 6 programs, because A) it must be the last and only case of that usage on the command line, meaning you can't do it more than once in a single line, and B) we have slurpy arrays for that use case. 19:02
benabik I'm arguing 3 for the basics and then requesting someone write something more complicated. :-D 19:03
japhb_ benabik, I'm currently writing "the basics". ;-)
But it sounds like we're in some agreement. 19:04
masak I really like MMD, so I wouldn't mind if MAIN dispatch got a bit weaker if it became more like regular MMD, if possible.
benabik If you have non-multi MAIN, introspection is much easier.
19:04 mkramer left
moritz benabik: introspection makes it much harder for the user to reason about the program 19:04
japhb_ moritz++
moritz things might feel a bit more intuitive in the beginning, but when you try to /understand/ what's going on, it hurts you. 19:05
benabik moritz: sub MAIN( Int :$foo, Bool :$bar, *@files) allowing prog --foo 3 --bar * is difficult?
japhb_ And I'm not sure we want people to require different mental models depending on whether *internally* a program implements its MAIN variants with an only MAIN and internal logic, or using MMD and multi MAINs
benabik, Essentially that dual behavior would require *users* to know how the *program* works in order to sanely feed it arguments. 19:06
moritz benabik: reading just the command line, I#d think that the result of * is an argument to --bar
benabik: or that 3 terminates the command line processing 19:07
benabik More normal might be sub MAIN( Int :f(:$foo), Bool :$bar, *@baz) allowing prog -f 3 --bar * 19:08
19:08 mkramer joined
geekosaur so, you do realize that * is expanded by the shell, on unix? 19:08
benabik doe
japhb_ benabik, and in fact that case would be handled correctly. :-)
(in the current '='-requiring code, I mean)
benabik japhb_: If it assumes all short options take arguments, that might be a problem. I like my `tar -xzf foo.tar.gz` 19:09
japhb_ benabik, I don't think anyone's suggesting clustering right now. 19:10
benabik Simpler case: echo -n foo bar baz. I really expect $n to be True, not 'foo'. Complex option parsing without foreknowledge of types is extremely difficult. 19:11
moritz and foreknowledge of types requires solving the Halting problem in the case of multi dispatch 19:12
benabik Non-clustering and requiring = on long options is probably the path of least surprise.
moritz: determining option type by multi introspection is also extremely difficult. Non-multi MAIN() and/or pragmas are probably going to be more likely. I still like the idea of a OptParse::Magic module that does it by progressively narrowing multi candidates. But, yes, as a default that's probably a bit much. 19:15
19:26 mkramer left 19:28 molaf left
japhb_ bak from interruption ... 19:32
GlitchMr perl6: for 1..10000 {say "$_ is dividable by 10000" if 10000 %% $_} 19:33
phenny GlitchMr: 14 Oct 03:29Z <sorear> tell GlitchMr github.com/sorear/niecza/issues/67
GlitchMr Unoptimized code
p6eval niecza v10-54-g2f61b1e: OUTPUT«1 is dividable by 10000␤2 is dividable by 10000␤4 is dividable by 10000␤5 is dividable by 10000␤8 is dividable by 10000␤10 is dividable by 10000␤16 is dividable by 10000␤20 is dividable by 10000␤25 is dividable by 10000␤40 is dividable by 10000␤50 is divid…
..pugs c943eeb: OUTPUT«*** ␤ Unexpected "%% $_"␤ expecting operator or "}"␤ at /tmp/SdMN91zp1T line 1, column 55␤»
..rakudo 4e4390: OUTPUT«1 is dividable by 10000␤2 is dividable by 10000␤4 is dividable by 10000␤5 is dividable by 10000␤8 is dividable by 10000␤10 is dividable by 10000␤16 is dividable by 10000␤20 is dividable by 10000␤25 is dividable by 10000␤40 is dividable by 10000␤50 is dividable by 1…
japhb_ OK, TimToady, given the above, do you agree to dropping 'no =' support in the base spec, and pushing that to module territory? 19:34
GlitchMr %% is operator... pugs...
divisable lol
divisible* 19:35
Very complex word
japhb_ GlitchMr, pugs is behind the times still. Also, in English that statement is swapped: '10000 is divisible by $_'
moritz pugs: say $_ !% 3 for 5, 6
p6eval pugs c943eeb: OUTPUT«*** ␤ Unexpected "!%"␤ expecting operator, ":" or ","␤ at /tmp/gJTBZFjsBj line 1, column 8␤»
GlitchMr oh right 19:36
moritz GlitchMr: also it's good style not to produce too much output with p6eval here, unless there is a very good reason for doing so
(hint, hint) 19:37
19:39 kaleem left 19:42 kaleem joined
GlitchMr perl6: for 'a'..'z' {say $_ %% $_} 19:43
p6eval niecza v10-54-g2f61b1e: OUTPUT«␤Unhandled Exception: System.FormatException: Unknown char: a␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) […
..rakudo 4e4390: OUTPUT«Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤B…
..pugs c943eeb: OUTPUT«*** ␤ Unexpected "%% $_"␤ expecting operator, ":", "," or "}"␤ at /tmp/IqKFuAxaKp line 1, column 22␤»
GlitchMr (it doesn't make sense, I know)
TRUE TRUE TRUE TRUE... what?
benabik Probably 0 %% 0 == True? 19:44
nom: say +'a'
p6eval nom 4e4390: OUTPUT«0␤»
colomon benabik has it, of course. 19:45
perl6: say "a" == 0
p6eval rakudo 4e4390: OUTPUT«Bool::True␤»
..niecza v10-54-g2f61b1e: OUTPUT«␤Unhandled Exception: System.FormatException: Unknown char: a␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) […
..pugs c943eeb: OUTPUT«1␤»
GlitchMr perl6: say 0 %% 0 19:46
benabik niecza appears to not like Int.String(y?)
p6eval rakudo 4e4390: OUTPUT«Bool::True␤»
..niecza v10-54-g2f61b1e: OUTPUT«␤Unhandled Exception: System.DivideByZeroException: Division by zero␤ at Builtins.mod (Niecza.Variable a1, Niecza.Variable a2) [0x00000] in <filename unknown>:0 ␤ at CORE.C881_infix_3A_3C_25_25_3E (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at N…
..pugs c943eeb: OUTPUT«*** ␤ Unexpected "%% 0"␤ expecting operator, ":" or ","␤ at /tmp/a1FWmTXWLU line 1, column 7␤»
GlitchMr ... not only that
benabik Or %% 0
GlitchMr 0%0 is obviously invalid
You cannot divide by zero
So why 0%%0 isn't... 19:47
benabik nom: 2 %% 0
p6eval nom 4e4390: ( no output )
GlitchMr "Performs a % and then tests the result for 0, returning Bool::True if the $x is evenly divisible by $y, and Bool::False otherwise."
benabik nom: say 2 %% 0
p6eval nom 4e4390: OUTPUT«Bool::False␤»
GlitchMr perl6: say 0%0
p6eval pugs c943eeb: OUTPUT«*** Illegal modulus zero␤ at /tmp/mHlU1Jq_0K line 1, column 5 - line 2, column 1␤» 19:48
..niecza v10-54-g2f61b1e: OUTPUT«␤Unhandled Exception: System.DivideByZeroException: Division by zero␤ at Builtins.mod (Niecza.Variable a1, Niecza.Variable a2) [0x00000] in <filename unknown>:0 ␤ at MAIN.C0_mainline (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.R…
..rakudo 4e4390: OUTPUT«0␤»
GlitchMr rakudo doesn't seem to have problem with 0%0 it seems...
But it's actually $x - floor($x / $y) * $y
...
0 - floor(0 / 0) * 0 19:49
...
There is "0" involved in it, so 0/0 doesn't matter...
So yeah, it kind of makes sense
But it's weird
19:52 mkramer joined
masak GlitchMr: I agree. 19:54
rakudo: say 0 / 0; say (0 / 0) * 0
p6eval rakudo 4e4390: OUTPUT«Divide by zero␤ in sub infix:<div> at src/gen/CORE.setting:2312␤ in method new at src/gen/CORE.setting:5697␤ in sub infix:</> at src/gen/CORE.setting:5791␤ in block <anon> at /tmp/WyBPKxDZfI:1␤ in <anon> at /tmp/WyBPKxDZfI:1␤»
masak rakudo: say 0 % 0
p6eval rakudo 4e4390: OUTPUT«0␤» 19:55
masak this seems like somewhat of a double standard.
GlitchMr It's actually in standard
<%> should make this calculation
The result of floor() doesn't matter if $y is 0, because $something*0 is always 0... 19:56
masak rakudo: say Inf * 0 19:58
p6eval rakudo 4e4390: OUTPUT«NaN␤»
masak not everything.
GlitchMr <GlitchMr> !yib math 1%0.2 20:06
<YIBot> 0.2
20:06 carlin joined
GlitchMr This is why I think that floats are fun 20:06
Good thing I haven't yet found such issues in Perl 6 :).
masak GlitchMr: that's because 0.2 isn't a float in Perl 6. 20:07
GlitchMr What it is then
PerlJam a Rat 20:08
20:09 kaleem left
GlitchMr perl6: say <2/4>*3 20:10
p6eval pugs c943eeb: OUTPUT«6␤»
..niecza v10-54-g2f61b1e: OUTPUT«␤Unhandled Exception: System.FormatException: Unknown char: /␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) […
..rakudo 4e4390: OUTPUT«1.5␤»
GlitchMr ...?
20:12 GlitchMr left
TimToady rakudo is correct; pugs predatest the <2/4> notation, and niecza doesn't implement it yet 20:12
at least, not for rats
it thinks <2/4> is just a qw 20:13
japhb_ TimToady, along with my previous question (are you amenable to saying that allowing option arguments without = requires a module or manual parsing?) Here's another: should val() attempt to detect constant and enum names seen in the command line args? 20:15
masak ...in which lexical scope...? 20:17
TimToady presumably at the end of UNIT, where MAIN is called 20:18
benabik That would probably be handy, actually. Although getting the scoping right might be interesting.
TimToady I lean slightly towards a 'yes'
benabik is enjoying being the peanut gallery today.
masak as long as there's a lexical scope where the arguments are conceptually located, I guess that's fine.
PerlJam How does one override the command line parser? 20:19
TimToady the args are coming from $*ARGS
it suffices to define your own $*ARGS in UNIT
PerlJam Hmm.
20:20 shinobicl left 20:21 arthur-_ left
TimToady I guess I'm okay with other preprocessors to the args coming via modules, as long as we don't mess up the semantics so thoroughly as to make certain things impossible 20:21
we already mandate a val() preprocess, after all
20:23 arthur-_ joined
TimToady on constant names, as long as we reliably fall back to stringy types when there's no binding for the constant's type, it should not be a major issue 20:23
still thinking about a way to make string bindings epsilon looser than other types 20:24
japhb_ Ah, so you mean two passes: One trying with constants and enum strings turned into real types, and failing dispatch there, failing them all back to Str? Or do I need to try all combinations until one of them matches (and if that, then what order ...?)
Oh, hum 20:25
TimToady no, I mean one pass, but Str binding loser
*looser
just as constraints are epsilon tighter than nominal types
20:25 MayDaniel joined
japhb_ Yeah, that was the 'Oh, hum', when I looked up from my typing and saw your previous statement. :-) 20:25
TimToady we had a long discussion about it a couple weeks ago
japhb_ 'we' meaning #perl6, I assume 20:26
TimToady nodnod
TimToady has to go off and hack on p5camel for the rest of the week, now that email is fixed (crosses fingers) 20:27
japhb_ What is 'p5camel'?
TimToady so I'll be somewhat scarce
PerlJam TimToady: When does the camel hit the stores?
japhb_ Oh, the book!
Can't wait for that.
TimToady they'd want to get it out this year, but we'll see...
PerlJam I can't believe it's been > 10 years since the last one 20:28
japhb_ Has the release date for the next Rakudo been picked?
Yeah, amazing that
TimToady won't have as much time to polish this camel, so it should be more correct, but rougher
PerlJam japhb_: the compiler or the Star release?
TimToady .o("You can't polish a camel.") 20:29
japhb_ PerlJam, compiler. I'm trying to figure out what more I have time to fit into my MAIN work before the release
TimToady later &
japhb_ o/
PerlJam TimToady: do you guys talk about "Modern Perl" ?
dalek rixel: 7a7623e | diakopter++ | src/interp.c:
optimization
20:30 MayDaniel left
PerlJam japhb_: the compiler is scheduled for the 20th. 20:30
japhb_ PerlJam, Besides, last I recall, R* was held up until the nebulous "the ecosystem is working again"
PerlJam, ah, OK
japhb_ probably shouldn't add much more to nom now, but rather save it for the next cycle. 20:31
PerlJam that reminds me ... anyone got any favorites for the name?
20:31 mantovani joined
tadzik PerlJam: Warsaw? :) 20:31
mantovani hi rakdCopyright 2010 Aware (www.aware.com.br)
ops
sorry bad ctrl+c
hi
rakudo is already for production ?
PerlJam mantovani: depending on what "production" means. 20:32
mantovani means, developt the main software of my company
japhb_ lunch &
mantovani PerlJam: serving a lot of people 20:33
PerlJam mantovani: at a guess, I'd say "no"
mantovani can you say why please ?
sjohnson mantovani: it's not fully ready yet, would be my guess. 20:34
tadzik it's slow and somewhat resource-heavy
PerlJam mantovani: Check out perl6.org/compilers/features.html though
mantovani thank you very much it is enough
^^
mantovani reading 20:35
masak mantovani: rakudo can do a *lot* of things. however, Perl 5 is more stable, has more modules, is faster, and has a bigger user base.
dalek p: bb30b90 | pmichaud++ | src/Q (2 files):
Add NQPCursor "restart match" capabilities.
tadzik woo, qregex hacking 20:36
20:36 mberends left
PerlJam hopefully the first in a long series of improvements :) 20:36
masak pmichaud++
20:44 wamba left 20:50 mberends joined
diakopter mberends: hi 20:50
20:51 dorlamm joined
colomon mberends: o/ 20:51
masak mberends! \o/ 20:52
20:52 zby_home left 20:54 zby_home joined 20:57 zby_home left 20:59 im2ee left
[Coke] colomon: hey, guess what. spectest now fails that ONE TEST. nothing else. 20:59
colomon [Coke]: right, that's what I get too.
[Coke]: btw, remember all those test files that didn't work because of unlink? unlink works now. ;) 21:01
[Coke] colomon: I will refudge at some point soon. Thanks! 21:02
weird that the version of mono bumped that from a pass to a fail. But at least it's reproducable.
21:03 eiro joined
dalek rixel: 4c22d2a | diakopter++ | src/ (6 files):
progress toward compiling variable storage/access
21:04
rixel: b56c0c4 | diakopter++ | src/interp.c:
Merge branch 'master' of github.com:diakopter/sprixel
rixel: a276704 | diakopter++ | src/ (6 files):
rename node to ASTNode
soh_cah_toa what's the opposite of split() again? i forget... 21:09
diakopter join?
soh_cah_toa no. instead of splitting on what you don't want, it splits on what you do want
tadzik comb?
colomon comb, yeah
soh_cah_toa ah, yes. thanks
dalek ecza: a5c253d | (Solomon Foster)++ | t/spectest.data:
Turn on io_in_for_loops.t.
21:10
21:12 smash_ joined 21:14 smash_ is now known as smash 21:15 y3llow_ joined, pothos_ joined 21:17 pothos left 21:18 pothos_ is now known as pothos, y3llow left, y3llow_ is now known as y3llow
smash hello everyone 21:18
soh_cah_toa smash: howdy
colomon \o 21:19
masak smash! \o/ 21:21
tadzik hello smash
niecza: async { say 1 }; say 2 21:22
p6eval niecza v10-54-g2f61b1e: OUTPUT«===SORRY!===␤␤Action method statement_prefix:async not yet implemented at /tmp/0gWyv73hqC line 1:␤------> async { say 1 }⏏; say 2␤␤␤Unhandled Exception: Unable to resolve method statement_level in class Str␤ at /home/p…
21:24 bluescreen10 left 21:45 skangas left 21:49 mj41 left 21:50 carlin left 21:58 mkramer left
masak 'najt, #perl6 22:01
sorear phenny: "najt"? 22:05
phenny sorear: "find" (sl to en, translate.google.com)
sorear phenny: en de "night"?
phenny sorear: "Nacht" (en to de, translate.google.com)
sorear phenny: en sv "night"?
phenny sorear: "natt" (en to sv, translate.google.com)
sorear phenny: en nl "night"?
phenny sorear: "nacht" (en to nl, translate.google.com)
sorear good * #perl6 22:06
wk phenny: en pl "night" 22:09
sorear phenny: en pl "night"? 22:11
phenny sorear: "noc" (en to pl, translate.google.com)
sorear guessed that one
see also
phenny: en ru "night"?
phenny sorear: The en to ru translation failed, sorry!
flussence phenny: en eo "night"?
phenny flussence: The en to eo translation failed, sorry!
flussence was worth a shot...
wk phenny: et en "ööd"
sorear it's noch in Russian too 22:12
benabik wk: I think it needs the ? at the end.
wk phenny: et en "ööd"?
phenny wk: "nights" (et to en, translate.google.com)
wk benabik: of course :)
22:16 whiteknight joined
wk instead of phenny: en{night} -> ru{ноч} 22:18
[Coke] did TPF work with GCI in previous years?
wk like this: leto.net/mt/mt-search.cgi?tag=gci&blog_id=9 ? 22:23
22:30 wk left
sorear phenny: "ноч"? 22:32
phenny sorear: "night" (ru to en, translate.google.com)
22:45 Chillance left 22:52 dorlamm left 22:55 benabik left
dalek ecza/serialize: 232da04 | sorear++ | src/ (4 files):
Mergeback
23:00
ecza/serialize: 3edbade | sorear++ | / (8 files):
Merge branch 'master' of github.com:sorear/niecza into serialize
23:01
sorear git++ # successfully executed a merge where a file was modified on one side and renamed on the other 23:02
23:13 donri left 23:15 cognominal left, cognominal joined 23:23 pernatiy left
dalek rixel: 94ef74f | diakopter++ | src/ (3 files):
rename instpool to InstPool
23:27
rixel: f5e963e | diakopter++ | src/ (3 files):
TitleCase a bunch more types
rixel: b69099e | diakopter++ | src/ (8 files):
lots more renaming, also extend mberends' hashtable.c fetch operation to set a pointer to the hash entry in addition to setteing the values.
diakopter sorear: there, I made it operate on pointers to avoid the double hash lookup. 23:28
colomon o/ 23:30
diakopter hi
23:34 tokuhiro_ joined
dalek ast: 06d8f11 | (Solomon Foster)++ | S32-trig/generate-tests.pl:
New version of generate-tests.pl which properly fudges atan2 for niecza.
23:37
ast: b652e36 | (Solomon Foster)++ | S32-trig/atan2.t:
Fudged version of atan2.t.
23:38
ecza: 008602e | (Solomon Foster)++ | t/spectest.data:
Turn on atan2.t.
23:40