»ö« 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:02
daemon left,
daemon joined
00:04
domidumont1 joined
00:05
domidumont left
00:10
ab5tract left
00:15
cryptographrix joined
00:18
Chillance left
00:23
thou left
00:35
wamba left
00:37
wamba joined
00:41
jedai joined
00:51
f00li5h[HIREME] is now known as f00li5h
00:54
cryptographrix left
00:57
wamba left,
wamba joined,
soh_cah_toa joined
00:58
wamba left
01:00
tokuhir__ left,
tokuhir__ joined,
wamba joined
01:01
cryptographrix joined,
noganex_ joined
01:05
tokuhir__ left,
noganex left,
AndroUser2 joined,
cryptographrix left
01:08
wamba left
01:10
AndroUser2 left
01:11
cryptographrix joined
01:16
aloha left,
LaVolta joined
|
|||
LaVolta | perl6: /test/.WHAT.say; say /test/.isa(Cool); | 01:17 | |
p6eval | rakudo 922500: OUTPUT«Regex()1» | ||
..pugs: OUTPUT«Regex*** No such subroutine: "&Cool" at /tmp/CPn9GCA02k line 1, column 33-37» | |||
..niecza v8-3-g838bc38: OUTPUT«Unhandled exception: Unable to resolve method say in class Regex at /tmp/y8hlM_THe3 line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 1933 (CORE C906_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 1934 (CORE module-CORE … | |||
LaVolta | When did things change? Regex is now Cool … :) | 01:18 | |
01:24
crk joined
01:26
aloha joined
01:28
lichtkind left
|
|||
crk | rakudo: say 3; | 01:28 | |
p6eval | rakudo 922500: OUTPUT«3» | ||
crk | perl6: sub infix:<foo> ($a, $b) is tighter(&infix:<+>) is assoc('left') {} | 01:30 | |
p6eval | rakudo 922500: OUTPUT«===SORRY!===Unexpected named parameter 'tighter' passed» | ||
..pugs: ( no output ) | |||
..niecza v8-3-g838bc38: OUTPUT«Potential difficulties: $a is declared but not used at /tmp/4UkKb0boH5 line 1:------> sub infix:<foo> (⏏$a, $b) is tighter(&infix:<+>) is assoc( $b is declared but not used at /tmp/4UkKb0boH5 line 1:------> sub infix:<foo> ($a, … | |||
01:40
cryptographrix left
|
|||
TimToady | LaVolta: Regex is not supposed to be Cool | 01:47 | |
LaVolta | TimToady: so that was an accident? | ||
TimToady | well, depends on how you define accident, but kinda | 01:48 | |
LaVolta | :-P | ||
01:48
cryptographrix joined
|
|||
TimToady | Cool is intended to fill in for the type conversions of P5 | 01:49 | |
so it's really about numerics and strings | |||
01:49
whiteknight left
|
|||
TimToady | but there was some misunderstanding that most of the builtin types should be Cool at one point | 01:49 | |
but there's no reason a Regex should automatically convert to a number or a string | 01:51 | ||
even if regexes think they're strings in P5 | |||
LaVolta | So, in Perl5 we just use Strs, Nums interchangably, after introduced type system, it is needed to have a super class for all the base types? am I right? | 01:52 | |
TimToady | Cool is the base class for numbers and strings in P6 now, yes | ||
01:53
donri left
|
|||
TimToady | and we have default methods there that can interconvert in the way a P5 programmer might expect | 01:53 | |
_sri | is perl6 really "solid enough" now? | ||
LaVolta | ah…sorry, "after introducing the type system", grammar error. | ||
TimToady | perl6: say (1 ~ '2') / 3 | 01:54 | |
p6eval | pugs, rakudo 922500, niecza v8-3-g838bc38: OUTPUT«4» | ||
TimToady | that goes through Cool in both directions | ||
_sri | twitter.com/#!/perlbuzz/status/963...0428631040 # this could backfire | ||
LaVolta | Cool! :) | ||
now i think I get it: regex can't do what other subclass of Cool can do, so it's not Cool then. | 01:56 | ||
TimToady | _sri: you worry too much | 01:58 | |
_sri | TimToady: you worry too little ;) | 01:59 | |
TimToady | I don't think so :) | ||
nom & | 02:01 | ||
02:06
AndroUser2 joined,
cryptographrix left
02:11
soh_cah_toa left
|
|||
sorear | _sri: I think that that statement is valid, if you're careful not to interpret it too broadly | 02:27 | |
Perl 6 is solid enough that if you start thinking about how to port modules, you won't be wasting time | |||
emphasis on "start" and "thinking" | |||
_sri | sounds like you're promising me a pony :) | 02:28 | |
sorear | TimToady: do you know where I can procure copies of soto 2008+ ? | 02:29 | |
_sri | but that reminds me… are non-blocking sockets finally in? | 02:31 | |
02:35
jaldhar joined
02:42
woosley joined
|
|||
dalek | ast: c7c1e2f | Coke++ | S0 (8 files): nom fudging |
02:50 | |
kudo/nom: 5bfd327 | Coke++ | t/spectest.data: track more test error status, reclaim some files. |
02:52 | ||
sorear wants a ponie | |||
03:00
soh_cah_toa joined
03:04
woosley left
03:05
woosley joined
|
|||
[Coke] | Files=294, Tests=8383 | 03:10 | |
(nom) | 03:11 | ||
03:11
woosley left
03:15
woosley joined
03:16
woosley left
03:19
kaare_ joined
03:23
Su-Shee_ joined
03:26
Su-Shee left
04:11
birdwindupbird joined
04:19
AndroUser2 left
04:27
satyavvd joined
04:35
masak joined
|
|||
masak | morning, #perl6 | 04:35 | |
_sri: promising (and delivering) a pony has been the purpose all along. | 04:36 | ||
LaVolta | oh hai, masak | ||
masak | I'd add that "that promise is now coming true", but that was true for Pugs as well. the difference is one of scale. | ||
today's effort is broader, deeper, and will likely result in a faster implementation. | 04:37 | ||
er. one that runs faster, that is. Pugs was written at an unusually high pace. | |||
04:40
crk left
|
|||
masak | _sri: and no: non-blocking sockets are not finally in (in Rakudo). | 04:41 | |
seems the set of people who really want it and the set of people who can be bothered to patch Rakudo are disjunct. :/ | 04:42 | ||
04:43
molaf joined
04:56
kjeldahl left
|
|||
masak commutes | 04:59 | ||
04:59
masak left
05:13
LaVolta left
05:20
koban joined
05:22
Su-Shee_ is now known as Su-Shee
05:26
soh_cah_toa left
05:29
woosley1 joined
05:40
molaf left
05:41
r joined,
r left
05:53
beekor joined
06:04
mberends left
06:07
wtw joined
06:13
mkramer joined
|
|||
jnthn | morning, #perl6 | 06:18 | |
nom: prompt "huh?" | 06:28 | ||
p6eval | nom: OUTPUT«Could not find sub &promptcurrent instr.: '_block1002' pc 75 ((file unknown):61425851) (/tmp/KhiaUwNzE4:1)» | ||
jnthn | commute & | 06:34 | |
dalek | kudo/nom: 6383a6d | jonathan++ | src/core/IO.pm: Implement &prompt. |
06:35 | |
06:36
daniel-s joined
06:40
araujo left,
TiMBuS left,
daniel-s_ joined,
daniel-s left
06:44
daniel-s_ left,
daniel-s__ joined
06:45
cognominal_ left,
thou joined,
cognominal_ joined
06:47
localhost joined
|
|||
dalek | atures: 56d4d99 | larry++ | features.json: yet more codes |
06:48 | |
06:49
_daniel-s__ joined,
daniel-s__ left
06:51
localhost left
06:53
localhost joined,
lue left,
_daniel-s__ left,
_daniel-s__ joined
06:55
localhost left
06:58
daniel-s joined,
_daniel-s__ left
07:02
daniel-s left,
daniel-s joined
07:07
daniel-s_ joined,
daniel-s left,
Mowah joined
07:11
daniel-s__ joined,
daniel-s_ left
07:14
mj41_nb joined
07:15
daniel-s__ left,
daniel-s__ joined
|
|||
moritz | nom has lots of non-zero exit statusses in the spectest run | 07:16 | |
5 in my latest run | |||
erm, 4 | |||
2x status 1, 2x status 11 | |||
07:16
TiMBuS joined
07:19
thou left
07:20
daniel-s__ left,
_daniel-s__ joined,
EguoWang joined
07:22
EguoWang left
07:24
daniel-s joined,
jaldhar left,
_daniel-s__ left
07:29
daniel-s_ joined,
daniel-s left
07:33
daniel-s_ left
07:35
daniel-s__ joined
07:39
daniel-s__ left,
daniel-s__ joined
07:44
daniel-s__ left,
daniel-s__ joined,
Jackneill joined,
Jackneill left,
Jackneill joined
07:48
daniel-s__ left,
daniel-s__ joined
07:52
daniel-s__ left
07:53
daniel-s__ joined
07:57
daniel-s__ left,
_daniel-s__ joined
08:01
_daniel-s__ left,
_daniel-s__ joined
08:06
daniel-s joined,
_daniel-s__ left
|
|||
moritz | nom: say (0 xor Int xor 'plugh') | 08:09 | |
p6eval | nom: OUTPUT«Method 'gist' not found for invocant of class 'Undef'current instr.: 'say' pc 488108 (src/gen/CORE.setting.pir:124069) (src/gen/CORE.setting:3753)» | ||
moritz | nom: say so (0 xor Int xor 'plugh') | ||
p6eval | nom: OUTPUT«Segmentation fault» | ||
moritz | that's what makes t/spec/S03-operators/short-circuit.t segfault for me | ||
08:10
daniel-s left
|
|||
moritz | nom: say so Int | 08:10 | |
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | wtf? | ||
08:10
daniel-s joined
|
|||
moritz | nom: say so Str | 08:11 | |
p6eval | nom: OUTPUT«Segmentation fault» | ||
jnthn | ouch | 08:12 | |
moritz | I understand why it doesn't work correctly | ||
not sure it should segfault though | |||
perl6: say Str.succ | 08:13 | ||
p6eval | pugs: OUTPUT«*** No such method in class Str: "&succ" at /tmp/cFetl8H6gA line 1, column 5 - line 2, column 1» | ||
..niecza v8-3-g838bc38: OUTPUT«WTF» | |||
..rakudo 922500: OUTPUT«Sts()» | |||
moritz adds Str:D: to basically all methods in Str | 08:14 | ||
jnthn | yeah, it's getting a junk string PMC somehow | ||
oh.. | |||
08:14
daniel-s left
08:15
daniel-s joined
|
|||
jnthn | I think that P6opaque's box/unbox ops don't check for type objectness. | 08:16 | |
d'oh | |||
08:19
daniel-s_ joined,
daniel-s left
|
|||
moritz | nom: say nqp::unbox_s(Str) | 08:21 | |
p6eval | nom: OUTPUT«Method 'gist' not found for invocant of class 'String'current instr.: 'say' pc 488108 (src/gen/CORE.setting.pir:124069) (src/gen/CORE.setting:3753)» | ||
moritz | nom: say nqp::unbox_i(Int) | ||
p6eval | nom: OUTPUT«Method 'gist' not found for invocant of class 'Integer'current instr.: 'say' pc 488108 (src/gen/CORE.setting.pir:124069) (src/gen/CORE.setting:3753)» | ||
jnthn | yeah, that should be an error. | 08:22 | |
as in, before that. | |||
moritz | right | ||
jnthn | nom: pir::say(nqp::unbox_i(Int)) | ||
p6eval | nom: OUTPUT«145» | ||
jnthn | nom: pir::say(nqp::unbox_i(Int)) | ||
p6eval | nom: OUTPUT«145» | ||
jnthn | random junk | ||
moritz: If you want to fix, P6opaque.c and see the attribute access code, which does the check. | |||
moritz | nom: pir::say(nqp::unbox_i(Str)) | ||
p6eval | nom: OUTPUT«This type cannot unbox to a native integercurrent instr.: '_block1002' pc 69 ((file unknown):10612371) (/tmp/Qn9jejHy3j:1)» | ||
jnthn can't right now | 08:23 | ||
08:23
daniel-s_ left,
daniel-s_ joined
08:26
dakkar joined
08:28
daniel-s_ left,
daniel-s_ joined
08:32
daniel-s__ joined
08:33
daniel-s_ left,
cognominal_ left,
cognominal_ joined
08:34
araujo joined
|
|||
moritz | maybe Ill get to it in half an hour | 08:35 | |
08:36
daniel-s__ left,
daxim joined
08:37
daniel-s__ joined
08:41
_daniel-s__ joined,
daniel-s__ left
08:45
daniel-s joined
08:46
_daniel-s__ left
08:50
daniel-s left,
daniel-s joined
08:54
daniel-s left,
daniel-s_ joined
08:58
daniel-s_ left
08:59
daniel-s__ joined
09:03
daniel-s__ left
|
|||
jnthn | interviewing & | 09:03 | |
09:03
daniel-s__ joined
09:07
daniel-s__ left,
_daniel-s__ joined
09:11
espadrine` joined
09:12
daniel-s joined
|
|||
espadrine` | Hello, is there an issue with try.rakudo.org/? I don't want to file a bug report if this is a mere uptime issue of some kind. | 09:12 | |
09:12
_daniel-s__ left
|
|||
flussence | it's a known problem, we haven't really figured out why it breaks like that though | 09:13 | |
espadrine` | Ah, ok. | 09:14 | |
09:16
daniel-s left,
daniel-s joined
09:21
daniel-s_ joined,
daniel-s left
09:23
wamba joined
|
|||
dalek | kudo/nom: 09c8fab | moritz++ | src/core/ (3 files): add :D constraints to invocants of Str/Int/Num methods |
09:24 | |
09:25
daniel-s_ left,
daniel-s_ joined
09:26
dual left
|
|||
moritz | ah, I think I see how I have to change P6opaque | 09:26 | |
I first thought I had to touch the actual ops | 09:27 | ||
but they are not specific to a repr | |||
so it really must be the repr | |||
09:29
daniel-s__ joined
09:30
daniel-s_ left
09:33
timbunce joined
09:34
daniel-s__ left,
daniel-s__ joined
09:38
_daniel-s__ joined
09:39
daniel-s__ left
09:43
daniel-s joined,
_daniel-s__ left,
mls joined
|
|||
mls | moritz: I think you just have to test instance->spill in the get/set functions | 09:44 | |
i.e just like in the get_attribute functions | 09:46 | ||
09:47
daniel-s left,
daniel-s joined
|
|||
moritz | mls: yes, that's what I've figured out too :-) | 09:47 | |
mls: I have a local patch, will test rakudo on top of it before I commit | |||
mls | btw, wasn't there some discussion to make :D default? | 09:49 | |
moritz | yes, there was | ||
and I'm still very sure that it's required for sanity | 09:50 | ||
but there's ongoing discussion about the naming | |||
09:51
woosley1 left,
daniel-s_ joined
09:52
daniel-s left
09:54
wamba left
|
|||
moritz | $ ./perl6 -e 'nqp::unbox_s(Str)' | 09:54 | |
Cannot unbox type object to a native string | |||
\o/ | |||
dalek | p: f68aa56 | moritz++ | src/6model/reprs/P6opaque.c: [P6opaque] guard against unboxing type object, a common-ish cause for segfaults in rakudo/nom |
09:55 | |
09:55
wamba joined
|
|||
mls | moritz: maybe you should also add this to the box functions, just in case | 09:56 | |
09:56
daniel-s_ left,
daniel-s__ joined
|
|||
moritz | mls: I thought so too first... but for boxing I already have a native str/int/num, so it can't be a type object | 09:56 | |
you can't pass a PMC to a function expecting an INTVAL, the C compiler complains | 09:57 | ||
09:59
ab5tract joined,
awoodland joined
10:00
_daniel-s__ joined,
daniel-s__ left
10:05
daniel-s joined,
_daniel-s__ left
10:09
daniel-s left,
daniel-s_ joined
10:12
daxim left
10:13
daniel-s__ joined
10:14
daniel-s_ left
10:18
daniel-s__ left,
_daniel-s__ joined
|
|||
mls | seems like set_int et al is only called in perl6.ops right after instance_of, so it seems to be safe. Still, defensive programming is IMHO a good thing... | 10:19 | |
moritz | point is that the compiler toolchain pretty effectively deals with native-vs-pmc decisions | 10:21 | |
so any code generated via PCT (and that includes pir:: calls from nqp and rakudo) never tries to box a PMC | |||
10:22
hanekomu joined
|
|||
mls | I don't see what the compiler has to do with this. I just have to write a bad op that doesn't call instance_of to create an object from the type | 10:22 | |
but yes, currently it isn't possible to call set_int on a type if you just write nqp/perl6 | 10:23 | ||
As I said, "just in case". I.e., like an assertion. | 10:25 | ||
moritz | yes, assertion would be good | ||
10:25
MayDaniel joined
|
|||
moritz | the 6model philsophy is so far that C code and the compiler must know what they are doing | 10:26 | |
and only user-level errors are caught | |||
which is decent for efficiency, but sucks in the case of writing C code interfacing 6model | |||
assertions seem to be the right approach, since they can just be #define'd out | 10:27 | ||
I get a lot of spectest failures with that newest patch | 10:28 | ||
nom: say 1 == Int | 10:30 | ||
p6eval | nom: OUTPUT«Bool::False» | ||
moritz | nom: say 0 == Int | ||
p6eval | nom: OUTPUT«Bool::False» | ||
10:31
pernatiy left
|
|||
moritz | lots of :D's missing all over the setting | 10:33 | |
10:33
daxim joined
|
|||
mls | make it default ;-) | 10:33 | |
moritz | :D | 10:34 | |
mls | You could return 0 / '' instead of throwing an exception | 10:36 | |
10:36
hanekomu left
10:37
hanekomu joined
|
|||
moritz | my approach is to add :D to the Int/Num/Str operators that unbox | 10:38 | |
and then we have more general (Any, Any) operators that coerce to .Numeric | |||
and then redispatch | |||
those can handle with one of the operands being a type object | 10:39 | ||
nom: say 1 xor 0 | |||
p6eval | nom: OUTPUT«1» | ||
10:39
_daniel-s__ left
|
|||
moritz | nom: say 1 ?^ 0 | 10:40 | |
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | nom: say 1 !^ 0 | ||
p6eval | nom: OUTPUT«Cannot negate ^ because it is not iffy enough at line 1, near " 0"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
moritz spectests and goes to lunch. With some luck I'll be able to push when I get back :-) | 10:45 | ||
10:53
Jackneill left
10:54
skangas joined
11:05
Jackneill joined
11:13
jaldhar joined
11:35
Jackneill left
11:36
Jackneill joined,
Jackneill left,
Jackneill joined
11:44
daniel-s joined,
pernatiy joined
|
|||
espadrine` | What is "nom"? Is it some rakudo fork, or a nightly build? | 11:44 | |
11:45
satyavvd left
|
|||
eiro | espadrine`, nom is a branch with a complete rewrite of metaobject system | 11:46 | |
espadrine` | eiro: do we need this rewrite for performance reasons? | ||
11:48
daniel-s_ joined,
daniel-s left
|
|||
eiro | espadrine`, i don't know the reasons of nom but the results are speed improvement and lot of simplifcations (as i heard) | 11:49 | |
(i'm just a "early adopter", not a perl6 hacker) | 11:50 | ||
11:50
Jackneill left
11:51
Jackneill joined,
Jackneill left,
Jackneill joined
|
|||
kboga | espadrine`: here are some pointers to read about nom: pmthium.com/2011/02/08/new-nqp-repo...do-branch/ 6guts.wordpress.com/2011/06/28/anot...om-update/ www.jnthn.net/articles.shtml | 11:52 | |
11:53
daniel-s__ joined,
daniel-s_ left
|
|||
espadrine` | kboga: thanks! | 11:53 | |
kboga | espadrine`: np =) | 11:54 | |
moritz | nom: say so (("foo" ~~ *) ~~ Bool) | 11:55 | |
p6eval | nom: OUTPUT«Bool()» | ||
11:57
daniel-s__ left,
_daniel-s__ joined
|
|||
kboga | oh right almost forgot, hello perl6! | 11:58 | |
moritz | \o kboga | 11:59 | |
11:59
[particle] left
|
|||
moritz | that output is another case of a forgotten :D | 12:00 | |
12:00
[particle] joined
12:02
daniel-s joined,
_daniel-s__ left
|
|||
moritz | rakudo: say Bool.Bool | 12:02 | |
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
moritz | nom: say Bool.Bool | ||
p6eval | nom: OUTPUT«Bool()» | ||
kboga | We should never forget to :D | 12:04 | |
moritz should do a complete review of methods in the setting | 12:05 | ||
kboga | Why so serious? Lets put a :D on that method. | ||
moritz | nom: say Any.elems | ||
p6eval | nom: OUTPUT«1» | ||
moritz | nom: say Any.hash | 12:06 | |
p6eval | nom: OUTPUT«Odd number of elements found where hash expectedcurrent instr.: 'die' pc 465604 (src/gen/CORE.setting.pir:110729) (src/gen/CORE.setting:245)» | ||
12:06
daniel-s_ joined,
daniel-s left
12:07
antonio_ joined,
antonio_ is now known as odoacre
12:11
daniel-s__ joined,
daniel-s_ left
12:12
mikehh left
12:15
_daniel-s__ joined,
daniel-s__ left
12:17
hanekomu left
12:18
hanekomu joined
12:19
_daniel-s__ left,
_daniel-s__ joined
12:20
MayDaniel left
12:21
masak joined
|
|||
masak | oh hai | 12:21 | |
reading through RC entries. very enjoyable. | |||
kboga | hi masak | ||
masak | I notice rosettacode.org/wiki/Parametric_pol...ism#Perl_6 makes use of the fact that Rakudo's .perl erroneously includes private attrs. | 12:22 | |
maybe that should be fixed. :) | |||
laterz. | |||
12:22
masak left
12:24
_daniel-s__ left,
daniel-s joined
|
|||
kboga | I guess I'll be a git and ask if anyone would be interested in reviewing my pull request: github.com/rakudo/rakudo/pull/29 | 12:27 | |
dalek | kudo/nom: c2307d4 | moritz++ | / (8 files): routines that unbox to native types or access attributes need :D in their signature. Also bump NQP_REVISION to get error checking when unboxing type objects |
||
12:28
daniel-s left,
daniel-s joined
|
|||
kboga | I think having these global vars will allow us to uncover many more LHF's from the spectests. | 12:28 | |
moritz | kboga: again it would be nice to have a pull request without interfering commits | 12:30 | |
kboga: I generally recommend to make feature branches for pull requests, and don't do synchronization merges into these branches | 12:31 | ||
kboga | hmm ic | ||
moritz | I like the patches themselves | 12:32 | |
12:33
daniel-s_ joined,
daniel-s left
|
|||
kboga | ok, what would be the best way to accomplish that starting from what there is now? | 12:33 | |
moritz | git checkout -b special-vars rakudo/nom | 12:34 | |
git merge nom | |||
12:34
dual joined
|
|||
moritz | git rebase -i rakudo/nom # and filter out all the merge commits | 12:34 | |
git push origin special-vars | 12:35 | ||
kboga | ok, thanks for your help moritz, I’ll try that (and should read a git book someday) =) | ||
12:37
daniel-s_ left,
daniel-s_ joined
12:39
cryptographrix joined
|
|||
moritz | oh, I think I accidentally added a syntax error in the last commit | 12:41 | |
12:42
daniel-s_ left,
daniel-s__ joined
|
|||
moritz | fix forthcoming after spectest | 12:42 | |
kboga | ye in Enum.pm so it seems | ||
moritz | a mis-placed colon | 12:43 | |
takadonet | morning all | ||
kboga | hi takadonet | 12:44 | |
takadonet | kboga: how are you sir? | ||
dalek | kudo/nom: c087c52 | moritz++ | src/core/ (4 files): fix syntax error in previous commit, moritz-- |
12:45 | |
12:46
AndroUser2 joined,
_daniel-s__ joined,
AndroUser2 left,
daniel-s__ left
12:47
AndroUser2 joined
|
|||
kboga | good, but I'm not a sir :) | 12:48 | |
12:48
cryptographrix left
|
|||
moritz | kboga: btw if you want a commit bit for rakudo, you'd need to fill out a "contributor license agreement" (see www.perlfoundation.org/contributor_..._agreement ) and send it to the Perl Foundation | 12:50 | |
12:50
daniel-s joined,
_daniel-s__ left
|
|||
moritz | (and approval from the developers, but I don't see a problem with that) | 12:51 | |
kboga | ok, moritz++ again for the help with git, now to find out how to send a pull request on this | ||
12:51
AndroUser2 left
12:52
wamba left
|
|||
moritz | kboga: I think you have to select the branch on the github website, and then click 'pull request' | 12:52 | |
kboga: but I can also merge without a pull request :-) | |||
kboga | there, pull request issued. | 12:53 | |
that is indeed much cleaner | 12:54 | ||
12:54
MayDaniel joined,
MayDaniel left,
MayDaniel joined
|
|||
moritz | kboga: thanks again for your patches and the effort to clean up the pull request | 12:54 | |
12:55
daniel-s left,
daniel-s joined
|
|||
dalek | kudo/nom: f3d1b8f | kboga++ | src/core/terms.pm: Implemented @*INC. |
12:55 | |
kudo/nom: 496ec52 | kboga++ | src/core/terms.pm: Implement $*PID. |
|||
kudo/nom: 2708593 | kboga++ | src/core/terms.pm: Implement $*VM and clean up @*INC. |
|||
kudo/nom: eba4254 | kboga++ | src/core/terms.pm: Implement $*OS and $*OSVER. Note: they get their info from $*VM<config> instead of the sysinfo dynop like master. |
|||
kudo/nom: fde5bfd | kboga++ | src/core/terms.pm: Implement $*EXECUTABLE_NAME. |
|||
kudo/nom: 241faa2 | moritz++ | src/core/terms.pm: Merge pull request #30 from kboga/special-vars Special vars |
|||
12:58
MayDaniel left
12:59
daniel-s left,
daniel-s joined
13:00
bluescreen10 joined
13:03
cognominal_ left,
cognominal_ joined
13:05
Holy_Cow joined,
Holy_Cow left
|
|||
moritz just had the first two 100% clean spectest runs on nom for ages | 13:09 | ||
tadzik | you mean, unfudged? :P | 13:10 | |
hello zebras | |||
tadzik is, hopefully, fixing his laptop today | |||
moritz | clean = all tests passing, no non-zero exist status | ||
tadzik | no more turning-on russian roulette | ||
I think I had that yesterday or so, but is seems nondeterministic sometimes | |||
moritz: got a few .WHY moments? | 13:11 | ||
moritz | I think I figured out that most segfaults were related to unboxing type objects | ||
adding a lot of :D's helped | |||
tadzik: yes | |||
tadzik | :D | ||
moritz | oh, assigning-refs.t still occasionally wants 34740112 arguments | 13:12 | |
tadzik | so, now I have a dynvar $*DECLARATOR attached to the declarator block #=. Then in the class declaration I add its content to class.WHY.docs, that works | ||
but that would also work for things like: #= bla bla\nsomething_unrelated()\n\n\n...\nclass foo {} | |||
so I'm thinking if it wouldn't be better to attach a <declarator_block> before <sym> in package_def<class> | 13:13 | ||
that would work for post-declarations only, but that's what we wanted for #=, isn't it? | |||
what do you think? | |||
moritz a bit confused | 13:14 | ||
tadzik | for now it's a bit randomish: the last parsed declarator block is used, and there's no easy way to "turn it off" after something unrelated | ||
did you see the demo yesterday or so? | |||
moritz | yes | ||
tadzik | okay. Now, every #= block sets the dynvar, and every class declaration reads the dynvar and uses it to document a class | 13:15 | |
so, a last parsed declarator is used | |||
moritz | how about switching that around? | ||
have each class (and maybe routine) set its own $*ATTACHABLE or so | |||
tadzik | I think whether it'd be better to have declarators more strictly attached to a class? So, <declarator> 'class' <block> | ||
so every declaration has its own, optional declarator block, which is used there and only there | 13:16 | ||
moritz | and a #= block looks up $*ATTACHABLE, calls .WHY.add_docs or whatever | ||
and warns if no $*ATTACHABLE is found | |||
tadzik | the the class/routine/whatever has to appear before the declarator, no? | 13:17 | |
moritz | with that factoring, the #= would have to be inside the class | ||
tadzik | yes | 13:18 | |
moritz | which would suck for attributes | ||
tadzik | which brings us back to the question of where to allow declarator blocks | ||
for me, the most sane place, at least for now, to make it work, is just before the 'class' keyword | |||
see Grammar.pm:1007 and neighbours | 13:19 | ||
moritz | in which branch? nom? | 13:20 | |
tadzik | I'd then stick a <declarator_block> or so just before <sym>. Yes, nom | ||
moritz | I think that's flawed | ||
first, I think that #= should always be parsed by exactly one rule, and a #= in a wrong place (but where comments are allowed) should not be a syntax error | 13:21 | ||
tadzik | that's correct | 13:22 | |
moritz | I'd rather have a rather high-level rule reset $*DECLARATOR, and warn if it's not empty | ||
tadzik | hmm | 13:23 | |
moritz | then allowing #= blocks on other entities (for example routines) would be a simple matter of consuming $*DECLARATOR in their grammar rules | ||
tadzik | sane | ||
moritz | maybe you should wait for one of our parsing gurus (any <TimToady pmichaud sorear jnthn>) to confirm that | 13:24 | |
it's more of a feeling really | 13:25 | ||
13:26
kfo joined
|
|||
[Coke] | moritz: if you fix the short circuit issue, I'm afraid I just fudged a bunch of tests there you'll have to undfudge. | 13:26 | |
tadzik | I'll wait for commentaries then :) | 13:27 | |
13:27
Alias joined,
wamba joined
|
|||
moritz | [Coke]: autounfudge.pl is already running | 13:27 | |
[Coke] | does autounfudge try to de-skip tests? | 13:28 | |
moritz | yes | ||
[Coke] | that's got to be painful. | ||
moritz | it... takes up some CPU | ||
jnthn back | |||
[Coke] | so, unskip test a, rerun, boom, reskip, go to next text... | ||
moritz | for each file, it first runs the test normally | ||
jnthn | And with a bigger screen. yay :) | 13:29 | |
moritz | it assumes that the skips are not interdependent | ||
so it just tries to remove each skip separately | |||
so for a file with $n skip lines, it does $n+1 runs | |||
[Coke] | moritz: woof. | ||
moritz | fortunately some of the skips cause compilation errors, so they are early exists | ||
the nice thing is that it write a .patch file for you | 13:30 | ||
so you can review it, and delte hunks from it which you don't like | |||
13:31
kfo_ joined,
kfo left
|
|||
tadzik | jnthn: could you take a look at the #= discussion above? | 13:31 | |
jnthn | Sure, when I've made a cup of tea and stopped drooling over my new 22 inches. :) | 13:33 | |
tadzik | oooo | ||
jnthn | This is gonna be better for my back :) | ||
13:34
Mowah left
13:35
koban left
|
|||
flussence | 22"... widescreen? | 13:35 | |
jnthn | flussence: yes :) | ||
Up from 19" non-widescreen | |||
Plus this one is somewhat crisper. :) | 13:36 | ||
moritz would love a 22" 4:3 monitor :-) | |||
tadzik | or 3:4 :> | ||
flussence would accept a 19"... as long as it's at least 150dpi | |||
13:37
benabik joined
|
|||
PerlJam still waits for the high resolution glasses that cover as large or as small a part of vision as wanted. :-) | 13:39 | ||
13:39
kfo_ left
13:40
drbean left
|
|||
PerlJam | that would be the ultimate monitor. A heads-up display for your computer. | 13:40 | |
moritz | perl6: say 2 ** 16 | ||
p6eval | pugs, rakudo 922500, niecza v8-3-g838bc38: OUTPUT«65536» | ||
moritz | it's nice to see them agree sometimes :-) | 13:41 | |
13:47
kfo joined
13:57
jaldhar left
|
|||
dalek | ast: bf4624e | moritz++ | S (7 files): nom unfudges |
13:58 | |
14:02
risou_awy is now known as risou
|
|||
espadrine` | moritz: Does rakudo have bignums now? (In reference to dalek's commit message.) | 14:04 | |
[Coke] is tempted to buy a small tv for his office (instead of a large monitor) and use that. | 14:05 | ||
[Coke] wonders how many of you younguns remember when you actually had to plug your computer INTO your tv. the analog kind. | |||
benabik still fondly remembers his C64 | |||
moritz | espadrine`: no | 14:06 | |
espadrine`: it upgrades to floating-point numbers on overflow, which is good enough to make that one test passing | 14:07 | ||
[Coke] | benabik++ | 14:08 | |
espadrine` | moritz: fair enough. 36893488147419103232 converts to floats too, doesn't it? | 14:09 | |
moritz | nom: say 36893488147419103232.WHAT | ||
p6eval | nom: OUTPUT«Int()» | ||
moritz | huh | ||
nom: say 36893488147419103232 | |||
p6eval | nom: OUTPUT«-9223372036854775808» | ||
moritz | no, it just overflows :-) | ||
benabik | [Coke]: I even remember 300 baud modems. :-D Although acoustic couplers are still before my time. | ||
espadrine` | ah, ok :D | ||
benabik | (Although we had one in the house.) | ||
[Coke] | benabik: you must be my age. | 14:14 | |
PerlJam | you guys are *old* ;) | ||
[Coke] | we didn't have an acoustic coupler, but my parents were not geeks. (I'm a first gen geek) | 14:15 | |
benabik | [Coke]: My dad worked for Commodore, so while I remember it, its from my _youth_. | ||
[Coke] | whoa. | ||
jealous. | |||
espadrine` | perl6: say 2 ** 65 == 36893488147419103232 | ||
p6eval | niecza v8-3-g838bc38: OUTPUT«Bool::True» | ||
..pugs: OUTPUT«1» | |||
..rakudo 922500: OUTPUT«Bool::False» | |||
PerlJam | benabik: what did he do? | ||
benabik | PerlJam: Tech support, basically. | ||
[Coke] does wonder if there's a call for something like an Atari 400 with a Perl6 cartridge. | |||
[Coke] finds it hard to entice his children to draw ascii snoopys when they can play portal 2. ;) | 14:16 | ||
PerlJam | There's an old Amiga sitting in boxes down the hall from me .. I wonder if anyone would want to make Perl 6 run on it. :) | 14:17 | |
(Is "old Amiga" redundant? ;) | |||
[Coke] | my Amiga 500 is in a friend's attic, I think. | 14:18 | |
benabik | I keep hearing things about Amiga… I think there's a newish OS for them. | 14:19 | |
flussence has a full set of RISC OS 3 programming reference manuals at home... but no hardware to go with them :( | 14:21 | ||
PerlJam | flussence: clearly you should write a virtual machine for them ;) | 14:22 | |
daxim | benabik, the spiritual successors are the pegasos hardware and morphos operating system en.wikipedia.org/wiki/Pegasos | 14:23 | |
benabik | daxim: Interesting, but what I was thinking of was that AmigaOS 4.1 has been updated as recently as April 2010 | 14:24 | |
PerlJam | I wonder why they named it "amiga"? Perhaps they thought it was the only girl friend a geek could have? ;) | 14:25 | |
14:29
Trashlord left,
Trashlord joined
|
|||
benabik | PerlJam: According to Wikipedia: "The name Amiga was chosen by the developers specifically from the Spanish word for a female friend, and it comes Apple and Atari alphabetically." | 14:29 | |
*comes before | |||
PerlJam | "yes, this little box of electronics is female. and she's your friend. you want to hang out with your female friend." | 14:31 | |
flussence | sounds familiar... bugzilla.mozilla.org/show_bug.cgi?id=661075 | 14:33 | |
moritz | nom: my $x = 3; say "$x".WHAT | ||
p6eval | nom: OUTPUT«Int()» | ||
jnthn | hm. | 14:34 | |
That's probably not quite what was intended. | |||
moritz | that bug was also present in perl 1 and rakudo/master | ||
(but fixed in both) | |||
jnthn | Though with all the talk of <1 2 3> actually producing a list of integers I think I could almost argue that it's OK :P | ||
moritz | it's almost ok, yes | 14:35 | |
to the degree that both Str ~~ Cool and Int ~~ Cool | |||
jnthn | Yeah | ||
Suspect it's too surprising though. | |||
benabik | Especially with multis. | ||
Although someone writing foo("$x") should probably use foo(~$x) instead, they shouldn't be penalized for it. | 14:36 | ||
jnthn | Yeah | ||
moritz | github.com/rakudo/rakudo/commit/fe...51bdddd1ec | ||
jnthn | heh | ||
set__SP won't work in nom world. | 14:37 | ||
moritz | nqp: my $x := 1; say("$x".WHAT) | ||
p6eval | nqp: OUTPUT«Can only use get_what on a SixModelObjectcurrent instr.: '_block1000' pc 48 ((file unknown):44) (/tmp/wE8OJJ7iWy:1)» | ||
moritz | nqp: my $x := 1; say(pir::typeof("$x")) | ||
p6eval | nqp: OUTPUT«Integer» | ||
jnthn | Need to make an explicit call to ~ I guess | ||
Or .Stringy | |||
(prefix:<~> that is...) | 14:38 | ||
moritz | it might lead to bootstrap issues | ||
because .Stringy and prefix:<~> are defined rather late in the setting | |||
might as well try it... | |||
jnthn | Well, only if we do that kinda stuff while compiling the setting. | 14:39 | |
But yeah, it's possible. | |||
Lots of bootstrapping fun in CORE.setting. | |||
jnthn has no idea if enums work in there yet. | |||
nom: enum Foo <Bar Baz>; say Foo::Bar; say Baz; | |||
p6eval | nom: OUTPUT«Foo::BarFoo::Baz» | ||
jnthn | nom: enum Foo <Bar Baz>; say Foo::Bar.value; say Baz.value; | 14:40 | |
p6eval | nom: OUTPUT«01» | ||
jnthn | nom: enum Foo <Bar Baz>; say Foo.enums | ||
p6eval | nom: OUTPUT«("Bar" => 0, "Baz" => 1).hash» | ||
14:41
molaf joined
|
|||
moritz | nom: enum Foo <Bar Baz>; say Bar.Int | 14:42 | |
p6eval | nom: OUTPUT«Foo::Bar» | ||
moritz | nom: enum Foo <Bar Baz>; say Bar + 2 | ||
p6eval | nom: OUTPUT«2» | ||
moritz | nom: enum Foo <Bar Baz>; say Bar ~~ Int | ||
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | while arguable correct, I'd suggest returning 0 instead of Bar from Bar.Int | ||
jnthn | moritz: src/core/Enumeration.pm - add a method Int to NumericEnumeration should do it. | 14:44 | |
note that | |||
nom: enum Foo <Bar Baz>; say Bar.Numeric | |||
p6eval | nom: OUTPUT«0» | ||
benabik | .Int != .Numeric.Int? | 14:45 | |
nom: enum Foo <Bar Baz>; say Bar.Numeric.Int; say Bar.Int | |||
p6eval | nom: OUTPUT«0Foo::Bar» | ||
moritz | nom: enum Foo <Bar Baz>; say Bar.Int == Bar.Numerc.Int | 14:46 | |
p6eval | nom: OUTPUT«Method 'Numerc' not found for invocant of class 'Foo'current instr.: '_block1002' pc 95 ((file unknown):79281107) (/tmp/maWjIDrimO:1)» | ||
moritz | nom: enum Foo <Bar Baz>; say Bar.Int == Bar.Numeric.Int | ||
p6eval | nom: OUTPUT«Bool::True» | ||
moritz | they are == equal | ||
jnthn | Note that an Int based enum just does whatever Int does for methods, unless you say otherwise. | ||
And Int.Int returns self. | |||
moritz | nom: enum Foo <Bar Baz>; say Bar.value | 14:47 | |
p6eval | nom: OUTPUT«0» | ||
14:47
pjcj left,
benabik left
|
|||
jnthn | Mapping .Int to .value.Int probably works fine. | 14:47 | |
moritz | that's my plan :-) | ||
jnthn | note that | ||
nom: enum Foo is export <Bar Baz>; # should work too | 14:48 | ||
p6eval | nom: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are::(Mu $child, Mu $parent):(Attribute $attr, Any $rw):(Routine $r, Any $rw):(Parameter $param, Any $rw):(Parameter $param, Any $copy):(Routine $r, Any $export)current instr.: '… | ||
jnthn | Ah | ||
nom: class Foo is export { } | |||
p6eval | nom: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are::(Mu $child, Mu $parent):(Attribute $attr, Any $rw):(Routine $r, Any $rw):(Parameter $param, Any $rw):(Parameter $param, Any $copy):(Routine $r, Any $export)current instr.: '… | ||
jnthn | Oh, just not done type exporting multi candidate generally yet. | ||
Fairy nuff. | |||
Anyway, it applies traits. | |||
nom: role Fooey { }; enum Foo does Fooey <Bar Baz>; say Foo ~~ Fooey | 14:49 | ||
p6eval | nom: OUTPUT«Bool::True» | ||
14:49
pjcj joined
|
|||
moritz | woah | 14:49 | |
jnthn | Which the master implementation didn't. :) | ||
The spec explicitly says that's allowable :) | |||
14:50
JimmyZ joined
|
|||
dalek | ast: 71ee6c9 | moritz++ | S12-enums/basic.t: refudge S12-enums/basic.t for rakudo |
14:56 | |
moritz | nom: my $e = enum <a b c> | ||
p6eval | nom: OUTPUT«Could not find sub &ANON_ENUMcurrent instr.: '_block1002' pc 99 ((file unknown):178) (/tmp/LCywFHDQYm:1)» | ||
moritz | that part of the implementation seems bogus | 14:57 | |
even if &ANON_ENUM was implemented, it still misses the part where the keys are added | 14:58 | ||
14:59
thou joined
|
|||
dalek | kudo/nom: 7cc1567 | moritz++ | t/spectest.data: 3 more passing test files |
15:07 | |
kudo/nom: c22bfbd | moritz++ | src/core/Enumeration.pm: make $enumValue.Int less awkward |
|||
pmichaud | good morning, #perl6 | 15:09 | |
moritz | good am, pm | 15:10 | |
kboga | hi, pm | 15:13 | |
pmichaud | kboga++ # excellent patches | 15:16 | |
kboga: there's a small problem with commit # 2708593 | 15:17 | ||
+ config => pir::perl6ize_type__PP( 23 | |||
+ nqp::atpos(pir::getinterp, pir::const::IGLOBALS_CONFIG_HASH)) | |||
grrrr, silly github cut/paste | |||
config => pir::perl6ize_type__PP( | 15:18 | ||
nqp::atpos(pir::getinterp, pir::const::IGLOBALS_CONFIG_HASH)) | |||
that turns the config hash into a valid nom EnumMap type, but it doesn't perl6ize the values | |||
i.e., the hash itself still contains Parrot objects | |||
jnthn | o/ pmichaud | ||
pmichaud | jnthn: o/ | 15:19 | |
kboga | oh, ic. | ||
JimmyZ wonder what's the difference between 'self.value' and '$!value' | |||
pmichaud | JimmyZ: the first is a method call | ||
15:19
daniel-s left
|
|||
moritz | nom: class A { has $!value = 5; method value() { 42 }; method decide() { say $!value, self.value } }; A.new.decide | 15:20 | |
p6eval | nom: OUTPUT«542» | ||
jnthn | pmichaud: Regex day still? :) | ||
pmichaud | jnthn: yes, but need to finish making the 2011.07 star release first | ||
JimmyZ | nom: class A { has $.value = 5; method decide() { say $!value, self.value } }; A.new.decide | 15:22 | |
p6eval | nom: OUTPUT«55» | ||
jnthn | pmichaud: OK. I'm about for the evening and will be pretty free. :) | ||
15:23
hanekomu left
|
|||
moritz | nom: class A { has $.value = 5; method decide() { say $!value, self.value } }; class B is A { method value() { 2 * callsame() } }; say B.new.decide | 15:23 | |
p6eval | nom: OUTPUT«510Bool::True» | ||
moritz | nom: class A { has $.value = 5; method decide() { say $!value, self.value } }; class B is A { method value() { 2 * callsame() } }; B.new.decide | ||
p6eval | nom: OUTPUT«510» | ||
15:23
ron__ joined
|
|||
kboga | pmichaud: so to perl6ize the values, something similar to what is done with %*ENV has to be done? | 15:25 | |
pmichaud | I think so, yes. | 15:26 | |
ron__ | coke and benabik - noticed the chatter about old commodore computers and since no one brought it up I thought I'd mention that they and the C64 are back at www.commodoreusa.net/ | ||
moritz | maybe write a function perl6ize_hash or so | ||
pmichaud | not sure it needs a separate function | 15:27 | |
also, the Env hash and Config hash are subtly different in several respects, so not sure that one function would be able to handle both easily | 15:28 | ||
kboga | nom: say $*VM<config><osname>.WHAT | ||
p6eval | nom: OUTPUT«Str()» | ||
moritz | loks right-ish | ||
pmichaud | nom: say nqp::atkey(%*VM<config>, 'osname').WHAT | ||
JimmyZ | nom: say $*VM<config><osname>; say $*VM<config><osver>; | ||
p6eval | nom: OUTPUT«Method 'at_key' not found for invocant of class 'Failure'current instr.: 'postcircumfix:<{ }>' pc 510376 (src/gen/CORE.setting.pir:0) (src/gen/CORE.setting:625)» | 15:29 | |
nom: OUTPUT«linuxAny()» | |||
15:29
wamba left
|
|||
pmichaud | looks wrongish | 15:29 | |
jnthn | nom: say nqp::atkey($*VM<config>, 'osname').WHAT | ||
p6eval | nom: OUTPUT«get_pmc_keyed_str() not implemented in class 'Hash'current instr.: '_block1002' pc 104 ((file unknown):68264786) (/tmp/lTNcwJ_a0K:1)» | ||
pmichaud | oh, wait. | ||
moritz | aren't int/str/num also marshalled automagically? | 15:30 | |
jnthn | pmichaud: Note that method call return values get perl6ized. | ||
pmichaud: .at_key is a method call | |||
So it "works" :) | |||
pmichaud | jnthn: right, that was going to be my next point | ||
the problem is that we can't be certain all accesses will go through .at_key | |||
jnthn | Yeah | ||
pmichaud | and I'd prefer not to perl6ize on every access | 15:31 | |
jnthn | yeah, same | 15:32 | |
pmichaud | otoh, access to the config hash is rare enough that perhaps perl6ize on access isn't a big issue. (more) | ||
kboga | oh, i see now. | ||
pmichaud | so, to me, it depends on how strict we want to be about not letting Parrot objects into the Rakudo ecosystem, versus the startup cost of establishing %*VM | 15:33 | |
(although perhaps it could be made lazy somehow) | |||
15:33
Tanktalus left
|
|||
moritz | isn't it lazy already? :-) | 15:33 | |
pmichaud | moritz: nope, happens every time the core setting is loaded. :) | 15:34 | |
jnthn | Well, in the Awesome Future we can do the work in a BEGIN block in the setting and have it magically serialized. :) | 15:35 | |
pmichaud | huh? | ||
%*VM is runtime values | |||
jnthn | ...what, I thought Parrot's config was fixed at compile time? | 15:36 | |
JimmyZ | I think it's compile time | ||
pmichaud | what about bytecode produced by one Parrot and run by another? | ||
jnthn | Hm, true. | 15:37 | |
pmichaud | or is that not even possible anymore? | ||
jnthn | Dunno | ||
I mostly prefer to see bytecode as cache these days. | |||
15:37
ron__ left
|
|||
JimmyZ | parrot doesn't know runtime OS, iirc | 15:37 | |
jnthn | Thing is that you end up linking against the setting. | 15:38 | |
And thus you link against a certain version of the setting. | |||
pmichaud | beyond that, I suspect that other VM's might have dynamic information in their config | ||
even if Parrot doesn't. | |||
moritz | nom: say %*ENV<HOME> | ||
jnthn | True. | ||
p6eval | nom: OUTPUT«/home/p6eval» | ||
15:41
soh_cah_toa joined
15:45
mberends joined
|
|||
mberends | good *, 6folk! Been working offline on 6model/c :-) | 15:46 | |
takadonet | mberends: sweet | ||
15:46
mj41_nb left
|
|||
JimmyZ | 6model on C ? | 15:47 | |
jnthn | mberends: nice :) | ||
mberends: How goes it? | |||
mberends | yes, a bit like 6model/java. It's a long haul, don't hold your breath for results yet. | 15:48 | |
15:48
soh_cah_toa left
|
|||
mberends | it goes well, I have conceptually sorted out memory management and am now working on threads | 15:48 | |
JimmyZ | threads? that's a great feature | 15:49 | |
15:50
birdwindupbird left
|
|||
mberends | all the work so far has been on bottom-up foundations, and the challenge is to ensure that it works on most of the popular C platforms. | 15:51 | |
jnthn | Awesome. | ||
eiro | a documentation about binding C/C++ libs in perl6 ? | ||
mberends | I'm testing it on Linux/gcc, Win32/msvc and Win32/Mingw | ||
eiro | i think it's more parrot centric ? | 15:52 | |
mberends | eiro: yes. github.com/jnthn/zavolaj | ||
any C library you write yourself, you can bind. Other libs, ymmv :-/ | 15:53 | ||
eiro | thanks | ||
15:54
JimmyZ left
|
|||
eiro | mberends, i see you're the author: i know where to ask if i need help :) | 15:59 | |
16:00
odoacre left,
thou left
16:01
soh_cah_toa joined
|
|||
mberends | eiro: jnthn++ is of course the author of the foundation, I wrote most of the tests and examples, which I therefore recommend ;-) | 16:01 | |
pmichaud | gist.github.com/1111820 # draft announcement for 2011.07 star release, comments welcome (especially on the first few paragraphs, which describe the upcoming plan) | ||
16:03
ab5tract left
|
|||
pmichaud | actually, look at pmichaud.com/sandbox/2011.07 instead, so that you can see the latest updates as they're made :) | 16:03 | |
moritz | +1 | ||
pmichaud: should I create a new "Using Perl 6" .pdf? | |||
colomon | pmichaud: * 10%-30% improvement in compile and execution speed | ||
* Improved compile and execution speeof 10%-30% | |||
16:04
jjore left
|
|||
moritz | pmichaud: I think I have some markup fixes | 16:04 | |
16:04
jjore_ joined
|
|||
pmichaud | moritz: that would be awesome | 16:04 | |
colomon | I know it's good news, but I don't think it needs to be said twice in a row. :) | ||
pmichaud | colomon: yes, I forgot to delete the old bullet after rewording. thanks. | ||
eiro | oh! it's a wrapper on FFI :) | ||
jnthn | For nom we should sya it like, 10 times :P | ||
pmichaud | reload with a couple of fixes | 16:05 | |
eiro | jnthn++ mberends++ perl6dev++ : it looks simple to use! | ||
jnthn | pmichaud: Maybe worth defining nom | ||
("New Object Model") | 16:06 | ||
:) | |||
16:06
cognominal_ left,
cognominal_ joined
|
|||
pmichaud | jnthn: added | 16:06 | |
moritz | pmichaud: moritz.faui2k3.org/tmp/UsingPerl6.a4.pdf | 16:07 | |
jnthn | "will have some backward-incompatibility" | ||
Sounds a bit off | |||
moritz | also with s/a4/letter/ | ||
16:07
jerome left
|
|||
jnthn | "will not be backward compatible in some areas" maybe | 16:07 | |
16:08
s1n left
|
|||
pmichaud | changed to " but also | 16:08 | |
will not be 100% backwards-compatible due to" | |||
sjn | pmichaud: "Improved compile and execution speeof 10%-30%" | 16:09 | |
also, some capitalization inconsistencies :) | 16:10 | ||
16:11
mls left
|
|||
moritz -> commute | 16:12 | ||
mberends .«nom | 16:13 | ||
dalek | kudo/nom: 00ad1de | moritz++ | src/core/Hash.pm: implement basic Hash.delete |
||
kudo/nom: 6eabc3a | moritz++ | src/core/Str.pm: remove workaround, now that we have Hash.delete |
|||
pmichaud | moritz: there should be a nqp::deletekey | 16:14 | |
(instead of pir::delete) | 16:15 | ||
s/should be/is/ | |||
sjn: updated | |||
16:16
donri joined
16:17
Holy_Cow joined
|
|||
sjn | pmichaud: new url? | 16:17 | |
pmichaud | www.pmichaud.com/sandbox/2011.07 | 16:18 | |
16:20
Holy_Cow left
16:21
MayDaniel joined
16:22
bluescreen10 left
16:25
mj41_nb joined
16:27
MayDaniel left
16:28
envi left
|
|||
colomon | moritz: S03-smartmatch/array-array.rakudo aborted 36 test(s) -- are you seeing this one? | 16:29 | |
16:30
soh_cah_toa left
|
|||
colomon | oh, ugh, ran through when I ran it alone. :( | 16:35 | |
pmichaud | colomon: I've had that happen on a couple of tests too. | 16:36 | |
I wonder if the "sometimes fails under 'make'" effects we've seen in Parrot tests are coming through in Rakudo tests now. :( | |||
colomon | wandering seg fault? | ||
I'm also seeing "non-zero exit status" errors on things that appear to work otherwise. | 16:37 | ||
TimToady | pmichaud: I wonder if it would be worth mentioning the features matrix | 16:38 | |
pmichaud | TimToady: oooh, good thought | ||
it definitely deserves a post of its own on rakudo.org | |||
but makes sense for the announcement to mention it also | |||
one difficulty is that I expect the column labels will have to change soon | 16:39 | ||
because "Rakudo master" will soon no longer be "Rakudo master" | |||
jnthn | colomon: I get loads of non-zero exit statuses here. Always have. | 16:40 | |
pmichaud | perhaps "Rakudo master" should really say "Rakudo 2011.07" | ||
colomon | jnthn: me too, which is why I usually use tools/test_summary.pl (which seems to ignore them) instead of make spectest. I was just hoping things had changed, what with nom, moritz++'s clean spectest run, and all. | 16:41 | |
pmichaud | I can either refer to the current master branch as "Rakudo ng" or as "Rakudo 2011.07". Opinions? | 16:42 | |
jnthn | ng makes more sense to me... | ||
TimToady | we use 2011.7 form on RC usually | ||
jnthn | Though hm | ||
It's not "next generation" any more | |||
It's more lg :) | |||
TimToady | ng == No Good :) | 16:43 | |
pmichaud | I'm leaning towards 2011.07, myself. | ||
jnthn | :P | ||
pmichaud | ng is Good. nom is Better. | ||
(still working on "Best") | |||
TimToady | because it doesn't implement NFG :) | ||
16:43
soh_cah_toa joined
|
|||
jnthn | Once nom is ubiquitous, multiple Rakudo columns are probably redundant. | 16:43 | |
Particularly when nom does a superset of the things master does. | |||
Which is probably not far off. | 16:44 | ||
pmichaud | yes, I expect that 2011.07 will disappear soonish | ||
moritz | colomon: array-array.rakudo works here - is your test failure reproducible? | ||
pmichaud | probably not before 2011.10, but shortly thereafter | ||
jnthn | pmichaud: OK, then I'm not so opinionated about the label :) | ||
colomon | moritz: not with my first couple of tries at reproducing it. :( | ||
moritz | colomon: there are still intermittent segfaults in nom, it seems | 16:45 | |
16:45
pernatiy left
|
|||
dalek | atures: 7cff54f | pmichaud++ | features.json: Rename "Rakudo/master" as "Rakudo 2011.07". |
16:45 | |
jnthn | TimToady: Guess NFG will need attacking in the not too distant future. | 16:46 | |
pmichaud | jnthn: I've been thinking we can do a little of that in nom | ||
jnthn | I'm probably willing to look at that, though not in the next couple of months. | ||
moritz | colomon: yesterday I golfed a segfault in assign.t for jnthn++ - I hope he can track it down eventually | ||
jnthn | pmichaud: Oh? | ||
moritz: From my initial look in the debugger, I think the fix you did in NQP this morning may have helped. | 16:47 | ||
pmichaud | jnthn: yes, I need to look at the details more. but it helps a bunch that the new regex engine is less dependent on Parrot's STRING implementation | ||
16:47
rdesfo joined
|
|||
dalek | atures: 66ab05f | larry++ | features.json: add NFG entry |
16:47 | |
moritz | jnthn: then I need to find a new segfault for you | 16:48 | |
pmichaud | qregex tends to think of "strings" as arrays of integers instead of chars | ||
jnthn | moritz: :P | ||
pmichaud: That sounds closer to what NFG wants. :) | |||
moritz: Did you bump NQP_REVISION? | |||
moritz | jnthn: yes | ||
jnthn | moritz: Building latest and checking. | 16:49 | |
Seems my @other-task are sufficiently done for today :) | |||
pmichaud | afk, lunch | 16:51 | |
dalek | ar: 39f0b00 | pmichaud++ | skel/docs/UsingPerl6-draft.pdf: Update UsingPerl6-draft.pdf . |
||
ar: c060cfc | pmichaud++ | skel/docs/announce/2011.07: Add draft 2011.07 announcement. |
|||
ar: f504bbf | pmichaud++ | Makefile: Initial Makefile updates for 2011.07 release. |
|||
16:51
soh_cah_toa left
16:52
awoodland left
16:53
dakkar left
16:56
soh_cah_toa joined
|
|||
PerlJam prepares for a storm | 16:57 | ||
16:57
wtw left
|
|||
pmichaud | PerlJam: yeah, hope Don's visit isn't too violent :) | 16:58 | |
[Coke] storms for a... I got nothing. | |||
pmichaud | PerlJam: any chance you could angle it a bit more northward? ;-) | 16:59 | |
PerlJam | to houston? :) | ||
pmichaud | well, so that it reaches Plano. | ||
I don't mind if it's a curving trajectory. | |||
PerlJam | If it swings too far north I don't think we'll get enough rain in our watershed. | 17:00 | |
pmichaud | In fact, when the storm hits Friday night, go outside and blow in a northeasterly direction. That might be enough to turn it towards us. :-) | ||
or set a bunch of fans to point to the northeast :) | |||
PerlJam | I still think its ridiculous that the campus is closing today | 17:01 | |
pmichaud | are there classes going on? | ||
PerlJam | yes. | ||
pmichaud | hmmm | ||
canceling classes probably makes sense. what time does campus close today? | |||
PerlJam | 5pm like normal. Won't be open tomorrow | 17:02 | |
pmichaud | oh, I think that's reasonable. | ||
17:02
stephanepayrard_ joined
|
|||
pmichaud | so really the campus is just closed tomorrow | 17:02 | |
PerlJam | yeah, except we're supposed to follow the hurricane preparedness stuff, so it's virtually closed today (people aren't going to be able to get a lot of work done while moving equipment around) | 17:03 | |
pmichaud | if nothing else, it's a good drill. | ||
PerlJam | that's what I keep telling myself | ||
pmichaud | nice to be able to go through it and (1) have it actually mean something and (2) without actually being a hurricane (yet) | 17:04 | |
PerlJam | pmichaud: *and* this time I'm more in the adminisphere than ever before so my total involvement it to tell other people "make it so" and to only move my own machine. | ||
17:05
thou joined
|
|||
[Coke] | is nom going to make it easier to split up the setting? | 17:05 | |
17:05
cognominal_ left
|
|||
[Coke] | (and or is there anything I can do to help on that? it's soooo slow. :( | 17:05 | |
pmichaud | [Coke]: perhaps... but I'm not sure that splitting up the setting is on our radar. | ||
it should be tons faster when I finish the new regex stuff (eta... today unless I get distracted) | |||
[Coke] | oh, I can happily wait until today. ;) | 17:06 | |
pmichaud | well, it may be tomorrow at the rate things are going here. | ||
[Coke] | NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ok. | ||
PerlJam | Doesn't nom include serialization stuff? That should help with splitting the setting. | ||
pmichaud | the primary issue is getting the lexical scope correct | ||
jnthn | moritz: Hm. That example yesterday that segv'd no longer does. | 17:07 | |
Splitting the setting would just be hiding the real problem. | |||
Plus a bunch of effort. | |||
I'm not really sure how to sanely go about it. | |||
pmichaud | jnthn: could it be done via a bunch of 'use' statements with precompiled .pbcs? | 17:08 | |
17:08
embed joined
|
|||
pmichaud | anyway, the setting is 5K lines long.... we definitely need to get ourselves to a point where compiling a 5k-line script isn't painful. | 17:09 | |
if we can't do that... well, there's little point in much of this. :) | |||
[Coke] | right, just trying to find a local minimum of pain in the meantime. | 17:10 | |
pmichaud | we'll see what the regex engine improvements hand us. | ||
PerlJam | just use niecza ;> | ||
[Coke] | something that might help is docs on how to prototype something outside of the setting. | ||
but after the regex stuff hits. ;) | |||
pmichaud | prototyping stuff outside of setting is much easier if 'augment' works :) | ||
17:11
wamba joined
|
|||
pmichaud | if you're just creating a new class or function, prototyping outside of setting is trivial. | 17:11 | |
PerlJam | pmichaud: what are the regex improvements? | ||
all speed hacks like ltm? | |||
pmichaud | PerlJam: well, qregex is a lot better about avoiding creation of gcables and probably reduces method calls by 75% | ||
[Coke] misread that as "where are..." like PerlJam was getting antsy. | |||
qriky! | 17:12 | ||
pmichaud | so, I'm expecting 75% fewer method calls, and 80% fewer gcables. Might be even more. | ||
jnthn | That's gotta help. | ||
PerlJam | [Coke]: I'm infinitely patient with rakudo right now as I have nothing that depends on it nor any expectations of cool new features :) | ||
pmichaud | then, we'll also have LTM via parallel NFA which hopefully means we'll be able to prune a lot of the false parse paths much earlier | 17:13 | |
so, I'm expecting at least a 2x-3x parsing improvement. It wouldn't surprise me if we get 10x. | 17:14 | ||
[Coke] | if it's 10x I'll buy you a six pack. ;) | 17:16 | |
pmichaud | well, at the 10x level I think we start to run into the PAST generation as the bottleneck instead of pure parsing | 17:17 | |
but yes, 10x would be awesome. | |||
17:17
masak joined
|
|||
masak | oh hai, #perl6 | 17:17 | |
pmichaud | really afk lunch this time... bbiah | 17:18 | |
[Coke] | S04-exception-handlers/catch.t seems to chew up a LOT of memory on nom. up to 6.3G resident now. | ||
(almost no cpu, but memory keeps ^^) | 17:20 | ||
jnthn | o/ masak | ||
[Coke]: CATCH is kinda busted still | |||
[Coke] | k. I just always trip on that when doing my "are things still failing as I think they are" updates. | 17:22 | |
no worries. | |||
17:23
Chillance joined
|
|||
moritz | [Coke]: I recommend ulimit | 17:24 | |
17:25
embed left
|
|||
PerlJam | ulimit++ | 17:28 | |
moritz | jnthn: fwiw the segfaulting snipped I golfed down yesterday still segfaults for me today | ||
17:28
bluescreen10 joined
|
|||
jnthn | aww | 17:31 | |
moritz: Not here with latest. Hm. | 17:32 | ||
moritz: It is gist.github.com/1109277 that you're referring to? | 17:33 | ||
(just checking :_)) | |||
moritz | yes | 17:37 | |
jnthn | OK. I'll try it now and then and hope it reappears. | 17:38 | |
17:39
[particle] left
|
|||
moritz | nom: my @p; { my $x; @p = $x ^^= 42, 43; $x ^^= 15; } | 17:40 | |
p6eval | nom: OUTPUT«Segmentation fault» | ||
moritz | jnthn: shorter, and reliable here too | ||
nom: my $x; $x ^^= 42; $x ^^= 15 | 17:45 | ||
p6eval | nom: OUTPUT«Segmentation fault» | ||
moritz | even shorter | ||
17:45
espadrine joined
|
|||
moritz | nom: my $x; $x ^^= 42; pir::say($x) $x ^^= 15 | 17:46 | |
p6eval | nom: OUTPUT«Confused at line 1, near "pir::say($"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
moritz | nom: my $x; $x ^^= 42; pir::say($x); $x ^^= 15 | ||
p6eval | nom: OUTPUT«42Segmentation fault» | ||
[Coke] | moritz: which ulimit flag to use? -m doesn't seem to have an effect. | ||
moritz | [Coke]: -v (virtual) | 17:47 | |
17:47
rdesfo left,
risou is now known as risou_awy
|
|||
[Coke] | hurm. -m seems to restrict -v also. perhaps I have an order of magnitude problem. | 17:49 | |
virtual memory (kbytes, -v) 1000000 | 17:50 | ||
that's a gig or close enough, still going out in the weeds. | |||
ah well. | |||
moritz | a gig ulimit -v works well here | 17:51 | |
nom: say log10(1000000) | |||
p6eval | nom: OUTPUT«6» | ||
17:51
[particle] joined
17:52
jan333 joined
|
|||
jan333 | perl6: say 3; | 17:55 | |
p6eval | pugs, rakudo 922500, niecza v8-3-g838bc38: OUTPUT«3» | ||
masak | Pugs, Rakudo and Niecza greet you :) | ||
17:57
jan333 left
17:58
impious joined
|
|||
jnthn | moritz: Thanks, segv here too | 17:59 | |
18:01
Kivutarrr joined
|
|||
[Coke] | nom: my @foo = 1,2; say @foo Z @foo; | 18:02 | |
p6eval | nom: OUTPUT«1 1 2 2» | ||
[Coke] | nom: my @foo = 1,2; @foo = @foo Z @foo; @foo.perl.say | 18:03 | |
p6eval | nom: OUTPUT«splice() not implemented in class 'Mu'current instr.: '_block14081' pc 537584 (src/gen/CORE.setting.pir:146678) (src/gen/CORE.setting:2614)» | ||
masak | nice! | ||
18:03
soh_cah_toa left
|
|||
masak | nom: my @foo = 1, 2; @foo = @foo Z @foo; say "alive" | 18:03 | |
p6eval | nom: OUTPUT«splice() not implemented in class 'Mu'current instr.: '_block14081' pc 537584 (src/gen/CORE.setting.pir:146678) (src/gen/CORE.setting:2614)» | ||
masak thought so | 18:04 | ||
18:05
KyleHa joined
|
|||
jnthn | splice? | 18:05 | |
18:05
soh_cah_toa joined
|
|||
masak | jnthn: it's used for cutting and pasting arrays. see 'perldoc -f splice'. | 18:05 | |
:P | |||
see? *this* is what it would be like to have an infobot on the channel. all the time. :) | 18:06 | ||
jnthn | masak: Yeah, I wondered where it was used, but guess Z uses it :P | ||
masak | jnthn: that's a safe bet. notice that it only occurs in conjunction with infix:<=>, though. | 18:07 | |
18:07
Kivutarrr left
|
|||
jnthn | Yeah, that made me curious too | 18:07 | |
18:08
benabik joined
18:09
kboga left
|
|||
jnthn | nom: enum Foo <Bar Baz>; say Baz.Numeric; say +Baz | 18:09 | |
p6eval | nom: OUTPUT«1Foo::Baz» | ||
jnthn | huh...prefix:<+> doesn't call Numeric? | ||
ah | 18:11 | ||
multi prefix:<+>(Numeric \$a) { $a } | |||
KyleHa | In Perl 5, prefix:<+> does not numify. | ||
masak | I do not like all these new backslashes in core code signatures :/ | ||
jnthn | That's probably optimalish but OTOH Baz ~~ Numeric | ||
masak | KyleHa: in Perl 6, it does. | ||
jnthn: why does Baz ~~ Numeric? | 18:12 | ||
18:12
mj41_nb left
|
|||
jnthn | masak: Because it's an Int really | 18:12 | |
masak thought it was an Enum | |||
jnthn | (yes, spec says so) | 18:13 | |
No. | |||
Spec doesn't say that. | |||
masak | ok. | ||
then, if there are things that are Ints really but can still be further numified, maybe the prefix:<+> need to be changed. :) | |||
jnthn | Guess we could add a candidate for NumericEnumeration too but I fear it'd be a tied dispatch with Numeric. | 18:14 | |
masak | nod | ||
PerlJam | KyleHa: moving between perl 6 and perl 5, prefix:<+> nummification is the thing that most trips me up | ||
(I keep expecting it to work, but it doesn't) | 18:15 | ||
masak | PerlJam: interesting. I don't have that at all. not one bit. for me, it's various parentheses and sigil variance. | 18:16 | |
benabik | PerlJam: In P5 it can be spelled -+- | ||
flussence | that's... argh. | ||
benabik | PerlJam: Or 0+ | ||
masak | or - - I guess | 18:17 | |
KyleHa | I usually spell it 0+ | ||
jnthn | nom: say 1 <=> 2 | 18:18 | |
p6eval | nom: OUTPUT«-1» | ||
PerlJam | masak: I've adequately compartmentalized those things that I know when to use (or not to use) them. But for some reason I'm always using +@foo in perl5 | ||
though ... I guess the required parens on given/when always trip me up too | 18:19 | ||
masak | PerlJam: I've compartmentalized those things too. it's just when I'm tired or inattentive that they show up again. | 18:20 | |
KyleHa | I'm nearly always tired or inattentive. | 18:21 | |
masak | PerlJam: for me it's parens on if, for, while (etc), the strange rules with print() and print (), and the seemingly necessary parens around something like (subcall())[$index] | ||
around 'subcall()', that is. | |||
PerlJam | you're just more of a Perl 6 programmer than I am. | 18:22 | |
18:22
jferrero left
|
|||
PerlJam | I still think primarily in Perl 5 terms, so all of those things seem "natural" | 18:22 | |
masak | the former two categories trip me up when I don't think about it. | ||
the last on trips me up because "hey, this oughta work", but then it doesn't :) | 18:23 | ||
why can't I do subcall()[$index] ? please, tell me. | |||
even $array[$i1][$i2] works in Perl 5. | 18:24 | ||
PerlJam | because lists are second-class citizens in Perl 5 | 18:26 | |
masak | o.O | ||
sjohnson | (=゚ω゚=) | 18:30 | |
[Coke] | nom: o.O | 18:31 | |
p6eval | nom: OUTPUT«Could not find sub &ocurrent instr.: '_block1002' pc 70 ((file unknown):21937811) (/tmp/RoG2K8mjLS:1)» | ||
18:32
Kivutarrr joined
|
|||
moritz | masak: parsing issue | 18:34 | |
masak | well, yeah. | 18:35 | |
moritz | (subcall)[1] works | ||
masak | as I said. | ||
(modulo the () after 'subcall') | |||
subcall[1] doesn't work. | |||
18:38
mls joined
|
|||
mls | The STORE method of Hash.pm contains: "for $x.list { self.STORE_AT_KEY(.key.Str, lvaue) }" | 18:39 | |
lvaue doesn't seem correct, should that be .value? | |||
masak | yeah. | 18:40 | |
lvaue is a call to a non-existent subroutine. | |||
pmichaud | back from lunch | ||
18:41
tokuhir__ joined
|
|||
dalek | kudo/nom: 56e2229 | jonathan++ | src/core/traits.pm: Make $x is readonly work on parameters. |
18:41 | |
kudo/nom: 49ede3c | jonathan++ | src/binder/multidispatch.c: Missing decontainerize in junctional argument check in the multi-dispatcher. Gets us further with the junction tests. |
|||
kudo/nom: 1aa1163 | jonathan++ | src/core/Numeric.pm: Remove an optimization that busts +SomeEnumValue. |
|||
mls | Oddly enough, fixing the type also fixes the assigning-refs.t wants 34740112 arguments bug | 18:43 | |
s/type/typo | |||
tadzik has fixed his laptop o/ | |||
I'll never laugh about duct tape again | |||
masak | good. duck tape is serious business. :) | ||
duct* | |||
mls | because there's no longer an exception thrown in the try {} block | 18:44 | |
moritz | duck typing tape | ||
mls | I still have no clue why the exception breaks things, though | 18:45 | |
dalek | kudo/nom: b420e0d | moritz++ | src/core/Hash.pm: fix typo in Hash.pm, mls++ |
18:47 | |
moritz | ok, as a result I get a test failure in assigning-ref.rakudo | 18:51 | |
but since it's similar to two other already fudged tests, I'm happy to fudge it out | |||
dalek | ast: 0b33da3 | moritz++ | S02-builtin_data_types/assigning-refs.t: rakudo fudge in assigning-refs.t |
18:52 | |
18:53
mls left
|
|||
jnthn | mls++ :) | 18:53 | |
KyleHa | How do I test whether every element in @unique_sorted is in @unsorted_stuff ? I thought @unsorted_stuff ~~ all(@unique_sorted), but it turns up false when I want true. | 18:59 | |
moritz | all(@unsorted_stuff) ~~ all(@unique_sorted) | 19:00 | |
iirc | |||
KyleHa | It seems no. I guess I'll do it the hard way. | 19:01 | |
masak | moritz: no, that would test all against all. | ||
would only be true if they were two arrays of just the same elem. | 19:02 | ||
flussence | KyleHa: by defining an infix:<⊂>? :) | ||
masak | it is defined. | ||
well, kinda. | |||
19:02
simcop2387 left
|
|||
masak | (<) is. | 19:02 | |
in core/Set.pm | |||
moritz | right, all(@a) ~~ any(@b) | ||
masak | right. | ||
flussence | rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; say 2..5 ⊂ 1..40 | 19:04 | |
p6eval | rakudo 922500: OUTPUT«No applicable candidates found to dispatch to for 'infix:<⊂>'. Available candidates are::(@a, @b) in main program body at line 22:/tmp/Yj91p0hO73» | ||
KyleHa | I think @unsorted_stuff.sort.uniq ~~ @sorted_unique | 19:05 | |
flussence | oh right, I need @-thingies there. | ||
19:05
birdwindupbird joined
|
|||
flussence | rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; my @a = 2..5; my @b = 1..40; say @a ⊂ @b | 19:05 | |
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
masak | rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; say (2..5).list ⊂ (1..40).list | ||
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
19:06
simcop2387 joined
|
|||
masak | I would expect Bool::True there. | 19:06 | |
flussence | me too | ||
rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; my @a = <2 3 4 5>; my @b = <1 2 3 4 5 6>; say @a ⊂ @b | |||
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
flussence | huh. | ||
rakudo: multi sub infix:<⊂>(@a, @b) { all(@a) ~~ any(@b) }; my @a = <2 3 4 5>; my @b = <1 2 3 4 5 6>; say all(@a) ~~ any(@b) | 19:07 | ||
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
flussence | rakudo: say all(1, 2) ~~ any(1, 2, 3) | 19:08 | |
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
flussence | rakudo: say all(1, 2) ~~ any(1, 2, 3, 1|2) | ||
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
flussence | rakudo: say all([1, 2] ~~ any(1, 2, 3)) | ||
p6eval | rakudo 922500: OUTPUT«all(Bool::True)» | 19:09 | |
flussence | rakudo: say all([1, 2, 10] ~~ any(1, 2, 3)) | ||
p6eval | rakudo 922500: OUTPUT«all(Bool::True)» | ||
dalek | ast: 13af15f | moritz++ | S02-literals/quoting.t: fudge quoting.t for rakudo |
||
19:09
lichtkind joined
|
|||
moritz | wow, t/spec/S02-literals/pairs.t is totally busted | 19:11 | |
flussence | rakudo: say none(any([1, 2, 10]) !~ any(1, 2, 3)) | ||
p6eval | rakudo 922500: OUTPUT«===SORRY!===Unsupported use of !~ to do negated pattern matching; in Perl 6 please use !~~ at line 22, near "any(1, 2, "» | ||
flussence | .oO( hm, I think this needs a different approach. ) |
19:12 | |
masak | rakudo: say all(1) ~~ any(1) | 19:14 | |
p6eval | rakudo 922500: OUTPUT«Bool::True» | ||
masak | rakudo: say all(1) ~~ any(1, 2) | ||
p6eval | rakudo 922500: OUTPUT«Bool::True» | ||
jnthn | moritz: busted? | ||
masak | rakudo: say all(1, 2) ~~ any(1, 2) | ||
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
jnthn | moritz: Regressed, or we never passed it? | ||
moritz | jnthn: the first ~20 tests assume you can pass positionals by name | 19:15 | |
jnthn | ah | ||
hm | |||
May have to shuffle some operators around in the setting | |||
(Ones that want enum Order) | 19:16 | ||
masak | ah. all(1, 2) ~~ any(1, 2) doesn't work, because it's parsed as 1&2 ~~ 1 || 1&2 ~~ 2, not 1 ~~ 1|2 && 2 ~~ 1|2 | ||
rakudo: say not none(1, 2) ~~ any(1, 2, 3) | |||
p6eval | rakudo 922500: OUTPUT«Bool::False» | ||
masak | dang :) | 19:17 | |
jnthn | Numeric.pm is too early to use an enum in the setting, it seems. | ||
The joys of bootstrapping. | |||
Guess this tells us Bool's change of becoming an enum very soon. | |||
masak | rakudo: say [and] ($_ ~~ any(1..40) for 2..5) | 19:18 | |
p6eval | rakudo 922500: OUTPUT«Bool::True» | ||
masak | \o/ | ||
jnthn suspects it can't be one. enums are too complex for something so low level. | |||
masak | isn't Bool already an enum in Niecza? | ||
jnthn | masak: Dunno. | 19:19 | |
niecza: BEGIN { say "ok" }; blah$%59fna93!!!syntax error | 19:20 | ||
p6eval | niecza v8-3-g838bc38: OUTPUT«===SORRY!===Confused at /tmp/ILn7_cEe6q line 1:------> BEGIN { say "ok" }; blah⏏$%59fna93!!!syntax errorUndeclared routine: 'blah' used at line 1Parse failed» | ||
jnthn | nom: BEGIN { say "ok" }; blah$%59fna93!!!syntax error | ||
p6eval | nom: OUTPUT«okConfused at line 1, near "blah$%59fn"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
jnthn | Yeah, Niecza doesn't (yet) seem to have to deal with begin time in the same way nom does. | 19:21 | |
We could get away with more in master by not doing so also. | |||
masak | jnthn: does what you said earlier imply that Bool::True ~~ Int ? :/ | ||
jnthn | masak: Only if Bool is an enum, which is something that more people than just me are not convinced of. | 19:22 | |
masak: And even then it could define a different base type. | |||
masak | S12:1959: our enum Bool does Boolean <False True>; | ||
not sure what that implies about Int-ness. | 19:23 | ||
19:23
daxim left
|
|||
jnthn | That'd imply Int-ness. | 19:23 | |
masak | hm. | ||
jnthn | look for | 19:24 | |
Fri ~~ Int # True, because derived from Int | |||
It's fine that enum elements are their base type. | |||
It's maybe not fine that Bool ~~ Int though. | |||
But it's maybe also not fine that implementors have their hands tied so much about how they implement something so primitive as booleans. | |||
19:25
cryptographrix joined
|
|||
masak | I wouldn't know -- I haven't tried implementing Bool as an enum. | 19:25 | |
moritz | would it turn to not have Bool an enum, but provide all the methods that enums have? | ||
19:25
cryptographrix left
|
|||
moritz | s/turn/hurt/ | 19:25 | |
masak | not if you ask me. | 19:26 | |
jnthn | moritz: If done late enough, the enum-ish roles could also be included. | ||
oh heh | |||
That'd be a backdoor way to do it :) | |||
masak | sure, why not? | ||
jnthn | Well, maybe there's a sane way to chop this one up with the circularity saw. It just lookes painful. | ||
masak: It'd not have EnumHOW as its HOW then I guess... | 19:27 | ||
oh | |||
moritz | nom: say (package => 1).key | ||
p6eval | nom: OUTPUT«Malformed $*PKGDECL at line 1, near "=> 1).key"current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)» | ||
jnthn | no, we can'd do that. | ||
masak | awww | ||
jnthn | Because we have to instantaite bool | ||
*Bool | |||
masak | right. | ||
jnthn | Before we'd get to add the roles | ||
Which contain attributes. | |||
masak | jnthn: if you could *show* that this is somehow impossible... | ||
jnthn | masak: Impossible may be a little strong. Painful may be easier. :) | 19:28 | |
masak: I can just see it being painful for every implementor, that's all. | |||
And I'm not sure what users win from Bool being an enum. | |||
pmichaud | I don't think that Bool ~~ Int | 19:31 | |
sorear | fwiw, niecza doesn't have anything like an 'EnumHOW' | ||
in niecza, enums are desugared to classes almost immediately | |||
pmichaud | many years ago, TimToady++ once said on the mailing list that Bool was more like a bit1 | ||
or int1 | |||
masak | pmichaud: int1, the 0 or -1 one? :P | ||
pmichaud | masak: yes. :-) | 19:32 | |
masak | pmichaud: that'd screw up ++ and -- :) | ||
jnthn | Note that int1 ~~ Int. | ||
pmichaud | well, Bool.succ and Bool.pred are specially defined anyway | ||
masak | heh :) | ||
sorear | -1 to non-transitive ~~ | ||
jnthn | nom: say int ~~ Int | ||
p6eval | nom: OUTPUT«Bool::False» | ||
jnthn | huh. | ||
masak | sorear: agreed. | ||
jnthn | nom: say int.isa(Int) | 19:33 | |
p6eval | nom: OUTPUT«No method cache and no find_method method in meta-objectcurrent instr.: '_block1002' pc 77 ((file unknown):523) (/tmp/YnvTELM2qh:1)» | ||
jnthn | Oh. | ||
pmichaud | in some ways, Bool ~~ Int implies some level of surprise. | ||
sub xyz(Int $x) { ... }; say xyz(Bool::True); | |||
dalek | kudo/nom: 19c000b | moritz++ | t/spectest.data: run two more test files |
||
jnthn | pmichaud: Yeah, I don't like that either. | ||
pmichaud | thus far I think I'm firmly in the camp of "Bool is not an enum" | 19:34 | |
what are the reasons for having it be an enum, ooc? | |||
sorear | I'm not firmly in any camp, but I like having the enum tools | ||
Bool("True") is awesome | 19:35 | ||
19:37
cryptographrix joined
19:38
Tedd1 joined
|
|||
flussence | rakudo: my @a = a => 1, b => 2; say @a.perl; say @a.hash.perl; say @a.perl; | 19:38 | |
p6eval | rakudo 922500: OUTPUT«["a" => 1, "b" => 2]{"a" => 1, "b" => 2}[]» | ||
flussence | ^ | ||
19:38
birdwindupbird left
|
|||
flussence | @a.hash is eating @a... | 19:39 | |
pmichaud | nom: my @a = a => 1, b => 2; say @a.perl; say @a.hash.perl; say @a.perl; | ||
p6eval | nom: OUTPUT«Array.new("a" => 1, "b" => 2)("a" => 1, "b" => 2).hashArray.new()» | ||
masak | I'm firmly in the "Bool is an enum". because it has all the characteristics of one. | 19:40 | |
sorear | masak: the issue at stake is "Bool ~~ Int" | ||
masak | yes, I see that. I raised that issue. | ||
pmichaud | well, and some circularity sawing. | ||
sorear | pm likes strong typing and wants to make 1 + (3 > 2) die | ||
pmichaud | not at all | 19:41 | |
there can still be a Bool.Numeric | |||
masak | sure. | ||
pmichaud | what I said above doesn't say anything about 1 + (3 > 2) dying | ||
masak | sorear likes hyperbole and wants to put words in people's mouths :P | 19:42 | |
pmichaud | I've noticed. :) | ||
19:42
bluescreen10 left
|
|||
pmichaud | in fact, I snapped a photo of it this last weekend while in philadelphia | 19:42 | |
masak | a photo of a hyperbole? :D | ||
pmichaud | picapicasaweb.google.com/lh/photo/uPbe...directlink | 19:43 | |
er | |||
picasaweb.google.com/lh/photo/uPbe...directlink | |||
masak | :) | 19:44 | |
19:46
kaare_ left
|
|||
masak submits the @a.hash eats @a bug above | 19:46 | ||
19:47
nebuchadnezzar left
|
|||
moritz | nom: my @a = <bacon bacon>; @a.hash; say @a | 19:47 | |
p6eval | nom: OUTPUT«» | 19:48 | |
moritz | anti-double-bacon bug! | ||
pmichaud | fix coming | ||
jnthn | If only tadzik had done both... :) | ||
19:48
maja joined
|
|||
pmichaud wonders when we get to the double-bacon-lol-cheezburger bug. | 19:49 | ||
masak | any day now. | ||
and then we can cool off with a hot snowman-comet bug. | 19:50 | ||
19:50
maja left
|
|||
sorear is stunned by this accusation | 19:51 | ||
masak | sorear: sometimes it's hard to know how seriously you take things, or mean things. | ||
partly due to the textual format, of course. partly because we haven't met AFK. | 19:52 | ||
tadzik | oh :) | 19:53 | |
flussence | rakudo: my @a = [1,2,3], 1..3; say @a.perl | 19:54 | |
p6eval | rakudo 922500: OUTPUT«[[1, 2, 3], 1, 2, 3]» | ||
flussence | how do I write that so +@a == 2? | ||
pmichaud | > my @a = a => 1, b => 2; say @a.perl; say @a.hash.perl; say @a.perl | ||
Array.new("a" => 1, "b" => 2) | |||
("a" => 1, "b" => 2).hash | |||
Array.new("a" => 1, "b" => 2) | |||
flussence | yay | 19:55 | |
masak | rakudo: my @a = [1, 2, 3], [1..3]; say +@a | ||
p6eval | rakudo 922500: OUTPUT«2» | ||
flussence | oh, that makes sense :) | ||
moritz | rakudo: my @a = [1, 2, 3], my $ = 1..3; say @a[1].WHAT | ||
p6eval | rakudo 922500: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp» | ||
moritz | rakudo: my @a = [1, 2, 3], my $ = (1..3); say @a[1].WHAT | ||
p6eval | rakudo 922500: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp» | ||
19:56
shinobicl joined
|
|||
moritz | nom: my @a = [1, 2, 3], my $ = (1..3); say @a[1].WHAT | 19:56 | |
p6eval | nom: OUTPUT«Int()» | ||
moritz | nom: my @a = [1, 2, 3], my $ = (1..3); say @a.perl | ||
p6eval | nom: OUTPUT«Array.new(1, 2)» | ||
moritz | wtf? | ||
nom: my @a = [1, 2, 3], (my $ = (1..3)); say @a.perl | 19:57 | ||
p6eval | nom: OUTPUT«Array.new([1, 2, 3], 1..3)» | ||
pmichaud | precedence, likely. | ||
moritz | right | ||
that's what I wanted to do | |||
nom: my @a = [1, 2, 3], (my $ = (1..3)); say @a[1].WHAT | |||
p6eval | nom: OUTPUT«Range()» | ||
moritz | that way you can preserve the ranginess | ||
19:57
bluescreen10 joined
|
|||
pmichaud | nom: my @a = [1,2,3], $(1..3); say @a[1].WHAT | 19:57 | |
p6eval | nom: OUTPUT«Range()» | ||
pmichaud | easier. | ||
moritz | nom: my @a = [1, 2, 3], (my $ = (1..3)); say eval(@a.perl).perl | 19:58 | |
19:58
shinobicl_ joined
|
|||
p6eval | nom: OUTPUT«Array.new([1, 2, 3], 1, 2, 3)» | 19:58 | |
moritz | bug? | ||
shinobicl_ | i just installed rakudo from git. but when i run perl6 from other place than $HOME/rakudo, it gives the error : PARROT VM: Could not load bytecode Could not load oplib `perl6_ops' | ||
moritz | shinobicl_: did you 'make install'? | ||
tadzik | did you 'make install'? | ||
shinobicl_ | i have $HOME/rakudo in my $PATH | ||
moritz | nom: say (my @a = (1..3).item).perl | 19:59 | |
p6eval | nom: OUTPUT«Array.new(1..3)» | ||
masak | shinobicl_: did you 'make install'? | ||
shinobicl_ | oops.. that fixes it, sorry... and thanks :) | ||
tadzik | ok, since there's a crowd... | ||
19:59
nebuchadnezzar joined
|
|||
pmichaud | moritz: yes, looks like some sort of bug. | 20:00 | |
tadzik | so, any further comments on irclog.perlgeek.de/perl6/2011-07-28#i_4180407 maybe? | ||
20:00
shinobicl left
|
|||
tadzik | (up to 13:27) | 20:00 | |
dalek | kudo/nom: 118befb | pmichaud++ | src/core/Hash.pm: Make sure that Hash.STORE doesn't consume the thing it's storing. |
20:02 | |
20:06
AndroUser2 joined
|
|||
masak | tadzik: I can't extract much from that discussion, sadly. would it be too much to ask for a gist with a clear example or two, highlighting the issue(s)? | 20:08 | |
20:09
cryptographrix left
|
|||
tadzik | sure | 20:09 | |
yesterday's demo: wklej.org/id/567822/ | 20:10 | ||
more detailed one coming... | |||
jnthn | iiuc, it's about how #= gets associated with the thing it's documenting. | ||
masak | yes, I got that bit. | ||
I also understood that it's tricker than I'd thus far assumed :) | 20:11 | ||
20:11
AndroUser2 left
|
|||
jnthn has had it in the back of his mind and didn't come up with a clean answer yet. | 20:11 | ||
Mostly becuase | |||
#= blah blah awesomeness | |||
class Beer { | |||
} | |||
Is another way to do | |||
class Beer { | |||
#= blah blah awesomeness | |||
} | |||
Or something | |||
masak | hm. | ||
jnthn | Or certainly it's true that | 20:12 | |
#= oh lol | |||
20:12
pernatiy joined
|
|||
jnthn | has $!clown; | 20:12 | |
20:12
araujo left
|
|||
jnthn | is possible as well as | 20:12 | |
has $!clown; #= oh lol | |||
pmichaud | I thought we had discussed the possibility of having specialized markers to indicate whether the comment was for the declaration before or the declaration after | ||
masak | would it help if we spec'd the splitting-up of those two into two different "twigils" right away? | ||
pmichaud: right. | |||
jnthn | masak: Yes | ||
masak | we certainly concluded that that would be better. | 20:13 | |
jnthn | #< document that thingy | ||
#\/ document that thingy | |||
:) | |||
masak | :P | ||
tadzik | gist.github.com/1112434 | ||
masak thought it was #^ and #=, but isn't sure | |||
TimToady | #> and #< would be symmetrical | ||
pmichaud | I'd prefer #> and #<, myself, reserving #= for something else possibly (maybe the dwimmy version when we figure it out) | 20:14 | |
TimToady | though maybe it'd have to be #v and #< | ||
masak | would #< really work? | 20:15 | |
what with #< ... >, I mean. | |||
TimToady | #`<> | ||
masak | oh right. | ||
good call :) | |||
TimToady | but it could be confusing | ||
pmichaud | #=< and #=> are available | 20:16 | |
masak | waitwait. | ||
TimToady | #∥ and #= | ||
masak | before we have this discussion, *again*... :) | ||
pmichaud | #=+ and #=- too :) | ||
masak | can't we just look at the last time? | ||
we did bikeshed quite thoroughly back then. | |||
pmichaud | masak: I'm just waiting for you to locate + post the link | ||
masak | oh! | ||
:) | |||
masak locates | |||
TimToady sneaks off to work on his talk again | |||
pmichaud | until then, we can fill empty space with more bikeshedding and brainstorming :) | 20:17 | |
masak | TimToady: good luck! hope to hear a reprise at YAPC::EU! :) | ||
pmichaud (and others): irclog.perlgeek.de/perl6/2010-06-18#i_2453678 | 20:18 | ||
pmichaud | nom: say "./perl6".IO.x | ||
p6eval | nom: OUTPUT«Bool::True» | ||
masak | it's nice to have a word-based brain when searching logs :) | ||
20:18
araujo joined
|
|||
pmichaud | looks like previous bikeshedding settled on #| (after) and #= (before) | 20:21 | |
i.e., #| documents the next decl, #= documents the previous one | 20:22 | ||
nom: say "./perl6".IO.d | |||
p6eval | nom: OUTPUT«Bool::False» | ||
pmichaud | nom: say "./perl6".IO ~~ :d | ||
p6eval | nom: OUTPUT«Bool::False» | ||
pmichaud | nom: say "./perl6".IO ~~ :x | ||
p6eval | nom: OUTPUT«Bool::True» | ||
jnthn | nom: say "./".IO.d | ||
p6eval | nom: OUTPUT«Bool::True» | ||
sorear | That is what I remember of the discussion too. | ||
jnthn | nom: say "/".IO.d | ||
p6eval | nom: OUTPUT«Bool::True» | ||
jnthn | nom: say "/doesn't-exist".IO.d | ||
p6eval | nom: OUTPUT«stat failed: No such file or directorycurrent instr.: 'd' pc 558756 (src/gen/CORE.setting.pir:155599) (src/gen/CORE.setting:3854)» | ||
pmichaud | nom: say "/doesn't-exist".IO.e | 20:23 | |
p6eval | nom: OUTPUT«Bool::False» | ||
pmichaud | nom: say "/doesn't-exist".IO.f | ||
p6eval | nom: OUTPUT«stat failed: No such file or directorycurrent instr.: 'f' pc 558862 (src/gen/CORE.setting.pir:155643) (src/gen/CORE.setting:3862)» | ||
pmichaud | nom: say "/doesn't-exist".IO.w | 20:24 | |
p6eval | nom: OUTPUT«Bool::False» | ||
pmichaud | nom: say "/doesn't-exist".IO.r | ||
p6eval | nom: OUTPUT«Bool::False» | ||
pmichaud | nom: say "/doesn't-exist".IO.s | ||
p6eval | nom: OUTPUT«stat failed: No such file or directorycurrent instr.: 's' pc 559065 (src/gen/CORE.setting.pir:155699) (src/gen/CORE.setting:3876)» | ||
pmichaud | (fixing) | 20:25 | |
20:31
Vlavv` joined
20:32
uvtc joined
20:33
Vlavv_ left
|
|||
uvtc | Anyone know if there's videos available for any Perl 6 -related OSCON talks? | 20:33 | |
pmichaud | uvtc: no, I don't know. in the past I don't think any of OSCON's Perl 6 talks have made it to public video | 20:34 | |
uvtc | On the main oscon page, I clicked on the gray "VIDEOS" link/area at the bottom of the streaming video, and there are some listed. Did not see Damian's there though. | 20:35 | |
Thanks for the info, pmichaud. | 20:36 | ||
Do you know if Larry's SOTO will be available? | |||
sorear | TimToady, uvtc wants to know if the SOTO will be available online | 20:38 | |
uvtc | Wait a sec. Is this the first SOTO in a while? The ones listed at www.perlfoundation.org/perl6/index...._oniononly go until 2007... | 20:41 | |
pmichaud | there have been soto's every year since 2007 | ||
they haven't always been transcribed | |||
uvtc | Ah. | ||
pmichaud | and the perlfouncation.org page is likely out of date | 20:42 | |
[Coke] sighs. | |||
20:42
molaf left
|
|||
uvtc | TimToady: excited about this year's SOTO, but I'm not at OSCON. Hoping it's made available online. | 20:44 | |
TimToady | dunno, last few years have been more in the category of live demos | 20:45 | |
[Coke] | STII:: the wrath oscooooooooon. | ||
flussence | so, er, I went and wrote «⊂ ⊃ ⊄ ⊅ ⊆ ⊇ ⊈ ⊉» infixes: github.com/flussence/Mathematical-Operators | ||
masak | 'night, #perl6ers. | 20:46 | |
20:46
shinobicl_ left
|
|||
flussence | o/ | 20:46 | |
20:46
masak left
|
|||
moritz | \o | 20:46 | |
tadzik | flussence: is it already in the ecosystem? | 20:47 | |
uvtc | TimToady: Thanks. If I don't see it anywhere, will ask around for a summary of it. | ||
jnthn | pmichaud: ping | ||
flussence | tadzik: I only uploaded it just now so no :) | ||
tadzik | very nice :) | ||
20:50
dorlamm joined,
Jackneill left
|
|||
dalek | ast: 1395cad | moritz++ | S02-literals/pairs.t: rewrite pairs.t to conform to current spec |
20:51 | |
pmichaud | jnthn: pong | ||
(nfa/qregex is going to have to be tomorrow... too many house distractions here today) | 20:52 | ||
jnthn | pmichaud: Seems return 1,2,3; does not yet work - known? | 20:53 | |
pmichaud | aha! we can solve the debt ceiling by finding a couple of coins in the couches! nymag.com/daily/intel/2011/07/trill...alkin.html | 20:54 | |
jnthn | pmichaud: Just ran into it after fixing the other reason recurse.t fails. | ||
pmichaud | jnthn: in nom? | ||
jnthn | pmichaud: aye | ||
pmichaud | nom: sub f() { return 1,2,3; }; say f().WHAT | 20:55 | |
p6eval | nom: OUTPUT«Rebuild in progress» | ||
pmichaud | nom: sub f() { 1,2,3; }; say f().WHAT | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
pmichaud | grr | ||
looking. | |||
jnthn has one in progress too :) | |||
pmichaud | yeah, it's a bug in &return | 20:56 | |
moritz | speaking of bugs... | ||
pmichaud | fixing. | ||
jnthn | pmichaud: thanks :) | ||
moritz | nom: say 42 &[+] 24 | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
moritz | locally that say all(42, 24) | ||
jnthn | rakudo: say 42 &[+] 24 | ||
p6eval | rakudo 922500: OUTPUT«all(42, 24)» | 20:57 | |
jnthn | ah, not a regression | ||
Just a mis-parse. | |||
pmichaud | parse bug | ||
jnthn | Yeah, I can see what it's doing. | ||
Not sure if we actually have the stuff to parse &[+] in the grammar though. | |||
moritz doesn't see it | 20:58 | ||
jnthn | Does it always mean infix:<+>? | ||
jnthn has some weird memories of it being fluffier. | |||
moritz | if it parses & as an infix, and the [+] as term after it, shouldn't the 24 be TTIAR? | ||
jnthn: I think it's "only the arity-2 candidates of infix:+" or so | 20:59 | ||
jnthn | [+] is being parsed as the reduction operator | ||
pmichaud | the [+] is being par.... what jnthn++ said | ||
jnthn | And 24 as an argument to that. | ||
moritz | ah | ||
jnthn | moritz: Only the arity two ones? Whoa. :) | ||
jnthn wonders how to best implement that. | 21:00 | ||
moritz | jnthn: don't take my word for it | ||
dalek | ast: 7761c24 | moritz++ | S (2 files): some nom fudges |
21:04 | |
atures: e271948 | larry++ | features.json: code for multi methods |
|||
21:05
dorlamm left
|
|||
jnthn feels like he returned from vacation but his brane is still somehow on it | 21:06 | ||
[Coke] | jnthn: I think that's how my brain feels all the time now. :P | 21:08 | |
jnthn | :P | ||
uvtc | [Coke]: I find that some vigorous exercise tends to wake my brain up. Trouble is convincing it that the exercise is a good idea. | 21:09 | |
dalek | kudo/nom: 29058a9 | jonathan++ | src/Perl6/Actions.pm: &?ROUTINE |
||
kudo/nom: 1c335ac | jonathan++ | src/core/Routine.pm: Support Routine.assuming as well as master did (some day we may want to do some magic with generating an updated signature and some such, but that's teh tricky). |
|||
kudo/nom: 5161c8b | jonathan++ | t/spectest.data: Two more passing test files. |
|||
uvtc | When one pushes to github, and dalek tells irc about it, how does it determine which name to use? For example, | 21:14 | |
jnthn's github username seems to be jnthn, and his real name is there too, but dalek calls him jonathan (see above). | 21:15 | ||
tadzik | parrot/CREDITS | ||
[Coke] | there's a CREDITs file somewhere. | 21:16 | |
tadzik++ | |||
uvtc | Ah, thanks, tadzik. | 21:18 | |
21:20
bluescreen10 left
21:23
timbunce left
21:26
[Coke] left,
uvtc left
21:27
[Coke] joined
|
|||
pmichaud | the return fix is going to take a bit | 21:39 | |
jnthn | pmichaud: I glanced at it and thought "hmm, how to efficiently do this" | 21:40 | |
pmichaud | yeah | ||
jnthn | oh | ||
Isn't there a way to get the arguments parcel... | 21:41 | ||
pmichaud | there's a way to get the arguments RPA, yes. | ||
but if it's a single element, you need to unpack it | |||
jnthn | ah | ||
pmichaud | and if it's zero elements, it needs to be nil | ||
*Nil | |||
jnthn | ah, non-trivial. | 21:42 | |
pmichaud | and I'm looking for a way to do that without copy+paste the code each time, and without incuring an extra function call overhead each time. | ||
jnthn | dynop :P | ||
pmichaud | yeah, I'm considering that option too. | ||
jnthn | (Getting the arguments RPA already is one anyway...) | ||
pmichaud | oh, that's true. | ||
would probably want to pass Nil as an operand | 21:43 | ||
rather than try to look it up | |||
(Nil isn't bootstrapped at the moment, iirc.) | |||
dalek | atures: f0652f5 | pmichaud++ | features.json: Nom has filetest methods. |
21:45 | |
21:45
impious left
|
|||
jnthn | Yeah, as an operand is fine. | 21:46 | |
dalek | ast: 498ffb2 | jonathan++ | S06-routine-modifiers/scoped-named-subs.t: Bring a test up to latest spec on our names. |
||
21:47
Patterner left
|
|||
dalek | kudo/nom: b0a7bcd | jonathan++ | t/spectest.data: One more passing test file. |
21:48 | |
kudo/nom: d9d0d00 | pmichaud++ | src/core/IO.pm: Fix filetest operators for non-existent files. |
|||
21:48
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
dalek | ast: 02418cf | jonathan++ | S06-multi/syntax.t: Correct a test that relied on the old Int ~~ Num semantics. |
21:51 | |
jnthn | std: Multi | ||
p6eval | std 516268a: OUTPUT«ok 00:01 118m» | ||
21:53
KyleHa left
21:55
Vlavv_ joined
21:58
Vlavv` left
22:01
Kivutarrr left
|
|||
dalek | ast: 340e9d4 | jonathan++ | S06-multi/syntax.t: A fudge for nom. |
22:02 | |
22:03
drbean joined
22:05
shinobicl joined
|
|||
dalek | kudo/nom: c2794a4 | jonathan++ | src/core/Routine.pm: Routine.candidates |
22:05 | |
kudo/nom: 333a91f | jonathan++ | t/spectest.data: Run S06-multi/syntax.t. |
|||
jnthn | nom: say NaN ~~ NaN | 22:08 | |
p6eval | nom: OUTPUT«Bool::False» | ||
jnthn | perl6: say NaN ~~ NaN | ||
p6eval | rakudo 922500: OUTPUT«Bool::True» | ||
..pugs: OUTPUT«1» | |||
..niecza v8-3-g838bc38: OUTPUT«Bool::False» | |||
22:10
shinobicl left
|
|||
dalek | ast: 7d3cc6e | jonathan++ | S06-multi/type-based.t: A couple of spec updates to S06-multi/syntax.t. |
22:12 | |
22:16
shinobicl joined
22:22
kboga joined
|
|||
shinobicl | rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; $T.assign("stuff"); if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is $T.data" }; | 22:23 | |
p6eval | rakudo 922500: OUTPUT«Your data is Thing()<0x427e438>.data» | ||
shinobicl | rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is $T.data" }; | 22:24 | |
p6eval | rakudo 922500: OUTPUT«You have no data yet» | ||
shinobicl | how is that i can evaluate $T.data in the 'if' but can't show it as "say $T.data"? | 22:25 | |
flussence | rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; $T.assign("stuff"); if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is {$T.data}" }; | ||
p6eval | rakudo 922500: OUTPUT«Your data is stuff» | ||
dalek | ast: 666e44c | jonathan++ | S12-methods/defer-call.t: Update defer-call.t to match latest proto/multi semantics. |
22:26 | |
ast: 266464f | jonathan++ | S12-methods/defer-next.t: Update defer-next.t to match latest proto/multi semantics. |
|||
shinobicl | rakudo: class Thing { has Str $.data is rw = 'no data'; method assign(Str $newdata) {$.data = $newdata}; }; my $T = Thing.new; if ($T.data eq 'no data') { say "You have no data yet" } else { say "Your data is " ~ $T.data }; | ||
p6eval | rakudo 922500: OUTPUT«You have no data yet» | ||
shinobicl | thanks flussence :) | 22:27 | |
dalek | kudo/nom: 764d2f9 | jonathan++ | src/core/traits.pm: A couple more trait handlers (though nothing yet answers them). |
22:40 | |
kudo/nom: 075104d | jonathan++ | t/spectest.data: Two more passing test files. |
|||
22:41
jferrero joined
|
|||
dalek | kudo/nom: 9246ce6 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Add logic to attribute meta-object so it may be explicitly marked readonly, and able to default itself to rw if it wasn't marked readonly. |
22:50 | |
kudo/nom: 0ca6dad | jonathan++ | src/Perl6/Metamodel/ (2 files): Implement rw handling for types in AttributeContainer role; also factor attribute composition into that role to take a little more bulk out of ClassHOW. |
|||
kudo/nom: caf5d1a | jonathan++ | t/spectest.data: Run S12-class/rw.t. |
|||
23:11
shinobicl left
|
|||
lichtkind | thou: cheers | 23:21 | |
thou | hola | 23:23 | |
jnthn | eek, I just tried to declare a struct element in C with the "has" keyword... :/ | 23:26 | |
23:27
thou left
23:29
orafu left
23:30
orafu joined
23:36
impious joined
23:43
wamba left
|
|||
kboga | :) | 23:45 | |
wow the argv go a long way from perl6.c | 23:47 | ||
dalek | kudo/nom: b05b391 | jonathan++ | LHF.markdown: Update LHF; remove a dupe entry...nice as minmax op would be, it only needs to be listed once. :-) |
23:48 | |
kudo/nom: 5d31774 | jonathan++ | src/ (3 files): Allow state declarator and pass along a flag to the lexpad when something is state scoped. |
|||
kudo/nom: 24c07b6 | jonathan++ | src/Perl6/Grammar.pm: Re-enable state scope declarator, in preparation for restoring state var functionality. |
|||
kudo/nom: 2d89f4a | jonathan++ | src/Perl6/Actions.pm: Need action method for state scope declarator also. |
|||
sorear | kboga: perl6.c is a generated file | 23:49 | |
23:51
whiteknight joined
|
|||
kboga | still, it passes the argv to parrot somehow no? | 23:51 | |
nom: say nqp::p6box_s(nqp::atpos(nqp::atpos(pir::getinterp, pir::const::IGLOBALS_ARGV_LIST), 0)); # $*PROGRAM_NAME, but pir isn't allowed here right? | 23:53 | ||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
kboga | that’s a way to get the $*PROGRAM_NAME but master does it differently | 23:55 | |
say @*ARGS | |||
nom: say @*ARGS | |||
p6eval | nom: OUTPUT«Rebuild in progress» | ||
kboga | rakudo: say @*ARGS | ||
p6eval | rakudo 922500: OUTPUT«» | ||
kboga | right, interactive mode =/ | 23:56 | |
rakudo: say $*PROGRAM_NAME; # 'interactive' ? | |||
p6eval | rakudo 922500: OUTPUT«/tmp/dGhcSuttZH» | ||
sorear | kboga: please explain what you are trying to accomplish | 23:58 | |
perl6.c is generated by parrot's pbc_to_exe | |||
perl6 X Y Z == parrot perl6.pbc X Y Z | |||
the main command line parsing is done by HLL/Compiler.pir in the NQP repo |