»ö« 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.
ranott glad to see so many developers putting their time into Rakudo. Sorry about the away. 00:04
00:05 benabik left 00:06 Moukeddar joined 00:23 impious left 00:38 whiteknight joined
TimToady sorear: I found a strange niecza bug, gist coming 00:42
gist.github.com/1121634 00:43
it's a random number generator, which produces the correct sequence, except that the 3rd number is supposed to be 539453717, not -460546283 00:44
(works in nom)
hmm
nom: gist.github.com/1121634 00:45
p6eval nom: OUTPUT«467478574␤512932792␤539453717␤20349702␤615542081␤378707948␤933204586␤824858649␤506003769␤380969305␤»
TimToady niecza: gist.github.com/1121634
p6eval niecza v8-21-g9c1607b: OUTPUT«467478574␤512932792␤-460546283␤20349702␤615542081␤378707948␤933204586␤824858649␤506003769␤380969305␤»
sorear nom: say -1 % 100
p6eval nom: OUTPUT«99␤»
sorear niecza: say -1 % 100
p6eval niecza v8-21-g9c1607b: OUTPUT«-1␤»
sorear perl6: say -1 % 100 00:46
p6eval niecza v8-21-g9c1607b: OUTPUT«-1␤»
..pugs, rakudo 922500: OUTPUT«99␤»
TimToady there it is
00:48 tokuhirom joined
TimToady there's a nom bug too; it segfaults if I move the inner sub till after the inner call to subrand() 00:48
so probably a post-declaration messup
masak: ^^ :) 00:49
00:49 wolfman2000 joined
dalek p: 4e5bf5f | pmichaud++ | src/PAST/NQP.pir:
Add :pasttype<xor_nqp>, which allows the return value for two true

This can likely be immediately added to Parrot's PCT as a replacement for :pasttype<xor>, but since nom/nqp will need this long before the next Parrot supported release we'll keep a copy here too.
00:51
ast: 9aed4c2 | sorear++ | S02-names/pseudo.t:
[S02-names/pseudo.t] add CALLER, OUTER
00:58
01:04 noganex_ joined
pmichaud locally: 01:05
> say 42 ^^ 15
Nil
> my $x; $x ^^= 42; $x ^^= 15; say $x
Nil
(this last one is wrong, should probably result in Any)
sorear why should it result in Any? 01:06
pmichaud assigning Nil to a scalar
sorear oh
you really beleive that? :( 01:07
01:07 noganex left
pmichaud I believe that's what the spec says, yes. 01:07
sorear yeah but it's so horrible
TimToady perhaps you should return False if it's false... 01:08
pmichaud the spec currently says it wants an empty list in list context, though. Since we don't have a list context, Nil seeems the next-best-thing.
TimToady sorear: Nil is defined as the absence of a value, so you can't usefully store it
well, how about () then?
pmichaud I can have it return () always, yes.
TimToady perl6: say 1 ^^ 0 01:09
p6eval niecza v8-21-g9c1607b: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &infix:<^^> in mainline␤␤Server stack trace: ␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>…
..pugs, rakudo 922500: OUTPUT«1␤»
01:09 woosley joined
sorear I have a negative reflex reaction to anything that involves adding tests to the hot path of assignments 01:10
01:10 donri left
sorear do we still beleive Nil ~~ Parcel ~~ Any? 01:10
pmichaud nom doesn't have Nil ~~ Parcel
nom: say Nil ~~ Parcel; 01:11
p6eval nom: OUTPUT«Bool::False␤»
pmichaud although it is still Cool and Any
sorear nom: say Nil.WHAT
p6eval nom: OUTPUT«Nil␤»
TimToady Nil is about the closest thing we have to a bottom value
sorear nom: say Nil.^parents
p6eval nom: OUTPUT«Iterator() Iterable() Cool() Any() Mu()␤»
TimToady my $x := Nil; say $x 01:12
perl6: my $x := Nil; say $x
p6eval rakudo 922500: OUTPUT«Nil()␤»
..pugs: OUTPUT«*** No such subroutine: "&Nil"␤ at /tmp/3bLKcQdeAv line 1, column 1-13␤»
..niecza v8-21-g9c1607b: OUTPUT«␤»
TimToady nom: my $x := Nil; say $x
p6eval nom: OUTPUT«Nil␤» 01:13
TimToady that works
nom: say Nil ~~ List
p6eval nom: OUTPUT«Bool::False␤»
TimToady why is Iterable there twice?
pmichaud It's not. 01:14
Iterator and Iterable
TimToady is blind
pmichaud Nil is self-iteratating.
*iterating.
TimToady self-irritating :)
pmichaud *irritating. Whatever.
01:15 jevin left
TimToady sorear: is the -1 % 100 bug a niecza bug or a mono/clr bug? 01:15
rosettacode.org/wiki/Subtractive_generator <-- 3 uses of sequence operator! 01:16
dalek kudo/nom: cefbda4 | pmichaud++ | / (3 files):
Some infix:<xor> improvements -- two true values passed to xor or ^^
01:17
TimToady also shows how very different p6 code can look from p5 code because of that
sorear TimToady: it's a niecza bug 01:18
pmichaud afk, walk
sorear pmichaud: 'Nil is self-iterating' ?
01:18 jevin joined
pmichaud some things such as Parcels and Nil can act as their own iterator. 01:19
i.e., they reify to themselves when iterated.
sorear ah
dalek kudo/nom: 6834ff0 | pmichaud++ | NOMMAP.markdown:
Update NOMMAP.
pmichaud afk, walk. 01:20
sorear nom: for Nil { say 1 }
p6eval nom: ( no output )
sorear that's what I thought
01:20 Moukeddar left
TimToady it's basically an undefined () 01:20
sorear TimToady: (my $x := Nil leaving $x =:= Nil) is this a bug?
pmichaud these days I tend to lean towards the idea that := should do the binding, whatever it may be. 01:21
TimToady possibly, according to current spec, but the spec might be wrong there
what pmichaud++ said
sorear pmichaud: does that translate to "yes" or "no"?
pmichaud sorear: "not a bug"
sorear niecza: say -1.0 % 100.0
p6eval niecza v8-21-g9c1607b: OUTPUT«-1/1␤»
sorear niecza: say -1e0 % 100e0
p6eval niecza v8-21-g9c1607b: OUTPUT«99␤»
pmichaud similarly I tend to think that binding to a Parcel should leave things as a Parcel and not convert it to a Seq or anything else 01:22
sorear niecza: say -1 % (2**64)
p6eval niecza v8-21-g9c1607b: OUTPUT«-1␤»
TimToady I'm find with binding being very primitive compared to assignment
*fine
sorear looks like Num case is correct and all the others are backward
pmichaud right... keeping binding very primitive seems to be desirable in nom
afk, walk for real this time. 01:23
01:27 whiteknight left
dalek ecs: 81bd38c | larry++ | S02-bits.pod:
Bind of Nil with := is primitive

  (But parameter binding is ::= semantics, which treats Nil as if no arg had been passed.)
01:27
01:32 ranott left 01:34 daniel-s joined 01:39 daniel-s_ joined, daniel-s left 01:43 daniel-s__ joined, daniel-s_ left
sorear niecza: (-1) % 100 01:49
p6eval niecza v8-21-g9c1607b: ( no output )
sorear niecza: say (-1) % 100
p6eval niecza v8-21-g9c1607b: OUTPUT«-1␤»
sorear niecza: say (-101) % 100 01:50
p6eval niecza v8-21-g9c1607b: OUTPUT«99␤»
01:51 molaf joined
dalek ecza: 0053246 | sorear++ | lib/Builtins.cs:
Fix sign behavior of % (TimToady)
01:55
01:59 woosley left
daniel-s__ nom: 4**3.say 02:00
p6eval nom: OUTPUT«Rebuild in progress␤»
daniel-s__ rakudo: 4**3.say 02:01
p6eval rakudo 922500: OUTPUT«3␤»
daniel-s__ rakudo: say 4**3
p6eval rakudo 922500: OUTPUT«64␤»
sorear method call binds tighter than anything else 02:04
dalek ecza: 826f49f | sorear++ | t/spectest.data:
Add S02-names/pseudo.t
02:07
ast: fdbe891 | sorear++ | S02-names/pseudo.t:
Finish S02-names/pseudo.t
sorear wound up with 140 pseudo package tests
02:29 daniel-s__ is now known as daniel-s 02:32 molaf left 02:38 rdesfo left 02:39 breinbaas left 02:40 breinbaas joined 02:46 lichtkind left 03:10 jaldhar left 03:11 jaldhar joined 03:21 envi joined 03:28 Su-Shee joined 04:05 jimmy1980 left
dalek ecza: 17807f3 | sorear++ | / (2 files):
Implement .gist
04:06
04:10 wolfman2000 left
sorear 1 failing test (was 5) 04:10
04:11 mattp_ left 04:14 SHODAN joined, jimmy1980 joined
sorear *file 04:14
04:17 birdwindupbird joined, satyavvd joined
dalek ecza: 7888fe2 | sorear++ | src/NieczaFrontendSTD.pm6:
Fix LTM automaton generation for user-defined operators
04:26
sorear all spectests should now be an unregressed state
04:34 araujo left 04:35 araujo joined, sivoais left 04:43 am0c left 04:44 Moukeddar joined 04:46 am0c joined 04:50 SHODAN left 05:11 woosley joined 05:12 SHODAN joined 05:16 Moukeddar left 06:01 daniel-s left, mberends left, clkao left 06:02 clkao joined 06:07 wtw joined 06:08 mattp_ joined
moritz good morning 06:15
dalek ast: 37d802d | moritz++ | S0 (6 files):
rakudo unfudges
ast: add4718 | moritz++ | S32-list/reduce.t:
fix a test I broke earlier, moritz--
sorear hello moritz 06:16
moritz: niecza should be passing 'make spectest' again. also, 140 new pseudopackage tests. 06:17
moritz \o/
06:17 aloha left 06:19 koban joined
sorear niecza: CORE::say 1..5 06:19
p6eval niecza v8-25-g7888fe2: OUTPUT«1..5␤»
TimToady niecza: UNIT::say 1..5
p6eval niecza v8-25-g7888fe2: OUTPUT«1..5␤» 06:20
TimToady \o/
niecza: MY::say 1..5
p6eval niecza v8-25-g7888fe2: OUTPUT«1..5␤»
TimToady ooh
niecza: SETTING::say 1..5
p6eval niecza v8-25-g7888fe2: OUTPUT«1..5␤»
TimToady wowee
niecza: FOO::say 1..5; # just checking :) 06:21
p6eval niecza v8-25-g7888fe2: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in class Any␤ at /tmp/NM97DlEJJP line 1 (MAIN mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1957 (CORE C915_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1958 (CO…
TimToady sorear++
06:37 aloha joined 06:59 masak joined
masak good morning, #perl6. 06:59
I have a question: why doesn't Perl 5 core have a 'comb' builtin by now? 07:00
how do people cope? do they write their own? is there a CPAN module?
sorear well, there's m//g 07:02
07:02 mj41 joined
sorear buubot_backup: eval: join " ", "12+34*56" =~ m/\d+/g 07:02
buubot_backup sorear: 12 34 56 07:03
sorear also o/ masak
sorear points out shiny niecza feature to masak 07:04
07:08 aindilis left 07:11 aindilis joined
sorear rakudo: say Str === Str 07:12
p6eval rakudo 922500: OUTPUT«Bool::True␤»
sorear rakudo: say Str eq Str
p6eval rakudo 922500: OUTPUT«Bool::True␤»
sorear nom: say Str === Str
p6eval nom: OUTPUT«Bool::True␤»
sorear nom: say Str eq Str
p6eval nom: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤Bool::True␤»
masak sorear: cool! 07:14
and yes, there's m//g, that's not too bad. will use that :)
07:29 odoacre left 07:35 odoacre joined 07:39 Mowah joined
dalek ecza: 6b9d707 | sorear++ | / (6 files):
Implement new Nil model
07:45
ast: 5451960 | sorear++ | S02-builtin_data_types/nil.t:
[S02-builtin_data_types/nil.t] Expand tests to cover all functionality in contemporaneous Niecza commit.
07:46
sorear moritz: I pre-skipped all the new tests for Rakudo because I don't know if it will pass them
nom: sub foo($x = 123, $y = 456) { say ($x, $y) }; foo(Nil, 42) 07:48
p6eval nom: OUTPUT«Nil 42␤»
sorear evalbot rebuild niecza
p6eval OK (started asynchronously)
sorear niecza: sub foo($x = 123, $y = 456) { say ($x, $y) }; foo(Nil, 42) 07:49
p6eval niecza v8-26-g6b9d707: OUTPUT«123 42␤»
sorear I decided it made more sense just to check for Nil in the signature binder 07:50
if we find Nil while doing type checking and it came from a parameter, we throw out the argument and try again using the fallbacks 07:51
07:51 meteorjay joined
sorear hmm, I'm at a good stopping point 07:52
sorear sleep
07:56 wamba joined
masak 'night, sorear 08:05
dream of more wonderful features in Niecza.
08:42 daxim joined 08:45 woosley left 08:47 woosley joined 08:51 Kivutarrr joined, zamolxes left 08:52 zamolxes joined 08:58 woosley1 joined, woosley1 left 09:00 woosley left 09:04 jjore_ left
jnthn o/ #perl6 09:06
09:25 Mowah left 09:29 satyavvd left 09:31 ranott joined 09:34 beekor left
masak \o jnthn 09:35
moritz o/ 09:36
09:37 ab5tract joined 10:09 espadrine joined
dalek ast: 5eced30 | moritz++ | integration/lazy-bentley-generator.t:
turn an RC entry by TimToady++ into an integration tests

Very interesting for us, because it makes nom segfault
10:14
10:16 im2ee joined 10:17 im2ee left 10:23 Kivutarrr left 10:47 cosimo joined 10:49 jjore joined 11:05 ab5tract left
jnthn masak: o/ 11:06
jnthn teaching :)
ooh, a segfault 11:07
11:07 tokuhirom left, tokuhirom joined
jnthn somehow we're getting a Parrot string leaking in. 11:11
moritz imagines jnthn diagnosing a segfault while teaching
11:12 tokuhirom left
tadzik „yeah, ok kids, just a second, I got this..” 11:13
oh, good afternoon #perl6
moritz \o tadzik 11:14
dalek ast: 1640c4b | moritz++ | S02-builtin_data_types/nil.t:
refudge nil.t for rakudo
jnthn :) 11:15
Nah, they're doing exercies :) 11:16
moritz kids, please design a complete storage and meta-object system for Perl 6 that supports gradual typing; don't bother me with questions until you're finished.
11:18 ab5tract joined
tadzik jnthn: whatcha teaching? 11:19
jnthn SVN this morning, JavaScript this afternoon :)
Segfaults on the &subrand ... *; 11:20
11:20 azawawi joined
azawawi hi 11:20
11:20 satyavvd joined
azawawi moritz: ping 11:20
jnthn could make it go away by making assignment coerce or die for non-Perl 6 types
But I'd rather work out where the Parrot string is coming from. 11:21
azawawi Just wanted to say that the latest development release of Wx::Scintilla now wraps the latest Scintilla 2.x. This means that we now have control over Perl and Perl 6 lexer in scintilla in Padre and other editors using Wx 11:23
i started working on LexPerl6.cxx, should i use the spec as the source code for highlighting stuff 11:24
or perl6-examples?
moritz azawawi: pong
STD.pm6 is a pretty good, big chunk of Perl 6 code to test on 11:25
azawawi so STD.pm6 and NieczaActions.pm6 11:26
11:26 MayDaniel joined
moritz nods 11:26
azawawi cool
moritz wingolog.org/archives/2011/08/02/a-...g-compiler might interest the compiler junkies 11:28
11:29 odoacre left 11:35 cosimo left 11:40 azawawi left
tadzik mmm, bacon for breakfast 11:44
life doesn't get much better than that :) 11:45
moritz $ ./perl6 -e 'class MyEx is Exception { }; try { MyEx.new().throw }; say $!.WHAT' 11:46
MyEx()
\o/
tadzik yay! 11:47
moritz yesterday I experimented with it, and only got segfaults and infinite loops as response
now I've decided to approach it differently, more bottom-up 11:48
dalek kudo/nom-exceptions: 8ea619d | moritz++ | NOMMAP.markdown:
note a segfault in NOMMAP
kudo/nom-exceptions: 69e9988 | moritz++ | src/core/Exception.pm:
extract payload from parrot excetions, if available
kudo/nom-exceptions: 0c51f85 | moritz++ | src/core/Exception.pm:
in Exception, make sure we have a parrot exception before throwing
moritz and I've only modified src/core/*.pm files for it so far
11:49 timbunce joined
takadonet morning all 11:54
11:59 pernatiy joined 12:01 satyavvd left 12:07 donri joined 12:11 im2ee joined
tadzik morning takadonet 12:16
moritz nom: multi d(*@a) { 1 }; multi d(Exception $x) { 2 }; say d Exception.new 12:22
p6eval nom: OUTPUT«Ambiguous dispatch to multi 'd'. Ambiguous candidates had signatures:␤:(Positional @a)␤:(Exception $x)␤␤current instr.: 'd' pc 478 ((file unknown):485) (/tmp/PYK54132Gp:1)␤»
jnthn that looks dubious
The non-slurpy should win, I think.
can't investigate now
moritz my attempts in the setting (with die()) have the slurpy one always win
yes, I agree 12:23
jnthn Not so surprising there's an issue there - I've yet to get through triaging the multi tests.
12:24 awoodland joined
moritz .u ä 12:26
phenny U+00E4 LATIN SMALL LETTER A WITH DIAERESIS (ä)
12:27 im2ee left
tadzik oh, da964eb128332cca8126543a413e905e24a9a75e is a fail 12:29
12:29 BooK left
tadzik in t/pod/07-tables.t last two tables have an identical ast tree 12:30
moritz again comments on checking $/.from and $/.to
tadzik yes, that's what I'm up to no
so the hash index would be from-to, rather than the id 12:31
does infix:<~> stringify both sides, in nqp?
seems so 12:33
dalek kudo/nom: 967ab7a | tadzik++ | src/Perl6/Actions.pm:
Use $/.from ~ ",' ~ $/.to as a POD block id when adding them to $=POD

The previous approach didn't work for two identical POD blocks existing in the document, and caused a failure in t/pod/07-tables.t
12:35
kudo/podparser: e028411 | jonathan++ | src/ (4 files):
Register Capture type so we can use it in the binder.
kudo/podparser: 3588736 | jonathan++ | src/core/Capture.pm:
Fix a thinko.
kudo/podparser: 0bc9883 | jonathan++ | src/ (2 files):
Make |$c work again in signatures; $c becomes a Capture with the current unbound stuff in it.
kudo/podparser: d74aaa8 | tadzik++ | / (19 files):
Merge branch 'nom' into podparser
tadzik hrm 12:36
what is podparser doing here
moritz you merged into podparser 12:37
tadzik I just did 'git push', this must've pushed some old podparser commits already merged into nom and pushed, but not pushed to github/podparser
ok if I remove that branch now? 12:38
moritz what does 'git branch' says? 12:39
first, git checkout nom
tadzik nom
moritz then git branch -D podparser
then
git push origin :podparser # note the colon
tadzik yeah, I know how to do it :)
just asking if to do it :) 12:40
moritz if you don't need it anymore, delete it
note that in the end, you'll have to get a list of your commits to submit them to gsoc
donri bitbucket.org/gward/vcprompt/ ;)
tadzik huh 12:41
moritz dunno if you need the branch for that... you can just go through the nom commit list
tadzik I probably will. All commits done in the summer, not only those gsoc-related?
donri: yeah, I have (nom) in my prompt :) 12:44
moritz tadzik: all gsoc related commits 12:46
tadzik oh, that'll require some work :)
luckily, majority of my commits all gsoc related
donri om nom nom 12:49
12:57 Holy_Cow joined 12:59 Holy_Cow left
masak how old is 'our'? since v5.0.0? 13:00
[Coke] nom: www.cnn.com/ 13:08
p6eval nom: OUTPUT«Confused at line 1, near "www"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
[Coke] does it only work on gist? ;) 13:09
moritz yes
p6eval special-cases the URLs and follow the link to the raw text 13:10
[Coke] *snap*
13:23 stephanmg joined, stephanmg left 13:24 daniel-s joined, shinobicl joined 13:28 daniel-s left 13:29 daniel-s joined 13:31 jaldhar left 13:33 daniel-s left, daniel-s joined 13:37 daniel-s left, Chillance joined, daniel-s joined 13:38 mls_ joined
mls_ Hi perl6! 13:38
moritz hello mls_
mls_ $dayjob is interfering with perl6 hacking quite a bit today ;(
PerlJam good morning #perl6 13:39
tadzik hello mls_, PerlJam
moritz good morning PerlJam
mls_: as long as it pays the bills...
mls_ right... ;)
jnthn mls_: know the feeling :) 13:41
13:42 daniel-s left, daniel-s joined 13:46 daniel-s_ joined, daniel-s left
jnthn nom: my %h = a => ['a','a'], b => ['b']; %h.pairs.max({ $^x.value.elems }) 13:47
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 620679 (src/gen/CORE.setting.pir:157473) (src/gen/CORE.setting:434)␤»
jnthn Bug :(
13:51 daniel-s__ joined, daniel-s_ left, smash joined
mls_ jnthn: did you already fix the lex problem in the CATCH handler (i.e. $_ and $! not being accessible)? 13:52
moritz nom: try { die 'foo'; CATCH { say $! } } 13:53
p6eval nom: OUTPUT«Any()␤»
moritz looks like "no"
jnthn mls_: no
13:54 leprevost joined 13:55 daniel-s__ left, daniel-s__ joined 13:57 mkramer joined
mls_ a simple workaround would be to make the code generate a capture_lex, but I'd prefer a real fix 13:58
13:59 mkramer left
smash hello everyone 14:00
moritz \o smash 14:02
14:04 drbean left 14:06 awoodland left 14:09 uvtc joined
uvtc azawawi: Great news about LexPerl6.cxx. azawawi++ . Besides Scite, I think Geany also uses Scintilla. 14:10
azawawi: Thanks for doing it. :) 14:11
phenny, tell azawawi irclog.perlgeek.de/perl6/2011-08-03#i_4215724 14:14
phenny uvtc: I'll pass that on when azawawi is around.
14:16 uvtc left 14:20 Holy_Cow joined
[Coke] lexperl6.cxx? 14:31
jnthn mls_: The real fix is to finish the $! and $/ refactor so we really only give them to routines and then lookup them us as dynamics. 14:32
That fixes $!
$_ - the block should take a $_ as an implicit parameter, I suspect. so that's how $_ is set. 14:33
[Coke] will fix, or has fixed?
14:33 wamba left
jnthn will fix 14:33
Thing is that we still need the capture_lex though.
I'm not sure why that is missing.
oh, I bet it's not missing 14:34
Just pointing to the real outer rather than the fake frame we insert for the handler.
14:36 molaf joined 14:38 birdwindupbird left 14:40 wtw left
PerlJam why can't people be more like #perl6 people? 14:51
[Coke] PerlJam: oh, yah, like THAT would help. 14:52
... you didn't mean sarcastic, did you. 14:53
moritz PerlJam: then people wouldn't see a reason to come here anymore (except the awesome language, of course)
PerlJam [Coke]: you remind me so much of this guy I work with ;) 14:54
[Coke] uhoh.
14:54 Holy_Cow left
PerlJam last night I had some family drama that could have been avoided if people were just a little more logical and forthright. 14:55
today I have work drama because people are having "communication" issues.
At least on #perl6 there's some humor to offset any drama :) 14:56
(I mean, even just writing those sentences I had to wonder about the existence of a "forth wright" which has a bit of a humor component) 14:57
shinobicl hi.... is Mu == undefined value? 15:00
PerlJam shinobicl: most undefined :)
moritz Mu is an undefined value, yes
shinobicl is ok if a function of mine returns Mu when the arguments are not valid?
PerlJam shinobicl: does it return some other typed info normally? 15:01
shinobicl an Int
moritz shinobicl: it's much saner to fail()
or to put the appropriate constraints into the signature
thing is, if a function returns Mu that would normally return an Int, the calling code either has to handle that case directly, or it will fail with a weird error 15:02
shinobicl mmm... fail... that will throw an exception... well, is saner that way i guess
moritz so rather throw an informative error in the first place
15:03 koban left, molaf left 15:07 SHODAN left 15:11 slavik left, slavik joined 15:12 colourspace joined, wamba joined 15:13 slavik left, slavik joined 15:18 xinming_ joined 15:21 xinming left
masak PerlJam: sometimes we're just as trigger-happily defensive, illogical, and trollable as on any other IRC channel. at least I am :) 15:25
PerlJam: but yes, it is indeed offset by something which makes the overall atmosphere here feel very nice.
masak hugs everyone :)
decommute & 15:26
PerlJam no masak, you're WRONG .... sorry, I can't channel tchrist long enough to build up a good novelesque rant :)
masak :P
you have until I get home to disprove me. then you goin' down :P 15:27
15:27 masak left
PerlJam But that's almost #perl6's motto (mission?) or something. #perl6: the friendly place. 15:28
15:35 Doctor_Pi joined
Doctor_Pi I'm having some problems building rakudo-star 2011-07. Should I report them here or the mailing lists? 15:37
PerlJam Doctor_Pi: here is a good start.
Doctor_Pi: what OS? What problems?
Doctor_Pi Mac OS X 10.5.8 on a PowerBook G4 15:38
15:40 daniel-s__ left
jnthn home :) 15:40
PerlJam Doctor_Pi: what are the problems exactly?
Doctor_Pi My command "perl Configure.pl --gen-parrot --gen-parrot-option='--icu-config=/usr/local/bin/icu-config' does a whole bunch of stuff and then terminates with a "Unable to locate parrot-config" error. 15:42
flussence s/gen-parrot-option/parrot-option/
15:44 daxim left
Doctor_Pi flussence: no, part is correct. I can see it finds icu-config with that part. The command was still terminating with just the --gen-parrot part. 15:45
PerlJam: there is an earlier error message which I think is relevant. Let me find it and post it.
15:49 JimmyZ joined
[Coke] returns from a meeting, and wonders if a forth wright is a like a mill wright. 15:56
Doctor_Pi PerlJam: Argument "RELEASE_3_6_0" isn't numeric in addition (+) at Configure.pl line 25, <$REQ> line 1. Appears right after I run the command. 15:59
PerlJam Hmm
[Coke] I'm assuming that's rakudo's configure, not parrots. 16:01
16:04 JimmyZ left
Doctor_Pi PerlJam: wait a sec. There's more sorry and it was staring at in the face. I think I should use pastbin for the next part. 16:05
PerlJam: pastebin.com/9WkYLULk 16:09
PerlJam ah, evil pcre 16:10
you'll have to pass --without-pcre to parrot 16:11
(to parrot's config that is)
or install libpcre
[Coke] probably have an older version in path somewhere that got picked up, and parrot's too stupid to deal with it. 16:12
PerlJam++
Doctor_Pi I can have as many --gen-parrot-option as I want in the master Configure.pl?
PerlJam Doctor_Pi: I think so, but I don't know for sure. 16:13
Doctor_Pi or I can just add it in mty existing one
PerlJam Doctor_Pi: alternatively, I think you can say --gen-parrot-option='--icu-config=... --without-pcre' 16:14
16:15 broquaint joined
moritz that won't work 16:16
I think you have to repeat --gen-parrot-option= for each option you want to pass on
16:17 nine left, nine joined, [particle] left 16:18 spetrea left, sftp left 16:19 spetrea joined, sftp joined 16:20 felher left
pmichaud good morning, #perl6 16:21
Doctor_Pi Let my try.
takadonet pmichaud: morning 16:24
16:24 yath left
Doctor_Pi ok adding "--without-pcre" in the --gen-parrot-option to a preexisting option didn't work. Will repeat --gen-parrot-option. 16:25
[Coke] karma pmichaud 16:26
aloha pmichaud has karma of 1167.
[Coke] pmichaud++o/
karma pmichaud
aloha pmichaud has karma of 1168.
Doctor_Pi moritz: you're right. One has repeat --gen-parrot-option= for each option you want to pass on. 16:28
pmichaud nom: my $x; $x ^^= 42; $x ^^ = 15; say $x; 16:29
p6eval nom: OUTPUT«Confused at line 1, near "$x ^^ = 15"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
pmichaud nom: my $x; $x ^^= 42; $x ^^= 15; say $x;
p6eval nom: OUTPUT«Nil␤»
pmichaud \o/
16:30 yath joined 16:32 noganex_ left
[Coke] yay 16:33
shinobicl continuing with throwing an exception for invalid data instead of just returning Mu... in a test, how should i test it? What is the variable for capturing the error after the "try" ? 16:34
PerlJam shinobicl: $!
moritz shinobicl: dies_ok { your_func("invalid arguments") }, 'description'; 16:35
PerlJam shouldn't that be fails_ok :) 16:36
moritz nom: use Test; sub f() { fail('a') }; dies_ok { f() } 16:37
p6eval nom: OUTPUT«not ok 1 - ␤»
moritz hm
pmichaud fail doesn't throw an exception, it returns a value.
moritz I guess it should just call the closure in sink context
which would then rethrow 16:38
shinobicl cool.. thanks moritz
moritz nom: use Test; sub f() { fail('a') }; isa_ok f, Failure
p6eval nom: OUTPUT«ok 1 - The object is-a 'Failure'␤»
PerlJam moritz++ you can never have too much karma 16:39
moritz pmichaud: any comments on the nom-exceptions branch?
pmichaud moritz: didn't know there was one... looking.
(or maybe I knew but forgot) 16:40
moritz pmichaud: it doesn't regress anything, but doesn't add too much either... my attempt to add a die() multi that throws an existing exception failed due to a dispatchy detail
oh, it's new
16:42 noganex joined
pmichaud + my Mu $payload := nqp::atkey($parrot_ex, 'payload'); 16:43
+ my $ex := pir::defined($payload) ?? $payload !! nqp::create(Exception);
that looks... wrong.
I don't think that $!ex should be anything other than a Parrot Exception.
[Coke] pmichaud: if I go to 123people.com and search for my name, I see your picture under "related pictures". (but not mine). The internets are creepy.
16:43 mj41 left
pmichaud [Coke]: it's just the electronic version of tabloids, I suspect. :-/ 16:44
16:46 Moukeddar joined
PerlJam [Coke]: does you picture show up when you search for pmichaud's name? :) 16:47
s/you/your/
pmichaud PerlJam: doesn't look like it.
moritz pmichaud: that's not the parrot exception, but the one we pass to the user 16:48
pmichaud: and the idea is to attach a Perl 6 exception as a payload of the parrot exception, and unwrap before we turn it to p6 land 16:49
PerlJam [Coke]: Apparently you're 39. All of the Premium Public Records show age: 39
16:49 wolfman2000 joined
moritz pmichaud: and only in the cases were the parrot exception doesn't have a payload do we create a new Perl 6 exception object 16:50
[Coke] PerlJam: maaaaaaaaayb
16:54 [particle] joined
pmichaud moritz: but what about Parrot exceptions that already have a payload? 16:55
(that aren't Perl 6 exceptions?)
16:56 avar left
moritz pmichaud: those never occur in the whole spectest suite 16:56
pmichaud: but I agree that we should guard against those
16:56 athomason joined
pmichaud I'm certain that our testing of Exceptions is underdone 16:56
this repeated argument of "it doesn't occur in the spectest suite" is getting a little stale, given that we know the spectest suite is really not very complete on edge cases. 16:57
or in new features.
moritz but the test coverage won't increase unless somebody implements these features 16:58
PerlJam pmichaud: I thought it was an invitation to add more tests
[Coke] pmichaud: no, but it's a reasonable starting point, esp. for people like me who don't necessarily know any big picture items.
moritz so, coming back to the original discussion, would you be fine with the branch if I additionally check if the payload is a 6model object? 16:59
or ~~ Any or so?
16:59 Moukeddar left
pmichaud I want to know more about what problem is trying ot be solved here, first. 16:59
moritz throwing and returning more than type of exceptions
16:59 literal left 17:00 literal joined
pmichaud example? 17:00
moritz in nom and master, if you subclass Exception, throw it and catch it, you an Exception, not an object of your subclass
17:00 Gothmog_ left, Gothmog_ joined
moritz nom: class A is Exception { }; try { die A.new }; say $!.WHAT 17:00
p6eval nom: OUTPUT«Exception()␤»
pmichaud nom: class A is Exception { }; try { A.new.throw }; say $!.WHAT 17:01
p6eval nom: OUTPUT«Exception()␤»
moritz in the long run I want to throw lots of different exception classes/objects 17:02
pmichaud okay, I understand that part.
moritz like X::Comp, X::IO etc.
[Coke] +1 there. 17:03
17:03 tokuhirom joined
pmichaud I think it's a mistake in .throw() to rebind $!ex without possibly saving the old value somewhere. 17:03
I'm wondering if a new Parrot Exception should be created when the Perl 6 Exception object is created, instead of when it's thrown. 17:04
17:04 avar joined, avar left, avar joined
pmichaud (i.e., in .BUILD or .new instead of .throw) 17:04
17:05 noganex left
pmichaud also, I should note that we do have Parrot Exceptions that carry payloads -- all of the control exceptions do so. 17:07
moritz pmichaud: I think the correct solution is to call a method on the Perl 6 exception object, so that it can decide what do with it (replace, stack or ignore)
pmichaud I'm having trouble parsing "it" there 17:08
s/parsing/binding/ 17:09
moritz it == the parrot exception
pmichaud for both "it"s?
17:09 pernatiy left
moritz no, the second 17:09
flussence
.oO( English needs more pronouns... or named variables )
17:11
pmichaud I think named variables are called "nouns". ;-)
17:11 noganex joined
moritz I think we should have some contranouns that go with the pronouns 17:12
PerlJam
.oO(anti-nouns?)
17:13
pmichaud anyway, checking that the payload is a 6model object doesn't seem that useful to me. All of the payloads that I think we encounter are likely to be Perl 6 objects. They just aren't necessarily Perl 6 Exceptions.
i.e., I'm against the assumption that the payload is a Perl 6 Exception.
(because it's false)
moritz does &EXCEPTION ever see control exceptions? 17:14
pmichaud I suspect it would, for CONTROL blocks.
moritz ok 17:15
17:15 Holy_Cow joined, Holy_Cow left
moritz so, checking ~~ Exception? 17:15
(or X::Base, once we get to it)
pmichaud somehow I wish we were checking the type of the Parrot Exception instead of the payload.
I can conceive of having an exception that carries another exception as its payload.
moritz so, introspect the 'type' attribute of the parrot exception? or subclass it, check its type? 17:16
pmichaud one of those two, maybe. I'm not really sure. 17:17
It would really help to have a lot more use cases.
moritz what kind of use cases?
pmichaud that's what I'm missing at the moment -- a set of use cases that help to illuminate the problem space.
moritz my current one is basically
pmichaud what will be creating the exceptions?
moritz die(), or X::Something.new() 17:18
pmichaud yeah, but that doesn't seem to really illuminate the problem space for me.
17:18 kaare_ joined
moritz try { eval $somestring; CATCH { given X::Comp { say 'Could not compile your input, sorry' } } } 17:18
pmichaud: that's why I'm asking what kind of use cases you want 17:19
pmichaud s/given/when/ ?
moritz erm, yes
sorry
pmichaud okay, that's a lot more helpful.
so, in that case, eval() has to be able to generate a X::Comp exception
moritz yes 17:20
or more accurately, the compiler
into which eval() calls
pmichaud well, I suspect eval() has to catch the exception from the compiler. The compiler might not know about Perl 6 Exceptions -- might not be Perl at all.
17:21 kjeldahl_ joined
pmichaud i.e., eval() has to catch the exception from the compiler, and convert it to an appropriate X::Comp exception. 17:21
17:21 impious joined, kjeldahl_ left 17:23 noganex left
pmichaud although since it's in a try block already, I guess any exception coming back from a (foreign?) compiler will have already gone through &EXCEPTION, at least as things currently stand. 17:24
moritz sorry, have to run, bbi3h
pmichaud okay, I'll keep thinking on the issue.
17:27 benabik joined
pmichaud Today's forecast high temperature: 109degF (42.8degC) :-( 17:31
PerlJam pmichaud: according to my iphone, it's only 102 degF though ;) 17:32
PerlJam suddenly feels slightly happier about 95 degF
17:32 tcunha left
flussence jeez, I get worried when my CPU gets that hot... 17:33
pmichaud my outdoor thermometer currently reads 105.8
overnight low temperature was 87.5 :-( 17:34
sjohnson yikes.com 17:36
that's hot!
17:36 masak joined
masak evening, #perl6. 17:36
jnthn pmichaud: Ouch! :O
pmichaud masak! o/
jnthn yay tis masak!
colomon \o
jnthn has a $dayjob free evening. Dinner first, then hopefully some decent nom hacking :)
masak PerlJam: I'm not saying #perl6 isn't a very friendly place. it is.
PerlJam masak: I know ... I was just messing with you. 17:37
masak PerlJam: I'm saying that it's a friendly place not because the people here are exceptionally friendly, although they probably are...
PerlJam: ...but because we work on it, consciously and as a group.
PerlJam yeah, it's our hug-culture
masak for each year that passes, I'm happy to realize that it seems to work even as we scale up. 17:38
hopefully the early seeding of friendliness will overpower the inevitable dilution of growing.
pmichaud that's been my experience in another forum as well. As long as the seeding takes hold, momentum goes a long way. 17:39
takadonet masak: My sudoku solver did not finish even over night :( 17:43
17:44 M_o_C joined, M_o_C left, M_o_C joined 17:46 molaf joined
mls_ finished $dayjob (this day: openssl hacking). back to nom... 17:46
17:50 nsh left, sbp left
masak takadonet: that just means you need to find another approach. could be worse. :) 17:55
takadonet ya well going to test it now to ensure that it works using a VERY simple sudoku puzzle
i was getting some weird uninitizal error but they got fix with updates to nom branch 17:56
17:58 nsh joined 17:59 sbp joined
takadonet well it works but getting some warnings message... 17:59
bbl 18:00
18:03 mkramer joined 18:04 mkramer left 18:16 felher joined
Doctor_Pi make spectest in the rakudo subdirectory is giving me "fatal: not a git repository" right after "cd t/spec && git fetch && git checkout rakudo-master && git merge origin/rakudo-master" . The tests are running anyways. 18:22
18:31 Mowah joined 18:40 am0c left
dalek ecza: 8e562ff | sorear++ | lib/CORE.setting:
Fix crash on Range iteration
18:44
sorear good * #perl6 18:46
18:47 espadrine left
[Coke] sorear: hio. 18:49
masak o/ sorear 18:50
18:52 Trashlord left 18:54 Trashlord joined 18:57 survery joined, survery left 18:58 aindilis left, aindilis joined 19:00 pernatiy joined 19:01 M_o_C left 19:06 jjore left, jjore joined 19:07 [Coke] left 19:09 [Coke] joined
sorear ok, that last commit took 50 failed test files down to 4 19:13
masak \o/
sorear nom: enum Foo < A B C >; say Foo::A.Str 19:14
p6eval nom: OUTPUT«A␤»
sorear nom: say True.gist 19:15
p6eval nom: OUTPUT«Bool::True␤»
sorear nom: say ~True
p6eval nom: OUTPUT«Bool::True␤»
masak nom: say True ~~ * 19:16
p6eval nom: OUTPUT«Bool::True␤»
dalek ast: fc26150 | sorear++ | S02-builtin_data_types/bool.t:
[S02-builtin_data_types/bool.t] Update for new Enum .gist/.Str rules
19:19
19:21 localhost joined
sorear nom: say item Nil 19:22
p6eval nom: OUTPUT«Could not find sub &item␤current instr.: '_block1002' pc 79 ((file unknown):12758678) (/tmp/7T4gPHTNrr:1)␤»
pmichaud ooc, does the spec list the stringification of Bool anywhere? 19:23
masak .oO( if it's an enum, yes... )
pmichaud wfm
sorear the spec defines Bool as an enum
masak rakudo: say item Nil 19:24
p6eval rakudo 922500: OUTPUT«␤»
pmichaud rakudo: say (item Nil).WHAT
masak rakudo: say (item Nil).WHAT
sorear I think there should probably be a (Note: Implementations are not required to actually use the 'enum' keyword, due to circularity issues. However Bool should *act* as if it were an enum.)
p6eval rakudo 922500: OUTPUT«Seq()␤»
sorear I'm wondering what the signature of item should be
currently in niecza it's sub item(Mu $x) { $x } 19:25
niecza: say item Nil
p6eval niecza v8-26-g6b9d707: OUTPUT«Unhandled exception: No value for parameter Mu $x in CORE item␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE item @ 0) ␤ at /tmp/NQHWqVlYjT line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1964 (CORE C920_ANON @ 2) ␤ at …
jnthn eww
sorear I'm considering a change to 'Mu $x?'
jnthn: what at?
jnthn Nil doing that. 19:26
pmichaud item parses as a list operator.
sorear jnthn: turning to Seq, or being ignored by the binder? 19:27
jnthn sorear: Requring a special case in the binder.
sorear S02:2244
jnthn Yes, I know what the spec says. It doesn't mean I have to agree it's a good idea. :) 19:28
19:28 noganex joined 19:34 [particle] left
flussence ohai, I let that script run for a week: github.com/flussence/specgraphs/ra...-tests.png 19:35
(the output's still a bit messy but the data's there)
jdhore flussence, I'm guessing the green line is nom? 19:37
flussence it's all nom, the lines are pass/fail/something
I don't think they're stacked quite right...
jdhore ah 19:38
flussence there's a script and csv file to do this in rakudo/docs & rakudo/tools already, but the data for it hasn't been updated in ages 19:40
19:40 [particle] joined
flussence and GD::Graph isn't all that pretty to look at IMO, so I wrote another one more or less from scratch using Chart::Gnuplot. still getting the hang of it though... 19:42
moritz back 19:43
jnthn o/ Mowah 19:44
er
o/ moritz
darn tab key not being smart enough 19:45
dalek kudo/nom: 21977e8 | jonathan++ | src/binder/types. (2 files):
Add a way to store Nil in preperation for handling it in more cases.
kudo/nom: 07c976f | jonathan++ | src/binder/ (3 files):
Transform a segfault into an exception (moritz++ for reporting).
kudo/nom: 1519560 | jonathan++ | NOMMAP.markdown:
Remove one completed goal from NOMMAP, as well as one that's kinda too vague to be useful.
jdhore "Probably many our things become my things." <--- If you had no context, this sentence would be hilariously nonsensical. 19:47
jnthn :) 19:48
S02-builtin_data_types/pair.t seems to think you should be able to do $pair.key := "KEY" 19:49
imo, binding doesn't work in this case
(e.g. that's not one of the LHS forms we should be able to bind to) 19:50
sorear +1
absolutely no binding to method returns. ever.
moritz feel free to kick out that test 19:51
jnthn \o/
pmichaud ...then how does @a[$x] := ... work?
dalek atures: 3f6c104 | larry++ | features.json:
add pseudo packages
19:52
pmichaud I'm fine with saying that Pair.key cannot be rebound -- S02:1505 seems to say as much.
jnthn pmichaud: Syntactic form. 19:53
TimToady Lisp programmers might want to change a cdr though... 19:54
jnthn pmichaud: It becomes something like @a.postcircumfix:<[ ]>($x, :BIND(...)) or some such.
TimToady is back from a morning-long power feyl 19:55
PerlJam "power feyl"?
moritz thought that wouldn't happen in civilized lands
PerlJam is that phonetic or should I be googling?
TimToady we're out in the Wild West 19:56
pmichaud they're threatening rolling blackouts here
moritz PerlJam: fonetic :-)
sorear fēl or fīl? 19:57
dalek ast: cc48639 | jonathan++ | S02-builtin_data_types/pair.t:
Toss tests that rely on being able to bind to a method return value.
pmichaud S02 explicitly says that a Pair's value may be rebound. 19:58
PerlJam TimToady, jnthn: do you guys ever talk with Stevan about the P5 mop stuff?
pmichaud Perhaps that's syntactic also via .{ }
TimToady occasionally
moritz PerlJam: I did, just the other day
19:59 ab5tract left
jnthn PerlJam: Haven't really done that...though I read pretty much all of Moose core while doing research for 6model. :) 19:59
Would be interesting to meet/chat with him more at some point :)
moritz nickname stevan on irc.perl.org 20:00
sorear question: my $x = 2; my $y = foo => $x; $y.value = 5; say $x
PerlJam moritz: does he have any art we can steal for p6? :-)
sorear nothingmuch can be blamed for niecza's existance. I came to p6 via #moose 20:01
jnthn sorear: At a guess, no
sorear: Too much spooky action at a distance.
masak nothingmuch++
jnthn nom: my $foo = 42; say (:$foo).perl
p6eval nom: OUTPUT«"foo" => 42␤»
moritz PerlJam: he takes a quite different approach (classes are like lexpads, and objects are like closure clones of such lexpads) 20:02
jnthn oh, that works, the test requires on eqv on pairs which I guess doesn't work
masak jnthn: parens not necessary.
nom: my $foo = 42; say :$foo.perl
p6eval nom: OUTPUT«"foo" => 42␤»
jnthn masak: I know, but my brain groups it wrong otherwise. :/
moritz PerlJam: it's interesting, and it fits well into p5 think in some way, but so far I don't see that we can or should steel from that 20:03
masak jnthn: mine too :)
jnthn I always do a double take when I see in C#:
new Foo().some_method();
masak jnthn: prefix ops are usually tighter than that.
jnthn: oh yes, me too, in Java.
jnthn I always paren it.
masak jnthn: not to mention A.new B() 20:04
jnthn ...lolwut? :)
masak I think that was how it was done.
dreadful.
jnthn Maybe in Java :P
masak in Java, yes.
jnthn I don't think C# has an atrocity like that. :P
masak :P
20:06 localhost left 20:07 lichtkind joined
jnthn Woo, with some patches I'm trying now we should have most of pair.t back :) 20:09
pmichaud I'm working on bool.t
jnthn All but one test, that master passed, hopefully.
pmichaud: ok :)
moritz jnthn: do you have eqv for Pair/Enum, or should I push it? 20:10
(need a few more minutes for compilation :/)
jnthn moritz: I have one compiling now, fairly confidnet it'll work.
moritz +multi sub infix:<eqv>(Enum:D $a, Enum:D $b) { 20:11
+ $a.key eqv $b.key && $a.value eqv $b.value;
+
+}
jnthn mine also does $a.WHAT === $b.WHAT
moritz jnthn++
our eqv overlord
jnthn :P 20:12
jnthn starts going through spectest.data and making a shortlist of test files to focus on
pmichaud What should True.value return, ooc?
jnthn S03-operators/minmax.t # LHF I suspect, if anyone wants to take it :) 20:13
moritz pmichaud: 1?
pmichaud should it be 1 or True?
sorear perl6: say True.value 20:14
moritz enum A <b c d>; say b.key
p6eval rakudo 922500: OUTPUT«Method 'value' not found for invocant of class 'Bool'␤ in main program body at line 22:/tmp/AfURRSQE8X␤»
..pugs: OUTPUT«*** No such method in class Bool: "&value"␤ at /tmp/cdHr2RRN5t line 1, column 5 - line 2, column 1␤»
..niecza v8-27-g8e562ff: OUTPUT«1␤»
moritz perl6: enum A <b c d>; say b.key
sorear perl6: enum B < F T >; say T.value 20:15
p6eval pugs: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/49xtY90TNi line 1, column 1-15␤»
..rakudo 922500, niecza v8-27-g8e562ff: OUTPUT«b␤»
rakudo 922500, niecza v8-27-g8e562ff: OUTPUT«1␤»
..pugs: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/JTEuvalht3 line 1, column 1-15␤»
pmichaud so have we accepted that Bool ~~ Int, then?
moritz nom: enum B < F T >; say T.value
p6eval nom: OUTPUT«1␤»
masak pmichaud: that seems to be the consequence of the current spec.
moritz pmichaud: it might ~~ uint1 or so
masak moritz: but uint1 ~~ Int
moritz masak: does it? I'm uncertain about the native types 20:16
masak moritz: IIUC all native types ~~ their corresponding capital-letter type.
20:17 localhost joined
pmichaud are .pick and .roll for enums defined only on the enum itself, or for the enumerated values also? 20:17
i.e., True.pick versus Bool.pick
sorear doesn't True.^methods eqv Bool.^methods?
pmichaud sure, but one can distinguish on :D versus :U 20:18
masak feels to me True.pick should always return True.
pmichaud more tellingly
masak 'night, #perl6
20:18 masak left
pmichaud enum Coin <Heads Tails>; say Coin.pick; say Heads.pick 20:18
jnthn masak is right about the native/capital letter type thing.
pmichaud nom: enum Coin <Heads Tails>; say Coin.defined;
p6eval nom: OUTPUT«Bool::False␤» 20:19
pmichaud nom: enum Coin <Heads Tails>; say Coin.WHAT;
p6eval nom: OUTPUT«Coin()␤»
jnthn Coin is a type object.
pmichaud nom: enum Coin <Heads Tails>; say Coin.^parents;
p6eval nom: OUTPUT«Int() Real() Numeric() Cool() Any() Mu()␤»
jnthn Though note it's HOW is not ClassHOW, but rather EnumHOW.
*its#
[Coke] /* I do */ new Foo().stuff() /* all the time in ColdFusion */
20:19 mattp_ left
[Coke] (me was further in backscroll than me thought) 20:20
pmichaud nom: enum Coin <Heads Tails>; say Coin.pick;
p6eval nom: OUTPUT«Coin::Heads␤»
pmichaud nom: enum Coin <Heads Tails>; say Coin.pick(2);
p6eval nom: OUTPUT«Heads Tails␤»
pmichaud nom: enum Coin <Heads Tails>; say Coin.roll(3);
p6eval nom: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤Use of uninitialized value in string context␤ ␤»
jnthn o.O
pmichaud nom: enum Coin <Heads Tails>; say Coin.list;
p6eval nom: OUTPUT«Use of uninitialized value in string context␤␤»
pmichaud where is Coin.pick coming from? 20:21
jnthn pmichaud: my role Enumeration
pmichaud: src/core/Enumeration.pm
pmichaud okay.
nom: enum Coin <Heads Tails>; say Heads.pick(2); 20:22
p6eval nom: OUTPUT«Heads Tails␤»
pmichaud that feels wrong to me.
jnthn pmichaud: How so?
oh, I guess I can kinda see why.
Hm
pmichaud it's like saying that 2.pick(2) should be able to return two Ints
(neither of which are 2)
20:22 wallberg joined
jnthn yeah 20:22
pmichaud nom: enum RGB <Red Green Blue>; say Red.pick
p6eval nom: OUTPUT«RGB::Blue␤»
jnthn :)
pmichaud I vote to put a :U on that 20:23
jnthn *nod*
We can.
pmichaud I'll do that...
TimToady or :A, by new spec
jnthn Feel free to try it.
TimToady :U includes failures
jnthn TimToady: That new spec...needs some thought.
20:23 localhost left
jnthn TimToady: It's not in the slightest bit the kind of change I wanted there. 20:23
TimToady but you always carp :) 20:24
and sometimes you're right :)
pmichaud I learned long ago to be wary of asking for changes (in S05). :-)
moritz new spec? from when?
PerlJam moritz: just the :A :U :D trichotomy 20:25
20:25 localhost joined
jnthn TimToady: I wanted :U and :D (or whatever we call them) to be low-level, very cheap REPR-level operations. 20:25
moritz is :D the default now?
jnthn Not sugar for (expensive) *.defined
It's a circularity issue as well as a cost one. 20:26
20:30 localhost left 20:31 timbunce left, slavik left
TimToady it's intended to be low-level, the *.defined is just a high-level view of whatever the bit is 20:35
moritz .defined is overridable
sorear *.Mu::defined? :)
dalek ast: faf8b59 | jonathan++ | S02-builtin_data_types/pair.t:
Fudge 1 test for Rakudo (review/fix welcome).
20:37
pmichaud jnthn: before I do any Enumeration thingies I probably need to wait for your pair changes.
20:38 timbunce joined
jnthn pmichaud: Just pushed. 20:38
pmichaud In S12, why is
Day.enums # map of key/value pairs
not called Day.pairs ?
20:38 bbkr1 joined 20:39 bbkr1 left
moritz because it returns enums, not pairs? 20:39
jnthn pmichaud: iiuc, .paris would return a list of pairs; .enums returns an EnumMap.
dalek kudo/nom: 8443d11 | jonathan++ | src/core/ (2 files):
Implement eqv for Enum (and thus Pair).
kudo/nom: 40f4264 | jonathan++ | src/core/Pair.pm:
Assignable .key and .value for Pair.
kudo/nom: e9ee086 | jonathan++ | src/core/Enum.pm:
Enum.invert (inherited by Pair).
kudo/nom: c048df8 | jonathan++ | t/spectest.data:
Add a passing test file.
jnthn That's +90 or so tests. :)
pmichaud (returns EnumMap) makes sense then. 20:40
Should we define .pairs then to be .enums.pairs, ooc?
jnthn It'd be an easy way to implement it, if nothing else. :)
pmichaud same for .keys and .values ?
jnthn wfm
.oO( didn't I already do it that way? :) )
pmichaud .enums appears to be NYI 20:41
oh, wait, it's there.
jnthn pmichaud: it's there
pmichaud .keys and .values and .pairs are NYI
jnthn but .keys and...right :)
pmichaud seems like ^enum_values is misnamed. Ought to be ^enum_map 20:42
since one gets back more than just the values.
jnthn *nod*
Probably a leftover from when I was exploring how to do EnumHOW. :) 20:43
dalek ast: 3915649 | pmichaud++ | S02-builtin_data_types/bool.t:
Unfudge some passing bool.t tests.
kudo/nom: 0cd9e76 | pmichaud++ | src/core/Bool.pm:
Add some enum-like methods to Bool.
20:44
pmichaud it feels like .enums, .hash, and .pairs have some ambiguous overlap here. 20:45
I had the impression that Pair.key is supposed to be immutable. 20:46
S02:1504 20:47
"As with C<Hash> types, C<Pair> and C<PairSeq> are mutable in their
values but not in their keys."
jnthn Oh. 20:48
Then I was misled by both the tests and master :)
TimToady it's not clear whether that's just a foolish consistency
pmichaud I think the tests predate that spec change.
(by a lot.)
should Enum.invert return a Pair, or an Enum ? 20:49
20:49 slavik joined
TimToady I would guess Enum 20:51
pmichaud Pair.invert also returns an Enum, or a Pair?
TimToady I would guess Pair for that
but I guess we really need to see use cases
jnthn nom: say Enum.new(:key<a>, :value(1)); say Pair.new(:key<a>, :value(1)); 20:52
p6eval nom: OUTPUT«Rebuild in progress␤»
TimToady I'm just a bit slow to automatically convert between mutables and immutables
pmichaud I agree, thus my questions. :)
jnthn pmichaud: If the above .new calls both work we can self.new ... :)
pmichaud it looks like pairs/enums/hashes have some really fuzzy lines about that at the moment.
jnthn: self.new is what I was going to switch to, yes. :) 20:53
TimToady well, hashes are funny because we treat the keys as immutable but the values as mutable
20:53 Mowah left
pmichaud yes, but that can be true with Pair also. 20:53
(is true currently)
TimToady but it's strange to a Lisp mind that car and cdr differ 20:54
20:54 localhost joined, localhost left
TimToady so I'm thinking currently that Pair.key is mutable, while a Hash key isn't 20:54
though some would argue that a mutable Hash key just automatically deletes and readds
pmichaud well, we don't normally see Hash keys alone 20:55
TimToady not sure I wanna go that far, at least not yet
PerlJam What are the differences between a Hash and a list of Pairs? 20:56
pmichaud I think I'm fine with saying that Pair keys are mutable; just need to fix the spec (and tests) then.
jnthn pmichaud: The tests already check the key is mutable.
Unless I mis-read...
pmichaud jnthn: for Pair itself, yes -- I'm thinking of return values from .pairs, .keys, etc. 20:57
TimToady it seems to me that generally you want either a mutable data structure or an immutable enum value
jnthn pmichaud: ah, ok :)
TimToady and the immutables are likely to be faster, at least on decontainerization
pmichaud jnthn: I'm trying to make sure we're not dis-unified on .enums, .pairs, .keys, .values, .kv, .key, .value, .list, .hash, .elems, etc.
TimToady the optimizer might be able to see .pairs.enums and usefully change it to .enums 20:58
pmichaud the name "enums" feels wrong to me that it results in an EnumMap. Feels like it ought to be a List. 20:59
TimToady or .pairs.decontainerize -> .enums
or something
pmichaud Since EnumMap flattens to a list in list context I'm less worried about it... but it still feels like the wrong term.
jnthn pmichaud: Plurals often feel listy, yes. 21:00
Maybe .hash
pmichaud .hash implies mutability, though.
jnthn (Since that doesn't really mean "a hash", just "something hashy")
TimToady well, but .enums can have dup keys
pmichaud ah, I missed the dup keys aspect. 21:01
TimToady while an EnumMap is basically an immutable Hash
jnthn pmichaud: I'd seen .hash as more of a contextualizer than something that promises mutability, but that's just me. :)
pmichaud jnthn: you're correct, it's a contextualizer. My bad. 21:02
TimToady otoh spec currently says .enums returns an EnumMap, which may be wrong
pmichaud I'm fine with .enums returning an EnumMap for an enum. That kind of makes sense.
jnthn TimToady: Having *something* on an enumeration that returns an EnumMap is very useful.
TimToady but it means if you invert an enums you can't push it to keep dups 21:03
jnthn ...dups?
pmichaud well, .invert should probably return a Hash or something like that
TimToady no
we used to spec it like that, iirc
there's no point in manufacturing a Hash when we're just going to use its (inverted) pairs 21:04
pmichaud let me look at .invert again -- I was absent when a lot of that work was taking places. 21:05
*place.
21:05 jjore left
TimToady it's currently specced to return a List, so you can say %foo.push: %bar.invert 21:05
pmichaud .invert currently produces a list of (inverted) pairs
21:05 jjore joined
pmichaud I agree with that. 21:05
21:06 Sarten-X left, takadonet joined
TimToady but I suspect it's really a list of enums 21:06
pmichaud that works for me
21:07 Kivutarrr joined, slavik left
pmichaud so I don't understand the "you can't push it to keep dups" part 21:08
TimToady rakudo: my %foo; %foo.push: 'a' => 1, 'a' => 2, 'a' => 3; say %foo.perl 21:11
p6eval rakudo 922500: OUTPUT«{"a" => [1, 2, 3]}␤»
TimToady rakudo: my %foo; %foo.push: {'a' => 1, 'a' => 2, 'a' => 3}; say %foo.perl 21:12
p6eval rakudo 922500: OUTPUT«Trailing item in Hash.push in <anon> at line 5481:src/gen/core.pm␤{}␤»
pmichaud ah
TimToady rakudo: my %foo; %foo.push: {'a' => 1, 'a' => 2, 'a' => 3}.pairs; say %foo.perl
p6eval rakudo 922500: OUTPUT«{"a" => 3}␤»
TimToady that
21:13 Sarten-X joined
pmichaud so what would be a case with .enums? 21:14
I mean, I see the problem with {'a' => ... }
but in that case, it's a Hash, which can't have duplicate keys.
TimToady I dunno, Bag.enums maybe 21:15
maybe not
pmichaud in that case, I'd say that .enums returns something that isn't an EnumMap
but still acts like a list of enums/pairs in list context
TimToady seems okayish
pmichaud which I guess recalls my earlier question of "what's the (semantic) difference between .enums and .pairs?" Is it simply that .pairs is guaranteed to return a Positional, while .enums returns something Associative? 21:16
21:16 thundergnat joined 21:17 lichtkind left
pmichaud ...that doesn't feel right, now that I look at it. 21:19
TimToady I think they're both Positional
21:19 slavik joined
pmichaud I hope an EnumMap isn't Positional. 21:19
We discussed that once before (with Hash ~~ Positional) and decided against it.
TimToady no, it just knows what to do in list context, like a Hash
21:20 timbunce left
pmichaud okay, I can live with that. 21:20
thundergnat rakudo: my ($x,$y); say $x = $x +& 1; say $y +&= 1; # bug? 21:21
p6eval rakudo 922500: OUTPUT«0␤1␤»
thundergnat nom: my ($x,$y); say $x = $x +& 1; say $y +&= 1; 21:22
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'infix:<+&>'. Available candidates are:␤:()␤:(Any $x)␤:(Int $a, Int $b)␤␤current instr.: 'infix:<+&>' pc 599325 (src/gen/CORE.setting.pir:144929) (src/gen/CORE.setting:1468)␤»
thundergnat rakudo: my ($x,$y); say $x = $x ?& 1; say $y ?&= 1; #same problem
p6eval rakudo 922500: OUTPUT«Bool::False␤Bool::True␤»
pmichaud nom: my $x; say $x +& 1; 21:23
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'infix:<+&>'. Available candidates are:␤:()␤:(Any $x)␤:(Int $a, Int $b)␤␤current instr.: 'infix:<+&>' pc 599325 (src/gen/CORE.setting.pir:144929) (src/gen/CORE.setting:1468)␤»
pmichaud that's the "bug"
jnthn Looks like a missing multi candidate or so. 21:24
pmichaud nom only has +& defined for Int
not for Any. 21:25
thundergnat Is that worth file a rakudobug for? 21:26
*ing
21:26 impious left
dalek atures: d8e968e | larry++ | features.json:
more specs
21:27
21:28 envi left
pmichaud thundergnat: yes, file a rakudobug please. 21:30
thundergnat pmichaud: Ok
TimToady the rakudo behavior is correct
it's the nom behavior that's wrong 21:31
pmichaud surely $y +&= 1; is zero though, yes?
or am I mentally misparsing?
TimToady S03:4021
pmichaud oh!
TimToady no, the identity for anding is all true
pmichaud right, $y defaults to all-ones.
thundergnat So not a bug then 21:32
pmichaud then nom is simply suffering from not having &infix:<+&>(Any, Any)
pmichaud fixes.
21:34 donri left
jnthn pmichaud: Fixing that and related is probably going to get us back S03-operators/bit.t 21:35
huf _whoa_
this feature is awesome 21:36
jnthn huf: Which one? :)
huf S03:4021
pmichaud :)
TimToady well, yes :)
pmichaud Yes, it's awesome.
jnthn aha :)
pmichaud Perl 6 strives for awesomeness. The Perl 6 implementations strive to catch up with that. :)
nom: my %h; %h<xyz> *= 4; say %h.perl; 21:37
p6eval nom: OUTPUT«("xyz" => 4).hash␤»
thundergnat Awesome, though a little unintuitive in some of the weird corner cases.
benabik Does that actually call infix:<*>(), or does it call infix:<*>(4)?
pmichaud it calls infix:<*>() 21:38
basically
TimToady perl6: say [*]
pmichaud infix:<*>( infix:<*>(), 4)
p6eval pugs: OUTPUT«1␤»
..niecza v8-27-g8e562ff: OUTPUT«0␤»
..rakudo 922500: OUTPUT«␤»
TimToady nom: say [*]
p6eval nom: OUTPUT«␤»
TimToady hmm
pmichaud nom: say [*] ()
p6eval nom: OUTPUT«1␤»
TimToady nom: say [*]; 21:39
p6eval nom: OUTPUT«␤»
TimToady buglet, I think
21:39 donri joined
pmichaud I believe so. Common one, too. :) 21:39
at least pugs gets it right :)
TimToady niecza: say [*] 4
p6eval niecza v8-27-g8e562ff: OUTPUT«4␤»
TimToady well, at least niecza gets that one right 21:40
pmichaud nom: say [*] 4; # checking, although I'm sure it's correct
p6eval nom: OUTPUT«4␤»
TimToady niecza: say [*] ()
p6eval niecza v8-27-g8e562ff: OUTPUT«0␤»
sorear nom: say +Nil 21:41
p6eval nom: OUTPUT«0␤»
sorear nom: say ~Nil 21:43
p6eval nom: OUTPUT«␤»
sorear Is the lack of warnings on these correct/
TimToady I suspect not
well, + may be okay
pmichaud I think there should probably be warnings, since Nil is undefined.
TimToady hard to say
warnings are probably saner 21:44
one should really use () to mean an empty list, not Nil
21:44 im2ee joined
pmichaud looks like Iterable needs a :D on method Numeric 21:44
TimToady we should try defaulting invocants to :D and see what hell breaks loose 21:45
PerlJam bets very little hell breaks loose
TimToady except for all the new methods that break 21:46
pmichaud well, hell breaks loose for "static method"
*methods
i.e., those that expect to be on the type object
(such as "new" :)
TimToady I suppose we could issue an exception for new, or just say that static methods must be marked with :A (or whatever it ends up)
21:46 donri left
jnthn rakudo: Mu.all 21:46
pmichaud I'm fine with marking static methods
p6eval rakudo 922500: OUTPUT«Method 'all' not found for invocant of class ''␤ in main program body at line 22:/tmp/rICn1DcArW␤» 21:47
jnthn rakudo: Any.all
p6eval rakudo 922500: ( no output )
pmichaud grrrr, tadzik's Pod stuff caused me to delete a directory that caused me to clobber my +& fixes when I tried to fix it.
21:47 Patterner left
jnthn :( 21:47
pmichaud tadzik-- (Pod source is in Pod/ and not src/Pod)
or, even more likely, src/core/Pod/ 21:48
PerlJam pmichaud: sounds like you just aren't make enough use of git's features :) 21:49
(or perhaps not commtting often enough)
21:49 Psyche^ joined, Psyche^ is now known as Patterner
pmichaud PerlJam: no, I just mistyped a command. 21:49
And I didn't realize that the Pod/ subdir had source files in it 21:50
I thought they were just generated.
jnthn pmichaud: It's a module, so src/Pod is probably righter. Fully agree it shoudln't be in root of the repo though.
pmichaud tadzik++ # still deserves karma for Pod implementation, though.
pmichaud-- # mistyping a command 21:51
jnthn pmichaud++ # fixing stuff 21:52
.oO( Conservation of Karma Principle )
sorear negative karma never sticks, especially if applied to a popular person.
TimToady perl6: say [\*] (); 21:54
dalek ecza: f727731 | sorear++ | lib/ (2 files):
Mark more setting functions as Nil-transparent, and implement Parcel/List.ACCEPTS
p6eval pugs: OUTPUT«1␤»
..rakudo 922500: ( no output )
..niecza v8-27-g8e562ff: OUTPUT«␤»
sorear it should pass all spectest again
pmichaud nom: say [\*] (); 21:55
p6eval nom: OUTPUT«Attempt to return from exhausted Routine␤current instr.: 'die' pc 586638 (src/gen/CORE.setting.pir:137574) (src/gen/CORE.setting:291)␤»
pmichaud *huh*
21:55 REPLeffect left
TimToady should probably return () 21:55
pmichaud probably a bug in the triangle metaop code.
pmichaud will fix.
> my $x; say $x +& 1; 21:56
Use of uninitialized value in numeric context
0
\o/
21:56 im2ee left
jnthn :) 21:57
22:01 donri joined
sorear wonders what the 'n+-' on PROCESS, GLOBAL, CALLER, DYNAMIC refers to. 22:01
22:02 ixxvil joined
ixxvil did you guys finalise on the logo for roku?> 22:02
sorry
rakudo
pmichaud very few things are final in Perl 6. :-)
dalek atures: f9b23b7 | larry++ | features.json:
ding niecza for missing degenerate cases

  [op] and op= don't do the right thing with nothing
pmichaud (short answer: "no")
> say +Nil 22:03
Use of uninitialized value in numeric context
0
\o/
jnthn \o/ 22:04
22:04 colourspace left 22:05 colourspace joined
pmichaud Latest push leaves a couple of failing spectests... but I have to leave for an hour so will fix them when I get back (if nobody beats me to them). 22:10
Fixed +Nil, triangle op on empty lists, and +&.
bbiah
22:10 Kivutarrr left
dalek kudo/nom: 9a99a12 | pmichaud++ | src/core/Numeric.pm:
Add infix:<+&>(Any, Any) (and related bitwise ops).
22:11
kudo/nom: 120d3be | pmichaud++ | src/core/ (6 files):
Make sure .Numeric is properly multied.
kudo/nom: f72544a | pmichaud++ | src/core/metaops.pm:
Fix triangle metaops on empty lists (TimToady++).
ixxvil pmichaud: yeah but did you guys finalize on the logo? 22:14
i remember a few designing it for you guys but became of that
what
what became*
22:14 saaki left
dalek kudo/nom: f5ab8d0 | jonathan++ | src/Perl6/Metamodel/ (2 files):
Allow overriding of postcircumfix:<( )>.
22:15
kudo/nom: bc30e74 | jonathan++ | src/core/Capture.pm:
Cheating |$c in argument lists (only puts in positional bit...will fix that up shortly).
kudo/nom: d9a6cfa | jonathan++ | t/spectest.data:
We now pass S13-overloading/typecasting-long.t.
kudo/nom: 275e3db | jonathan++ | src/core/Junction.pm:
Implement junction invocation.
kudo/nom: d097bdc | jonathan++ | src/core/Any.pm:
Any.[all|any|n?one]
22:16 leprevost left 22:31 drbean joined 22:32 ixxvil left 22:33 MayDaniel left
dalek atures: 0f4caee | larry++ | features.json:
spec refinements
22:37
22:38 Moukeddar joined 22:42 kaare_ left
pmichaud jnthn: how does the 'invoke' vtable mapping work, exactly? 22:45
22:46 supernovus joined
pmichaud I mean, what happens for types that don't define a postcircumfix:<( )> ? 22:47
jnthn nom: class A { }; A.new.()
p6eval nom: OUTPUT«invoke() not implemented in class 'A'␤current instr.: '_block1002' pc 109 ((file unknown):30838431) (/tmp/qBw7q6zeTK:1)␤»
jnthn er, too soon
Anyway, it just says postcircumfix:<( )> is not implemented.
pmichaud is postcircumfix:<( )> implemented in Code, though? 22:48
jnthn No (more)
There's a fast path for Code and its subclasses
pmichaud ohhhhhh
+Code.HOW.add_parrot_vtable_mapping(Code, 'invoke', nqp::null());
jnthn Yes :)
pmichaud the null removes the mapping?
jnthn That's a bit...cheaty. ;)
Suppresses emission of it at least, yes. 22:49
supernovus So, I was just taking a quick peek at "nom" and am wondering how different it is to actually write core libs for it (or at least port ones from the "old" directory) as the Temporal.pm would be a nice thing to bring back, but I'm not sure where to start (I helped work on the version in the current "master" branch.)
jnthn I'm not 100% happy with that factoring, but I didn't think of a nicer one yet.
pmichaud so, Code and subclasses default back to the fast path, and everything else under Mu gets the slow postcircumfix:<( )>. Cheaty, yes, but fastpaths often are.
jnthn Right. :)
pmichaud supernovus: it depends on the lib.
jnthn And it's actually not so cheaty - it's a general feature now. We use it in Capture in NQP for example. 22:50
pmichaud supernovus: mainly, class declarations need to become "my class"
jnthn But not for invoke.
pmichaud jnthn++ # wfm, thanks
jnthn Another 25 passing tests coming up :) 22:51
supernovus pmichaud: okay, I'll see about setting up a parallel path for "nom" and see if I can port Temporal. Hopefully someone else takes on IO::Socket::INET, those are the two "core" libs that I use quite often that are still missing from nom. Scratching an itch :-) 22:53
pmichaud supernovus++ # let us know where we can help :)
dalek ast: c0a9803 | jonathan++ | S12-introspection/attributes.t:
Update attributes introspection test to latest spec; fudge :tree tests for Rakudo.
22:54
22:55 [particle] left, whiteknight joined 22:56 [particle] joined
dalek kudo/nom: 057f236 | jonathan++ | src/Perl6/Metamodel/AttributeContainer.pm:
Fix bug where .^attributes could make multiple entries for an attribute in the result list.
22:56
kudo/nom: 402f330 | jonathan++ | src/core/Attribute.pm:
Some missing methods on Attribute.
kudo/nom: 80467f3 | jonathan++ | src/ (3 files):
Some missing decontainerizations in Attribute methods and a naming fix to bring us in line with spec and tests.
kudo/nom: 538d581 | jonathan++ | t/spectest.data:
Run S12-introspection/attributes.t.
Moukeddar guys, can someone explain to me the difference between the different types of licenses ?
sorear ok
Moukeddar GPL,GPLv2,NewBSD, etc...
sorear GPL family licenses require derived works to use the same license 22:57
if you create a modified version of Linux and distribute it, you have to provide the source, and anyone who gets your modified version is allowed to make derivatives themselves 22:58
BSD family licenses have no such restriction 22:59
you can make a modified version of BSD Unix and destribute it commercially with no restrictions
if you want to know what a specific license says, there is no substitute for reading it (or paying someone to read it for you) 23:00
also, I know absolutely nothing about the specifics of how copyright law is implemented and enforced in Morocco 23:01
was that useful? 23:02
Moukeddar
Moukeddar i'm reading :)
gfldex please note that licenses are not written in plain english 23:03
Moukeddar gfldex, good point Sir :)
copyright law isn't really enforced here 23:04
but it's good to know
sorear your deferential style of address amuses me.
Moukeddar what style?
23:05 wallberg left
sorear you use 'Sir' much more than is typical 23:07
23:11 smash left
dalek kudo/nom: 9fdde9e | pmichaud++ | src/core/Enumeration.pm:
Roles apparently can't quite handle 'multi method' yet, so set
23:13
Moukeddar i just like it :) 23:14
jnthn pmichaud: They can't? 23:17
pmichaud: Details? 23:18
23:18 whiteknight left, whiteknight joined
pmichaud jnthn: undo the patch I just made, then run t/spec/S12-class/anonymous.t :) 23:18
dalek ecza: 695339a | sorear++ | / (5 files):
Add a place in the return sequence to hook in LEAVE.
kudo/nom: 3b56d34 | jonathan++ | src/core/IO.pm:
Implement get and close subs.
23:19
kudo/nom: 0db8c6f | jonathan++ | t/spectest.data:
3 more passing IO test files giving about 50 more passing tests.
jnthn pmichaud: thanks, I look tomorrow at that one 23:20
23:27 shinobicl left 23:28 supernovus left, wamba left
pmichaud afk, dinner. 23:29
dalek kudo/nom: a207490 | pmichaud++ | / (2 files):
Add prefix:<+^>(Any), winning us the S03-operators/bit.t tests.
23:30
23:42 molaf_ joined
dalek ast: 2603206 | jonathan++ | S12-attributes/undeclared.t:
Update S12-attributes/undeclared.t to handle compilers that can detect undeclared attributes at compile time; remove two tests that are invalid.
23:43
23:45 molaf left
colourspace what is hlagh 23:45
dalek kudo/nom: de65682 | jonathan++ | src/core/IO.pm:
Implement slurp.
23:47
kudo/nom: 6d942a8 | jonathan++ | t/spectest.data:
Two more passing test files.
sorear colourspace: context? 23:49
23:50 kcwu left, kcwu joined
sorear What happens if a LEAVE block throws an exception during exceptional unwinding? 23:51
Are LEAVE blocks queued on entry or at inline time? (return; LEAVE {... })
jnthn sleeep & 23:52
sorear likewise in a DBC context, are POST blocks run during exceptional unwinding, and what happens if they fail? 23:56