»ö« 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! | Rakudo Star Released! Set by diakopter on 6 September 2010. |
|||
dalek | ecza/mm: 1230f2e | sorear++ | / (5 files): [mm] Implement compilation of settings |
00:01 | |
ecza/mm: 8b3c3db | sorear++ | src/ (3 files): [mm] Implement compilation of modules which use settings |
|||
00:05
snarkyboojum joined
00:07
pythonian4000afk is now known as pythonian4000
00:09
stkowski left
00:14
redicaps joined
00:20
snarkyboojum left
00:25
am0c^ joined
00:35
ashleydev joined
00:38
thowe left
00:40
redicaps left
00:53
QinGW joined
00:54
snarkyboojum joined
00:56
nymacro joined
01:00
Chillance left
01:10
nymacro left
01:23
redicaps joined
01:25
snarkyboojum left
01:41
mavrc left,
molaf__ joined
01:44
molaf_ left
01:45
aloha left
01:51
aloha joined
02:03
LaVolta joined
02:10
snarkyboojum joined
02:15
snarkyboojum left,
nymacro joined
02:19
Italian_Plumber left
02:25
jaldhar left
02:34
leprevost joined
02:37
redicaps left
02:38
jaldhar joined
03:07
leprevost_ joined
|
|||
sorear | good * #perl6 | 03:08 | |
03:13
meppel joined
03:14
gottreu_ joined
03:17
meppl left
03:19
molaf__ left,
meppel is now known as meppl
03:25
LaVolta left
03:27
mfollett joined
03:28
leprevost_ left
|
|||
sorear | \o/ niecza/mm can now run setting-using code "hello, world".say | 03:30 | |
03:36
LaVolta joined
03:42
pythonian4000 is now known as pythonian4000afk,
LaVolta left
|
|||
ash_ | sorear: i was thinking about see if it was possible to somehow keep all the fires that make up core.pm as their individual files instead of just concatenating them together, then compiling each file individually into a pir, then compile each of the pir's into pbc's and finally using pbc_merge | 03:43 | |
sorear | ash_: it's a cute idea, but it won't work. The setting has to be a single parrot Sub | 03:47 | |
ash_ | why? | ||
could there not be a setting's module that you can append to later on? like how you can always say GLOBAL:: | 03:48 | ||
sorear | ash_: because set_outer only takes one argument | ||
ash_: the setting is NOT a module, this is a crucial point | |||
the setting is a Sub which user code is inside of | |||
ash_ | so, your saying all of the initialization that happens in core.pm needs to happen lexically outside of the user code? | 03:49 | |
sorear | yes | ||
Something can be done, I'm sure, but you'll need a much bigger hammer than pbc_merge | 03:50 | ||
probably, a custom LexPad instance will be required | |||
ash_ | ya, sounds like it | ||
sorear | talk to pmichaud FIRST | ||
ash_ | doesn't everything get added to GLOBAL? from core.pm? | 03:51 | |
sorear | NO! | ||
ash_ | ah | ||
sorear | read S02:2590 | 03:52 | |
ash_: the REPL can extend a single lexical scope | |||
you should study it | 03:53 | ||
also, get pmichaud to commit to accepting your idea before you write the patch; I forgot this step the last time I implemented core splitting | |||
ash_ | oh, that reminds me of a repl bug, you might have more ideas about it than me, in a repl do: my $*a; <enter> then: say $*a; | ||
03:54
gottreu_ left
03:58
ggoebel left
|
|||
ash_ | so, if you do: use SETTING_MODE; # that's in rakudo already to specify the start of SETTING, could you make that comp_unit append to a special LexPad that was the SETTING scope LexPad? does that sound reasonable? | 03:59 | |
03:59
LaVolta joined
04:01
satyavvd joined
|
|||
araujo | ideone.com/HloeA | 04:07 | |
I guess, '+ [ 1 ] [ 3 ] => [ 1 3 ] , + [ 2 ] 4 => [ 2 4 ]' ... those operations make sense, though I wonder if it either makes sense for '+ 2 [ 4 ]' to return the index sum or a list with 2 added to each element ... :/ | 04:09 | ||
sorear | ash_: "reasonable" is a rather high bar to shoot for | ||
04:09
gottreu_ joined
|
|||
ash_ | well, i'd start with reasonable then move to practical | 04:11 | |
what is that written in? the ideone.com thing | |||
oh, it says at the top, erlang, nm | |||
araujo | ash_, hehe, it is a small language i write | 04:12 | |
I just pick erlan as the syntax highlight | |||
:P | |||
ash_ | oh, got ya | ||
sorear | ash_: start with working, then move to reasonable | 04:13 | |
ash_ | sorear: just making sure the idea sounds good, if the idea doesn't make sense, then i need to think more | ||
sorear | ash_: it doesn't make less sense than what we already have, that would be hard | 04:14 | |
04:14
gottreu_ left,
envi joined
|
|||
araujo | even though I got quicksort working, I still can't find a name for this .... -_- ... so if anyone has an idea, let me know | 04:14 | |
ash_ | araujo: which this? | 04:16 | |
araujo | ash_, oh, the language | 04:18 | |
04:19
rbuels joined
04:21
snarkyboojum joined
04:24
flussence left
04:26
snarkyboojum left,
felipe joined
04:27
am0c^ left
04:28
ascent_ left
04:37
tadzik joined
|
|||
tadzik | good morning | 04:37 | |
sorear | hello tadzik | 04:38 | |
diakopter | anyone know offhand where's the new place to put botnix paths | 04:39 | |
aka dalek | 04:40 | ||
04:40
am0c^ joined
|
|||
diakopter | aka Infinoid hilite | 04:40 | |
sorear | diakopter: dalek-conf.json in mu | 04:41 | |
04:41
mfollett left
|
|||
diakopter | sorear: thanks | 04:41 | |
sorear | dalek git pulls once an hour and reloads config from the repo | ||
diakopter | ok. i'm in no hurry, but I'm adding sprixel -3.0 | ||
that's a negative sign, btw | 04:42 | ||
sigh. but I don't want to clone all of mu... oh well. | 04:43 | ||
diakopter whiner | |||
sorear | it's smaller than a svn checkout of just one revision | ||
diakopter | but I can svn checkout just that file | 04:44 | |
well, at least just that file's dir | |||
04:45
ash_ left
04:46
snarkyboojum joined
04:47
jhuni joined
|
|||
diakopter | wait, by 'git clone mu' did I just download *all* revisions/diffs of mu? | 04:48 | |
tadzik | yep | ||
(tip: it's not that big) | |||
sorear | That includes stuff which has been deleted, like every version of Pugs itself and every version of the testsuite | 04:49 | |
diakopter | yeah | ||
sorear wonders how well github's rw-svn would work for mu | |||
04:52
snarkyboojum left
04:57
am0c^ left
|
|||
dalek | : a0dc5ad | diakopter++ | misc/dalek-conf.json: add sprixel negative three point oh to dalek-conf.json |
04:57 | |
05:03
apot joined
05:04
justatheory left
|
|||
cbk | rakudo: my @input =<2 4 6 8 10>; say "DATA SET: "~@input; say "Max: "~@input.max; say "Min: "~@input.min; | 05:06 | |
p6eval | rakudo 607ec4: OUTPUT«DATA SET: 2 4 6 8 10Max: 8Min: 10» | ||
nymacro | nasty | 05:07 | |
rakudo: my @input = <2 4 6 8 10>; say "DATA SET: "~@input; say "Max: "~[max]@input; say "Min: "~[min]@input; | |||
p6eval | rakudo 607ec4: OUTPUT«DATA SET: 2 4 6 8 10Max: 8Min: 10» | ||
cbk | ?? | 05:08 | |
i don't think 10 is the smallest number in the set... | |||
nymacro | Yeah, seems like something has been broken | 05:09 | |
nymacro points at moritz_ | |||
hmm | |||
cbk | rakudo: my @input =<2 4 6 8 10>; say "DATA SET Sorted: "~@input.sort; | 05:10 | |
p6eval | rakudo 607ec4: OUTPUT«DATA SET Sorted: 10 2 4 6 8» | ||
nymacro | rakudo: my @input = 0..5; say "DATA SET: "~@input; say "Max: "~@input.max; say "Min: "~@input.min; | 05:11 | |
05:11
sftp_ left
|
|||
p6eval | rakudo 607ec4: OUTPUT«DATA SET: 0 1 2 3 4 5Max: 5Min: 0» | 05:11 | |
sorear | stefan@stefans:~/rel/niecza$ ./niecza_eval -L SAFE -e 'say "Hello, world"' | ||
Hello, world | |||
plobsing | rakudo: my @input = < 2 4 6 8 10>.map(+*); say "Max: ", @input.max; say "Min: ", @input.min | ||
p6eval | rakudo 607ec4: OUTPUT«Max: 10Min: 2» | 05:12 | |
plobsing | nymacro: you have a list of strings. 10 is the min by string comparison | ||
nymacro | plobsing, oh, true :) | 05:13 | |
cbk | so putting in .map(+*) means what? | ||
nymacro | I had a misunderstanding of < > I guess | ||
plobsing | +$x => num-context($x) | ||
+* => -> { +$_ } | 05:14 | ||
TimToady | see S02:3373, which rakudo doesn't implement yet | 05:15 | |
plobsing | s/->// | ||
dalek | ecza/mm: 7facc7e | sorear++ | / (3 files): [mm] implement loopback pointer generation |
||
ecza/mm: d298d03 | sorear++ | / (3 files): [mm] Start a new setting; fix package vars |
|||
ecza/mm: 9bec6d1 | sorear++ | / (3 files): [mm] implement .HOW (thus .^isa and ~~) |
|||
TimToady | <2 4 6 8 10> is *supposed* to return a list of integers | 05:17 | |
nymacro | thanks for the clarification :> | ||
cbk | ok I was going crazy for a bit. I was thinking I had bad install of rakudo* I even tried removing and reinstalling it... :) | 05:18 | |
Thanks | |||
05:21
Italian_Plumber joined
05:22
FurnaceBoy left,
Italian_Plumber left
05:24
huf joined
05:25
mfollett joined
05:30
kaare joined,
pythonian4000afk is now known as pythonian4000,
kaare is now known as Guest58753
05:31
am0c^ joined
05:44
nymacro left
05:51
lue left,
lue joined
05:58
apot left
06:02
Trashlord joined
06:06
wtw joined
06:15
pythonian4000 is now known as pythonian4000afk,
pythonian4000afk is now known as pythonian4000,
pythonian4000 is now known as pythonian4000afk
06:18
mfollett left
06:23
redicaps joined
|
|||
dalek | osystem: ba2533f | moritz++ | projects.list: add cache-memcached by cosimo++ |
06:25 | |
moritz_ | phenny: tell cosimo perl6-cache-memcached added. You also have commit access to perl6/ecosystem on github now, so you can do it yourself next time | ||
phenny | moritz_: I'll pass that on when cosimo is around. | ||
moritz_ | good morning | 06:28 | |
tadzik | good morning moritz_ | ||
sorear | good morning | ||
sorear wonders if he can do anything useful with ecosystem | 06:29 | ||
dalek | ecza/mm: c0b5aee | sorear++ | src/CSharpBackend.pm: [mm] Implement conditional generation of spads |
06:31 | |
ecza/mm: 8497b08 | sorear++ | src/CSharpBackend.pm: [mm] implement non-cloned variables |
|||
tadzik | bah, my cronjob on feather doesn't work for some reason | 06:34 | |
dalek | osystem: c035df0 | tadzik++ | projects.list: Added xxx-pm6 |
06:36 | |
moritz_ | tadzik: I see you changed the format of projects.list; that brakes modules.perl6.org updating | 06:42 | |
tadzik | oh | ||
where is the repo? | 06:43 | ||
moritz_ | perl6 account | ||
github.com/perl6/modules.perl6.org/ | 06:44 | ||
tadzik | yeah, I'm on it | ||
moritz_ | ++tadzik | 06:45 | |
tadzik | hey, don't increment me too early! :) | ||
moritz_ | pre-increment for pre-karma | 06:46 | |
06:49
zby_home_ joined
06:51
grew left
06:52
grew joined
06:54
Mowah joined
|
|||
tadzik | moritz_: I made build-project-list.pl run, waiting for some results | 07:02 | |
moritz_ | sh update-modules.perl6.org | 07:05 | |
malformed JSON string, neither array, object, number, string or atom, at character offset 0 ["ABC git://github.com..."] at /usr/share/perl5/JSON.pm line 154 | |||
ah, you didn't commit yet | 07:06 | ||
I thought you committed, and waited for results from modules.perl6.org | |||
07:18
Ronnin21 joined
|
|||
Ronnin21 | www.rhinosgirls.com | 07:18 | |
07:18
Ronnin21 left
07:24
miso_soup joined
|
|||
tadzik senses spam, still is tempted to click | 07:26 | ||
moritz_: it ended with Wide character in syswrite at /usr/lib/perl5/5.12/File/Slurp.pm line 330. | 07:27 | ||
wait, syswrite in File::Slurp? :/ | 07:28 | ||
ah, write_file | 07:29 | ||
moritz_ | which means you need an encode_utf8 before it | ||
tadzik | rerunning. I never got my head around this encoding and decoding | 07:31 | |
07:33
mberends left
|
|||
moritz_ | perlgeek.de/en/article/encodings-and-unicode if you want to try :-) | 07:34 | |
tadzik | Undefined subroutine &main::encode_utf8. Damn, couldn't it tell me before updating all this stuff? :( | 07:37 | |
moritz_ | use Encode qw(encode_utf8) | 07:38 | |
tadzik | what package is... right | ||
07:46
daxim joined
|
|||
tadzik | index.html and proto.json files generated | 07:46 | |
07:46
xabbu42 left
07:49
sjn left
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 3b1e8d7 | tadzik++ | web/build-project-list.pl: Fixed for non-JSON projects.list |
07:49 | |
tadzik | moritz_: lolipushed | ||
07:49
Guest58753 is now known as kaare_
07:50
Mowah left,
am0c joined
07:52
sjn joined
07:55
fIorz joined,
florz left,
Mirell left
07:57
Mirell joined,
flussence joined
|
|||
sorear | suprisingly, the new metamodel seems to be much more frugal with MSIL | 08:12 | |
a --gen-app hello world program is only 207KB | 08:13 | ||
was 300-350 before | |||
08:32
kjeldahl joined
08:33
timbunce joined
|
|||
dalek | ecza/mm: 912935b | sorear++ | src/C (3 files): [mm] implement numeric lexical access |
08:39 | |
ecza/mm: c5ed79f | sorear++ | / (5 files): [mm] bring rest of SAFE setting over |
|||
ecza/mm: f5ecfd8 | sorear++ | / (5 files): [mm] Fixes for CORE & binding to package vars |
|||
08:41
nymacro joined,
dakkar joined
08:42
cbk left
08:44
xinming_ left,
redicaps left
08:45
miso_soup left
08:48
barika left
08:55
xinming joined
08:59
xinming_ joined
09:00
barika joined,
barika left,
ascent_ joined
09:01
xinming left,
barika joined
09:12
pythonian4000afk is now known as pythonian4000
09:17
c9s joined
09:28
wamba joined
09:30
qwebirc36299 joined
09:33
c9s left
|
|||
bbkr | rakudo: my @t="a",8; say [xx]@t #curious | 09:34 | |
p6eval | rakudo 607ec4: ( no output ) | ||
bbkr | hmm | ||
rakudo: my @t="a",8; say [x]@t #curious | |||
p6eval | rakudo 607ec4: OUTPUT«aaaaaaaa» | ||
bbkr | \o/ | ||
09:35
Mowah joined
09:37
jferrero joined
09:38
dakkar left,
dakkar_ joined
09:39
icwiener joined
|
|||
dalek | kudo: 0bf6cbe | moritz++ | README: update README about spectest repo Closes RT #78084 |
09:40 | |
09:44
jhuni left,
am0c left
09:48
masak joined
|
|||
masak | oh hai, #perl6! | 09:48 | |
tadzik | oh hai masask | 09:52 | |
sorear | hello masak | 09:54 | |
09:56
c9s joined
09:58
PrinceAndCrack joined
10:02
QinGW left
|
|||
sorear | masak: niecza/mm is finally to the point where I can compile and run 'use Test;' | 10:02 | |
masak | sorear: wow, great news! | ||
sorear++ | |||
sorear: what's the '/mm' part stand for? | 10:03 | ||
sorear | meta-model | 10:04 | |
masak | ah, 'course. | ||
sorear | I don't really have a better name for it | ||
10:04
ggoebel joined
10:07
Trashlord left
|
|||
masak | neither do I. | 10:08 | |
sorear | standalone executables are about 40% smaller now btw | 10:11 | |
dalek | ecza/mm: 465e4b7 | sorear++ | / (2 files): [mm] Link GLOBAL/PROCESS to $*FOO |
10:13 | |
ecza/mm: ba6543f | sorear++ | src/ (5 files): [mm] Implement use statements |
|||
ecza/mm: 88fb2a5 | sorear++ | / (4 files): [mm] implement sub classes, start sorting tests |
|||
10:14
xabbu42 joined
|
|||
ggoebel | sorear++ | 10:15 | |
karma sorear | |||
aloha | sorear has karma of 28. | ||
10:15
leprevost left
|
|||
ggoebel | perl6: 'karma sorear++'.say | 10:16 | |
p6eval | pugs, rakudo 607ec4: OUTPUT«karma sorear++» | ||
sorear | buubot: karma sorear | ||
buubot | sorear: sorear has karma of 1051 | ||
masak | buubot: karma masak | ||
buubot | masak: masak has karma of 846 | ||
ggoebel | masak++ | 10:17 | |
masak | buubot: karma au | ||
buubot | masak: au has karma of 25 | ||
ggoebel | au++ | ||
masak | au++ | ||
10:19
icwiener left,
icwiener joined
10:22
icwiener left
|
|||
sorear out | 10:22 | ||
10:23
icwiener joined,
icwiener left,
icwiener joined
10:24
LaVolta left
10:25
lamstyle joined,
pythonian4000 is now known as pythonian4000afk
10:37
pythonian4000afk is now known as pythonian4000
10:39
mavrc joined
10:40
qwebirc36299 left
|
|||
tadzik | buubot: karma tadzik | 10:40 | |
buubot | tadzik: tadzik has karma of 80 | ||
tadzik | nice | ||
10:43
dakkar_ is now known as dakkar
10:45
pythonian4000 is now known as pythonian4000afk,
xinming_ is now known as xinming
10:47
miso_soup joined,
Mowah left
|
|||
jnthn | Afternoon, 6ies. | 10:48 | |
nymacro | evening good sir | ||
10:49
synth left,
icwiener left
10:50
icwiener joined,
synth joined
10:51
mavrc left
10:55
PrinceAndCrack left
10:58
mavrc joined
11:00
icwiener left,
icwiener joined
11:07
miso_soup left
|
|||
araujo wonders what would be a proper value to return from '+ 1 [ 2 ]' | 11:11 | ||
tadzik | std: + 1 [ 2 ] | 11:12 | |
p6eval | std : OUTPUT«===SORRY!===Confused at /tmp/VxYFv2X0qi line 1:------> + 1 [⏏ 2 ] expecting any of: bracketed infix infix or meta-infixParse failedFAILED 00:01 116m» | ||
tadzik | me neither | ||
11:12
mavrc left
11:16
Italian_Plumber joined
|
|||
nymacro | pastebin.com/DJ8sTdjm -- 540 characters alright for a Perl 6 blackjack? | 11:19 | |
pastebin.com/0sbqjAQD is ungolfed; maybe there is someway better I can do something though :> | 11:21 | ||
asking only for the curiosity of someone's boredom (if such a boredom exists) | |||
daxim | I played two games, then it said Winner: -Inf and returned to the rakudo prompt | 11:22 | |
is it supposed to run forever? | |||
nymacro | nope | ||
-Inf is no winner | |||
tadzik | you can ommit "use v6;" :) | ||
nymacro | it isn't the most verbal -- I'm trying to use a lot of shortcuts in P6, many of them normally wouldn't be used | ||
tadzik | if {} else {} can be changed to ?? !! :) | 11:23 | |
moritz_ | sub pc(@a) -> you can use rotate() instead | ||
daxim | ♠♣♥♦ try whether these work, it's both shorter and more readable | ||
moritz_ | rakudo: my @a = 1, 2, 3; say @a.rotate(-1) | ||
p6eval | rakudo 0bf6cb: OUTPUT«312» | ||
tadzik | @d=@d.pick(*) → @d.=pick(*) | ||
or maybe even @d.=pick:*; | 11:24 | ||
nymacro | oh, awesome | ||
tadzik | std: @d.=pick:*; | ||
p6eval | std : OUTPUT«===SORRY!===Variable @d is not predeclared at /tmp/kqsdyjzZRL line 1:------> @d⏏.=pick:*;Confused at /tmp/kqsdyjzZRL line 1:------> @d.=pick:⏏*; expecting any of: coloncircumfix signatureParse failedFAILED | ||
..00:01 11… | |||
tadzik | std: my @d; @d.=pick:*; | ||
p6eval | std : OUTPUT«===SORRY!===Confused at /tmp/zYWCqubBt9 line 1:------> my @d; @d.=pick:⏏*; expecting any of: coloncircumfix signatureParse failedFAILED 00:01 117m» | ||
tadzik | nah, () is neede | ||
moritz_ | -> [$s, $r] { %values{$r} or $r } can be written as { %values{.[0]} or .[0] } | 11:25 | |
tadzik | also, you can omit many parentheses | ||
nymacro | yeah, there were lots of precedence cases which I wasn't sure about | ||
tadzik | std: my @a; my @b; @aX@b | 11:26 | |
p6eval | std : OUTPUT«===SORRY!===Variable @aX is not predeclared at /tmp/WaWLxqlVgD line 1:------> my @a; my @b; @aX⏏@bTwo terms in a row at /tmp/WaWLxqlVgD line 1:------> my @a; my @b; @aX⏏@b expecting any of: POST bracketed infix | 11:27 | |
..infi… | |||
tadzik | almost | ||
11:27
Trashlord joined
|
|||
tadzik | rakudo: my @a = [;]; @a[1][0] = 5; @a.perl.say | 11:27 | |
p6eval | rakudo 0bf6cb: OUTPUT«[[0], [5]]» | ||
tadzik | so, you can change [],[] to [;] :) | ||
also, things like $_ ~ '' → $_ ~'' or even $_~'' | 11:28 | ||
nymacro | -> {%v{.[0]} or .[0]} it doesn't seem to like | 11:29 | |
tadzik | say ~$_ can be just .say? | ||
nymacro | oh, should be .[1] | ||
heh | |||
still though; doesn't like | |||
std: my @a = [1, 2, 3]; say @a; say ~@a; @a.say; | 11:30 | ||
p6eval | std : OUTPUT«ok 00:01 120m» | ||
nymacro | rakudo: my @a = [1, 2, 3]; say @a; say ~@a; @a.say; | ||
p6eval | rakudo 0bf6cb: OUTPUT«1 2 31 2 31 2 3» | ||
nymacro | must be something to do with the scalar which doesn't put the space between when printing | 11:31 | |
tadzik | what do you mean? | ||
nymacro | when i had say ~$_; it would print the array with no spaces between some of the elements | 11:32 | |
diamonds kinghearts 7 | |||
like that | |||
tadzik | hmm | ||
how does the $_.perl.say look? | |||
nymacro | [["clubs", 7], ["diamonds", 2]] | 11:33 | |
11:33
mavrc joined
|
|||
tadzik | rakudo: say ~[["clubs", 7], ["diamonds", 2]] | 11:33 | |
p6eval | rakudo 0bf6cb: OUTPUT«clubs 7 diamonds 2» | ||
tadzik | weird then | 11:34 | |
nymacro | rakudo: say [["clubs", 7], ["diamonds", 2]]; | ||
p6eval | rakudo 0bf6cb: OUTPUT«clubs 7 diamonds 2» | ||
nymacro | hmmm. | ||
that is werid | |||
I'm guessing it is to do with $_ | |||
and being "scalar" | |||
heh, just got dealt 3 aces.. any(any(any(3, 13), any(13)), any(any(13), any())) | 11:36 | ||
it doesn't quite like that | 11:37 | ||
11:42
pythonian4000afk is now known as pythonian4000
|
|||
nymacro | but cheers guys! :) | 11:42 | |
11:42
pythonian4000 is now known as pythonian4000afk
11:43
wamba left
|
|||
tadzik | :) | 11:43 | |
nymacro | it is down to 518 chars -- a few things can still be tweaked a little. But it is a pretty solid improvement ^^ | 11:46 | |
nymacro hi fives #perl6 | 11:47 | ||
11:48
wamba joined
|
|||
moritz_ high sixes in response :-) | 11:48 | ||
nymacro | ;) | 11:49 | |
tadzik | nymacro: mind showing the new code? | 11:50 | |
nymacro | git.nymacro.com/?p=h.git;a=blob_pla...p6;hb=HEAD | 11:51 | |
will need to change page to UTF-8 though | |||
tadzik | yeah | ||
why are things like any(11) printed? | 11:52 | ||
nymacro | only when you have an ace | ||
since the way it is implemented ace's value is 1|11 | 11:53 | ||
tadzik | mhm | ||
nymacro | eg: any(6, 16) ♥ ace ♠ 5 | 11:54 | |
11:55
masonkramer left,
masonkramer joined
|
|||
nymacro | only problem is when it gets like this: any(16) ♥ king ♥ ace ♠ 5 | 11:55 | |
I'm not absolutely sure; but I would assume that it should just be 16-- since there is only one possibility | 11:57 | ||
I'm playing with fire; I'm not sure of the exact mechanics of it | |||
masak | nymacro: a junction with only one element does not de-promote itself to a non-junction. | 12:00 | |
I guess it could though, in the cases of 'any' and 'all'. | |||
hm, and 'one', I think. | |||
nymacro | cheers :) | 12:01 | |
masonkramer | are functions with typed formal parameters guaranteed to receive that type of parameter? foo ( Int $a, Badger %b ) - is %b guaranteed to be a Badger? | ||
moritz_ | masonkramer: %b would be an Associative[Badger] | 12:02 | |
or a subtype thereof | |||
jnthn | Furthermore, it would have to have declared itself as holding baders. | 12:03 | |
masonkramer | NominalType[ValueType] ? | ||
jnthn | *badgers | ||
pmichaud | goo morning, #perl6 | ||
jnthn | Not really in that sense of nominal. | ||
pmichaud: eww, sticky! | |||
masonkramer | hehe | ||
moritz_ hands pmichaud a 'd' | |||
nymacro | morgen | ||
pmichaud | badgers? BADGERS?! WE DON"T NEED NO STINKIN BADGERS! | ||
pmichaud notices that his 'd' key is a little stuck. | |||
jnthn | .oO( mushroom mushroom... ) |
12:04 | |
moritz_ | masonkramer: it's just that 'my Int $a' and 'my Int %a' mean different things | ||
my Int $a: $a can only hold values that ~~ Int | |||
jnthn | Associative is a parametric role. | ||
pmichaud | they both declare containers that hold Int :-) | ||
moritz_ | my Int %a: all(%a) ~~ Int | ||
jnthn | The one that means you can, using some key, get a value of whatever type ti's parameterized with. | ||
tadzik | nymacro: golfed down to 505 | 12:05 | |
masak | jnthn: aaaah snake! | ||
nymacro | tadzik, nice! This is by changing unneeded parentheses & using ternary instead of if? | ||
[Coke] | pmichaud: must be all that goo. | ||
12:05
hatseflats left
|
|||
[Coke] | masak, jnthn: *thwap* | 12:05 | |
tadzik | nymacro: suprisingly, changing if-else to ternary breaks stuff | ||
nymacro: declaring hash as :key(value) is the biggest thing probably | 12:06 | ||
nymacro | ahhk, it wasn't just me | ||
tadzik | plus changing {$^a + $^b} to *+* | ||
nymacro | oh? | ||
tadzik | yep :) | ||
masonkramer | Thanks guys | ||
nymacro | whatever will consume arguments sequentially? | 12:07 | |
tadzik | it generates a closure, taking 2 arguments | ||
hold on, one more character and I'm below 500 | |||
nymacro | ^^ | ||
pmichaud | [Coke]: I am wondering if younger fingers are to blame, yes. | ||
tadzik | this ternary is annoying me | ||
12:08
hatseflats joined
|
|||
pmichaud | Bool.pick ?? "annoying" !! "still annoying" | 12:09 | |
12:11
satyavvd left
|
|||
nymacro | oh also tadzik! I got a redundant for loop. The first for loop can be moved to the second :) | 12:14 | |
tadzik | nymacro: the last if-else can be a while, I think | 12:15 | |
nymacro | yeah, it should be; at the moment is will sit if you press anything apart from 'h' :P | 12:16 | |
tadzik | no, it can't | ||
oh, maybe it can | |||
yeah, got it | 12:17 | ||
491 so far | |||
nymacro | nice :) | 12:18 | |
tadzik | it'd be easier if I understood the code | ||
nymacro | you still got my un-golfed version? | ||
tadzik | and I think the arrow->block notation is just a sugar over something, so that can be golved too I think | ||
nymacro | git.nymacro.com/?p=h.git;a=blob_pla...p6;hb=HEAD | ||
tadzik | yep | 12:19 | |
nymacro | ahhk :) | ||
tadzik | but what if the block takes 2 args and you're using only the second one? | ||
nymacro | yeah, I'm only using the second | 12:20 | |
since cards are [suit, rank], and we don't care what suit something is | 12:21 | ||
as it doesn't change their face value | |||
tadzik | so, is there a way to do such thing w/o an arrow notation? | 12:23 | |
12:23
molaf joined
|
|||
moritz_ | just bind to $_, and use .[1] | 12:23 | |
nymacro | the .[1] notation probably is supposed to work; but it didn't | ||
tadzik | Unsupported use of do...while; in Perl 6 please use repeat...while at line 1, near ";\n" | 12:24 | |
nymacro | moritz_, wouldn't $_ get set in the closure if it is passed something without a signature? | ||
tadzik | that's not golf-friendly :( | ||
nymacro | -> [$s, $r] { %values{$r} or $r } to -> { %values{.[1]} or .[1] } | 12:25 | |
moritz_ | rakudo: for [1, 2], ['a', 'b'] { say .[1] } | ||
p6eval | rakudo 0bf6cb: OUTPUT«2b» | ||
tadzik | worksforme | ||
nymacro | oh? Maybe I messed it up when I tried it earlier. Hm | ||
oh, -> $_ { %values{.[1]} or .[1] } works | 12:26 | ||
tadzik | bah, I broke something and I dunno when | 12:27 | |
moritz_ | nymacro: then it must some weird interaction with context | ||
tadzik | yeah, I'm getting more and more cards every hit | ||
nymacro | map(-> $_ { %values{.[1]} or .[1] }, @c) works, but map(-> { %values{.[1]} or .[1] }, @c) does not | 12:28 | |
tadzik | or is that desirable? | ||
nymacro | tadzik, well, you should be getting 1 extra card every hit -- doing this until you sit or bust | ||
moritz_ | nymacro: you need to remove the initial arrow | ||
tadzik | oh, ok then | ||
nymacro | oh :) | ||
12:29
icwiener left
|
|||
tadzik | hmm | 12:29 | |
moritz_ | -> always introduces a signature, so -> { ... } is explicitly expecting no argument | ||
tadzik | nymacro: gist.github.com/600888 does it work as it should? | ||
moritz_ | whereas { ... } has a $_ = OUTER::$_ | ||
tadzik | 480 chars | ||
moritz_ | or so | ||
12:30
Mowah joined
|
|||
nymacro | moritz_, ahh, thanks. I haven't read much of the synopses; lots of things I'm probably using falsely | 12:31 | |
Juerd | I find -> confusing when it doesn't look infixish | ||
e.g. for @foos -> $foo { ... } is clear, but foo(-> { ... }) is not. | |||
tadzik | same here | 12:32 | |
Juerd | I don't really understand why it's preferred, instead of sub (...) { ... } | 12:33 | |
nymacro | well; normally that is probably preferred. But we're golfing! :) | ||
tadzik | whitespace-sensitiveness is killing us anyway | ||
or not | 12:34 | ||
Juerd | I continue to see -> much more often than unnamed "sub" in much of the p6 code out there | ||
Can't be a golf thing. | |||
moritz_ | Juerd: which code "out there" are you talkinga about? modules? | ||
evalbot lines on IRC are almost always golfed too | 12:35 | ||
Juerd | Things I see here, including blog posts and perhaps rosetta | ||
tadzik | alright, my ideas are gone at 480 characters | ||
nymacro | I'm at 491 characters at the moment | ||
tadzik | ' or ' => || | 12:36 | |
I still feel like the main loop can be golfed down | |||
masak | trippy. twitter.com/lloyda2/status/25779102812 | ||
nymacro | tadzik, this is my first attempt at golf. I'm flailing in the dark with most things | 12:37 | |
pmichaud | '->' is different 'sub' in that the latter is a Routine, while the former is a Block | 12:38 | |
tadzik | nymacro: I think that it shouldn't just add cards forever, it should stop when the overall value is over 21 | ||
nymacro | that is what mine does | ||
tadzik | well, mine does not :) | 12:39 | |
nymacro | if pv($_) > 21 { say $_ ~ ' is over 21'; last } | ||
is the check for bust | |||
tadzik | queen ♥ king ♥ king ♣ 6 ♥ 6 ♣ queen ♦ 8 ♥ 10 ♥ jack ♣ king ♦ 2 ♣ 7 ♣ queen ♠ queen ♣ 9 ♥ ace ♣ 5 ♠ 5 ♣ jack ♠ 8 ♣ | ||
(h) hit (s) sit? | |||
:) | |||
nymacro | haha ^^ | ||
tadzik | yeah, it should be | ||
I guess I broke b() | |||
nymacro | I've just been making incremental changes and testing to ensure I don't break it | ||
pmichaud | nymacro: did you see the version I did for calculating cards and values? | 12:40 | |
nymacro | nope | ||
pmichaud looks | |||
www.pmichaud.com/2009/pres/oscon-pe...lide5.html | |||
the last line shows an easy way to calculate the value of a hand | 12:41 | ||
masak | my %points = @deck Z @( (2..10, 10, 10, 10, 11) >>xx>> 4 ); | 12:43 | |
why is the casting needed? | |||
nymacro | pmichaud, interesting | ||
pmichaud | might've been needed to avoid a rakudo bug | ||
(this was 2009, after all) | |||
masak | anyway, pmichaud++ | ||
I've seen it many times before, but each time I get happy seeing it. :) | 12:44 | ||
tadzik | now I copied your b() nymacro and it still returns 0 for me. Weird | ||
nymacro | tadzik, did you break anything in your loop? | ||
tadzik | nymacro: the loop itself works. But even bare 'say b($_)' prints 0 | ||
moritz_ | rakudo: say(2, 3, 3, 4) Z ((1, 2) >>xx>> 4)).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«===SORRY!===Confused at line 22, near ").perl"» | ||
12:44
bluescreen joined
|
|||
tadzik | weird | 12:45 | |
masak | rakudo: my @suits = <♣ ♢ ♡ ♠>; my @ranks = 2..10, <J Q K A>; my @deck = @ranks X~ @suits; my %points = @deck Z @( (2..10, 10, 10, 10, 11) >>xx>> 4 ); say %points.perl | ||
moritz_ | rakudo: say (2, 3, 3, 4 Z ((1, 2) >>xx>> 4)).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«{"2♣" => 2, "2♢" => 2, "2♡" => 2, "2♠" => 2, "3♣" => 3, "3♢" => 3, "3♡" => 3, "3♠" => 3, "4♣" => 4, "4♢" => 4, "4♡" => 4, "4♠" => 4, "5♣" => 5, "5♢" => 5, "5♡" => 5, "5♠" => 5, "6♣" => 6, "6♢" => 6, "6♡" => 6, "6♠" => 6, "7♣" => 7, "7♢" => 7, "7♡" => 7, "7♠" => 7, "8♣" => 8, | ||
.."8♢" =… | |||
rakudo 0bf6cb: OUTPUT«(2, 1, 3, 1, 3, 1, 4, 1)» | |||
masak | rakudo: my @suits = <♣ ♢ ♡ ♠>; my @ranks = 2..10, <J Q K A>; my @deck = @ranks X~ @suits; my %points = @deck Z ( (2..10, 10, 10, 10, 11) >>xx>> 4 ); say %points.perl | ||
moritz_ | rakudo: say (2, 3, 3, 4 Z=> ((1, 2) >>xx>> 4)).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«{"2♣" => 2, "2♢" => 2, "2♡" => 2, "2♠" => 2, "3♣" => 3, "3♢" => 3, "3♡" => 3, "3♠" => 3, "4♣" => 4, "4♢" => 4, "4♡" => 4, "4♠" => 4, "5♣" => 5, "5♢" => 5, "5♡" => 5, "5♠" => 5, "6♣" => 6, "6♢" => 6, "6♡" => 6, "6♠" => 6, "7♣" => 7, "7♢" => 7, "7♡" => 7, "7♠" => 7, "8♣" => 8, | ||
.."8♢" =… | |||
rakudo 0bf6cb: OUTPUT«(2 => 1, 3 => 1, 3 => 1, 4 => 1)» | |||
masak | seems the casting is not needed (anymore). | ||
moritz_ | rakudo: say (2, 3, 3, 4 Z=> (1, 2 Xxx 4)).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«(2 => 1, 3 => 1, 3 => 1, 4 => 1)» | ||
moritz_ | rakudo: say (2, 3, 3, 4 Z=> ((1, 2) Xxx 4)).perl | 12:46 | |
p6eval | rakudo 0bf6cb: OUTPUT«(2 => 1, 3 => 1, 3 => 1, 4 => 1)» | ||
moritz_ | rakudo: say (2, 3, 3, 4 Z=> ((1, 2) Xxx 2)).perl | 12:47 | |
p6eval | rakudo 0bf6cb: OUTPUT«(2 => 1, 3 => 1, 3 => 2, 4 => 2)» | ||
moritz_ | rakudo: say (2, 3, 3, 4 Z=> (1, 2 Xxx 2)).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«(2 => 1, 3 => 1, 3 => 2, 4 => 2)» | ||
pmichaud | rakudo: say (<a a b b c c d d> Z=> ((1,2) Xxx 2).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
pmichaud | rakudo: say (<a a b b c c d d> Z=> ((1,2) Xxx 2)).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«("a" => 1, "a" => 1, "b" => 2, "b" => 2)» | ||
moritz_ | Xxx is a bit shorter than >>xx>> :-) | ||
pmichaud | yes, but it didn't give the correct results | 12:48 | |
moritz_ | (and new too) | ||
pmichaud | I lost my c's and d's | ||
moritz_ | try Xxx 4 | ||
pmichaud | rakudo: say (<a a b b c c d d> Z=> ((1,2) Xxx 4)).perl | ||
nymacro | pmichaud, actually; does your code handle ace as also a value of 1? | ||
p6eval | rakudo 0bf6cb: OUTPUT«("a" => 1, "a" => 1, "b" => 1, "b" => 1, "c" => 2, "c" => 2, "d" => 2, "d" => 2)» | ||
nymacro | it doesn't seem to | ||
masak | just wait until the social media find out that Perl 6 has an Xxx operator! | 12:49 | |
pmichaud | nymacro: no, but it can easily handle ace as 1 by changing the "11" to "11|1" | ||
moritz_ | masak: :-) | ||
nymacro | :) | ||
pmichaud | rakudo: say (<a a b b c c d d> Z=> ((1,2,3,4) Xxx 2)).perl | ||
masak | pmichaud: that way lies only grief, if you ask me. | ||
p6eval | rakudo 0bf6cb: OUTPUT«(timeout)("a" => 1, "a" => 1, "b" => 2, "b" => 2, "c" => 3, "c" => 3, "d" => 4, "d" => 4)» | ||
masak | (using junctions that way) | ||
nymacro | I won't use this stuff though; I'm not quite sure what >>xx>> does :) | 12:50 | |
pmichaud | masak: I agree -- I was just following what nymacro already had for value of ace | ||
masak | nod | ||
pmichaud | it's fine as long as you're only asking for possible point totals | ||
masak | guess so. | ||
pmichaud | but one oes get into trouble with things like if $points > 21 { ... } | 12:51 | |
12:51
plainhao joined
|
|||
moritz_ | note that this is a good example of why junctions shouldn't be abused as sets | 12:51 | |
right | |||
pmichaud | *does | ||
moritz_ | it wants to be all($points) > 21 | ||
but wins if any($points) == 21 | 12:52 | ||
s:firstline/wants/wants to abort/ | |||
pmichaud | and I'm not sure the all() junction works out, anyway | 12:53 | |
rakudo: say all(13|24) > 21; | |||
p6eval | rakudo 0bf6cb: OUTPUT«all(any(Bool::False, Bool::True))» | ||
moritz_ | pmichaud: it would need to be a pure all() junction | ||
which is why it's a problem :-) | 12:54 | ||
and $points should really be a set or list, not a junction | |||
pmichaud | right. | ||
12:56
qwebirc87970 joined,
am0c^ left
|
|||
nymacro | My code seems to break if I try to change face cards to single letters | 12:57 | |
as to why; I'm confused | |||
my @r=2..10,<ja qu ki ac>;my %v=ja=>10,qu=>10,ki=>10,ac=>1|11; workds | 13:00 | ||
but my @r=2..10,<j q k a>;my %v=j=>10,q=>10,k=>10,a=>1|11; does not. | |||
pmichaud | maybe a space after the 'q' | ||
so it doesn't think it's a q() construct. | |||
nymacro | oh | ||
nope | 13:01 | ||
still does not work | |||
pmichaud | maybe quotes around the q | ||
nymacro | ahh, works now :) | ||
I'll need to look up the exact syntax of q | 13:02 | ||
pmichaud | quotes shouldn't be needed there... but rakudo's predictor isn't as good as STD's. | ||
moritz_ | std: q=> 3 | ||
p6eval | std : OUTPUT«ok 00:01 115m» | ||
moritz_ | rakudo: q=> 3 | ||
p6eval | rakudo 0bf6cb: ( no output ) | ||
moritz_ | rakudo: say (q=> 3).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«"q" => 3» | ||
moritz_ | rakudo: say (q => 3).perl | 13:03 | |
p6eval | rakudo 0bf6cb: OUTPUT«"q" => 3» | ||
moritz_ | rakudo: say (q=>3).perl | ||
p6eval | rakudo 0bf6cb: OUTPUT«"q" => 3» | ||
nymacro | rakudo: say (a=>1,q=>3).perl; | ||
p6eval | rakudo 0bf6cb: OUTPUT«("a" => 1, "q" => 3)» | ||
moritz_ confused | |||
pmichaud | rakudo: say (j=>10,q=>10,k=>10).perl; | ||
p6eval | rakudo 0bf6cb: OUTPUT«("j" => 10, Bool::False)» | ||
moritz_ | oh | ||
only if another = is present | 13:04 | ||
moritz_ submits rakudobug | |||
masak | indeed. moritz_++ | ||
13:04
sftp joined
|
|||
pmichaud | std: say (j=>10,q=>10,k=>10).perl | 13:05 | |
p6eval | std : OUTPUT«ok 00:01 118m» | ||
pmichaud | well, that's still valid syntax I guess -- would need to see the parse | ||
std: say (j=>10,q=>10,k==10).perl | |||
p6eval | std : OUTPUT«===SORRY!===Undeclared routine: 'k' used at line 1Check failedFAILED 00:02 118m» | ||
pmichaud | right, looks fine to me. | 13:06 | |
nymacro | just a precedence thing? | 13:07 | |
pmichaud | mainly, yes. | ||
=> is supposed to autoquote its lhs... but rakudo doesn't always get that right | |||
moritz_ thinks it's more about LTM than precedence | |||
13:08
hercynium left
|
|||
moritz_ | submitted as [perl #78096] | 13:09 | |
nymacro | tadzik, got to 455 characters | ||
moritz_, at least something productive has come of this endeavour :) | |||
tadzik | oh nice | ||
nymacro | tadzik, but this is changin queen to q etc. | ||
13:09
ggoebel left
|
|||
tadzik | ah | 13:10 | |
nymacro | so yours is probably still superior; albeit buggy | 13:11 | |
moritz_ | .oO( it's easy to give the wrong answer in O(1), and with few characters) |
13:13 | |
13:13
perlygatekeeper joined
|
|||
pmichaud | rakudo: my @deck = comb('23456789TJQKA') X~ comb('CDHS'); say @deck.perl; | 13:14 | |
p6eval | rakudo 0bf6cb: OUTPUT«Could not find sub &comb in main program body at line 22:/tmp/0xksiKgSWu» | ||
masak | oh, you wanted the *correct* answer! what are you, some kind of purist? :) | 13:15 | |
pmichaud | oh | ||
rakudo: my @deck = '23456789TJQKA'.comb X~ 'CDHS'.comb; say @deck.perl; | |||
p6eval | rakudo 0bf6cb: OUTPUT«["2C", "2D", "2H", "2S", "3C", "3D", "3H", "3S", "4C", "4D", "4H", "4S", "5C", "5D", "5H", "5S", "6C", "6D", "6H", "6S", "7C", "7D", "7H", "7S", "8C", "8D", "8H", "8S", "9C", "9D", "9H", "9S", "TC", "TD", "TH", "TS", "JC", "JD", "JH", "JS", "QC", "QD", "QH", "QS", "KC", "KD", | ||
.."KH",… | |||
pmichaud | &comb appears to be missing, for any masak++ that wants to file another rakudobug :-) | 13:16 | |
masak files another rakudobug | |||
pmichaud | our List multi comb ( Regex $matcher, Str $input, Int $limit = Inf ) | 13:17 | |
(from S32-str) | |||
13:17
redicaps joined,
Patterner left
|
|||
masak | by the way, I relish the thought of getting karma from being referred to as a concept. :) | 13:17 | |
13:18
redicaps left
|
|||
pmichaud | I think of it more as a type object, or placeholder :-) | 13:18 | |
masak | $^masak | ||
pmichaud | right, but it needs the ++ sigil :) | ||
masak | or Musak :P | ||
13:19
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
moritz_ | you know that sigils go up front? | 13:19 | |
so it's a ++masak :-) | |||
13:19
icwiener joined
|
|||
pmichaud | en.wikipedia.org/wiki/Muzak # :-) | 13:19 | |
masak seems to spend a surprising amount of time on brand awareness lately | |||
not sure where this'll lead... | |||
tadzik | nymacro: I still don't know what's broken :) | 13:20 | |
pmichaud | afk for a short while | 13:21 | |
nymacro | :) | ||
tadzik | Maybe I'll take your new code and golf it, if it works | ||
ah, whatever :) | |||
golfed: ah, * :) | |||
TiMBuS | rakudo: my @deck = 2..9,<T J Q K A> X~ <C D H S>; say @deck.perl; | 13:22 | |
p6eval | rakudo 0bf6cb: OUTPUT«["2C", "2D", "2H", "2S", "3C", "3D", "3H", "3S", "4C", "4D", "4H", "4S", "5C", "5D", "5H", "5S", "6C", "6D", "6H", "6S", "7C", "7D", "7H", "7S", "8C", "8D", "8H", "8S", "9C", "9D", "9H", "9S", "TC", "TD", "TH", "TS", "JC", "JD", "JH", "JS", "QC", "QD", "QH", "QS", "KC", "KD", | ||
.."KH",… | |||
tadzik | rakudo: say "ah, {*.WHAT} | ||
nymacro | tadzik, git.nymacro.com/?p=h.git;a=blob_pla...p6;hb=HEAD | ||
p6eval | rakudo 0bf6cb: OUTPUT«===SORRY!===Confused at line 22, near "say \"ah, {"» | ||
tadzik | rakudo: say "ah, {*.WHAT}" | ||
p6eval | rakudo 0bf6cb: OUTPUT«ah, Whatever()» | ||
masak | :) | ||
rakudo: say "ah, ", *.WHAT.perl.lc, '!" | 13:23 | ||
p6eval | rakudo 0bf6cb: OUTPUT«===SORRY!===Confused at line 22, near "say \"ah, \""» | ||
masak | erg | ||
rakudo: say "ah, ", *.WHAT.perl.lc, '!' | |||
p6eval | rakudo 0bf6cb: OUTPUT«ah, whatever!» | ||
pmichaud | rakudo: say (*).elems; # curious | 13:26 | |
p6eval | rakudo 0bf6cb: OUTPUT«_block124» | ||
pmichaud | I didn't expect _that_. | ||
seems to me that * in parens shouldn't curry. | 13:27 | ||
jnthn | rakudo: say *.elems | ||
p6eval | rakudo 0bf6cb: OUTPUT«_block124» | ||
pmichaud | I do expect *.elems to curry, yes. | ||
jnthn | pmichaud: I suspect it does curry for the same reason * * (* - *) curries | 13:28 | |
pmichaud | jnthn: that's actually different | ||
jnthn | (that is, in the implementation) | ||
(not in the spec) | |||
pmichaud | (* - *) is a WhateverCode | ||
not the same as (*) | |||
jnthn | I agree, it's just from what I remember of the impl I could see how the two may just get confused. | ||
pmichaud | I suspect it's an issue with things being promoted out of the circumfix:<( )> | 13:29 | |
jnthn | Right. | ||
pmichaud | rakudo: my $x = *; say $x.elems; # what I was really interested in | ||
p6eval | rakudo 0bf6cb: OUTPUT«1» | 13:30 | |
jnthn | :-) | ||
pmichaud | following the ",*" discussion, I'm wondering if that should be Inf | ||
jnthn | At least the = doesn't curry ;-) | ||
pmichaud | and: my $x = *; say $x[1000].WHAT; # should this also produce a Whatever? | ||
moritz_ | pmichaud: I'd expect ,Inf to append a single Inf numeric literal | 13:31 | |
whereas * is more magic | |||
pmichaud | moritz_: that's not what I meant | ||
I'm wondering if Whatever.elems should return Inf instead of 1 | |||
moritz_ | ah | ||
moritz_ has no idea | 13:32 | ||
pmichaud | i.e., if the term "*" treated like a list actually acts like "Whatever xx Inf" | ||
especially since we don't have an easy way to write * xx Inf :-P | |||
best we can do is: my $x = *; $x xx Inf | |||
13:33
bluescreen left
|
|||
pmichaud | (unless we fix the parens issue, which I'm not sure is spec) | 13:33 | |
masak | haven't seen anything about that. | 13:34 | |
shouldn't parens mostly be semantically transparent? | |||
pmichaud | yes, but *.xyz is a syntactic construct | ||
masak | fair enuf. | ||
moritz_ | cosimo: my.opera.com/cstrep/blog/2010/09/24...e-to-utf-8 accidentally turns some parens into a smile (search for 'use Encode') | 13:35 | |
tadzik | nymacro: 444 and works :) | 13:39 | |
nymacro | nice :) | ||
masak tries to avoid that kind of automatic substitution in blog post | |||
don't like it in Word-like programs either. | |||
feels like the wrong kind of "intelligence". | |||
tadzik | even shorter if Winner and results is in one line | ||
moritz_ | masak: same here; it's always the first thing I switch off, if possible | ||
13:40
ggoebel joined
|
|||
daxim | I really dislike the ahinea article, it rubs me all the wrong way | 13:43 | |
masak | moritz_: one especially bad case of such substitution made a little icon of the ';' at the end of (autogenerated) HTML entities and any subsequent ')'. resulting in a broken entity and a winking smiley. | 13:44 | |
tadzik | nymacro: gist.github.com/601011 441 and I'm out of ideas :) | ||
nymacro | nice | 13:45 | |
tadzik | star today? | ||
moritz_ | tadzik: my @d = map { ... }, ...; @d.=pick(*) | 13:46 | |
tadzik: can be condensed to my @d = map(....).pick(*) | |||
tadzik | right | ||
moritz_ | saves 2 strokes :-) | ||
tadzik | 438 here | 13:47 | |
so even 3 :) | |||
moritz_ | $_~' is over 21' could be "$_ is over 21" | ||
1 saved | |||
tadzik | :) | 13:48 | |
moritz_ | .&b is shorter than b($_) | ||
tadzik | oh, I didn't know that one :) | ||
moritz_ | rakudo: sub u($x) { uc $x }; for <a b c> { .&u.say } | 13:49 | |
p6eval | rakudo 0bf6cb: OUTPUT«ABC» | ||
gottreu | is this for rosetta code, or are we just practicing our putts? | ||
tadzik | I just got another one | ||
say b($_); say ~$_ → say b($_),"\n$_"; | |||
pmichaud | rakudo: for <a b c> { .uc.say } | ||
p6eval | rakudo 0bf6cb: OUTPUT«ABC» | ||
pmichaud | still shorter -- don't need the u() :-P | ||
moritz_ slaps pmichaud, just a little bit | 13:50 | ||
tadzik | so 424 | ||
how does .&b work? | 13:51 | ||
it's an idiom for b($_) specifically? | |||
moritz_ | it's actually $_.$coderef | 13:52 | |
jnthn | oh wow, neat idiom :-) | ||
That's...disgusting. I love it. :-) | |||
moritz_ | and exploits that methods are really just subs with invocant as first parameter | 13:53 | |
but the invocant isn't really special | |||
pmichaud | jnthn: TimToady had the same reaction, iirc :) | 13:55 | |
13:55
tadzik left
|
|||
pmichaud | but it does mean that where we had once wanted "fallback methods" we don't really need them. | 13:56 | |
for example, sub prime($x) { ... }; if $y.&prime { ... } | |||
masak | exactly. | 13:57 | |
pmichaud | or, more likely: sub prime($x) { ... }; .say if .&prime for @list; # or something like that | ||
masak | since I became aware of that idiom, I've been using it all over. | ||
it's a real freedom to be able to method-ize subs like that. | 13:58 | ||
13:58
kaare_ left
|
|||
moritz_ | pmichaud: I think the real reason for fallback methods were non-lifted, overloaded operators | 13:59 | |
pmichaud | moritz_: .prime was the poster candidate for fallback methods. | 14:03 | |
masak | someone on reddit suggests that we put gil.di.uminho.pt/users/smash/rakudo-bench.html on the rakudo.org status page. | 14:04 | |
pmichaud | do we have a way of generating those and keeping them up to date? | ||
if no, then I say don't do it until we do :) | 14:05 | ||
masak | good point. | ||
moritz_ | speaking of the status page, we should remove that spectest graph | ||
pmichaud | +1 | 14:07 | |
moritz_ | pmichaud: it seems the last version of R* checked out a copy of the spectets via svn | 14:08 | |
it would be great to avoid that in this release | |||
pmichaud | I can bundle a copy of the tests, like we do for the compiler distribution. | 14:09 | |
moritz_ | +1 | ||
masak | +1 | 14:10 | |
PerlJam | good morning #perl6 | ||
14:10
mavrc left
|
|||
moritz_ | morning' 6Jam | 14:10 | |
PerlJam | anything new or exciting happen while I haven't been paying too close attention the last week or so? | 14:11 | |
oh! When's the R* release? | |||
moritz_ | today | 14:12 | |
jnthn decommutes | |||
PerlJam | ah | ||
moritz_ | rakudo: .so.say for 0, 1 | ||
p6eval | rakudo 0bf6cb: OUTPUT«Bool::FalseBool::True» | 14:13 | |
masak | PerlJam: 'series operator' is now called 'sequence operator' | ||
moritz_ | warn 1 # note the line number | ||
rakudo: warn 1 # note the line number | |||
p6eval | rakudo 0bf6cb: OUTPUT«1 in <anon> at line 22:/tmp/1bpRq0Vi2f» | ||
moritz_ | (amd file name) | ||
rakudo: 1 + Any # a non-setting line number | 14:14 | ||
p6eval | rakudo 0bf6cb: OUTPUT«Use of uninitialized value in numeric context in <anon> at line 22:/tmp/CRq42b2jaH» | ||
masak | PerlJam: also, we're all crazy about the new idiom $some-obj.&some-sub() | ||
PerlJam | masak: good to note. I'll probably continue to mistakenly say "series op" for a while though :) | ||
masak | PerlJam: oh, me too. | 14:15 | |
PerlJam | masak: you could have stopped at "we're all crazy" ;-) | ||
masak | PerlJam: I've recently been looking at this old blog post, where I quote you saying to me "clearly, you're insane" :P strangelyconsistent.org/blog/the-ta...edy-on-irc | ||
(I did deserve it, that time) | 14:16 | ||
14:16
mavrc joined
14:19
miso_soup joined
|
|||
PerlJam | We all have some measure of insanity otherwise we wouldn't believe in Perl 6. The trick is to foster the "good insanity" (aka genius) while eschewing the "bad insanity" | 14:19 | |
nymacro | this is true; I don't know anyone worth knowing who isn't at least slightly insane | 14:20 | |
masak | lately I haven't been able to connect the gears turning in my brain to actual changes in my existing Perl 6 code. may or may not be related to actually getting more $WORK done lately. | 14:22 | |
moritz_ | straw poll: who has met a normal person? | ||
PerlJam | normal to what surface? :) | 14:25 | |
14:26
mkramer joined
14:27
qwebirc87970 left,
ggoebel left
14:29
patspam joined
|
|||
masak | PerlJam: *groan* | 14:29 | |
14:29
HarryS joined
|
|||
mathw | normal by what standard? | 14:30 | |
moritz_ | ISO-1337-1 :-) | 14:31 | |
14:33
wtw left
|
|||
masak | moritz_: I take your point fully, but I'm not sure "normal" is such an abstract, non-instantiable concept far enough outside of certain circles... say, geekdom, or academia. | 14:33 | |
gottreu | DSM-IV-TR ? | ||
14:34
patspam left
|
|||
masak | might be we're simply blessed with the relative absence of normal people 'round here :P | 14:34 | |
PerlJam | depends. | ||
moritz_ | masak: hmm. My mother is a psychologist, and she is often asked "am I normal?". It made me think about possible answers | 14:35 | |
14:35
mavrc left
|
|||
PerlJam | If we start with the premise that TimToady it normal ... it's the rest of the world that's insane. | 14:35 | |
s/it/is/ | |||
oops, s:2nd/it/is/ actually | |||
masak | moritz_: I agree that it's more of a fuzzy ideal. the question is more whether it's something a person consciously/unconsciously strives for or not. | ||
Camelia "super cute". twitter.com/dcbaok/status/25789177100 | 14:36 | ||
14:36
mfollett joined
|
|||
PerlJam | squeak has a mascot? | 14:36 | |
14:37
fIorz left
|
|||
masak | PerlJam: www.squeak.org/ | 14:37 | |
looks like a cat. | |||
PerlJam | yes, I'm looking at it | ||
moritz_ | I guess many people would answer "no" to the question whether they are "normal", and be shocked when asked if they are abnormal :-) | ||
masak | oh wait. it's a mouse! | ||
PerlJam | and it does look like a cat rather than a mouse to me too | ||
masak | (of course, duh) | ||
14:38
florz joined
|
|||
masak | moritz_: every time I hear the word "abnormal", I think of Young Frankenstein... :) | 14:38 | |
moritz_ | :-) | 14:39 | |
masak | www.imdb.com/title/tt0072431/quotes?qt0504329 | ||
whoa -- someone on github read ".pick and .roll" as ".rick and .roll" -- how did we ever miss that? :P | 14:42 | ||
moritz_ didn't, but doesn't particular care about that meme | |||
14:43
mavrc joined
|
|||
masak | nod. I'm not sure I grok that meme, actually. | 14:43 | |
moritz_ | it's something I only saw at xkcd, and occasionally parrotted by others | 14:44 | |
nymacro | never gonna give you up... | ||
masak reads up using knowyourmeme.com/memes/rickroll | 14:46 | ||
14:48
ggoebel joined
14:49
HarryS left
|
|||
moritz_ | somehow that still fails to fascinate me | 14:49 | |
nymacro | yeah, it was never truly funny | 14:51 | |
14:53
alext_ left
|
|||
masak | watch out for the False Memes in our midst. | 14:53 | |
moritz_ | wolf meme in sheep's skin? | 14:56 | |
14:56
daxim left
14:57
paul1234 joined,
paul1234 left
|
|||
masak | rakudo: sub wolf { say "om nom nom" }; sub sheep { say "baah!"; callsame }; &wolf.wrap(&sheep); wolf() | 14:59 | |
p6eval | rakudo 0bf6cb: OUTPUT«baah!om nom nom» | 15:00 | |
masak | rakudo: sub wolf { say "om nom nom" }; sub sheep { say "baah!"; callsame }; say (&wolf.wrap(&sheep)).WHAT | 15:01 | |
p6eval | rakudo 0bf6cb: OUTPUT«Int()» | ||
masak | Int? o.O | ||
rakudo: sub wolf { say "om nom nom" }; sub sheep { say "baah!"; callsame }; say (&wolf.wrap(&sheep)) | |||
p6eval | rakudo 0bf6cb: OUTPUT«2» | ||
masak consults ze spec | |||
moritz_ | isn't it callnext() ? | ||
masak | there's no callnext | 15:02 | |
moritz_ | hm | ||
nextsame | |||
masak | there's callsame, nextsame, callwith and nextwith | ||
if it's last, it doesn't really matter, does it? | |||
except maybe in how the call stack looks along the way. | |||
TimToady | and lastcall | ||
15:03
daxim joined
|
|||
moritz_ | ... to brooklyn? | 15:03 | |
TimToady | rakudo: say 42.so | ||
p6eval | rakudo 0bf6cb: OUTPUT«Bool::True» | ||
TimToady | rakudo: say 42.not | ||
p6eval | rakudo 0bf6cb: OUTPUT«Method 'not' not found for invocant of class 'Int' in main program body at line 22:/tmp/M6CA84i5kB» | ||
TimToady wanted .=not for a rosettacode... | 15:04 | ||
15:04
jferrero left
|
|||
masak | S06:2685 says "The call to C<.wrap> returns a unique handle that has a C<restore> method that will undo the wrapping" | 15:04 | |
colomon | .=not ? | ||
masak | hence, it cannot be an Int. | ||
masak submits rakudobug | |||
moritz_ | TimToady: patching it in right now... it'll just take hours to complete the spectest run :-) | ||
masak | don't we have a TODO RT ticket for .not already? | 15:05 | |
TimToady | oh, well, then, we can't fix it yet | ||
colomon | ah, .not | ||
moritz_ | masak: I think we had one, and I closed it over-eagerly | ||
masak | huh. | ||
moritz_ | masak: it covered .so and .not, and I implemented .so | ||
masak | huh. | ||
colomon is still very slow on the uptake this morning | 15:06 | ||
masak | doesn't sound like you, moritz_. | ||
TimToady | the .not was .so.so | ||
masak | :) | ||
moritz_ | masak: if you knew me a bit better in real life, you wouldn't say that :-) | ||
ss/real life/meatspace/ # #perl6 is real too | 15:07 | ||
masak | was just going to point that out. :) | ||
TimToady | s/meatspace/carnisphere/ | ||
moritz_ | :-) | ||
masak | moritz_: the only thing I'm surprised at when we meet is that you have a German accent. you don't have that on IRC :) | ||
TimToady | or may "somasphere" would be less root-mixy | ||
masak likes "somasphere" | 15:08 | ||
very Huxley. | |||
moritz_ | TimToady: "somasphere" makes me think of the drug... right | ||
masak: :-) | |||
masak: next time I'll try harder to dig out my scottish accent :-) | |||
masak | och aye! | ||
moritz_ | just a wee bit of accent with rolled rrrrs, and mis-pronounced vowels | 15:10 | |
t/spec/S02-builtin_data_types/instants-and-durations.t sometimes fails for me | 15:11 | ||
dalek | kudo: bd836a4 | moritz++ | src/ (2 files): give TimToday++ his Mu.not |
15:13 | |
15:13
miso_soup left
15:17
jferrero joined
|
|||
mfollett | Which synopsis is .so covered in? | 15:18 | |
moritz_ | probably S02 | ||
or S32/$something | |||
15:20
ruoso joined
15:21
olgagirl joined
|
|||
colomon | moritz_: why the grammar change for .not? | 15:21 | |
15:21
olgagirl left
|
|||
mfollett | moritz_: thanks | 15:21 | |
moritz_ | colomon: ho, I didn't mean to commit that. Thanks for telling me | ||
moritz-- # git commit -a without checking git diff first | 15:22 | ||
colomon | review++ | ||
masak | colomon++ | ||
moritz_ | as you might guess, I have experimented with parsing ss/// | 15:24 | |
parsing it is easy; doing something with it in a non-convoluted manner is not | |||
dalek | kudo: 6241883 | moritz++ | src/Perl6/Grammar.pm: Revert accidental grammar change from bd836a4a moritz--, and colomon++ for noticing |
15:25 | |
15:26
Ross joined
15:31
mavrc left
15:40
mavrc joined
15:42
nymacro left
|
|||
masak | here's a thing I didn't know before today about RSS and Atom feeds: most blogs don't keep a full history around in them, but only the last 10 or 20 entries. | 15:43 | |
while the remark might *sound* off-topic, recall that I'm currently writing a static blog generator in Perl 6. :P | |||
moritz_ | btw there's a concepttual problem with RSS, and a good reason to prefer Atom | 15:45 | |
it's that RSS has no way to declare the mime type of the content | |||
masak | good news: I'm going with Atom already. | ||
moritz_ | so the client has to guess if it's HTML or text | ||
good | |||
masak | I have heard something similar at some point. | ||
the only thing that seems to keep RSS in business is inertia and cargo-culting. | 15:46 | ||
moritz_ is guilty of both | |||
15:46
LionMadeOfLions left
|
|||
moritz_ | decommute& | 15:47 | |
szbalint | masak++ # I don't want to rant about how RSS is broken and why, but it annoys me greatly. | ||
masak | no need to rant, I think. just use Atom. | ||
szbalint | moritz_: I ran into the mime type issue when refactoring the IronMan feed. | 15:48 | |
15:50
synth left,
synth joined
|
|||
jnthn | masak: ooc, is there still an unwrap method spec'd? | 15:57 | |
15:57
justatheory joined
|
|||
daxim | Atom is able to older entries in a seperate feed, donchaknow | 15:57 | |
jnthn doesn't recall restore method on handles at all from when he last worked on wrap stuff, which was, granted, a year or so ago. | |||
masak | jnthn: don't know. but (as I wrote in the RT ticket), there's a .restore method spec'd on the handle returned from .wrap | ||
jnthn: which IMO makes more sense than a generic .unwrap method | 15:58 | ||
jnthn | Well, the .unwrap method took the handle. | ||
masak checks the spec | |||
jnthn | But yeah, if you have the handle it probably does make some more sense. | ||
daxim | RFC 5005 | ||
jnthn | Maybe a spec twiddle. :-) | ||
daxim | this is for you, moritz_ | ||
masak | jnthn: there's only a fossil left in S32/Callable | 15:59 | |
I say ditch .unwrap completely, and let the user keep the handle if she wants to unwrap later. | |||
16:00
mkramer left
|
|||
jnthn | wfm | 16:00 | |
Having both feels a bit surplus to requirements. | |||
masak | also, the greater safety of handles and .restore kinda makes .unwrap feel like a reckless alternative. | 16:01 | |
.unwrap is a steamroller to .restore's origami :) | 16:02 | ||
16:02
risou joined
|
|||
jnthn | masak: I don't think there was ever a handleless .unwrap that assumed "just do the last wrapper" but maybe there was. :-) | 16:04 | |
If there was, it's certainliy the way to fragility though. | |||
masak | oh, ok. maybe I'm imagining that, then. | 16:05 | |
16:05
drbean left
|
|||
masak | anyway, .restore seems sufficient. | 16:05 | |
PerlJam | What about having an .unwrap with .restore's semantics (i.e., rename .restore to .unwrap)? | 16:06 | |
the wrap/unwrap dichotomy seems better than wrap/restore to me | |||
masak | wfm | 16:07 | |
16:07
mavrc left
|
|||
masak | though the natural objection would probably be that it's not the handle that's being .unrap'd | 16:07 | |
s/unrap/unwrap/ | |||
PerlJam | true | ||
what type is the handle? | 16:09 | ||
16:09
drbean joined
|
|||
masak | Int, apparently :P | 16:10 | |
PerlJam | and what else can you do with a handle besides .restore/ | ||
? | |||
masak | no idea. | 16:11 | |
nothing comes to mind. | |||
.unrestore, perhaps... :) | 16:12 | ||
or should that be, .rewrap? | |||
s/,// | |||
16:14
drbean left
16:16
daxim left
16:18
drbean joined
|
|||
masak | see you at #phasers. nom & | 16:22 | |
16:22
masak left
|
|||
PerlJam | If the do property of Routines was an array where only the "top" item was actually executed, then we wouldn't need .wrap or .restore and I think callsame, callwith, nextsame, nextwith would just work | 16:30 | |
er ... that's not right. | |||
but something like that could be made to work perhaps | 16:31 | ||
moritz_ | then Routine.wrap and .unwrap would just delegate to .shift and .unshift on the array | 16:33 | |
16:35
mkramer joined,
stkowski joined
|
|||
jnthn | PerlJam: I did in 6model play with exactly that. | 16:41 | |
Every invokable thingy had a think to invoke + a candidate list. | |||
*thing | |||
Not sure if it'll stick or not. | 16:42 | ||
(Quite possibly not, but it's an interesting idea to play with.) | |||
sjohnson | yo jnthn how goes it today | ||
jnthn | sjohnson: I'm a little sleepy but otherwise fine. :-) | ||
You? | |||
sjohnson | good just obsessing about crpytography | 16:43 | |
my new obsession | |||
:) | |||
TimToady | rakudo: False || die "oops" # can't believe this still doesn't short circuit... | ||
p6eval | rakudo 0bf6cb: OUTPUT«oops in main program body at line 22:/tmp/p2LvF9It1g» | ||
TimToady | er... | 16:45 | |
rakudo: True || die "oops" | |||
jnthn | wtf | ||
p6eval | rakudo 0bf6cb: ( no output ) | ||
moritz_ | :-) | ||
TimToady | nevermind | ||
jnthn | :-) | ||
moritz_ | I think it's // that doesn't short circuit | ||
TimToady is a space case this morning | |||
jnthn hands TimToady++ another cup of coffee | |||
moritz_ | rakudo: 1 // say("foohoo") | ||
p6eval | rakudo 0bf6cb: ( no output ) | ||
jnthn | I'm pretty sure // does | ||
moritz_ | rakudo: my $x = 1; $x //= say("foohoo") | ||
jnthn | It's the //= form that I think we have bovva with. | ||
p6eval | rakudo 0bf6cb: OUTPUT«foohoo» | 16:46 | |
moritz_ | right | ||
16:51
proller left
|
|||
moritz_ | rakudo: my $x = hash <Jan Feb Mar> Z 1..12; say $x.perl | 16:53 | |
p6eval | rakudo 0bf6cb: OUTPUT«{"Jan" => 1, "Feb" => 2, "Mar" => 3}» | ||
16:59
dakkar left
17:00
LionMadeOfLions joined
17:02
xabbu42 left
17:05
jfried joined
17:08
flussence_ joined
17:09
flussence left,
flussence_ is now known as flussence
17:11
ash_ joined
|
|||
dalek | rixel: f40e10c | diakopter++ | sprixel/src/compiler/ (2 files): bit of cleanup |
17:14 | |
ash_ | jnthn: do you why you'd get a P6Invocation on accident? or what to do with a P6Invocation? | 17:17 | |
> class A { method b { 1 } }; A.can('b'); | |||
===SORRY!=== | |||
get_string() not implemented in class 'P6Invocation' | |||
17:18
rurban joined
|
|||
jnthn | ash_: Generally, invoke it or iterate with it. | 17:19 | |
I'm not sure that A.can('b') can return the method. | |||
Though it probably wants to return something that can invoke the first candidate in the result set. | |||
ash_ | should that throw an error or something then? | ||
jnthn | Well, it shouldn't do whatever it's doing there... | ||
moritz_ | jnthn: why can't it return the same object that .^methods.grep($some_test) would return? | 17:20 | |
jnthn | That'd return a list. | ||
However, it'd probably not give you any deferal semantics. | |||
ash_ | rakudo: class A { method b { 1 } }; say A.^methods.grep: { $_ eq 'b' } | ||
moritz_ | then slap a .[0] on | ||
p6eval | rakudo 624188: OUTPUT«b» | 17:21 | |
moritz_ | rakudo: class A { method b { 1 } }; say A.^methods.grep('b').[0].WHAT | ||
p6eval | rakudo 624188: OUTPUT«Method()» | ||
jnthn | moritz_: That is tempting. | ||
But it may mean folks don't get deferal. | |||
moritz_ | deferal? | 17:22 | |
jnthn | nextsame and friends. | ||
They rely on there being a dispatcher providing the candidate list. | |||
moritz_ | hm, right | ||
jnthn | Just grepping out a bunch of method objects and then invoking the first one does not make the rest of them the candidate list. | ||
In fact, doing a sub-ish invocation of a method object is probably never going to give you working deferal. | 17:23 | ||
moritz_ | right | ||
jnthn | Because it totally bypasses running the method dispatcher. | ||
ash_ | does that mean .^methods is doing something wrong too? or that .can needs to be smarter? | ||
jnthn | ash_: No, .^methods is fine | ||
Well, we could choose that .can ain't all that smart either. | |||
"If you want to do a method dispatch, well, do one dammit." | 17:24 | ||
moritz_ | more to the point, I'd love to .can to return something that can do deferal, and internally wrap the candidate list | ||
jnthn | Well, yeah | ||
P6invocation is basically a curried method dispatchrer. | |||
moritz_ | it's not always that easy | ||
ash_ | well | ||
also | |||
rakudo: say "Str".can('split') | |||
works | |||
p6eval | rakudo 624188: OUTPUT«split» | ||
jnthn | e.g. invoking it is not *really* invoking the first thing in the list. | ||
It's invoking a method dispatcher, which in turn runs the first thing in the list. | 17:25 | ||
ash_ | it only gives the P6Invocation when you use a class you make (i think) | ||
jnthn | Oh, I know what's going on... | ||
It provides .Str but probably not a get_string v-table. | |||
ash_ | rakudo: my $a = "Str".can('say'); $a.() | ||
p6eval | rakudo 624188: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in 'Mu::say' at line 1228:CORE.setting in main program body at line 22:/tmp/jRv4l9olVw» | ||
jnthn | ash_: Needs an invocant passing still. | 17:26 | |
moritz_ | right; lonely .say misses its invcant! | ||
ash_ | rakudo: my $a = "Str".can('say'); $a.assuming("Str"); $a.(); | ||
p6eval | rakudo 624188: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in 'Mu::say' at line 1228:CORE.setting in main program body at line 22:/tmp/iBT46ukbj2» | ||
diakopter | rakudo: my $a = "Str".can('say'); $a.($a) | ||
ash_ | hmmm | ||
jnthn | .oO( I wonder if we're actually going to need a v-table of curried dispatchers... ) |
||
p6eval | rakudo 624188: OUTPUT«say» | ||
jnthn | All this curry talk is making me hungry. | 17:27 | |
dalek | rixel: cf36d17 | diakopter++ | sprixel/src/compiler/ (2 files): rename temporarily; stupid TortoiseGit (or git) not handling Windows case-insensitive filenames. |
||
rixel: ae54de5 | diakopter++ | sprixel/src/compiler/Env (2 files): rename it back |
|||
ash_ | lol | ||
jnthn | diakopter: Heh, glad it wasn't just me who coudln't find a better way... :-) | 17:28 | |
ash_ | curry is great, i like thai green curry, but there aren't any restaurants near by with it :-( | ||
jnthn | Aww. | ||
diakopter | jnthn: you use TortoiseGit? | ||
jnthn | diakopter: No, command line git | ||
diakopter | oh | ||
jnthn | diakopter: But when faced with the same problem, I ended up doing the same. | ||
e.g. I think it's an underlying git on Windows thing rather than Tortoise's fault. | 17:29 | ||
diakopter | yeah | ||
17:29
stkowski left
17:30
jferrero left
17:31
stkowski joined
|
|||
ash_ | jnthn: so you know why some methods don't work with .can? just curios, i filed a bug report for it too | 17:32 | |
i tried tracking it down, but it was a bit beyond me | |||
jnthn | Well, the error you saw is probably that get_string ain't implemented in P6invocation | 17:34 | |
(in src/pmc/ | |||
The deeper problem is that it's a PMC rather than a real Perl 6 object. | |||
It's harder to do too much about at the moment. | 17:35 | ||
ash_ | rakudo: say 'foo'.can('split'); # works though, is that not also a P6Invocation? | ||
p6eval | rakudo 624188: OUTPUT«split» | ||
ash_ | i guess my confusion is why do some class methods work and other not? | ||
moritz_ | maybe it's related to classes defined in PIR vs. Perl 6? | 17:38 | |
rakudo: say Cool.new.can('Num') | |||
p6eval | rakudo 624188: ( no output ) | ||
moritz_ | rakudo: say Cool.can('Num') | 17:39 | |
p6eval | rakudo 624188: OUTPUT«Num» | ||
moritz_ | or type object vs. instance? | ||
rakudo: class A { method b() { } }; say A.new.can('b') | |||
p6eval | rakudo 624188: ( no output ) | ||
ash_ | rakudo: class A { method b { 1 } }; say A.new.can('b'); | ||
p6eval | rakudo 624188: ( no output ) | ||
ash_ | lol | ||
oops | |||
rakudo: class A { method b { 1 } }; my $a = A.new; say $a.can('b').($a); | 17:40 | ||
p6eval | rakudo 624188: OUTPUT«1» | ||
ash_ | rakudo: class A { method b { 1 } }; my $a = A.new; say $a.can('b') | ||
p6eval | rakudo 624188: ( no output ) | ||
ash_ | hmm | ||
17:46
Entonian joined
17:52
mavrc joined
17:59
ash_ left
18:03
rurban left
18:05
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
sorear | good * #perl6! | 18:07 | |
colomon | o/ | 18:08 | |
moritz_ | \ö | ||
colomon | moritz_: what's that on your head? | ||
moritz_ | colomon: bear ears :-) | 18:09 | |
18:09
kjeldahl left
18:10
timbunce left
18:14
envi left
18:18
timbunce joined
18:23
M_o_C joined
18:28
mberends joined
|
|||
dalek | rixel: 8b0285b | diakopter++ | sprixel/ (3 files): delete old Messages.Designer.cs |
18:33 | |
rixel: e6cc675 | diakopter++ | sprixel/codegen/RunSharp/Properties/Messages.Designer.cs: re-add Messages.Designer.cs |
|||
rixel: 4bf7cb2 | diakopter++ | sprixel/sprixel.csproj: fixup .csproj |
|||
sorear | \o/ test.pl runs to completeion | ||
18:33
risou left,
risou joined
|
|||
mberends | diakopter: nice to see you're playing with Sprixel again :) | 18:34 | |
jnthn: halp pleas | |||
sorear | hi mberends! | ||
mberends | hi sorear! you're very busy too! | ||
18:39
masak joined
18:40
timbunce left
18:43
mavrc left
18:44
tadzik joined,
rindolf joined
|
|||
rindolf | Hi all. Does anyone have any comments about perl-begin.org/learn/perl6/ ? | 18:44 | |
18:46
masak left,
mavrc joined
|
|||
tadzik | I'd sneak some "Perl 6 is not Perl 5" somewhere in the last part | 18:46 | |
flussence | s/\.\././ ? | 18:47 | |
18:47
masak joined
|
|||
tadzik | also, perl6.org/documentation has now pretty nice content, and a bit friendlier to, so it's a nice place to link to | 18:47 | |
18:47
masak left
|
|||
flussence | (two dots at the end of a sentence sticks out to me like a sore thumb, I've never understood why) | 18:47 | |
apart from that, it looks well-written | 18:48 | ||
diakopter | rakudo: sub a(Int, Str; Int) { }; | 18:50 | |
rindolf | flussence: where do you see that? | 18:51 | |
diakopter | moritz_: ^^ :) | ||
flussence | rindolf: middle of the second-to-last section thing | ||
p6eval | rakudo 624188: OUTPUT«(timeout)» | ||
flussence | ...did someone raise the timeout on p6eval recently? that one took a while. | 18:52 | |
diakopter does not know | |||
rindolf | flussence: oh, that's due to the <q> tag. | ||
flussence: let me get rid of it. | |||
flussence | Ah, that looks more sense-making now. | 18:54 | |
jnthn | mberends: oh hai | 18:56 | |
How can I halp? | |||
tadzik | Star today? | 18:57 | |
(tonight?) | |||
rindolf | flussence: fixed. | ||
jnthn | #phasers in a few mins. | ||
moritz_ | rindolf: s/displace/replace/ maybe? | 18:58 | |
18:58
masak joined
|
|||
rindolf | moritz_: why? | 18:58 | |
moritz_: displace as in succeed | |||
moritz_: en.wiktionary.org/wiki/displace - see meaning #2. | 18:59 | ||
moritz_ | rindolf: ah, for me as a physicist I mostly know "displace" as "spatially move" | ||
rindolf: having read about it, I agree it's ok | 19:00 | ||
rindolf | moritz_: ok. | ||
19:01
ash_ joined,
justatheory left
|
|||
pmichaud | Star tonight | 19:02 | |
19:02
justatheory joined
|
|||
flussence | yay! | 19:02 | |
pmichaud | afk for about 30 mins | 19:03 | |
moritz_ | #phasers now! | ||
19:04
zby_home_ left
19:06
stkowski left
|
|||
masak | now now now | 19:06 | |
moritz_ | .say for now, now now | 19:09 | |
rakudo: .say for now, now, now | |||
p6eval | rakudo 624188: OUTPUT«Instant:2010-09-28T18:46:23.603417ZInstant:2010-09-28T18:46:23.855916ZInstant:2010-09-28T18:46:23.987443Z» | ||
masak | a reflection on the fleeting instants in our lives. | 19:10 | |
jnthn | no no | 19:13 | |
now.^methods # this is reflection | |||
;-) | |||
masak | :P | 19:15 | |
sorear | I wonder how dalek will cope with the 51 patch fast forward merge I just fed it. | 19:18 | |
flussence braces for impact | |||
dalek | ecza/master: e7f4146 | sorear++ | src/Metamodel.pm: [mm] Reimplement the $/ hack |
19:19 | |
ecza/master: 6878346 | sorear++ | src/ (3 files): [mm] Implement ltm data storing |
|||
ecza/master: d75ad08 | sorear++ | / (6 files): [mm] Fix static $*foo cases, compiler driver |
|||
mberends | jnthn: in 6model/dotnet/compiler/DNST2CSharp.pm:114 there is a var whose data type I cannot figure out by code inspection. Could you suggest where to look in a MethodCall object to figure out what its return type is? | 19:20 | |
19:20
plainhao left
|
|||
jnthn | mberends: looking | 19:20 | |
mberends: ew. | 19:22 | ||
19:22
tomaw_ joined
|
|||
jnthn | mberends: Laziness bytes. | 19:23 | |
*bites | |||
... | |||
mberends: What really should happen is that DNSTMethodCall gets a type atribute | |||
mberends: And that this gets set when it's constructed. | |||
masak .oO( unless it nybbles... ) | 19:24 | ||
mberends | jnthn: Many of the other var types went away without too much effort, but this one does byte :( | ||
19:24
jaldhar left
|
|||
jnthn | mberends: Yes, it will I'm afraid. | 19:24 | |
mberends: Would it help you if I eliminated it in the dotnet version? | |||
19:25
ash_ left
|
|||
mberends | jnthn: probably, but I don't have a suggestion for what you should write to do that. I could eliminate a few more vars by backporting from the java code. | 19:25 | |
jnthn | mberends: Oh, I suspect I can probably kill 'em off. | 19:26 | |
mberends: It was more a "I want progress NOW!" thing than a "long term we don't need to note what type we expect" thing. | |||
mberends: That is, it's all stuff that I'd need to do when eventually generating IL rather than C#. | 19:27 | ||
mberends | jnthn: yes | 19:28 | |
19:32
ash_ joined
|
|||
dalek | odel: 842f415 | jnthn++ | dotnet/compiler/DNST.pm: Add a type attribute to DNST::MethodCall. |
19:34 | |
mberends | jnthn++ | ||
jnthn | I didn't do anything yet. :P | ||
mberends just bought a Lego Mindstorms set on eBay :) | 19:35 | ||
tadzik | :D | ||
masak | mberends: \o/ | ||
jnthn | mberends: Yay! | 19:36 | |
mberends | masak: you're not allowed to play with it next week! | ||
masak | mberends: understood. :) | ||
ash_ | mberends: if you like robotics and want something a bit more involved look up the Ardunio, but if your not thats good too, i just like robotics :P | ||
dalek | ecza/master: e417169 | sorear++ | src/ (6 files): Remove a lot of bits of the old metamodel |
19:37 | |
mberends | ash_: this one is for $kid, but dad will probably play too ;) | ||
19:38
justatheory left
19:39
hanekomu_ joined
19:40
hanekomu_ left
19:41
hanekomu_ joined
|
|||
mberends scans eBay for Arduino stuff ;) ash_++ | 19:43 | ||
19:45
ggoebel left
|
|||
ash_ | mberends: if you don't see anything thing there, checkout sparkfun.com or www.ardunio.cc for them, they just came out with 2 new boards, and btw their software works on Windows, OS X, and linux, its one of the few microcontrollers that doesn't need a special programmer too, which is nice | 19:45 | |
www.arduino.cc/ it helps if you spell it right | |||
masak | ooh, this is interesting -- the "leave" semantics of the statement-ending 'when' construct in Perl 5 being defended: news.ycombinator.com/item?id=1735497 | ||
mberends | ash_: yes, I do like these things too. I think the 'Evil Genius' book was on sale in Maplin in the UK. No special programmer is a nice indeed. | 19:48 | |
s/a nice/nice/ | 19:50 | ||
19:50
thebird joined
|
|||
ash_ | the new ones are nifty, the have a special USB hub on them so you can program the arduino board to show up as any USB device, it can show up as a keyboard or mouse or an interface card. This also means no special drives for them anymore since its not using FTDI anymore, which is an added bonus of being able to plug it in just about anywhere and work | 19:50 | |
sorear contemplates portability | |||
niecza on java. mmm. | 19:51 | ||
ash_ | if you like .net more than C with a splash of C++ (arduino's are written in a language called Wiring, its a superset of C) there is also the Netduino, which is kinda a clone of the Arduino but targets .NET netduino.com/ | 19:53 | |
dalek | odel: 3be093e | jnthn++ | dotnet/compiler/DNST2CSharp.pm: If we have a supplied type, emit it in place of var for DNST::MethodCall nodes. Means we can do the transition away from var in stages. |
19:54 | |
19:54
meppl left
|
|||
dalek | odel: 02d64c8 | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm: Some initial tentative var-elimination for DNST::MethodCall nodes. |
19:54 | |
sorear | jnthn: Why are you transitioning away from var? | 19:55 | |
19:55
timbunce joined
|
|||
mberends | sorear: it's easier to keep the java translation in sync with C# that way. | 19:56 | |
Grimnir_ | Funny observation (not by me, and I'm not sure it's totally true, but quite funny): the tmtowtdi paradigm can make Perl people write Python code, if that's what is the best for the task (or they might just do it anyway, cause there is more than one way to do it). On the other hand it seems Python people would never write Perl code. | 19:57 | |
jnthn | sorear: Because it's less headache for me to eliminate it than it is for mberends ;-) | ||
19:57
dual left
|
|||
jnthn | (since I wrote this pile of scary in the first place :-)) | 19:57 | |
19:58
Italian_Plumber left
|
|||
masak | Grimnir_: I find there's quite a lot of empty politics/PR in the respective stances of Perl and Python, with "there's more than one way to do it", and "there should be one obvious way to do it". | 19:58 | |
jnthn | sorear: Also I'd have needed to do it anyway | ||
19:58
timbunce left
|
|||
jnthn | sorear: Since I want to make IL at some point and the assembler won't type-infer for me. ;-) | 19:59 | |
masak | Grimnir_: in the end, it comes down to being pragmatic and being able to let your code evolve in pace with its requirements. | ||
Grimnir_: that said, the two stances do capture something about the ambient "spirit" of the two communities. but it's much less clear-cut and black-and-white than the slogans themselves make it seem. | |||
Grimnir_ | masak: of course. it's never as black and white as it seems :) | 20:00 | |
masak | I love that about reality. :) | ||
dalek | odel: a40c29f | jnthn++ | dotnet/compiler/PAST2DNSTCompiler.pm: Much, much more var elimination. |
||
jnthn | mberends: Those get things a LONG way. | ||
mberends | ash_: which model of the Arduino would you recommend buying? arduino.cc/en/Main/Hardware spoils us with choice :) | ||
Grimnir_ | I started thinking about Perl6, when I read the "perl periodic table" (or what it's called), that maybe it's quite difficult for newcomers to learn, or it's easy because you can do the same things in so many ways? | 20:01 | |
I'm not sure. but it does seem that Python is a good language to use as a starting language | |||
moritz_ | if you don't prefer explicit scoping, yes | ||
masak | Grimnir_: Python evolved out of ABC, a language designed specifically for education. | 20:02 | |
Grimnir_ | masak: it's not that I insist on the difference, and I actually like that there are those different ways of seeing programming and programming languages. it's just interesting, that there is that difference :) | ||
masak: ah, that makes sense | |||
masak | Grimnir_: I agree that it's interesting. | ||
Grimnir_: if it were up to me, there would be less senseless tribalism and more cultural exchange across the language community borders. | 20:03 | ||
20:03
dual joined
|
|||
jnthn | mberends: There's one nasty still. | 20:03 | |
mberends: Under elsif $op.pasttype eq 'nqpop' { | |||
Grimnir_ | a professor and some other people at computer science here made a python library for doing concurrent programming. his focus was that he wanted to make something, that is simple enough for scientists - who aren't programmers or computer scientists - to use without making ugly race conditions, and being able to do a lot of the programming with a gui tool. they actually kind of succeeded, and it was still only a beta release. quite impressive | 20:04 | |
(they used python, I forgot to say that) | |||
jnthn | I think we're gonna need a op -> return type hash there. | ||
Grimnir_ | masak: is there a lot of tribalism? | ||
ash_ | mberends: that mostly depends on how you want to use it, the Arduino Uno (which like 2 days ago replaced the Arduino Duemilanove, they are really similar, one just uses FTDI the other uses USB), is great for most things if you want an affordable prototyping board. I have a Mega mainly because I didn't mind the slightly higher price with the added number of pins. most of the other boards are special purpose depending on if you want size (small like the pro), | ||
integrated wireless socket (the Fio has a socket for a XBee radio chip) the LilyPad is flexible and designed for putting into close or fabric (my friend had one in a costume) | |||
Grimnir_ | I know a guy, who is not a programmer or developer or anything, but he likes to program stuff sometimes, and he really likes Python | 20:05 | |
masak | Grimnir_: yes, I think there is. not so much here on #perl6, but lots in the social media, and in people I meet in the somasphere. | ||
Grimnir_ | I have found out that I so much more like a language like perl, because it's fun just to program. I get so much more out of programming some simple tasks in perl than php for instance | ||
and I like humor elements too. I just learned about the yadda yadda operator. I like stuff like that :) | 20:06 | ||
sorear | I wonder how much sense find_lex_p_ic_ic would make in a Parrot context | 20:07 | |
masak | in Perl 6, we don't believe that having fun and being useful are mutually exclusive. :) | ||
mberends | ash_: I have similar preferences. Thanks for the tips. They all seem affordable too. Arduino++ | ||
sorear | that's the main thing niecza uses | ||
ash_ | the more i program, the more i like functional style languages, personally. perl gives me enough of that while still not being completely foreign (like lisp or haskell i just haven't learned to understand their syntax) | ||
Grimnir_ | masak: exactly :) | ||
ash_: yes, good point | |||
I haven't tried lisp or haskell, but I have tried SML. it was nice, but you kind of loose the grip on it, if you don't use it | 20:08 | ||
ash_ | mberends: if your really into the electrical stuff, you can just by the chip and build the board yourself, my friend does that, he made about 10 for a lab he works in because they keep blowing them up :P its really cheap if you do it that way (like $15 for each) | ||
20:09
timbunce joined
20:10
Italian_Plumber joined
|
|||
ash_ | sorry for causing so much noise in #perl6 | 20:12 | |
masak | rindolf: re perl-begin.org/learn/perl6/ -- from the perspective of someone who does believe that Perl 6 is "still" Perl, you don't make an extremely strong case for that viewpoint. :) | ||
20:12
icwiener left
|
|||
masak | I would also like to take the opportunity and apologise for causing so much noise on #perl6 :P | 20:12 | |
Grimnir_ | it doesn't bother me. I'm used to people talking about strange stuff on irc channels :) | 20:13 | |
mfollett | Grimnir_: I really like the Perl6 Periodic Table of Operators but I probably wouldn't show that to someone just learning the language, there is a lot of information there and that could be daunting for some. I kind of think you learn those things as you need them or as you want to and then you look at the table after you've learned enough that it can be a useful reference. | 20:14 | |
rindolf | masak: I didn't try to make a case for the viewpoint that Perl 6 is still Perl. | 20:15 | |
masak: a few years back, I would have probably written something much worse. | |||
masak | rindolf: I understand that. if you're interested, I or someone else here can try to make the point on the page better than it's made now. | 20:16 | |
the other parts of the page do make a good job at striving to be objective. | 20:17 | ||
20:20
nsh joined,
sbp joined
|
|||
masak | yay! valid atom feed! \o/ validator.w3.org/feed/check.cgi?url.../feed.atom | 20:23 | |
20:23
justatheory joined
|
|||
sbp | /topic I for one salute our new git-based overlords! | 20:26 | |
20:26
kjeldahl joined
|
|||
masak | moritz_: you mentioned wanting to update the Planet Perl 6 aggregator feed. now strangelyconsistent.org/blog/feed.atom is available for that. | 20:27 | |
moritz_ | [Coke]: see above | ||
masak: it's more "telling [Coke] what to do" than actually doing things :-) | 20:28 | ||
masak | oh. convenient :) | 20:29 | |
sbp | rakudo: my @pascal := do [1], -> @p { [0, @p Z+ @p, 0] } ... *; say @pascal[^10].perl; | ||
masak | [Coke]++ | ||
p6eval | rakudo 624188: OUTPUT«([1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1], [1, 7, 21, 35, 35, 21, 7, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1])» | ||
ash_ | if you were doing prototype based inheritane wold you need a different HOW ? | 20:30 | |
masak tries the feed in his own feed reader to make sure 's all OK | |||
20:31
thebird left
|
|||
masak | wow, it works seamlessly! \o/ | 20:35 | |
sjohnson | any C experts here for an OT question? | 20:36 | |
( `ー´) | |||
masak | might this be the first Atom feed in history served by Perl 6? strangelyconsistent.org/blog/feed.atom | ||
moritz_ | might be :-) | ||
ash_ | sjohnson: might as well ask and see | ||
jnthn | masak: Looks good in ffx's built in reader. | ||
masak | \o/ | ||
sjohnson | C question: if i have int getLength(char str[]) { }... is str a pointer or an array? | ||
masak | looks good in Google Reader, too. | 20:37 | |
ash_ | and array | ||
sjohnson | a noobie like me would assume str[] == array, but it is not so according to gcc. | ||
ash_ | an* | ||
masak | sjohnson: an array. | ||
sjohnson | people in #c say pointer | ||
and gcc seems to be agreeing with them | |||
masak | sjohnson: but it might be presented as a pointer, because the distinction is slight. | ||
sjohnson | str++; // pointer arithmatic works (confused face) | ||
ash_ | don't confuse array's and pointers, they are not strictly the same thing in C | ||
masak | nod, but sometimes it explains things to think of them as very similar. | 20:38 | |
sjohnson | ash_: that's exactly my problem. i'm trying not to confuse them... yet pointer arith in that function works, where as if i do char[] pig = "happy pig"; pig++; in main(), it breaks | ||
flussence | shouldn't that be "char pig[]"? | 20:39 | |
gfldex | sjohnson: an array is a pointer that got mem allocated by the compiler (for you) | ||
sjohnson | flussence: yes | ||
sorry typo | |||
flussence | k | ||
masak | sjohnson: the relationship between array and pointer is basically has-a. an array has a pointer, which it sometimes exposes and confuses with itself. | ||
sjohnson: specifically, the pointer that the array has is to the first of its consecutively allocated elements. | 20:40 | ||
sjohnson | confusing stuff! | ||
masak | sjohnson: thus, the equivalence a[i] == a + i holds. | ||
er. I got the not-altogether right. | 20:41 | ||
the rhs should be de-ref'd also. | |||
sorear | sjohnson: an array can be used as a pointer. When this happens, you get a pointer to the first element | 20:42 | |
But the resulting pointer is a value - it can't be modified | |||
masak finds and likes www.reddit.com/r/perl/comments/dk1r...ns_perl_6/ | |||
dukeleto | #parrotsketch is happening now if anybody is interested | 20:43 | |
20:44
ash_ left
20:45
pythonian4000afk is now known as pythonian4000
|
|||
sjohnson | heres the pastebin for anyone else who wants to add anything. i wont clog up anymore of teh chan bandwidth | 20:45 | |
www.pastie.org/1187376 | |||
:-) | |||
gfldex | sjohnson: did you understood the difference? | 20:47 | |
sjohnson | i still don't | ||
what masak said about the array having a pointer might explain it tho, but im still not sure. | |||
gfldex | "mammy moose" is a peace of memory on your data segment | 20:48 | |
masak | sjohnson: fwiw, I liked sorear's explanation better :) | ||
sorear | sjohnson: IMHO gcc is wrong to accept line 9 | ||
gfldex | that peace of memory is a constant | ||
incrementing pigger would not cause much problem (in the given case) | 20:49 | ||
sjohnson | maybe calling testFunc(chararray) will always pass a pointer in C? | ||
sorear | sjohnson: when you say "char[] foo" as a parameter, the internal pointer is a variable, but that variable-ness is an implementation detail and shouldn't be leaking out like that | ||
gfldex | but what would pigger-- do? | ||
sjohnson | oh sorry that was sorear who said it. thought it was masak. oops | ||
sorear | sjohnson: yes, arrays in C are always passed by reference. (Remember, the PDP-7 had 4kb of programmer-accessible RAM) | ||
sjohnson | gfldex: the code wont do anything, just commented where gcc would fail | 20:50 | |
oh, man i'm blind today. -- would just push the pointer backwards i would guess | |||
masak | aye. | 20:51 | |
sjohnson | thanks for the help guys | ||
sorear | sjohnson: when you say char[] foo = "bar" at the top level, some memory is allocated at a fixed address, say 0x124, and the compiler remembers "foo = 0x124 (char[4])" | 20:53 | |
sjohnson: foo++ doesn't make sense because foo is a constant | |||
20:54
wamba left,
M_o_C left
|
|||
sjohnson | ya that makes sense | 20:55 | |
i got a lot to learn | |||
.oO(maybe i'll stick to Perl) |
|||
ahh, here it is in K&R C 2nd ed | 20:57 | ||
"When an array name is passed to a function, what is passed is the location of the initial element. Within the called function, this argument is a local variable, and so an array name parameter is a pointer, that is, a variable containing an address." | |||
i should have RTFM'd first, but i thought it would take me forever to find the page saying that. oops | |||
sorear | sjohnson: find a copy of the SVID-x86 | 20:58 | |
it's about 15 pages and has all the useful low-level details like that | |||
sjohnson | i wonder why it didnt warn me that i didnt write char *str... when i wrote: char str[]. maybe they're interchangeable | ||
thanks for the tip | 20:59 | ||
sorear | it's the binary compatibility spec for C compilers on UNIX | ||
sjohnson googles for it | |||
sorear | (System V Interface Description) | ||
sjohnson | thanks for the info. well, next time i wont ask any more C questions here until i read all of my copy of K&R C | 21:00 | |
masak | sjohnson: en.wikipedia.org/wiki/System_V_Inte...Definition | 21:01 | |
sjohnson | just as i thought, "As formal parameters in a function definition, char s[]; and char *s; are equivalent;" | ||
21:01
stkowski joined
|
|||
sjohnson | sorry if i wasted anyones time. *hugs K&R C book* | 21:01 | |
sjohnson bookmarks masaks URLK | 21:02 | ||
masak | sjohnson: no, it was quite informative. thanks for bringing it up. | ||
21:03
rindolf left
|
|||
sjohnson | "#perl6... you learn something new every day" -- today's slogan | 21:03 | |
21:04
ash_ joined,
kjeldahl left
|
|||
sjohnson | sorear: about line 9 being wrong, according to K&R C book it's okay to do so | 21:05 | |
since it is a pointer, can do pointer arithmetic and such | |||
21:05
Italian_Plumber left
21:07
tadzik left
|
|||
masak | sjohnson: it's only a pointer after you've passed it to a function. | 21:08 | |
s/a pointer/a modifiable pointer/ | 21:09 | ||
sjohnson: the original array is a constant pointer. | |||
or has-a, depending how you view it. | |||
sjohnson | well, the array is not a pointer. if you want to make a pointer from the constant array, you can do char *pointer = &pigger[0];, then do pointer++; | 21:10 | |
says in K&R C you cannot do pointer arithmatic on arrays because they aren't pointers. is what your are saying the same thing said another way? | 21:11 | ||
masak | char *pointer = pigger; /* should work */ | 21:12 | |
sjohnson: arrays aren't pointers. arrays are arrays. :) | |||
sjohnson | i tried that, but it won't work | 21:13 | |
says incomaptible type | |||
well, i get a warning | |||
i shouldn't say it wont work | |||
masak | sjohnson: in some situations (such as when they're being passed by reference through a function signature) they act like pointers (to the first element in the array). | ||
sjohnson | as difficult as this stuff is, it's still interesting | ||
masak tries locally | |||
sjohnson waits patiently :) | 21:14 | ||
21:14
mkramer left
|
|||
sjohnson | i shouldn't say difficult actually... just lower-level than perl | 21:17 | |
K&R C 2nd Ed -- "The answers are here" should have been its subtitle | |||
21:18
Ross left
|
|||
masak | sjohnson: works fine here. gist.github.com/601801 | 21:19 | |
sjohnson | hmm | 21:20 | |
i wonder why im getting warnings | |||
now i'm not. thanks for double checkin | 21:21 | ||
must have done something else foolish | |||
im glad it works | |||
cause i thought it should work | |||
:) | |||
thats always a nice feeling | |||
21:25
jfried left,
meppl joined
|
|||
masak | A12 says that 'next' and 'last' should default to (what is now called) 'nextsame' and 'lastcall', respecitvely? is that still the case in current Perl 6? | 21:29 | |
21:30
pyrimidine left
|
|||
masak | by the way, my new blog is being statically generated by 200 lines of Perl 6 code (with Markdown conversion outsourced to 1.5kLOC Perl 5 code) | 21:35 | |
sjohnson | masak i see what i did wrong for the warning. i did char ptr* = &array; | 21:41 | |
masak | sjohnson: good. now explain to me why that is wrong. :) | ||
sjohnson | cause array already is the address for the first element | 21:42 | |
and doesnt need the & | |||
would be my guess | |||
masak | exactly. | ||
sjohnson++ | |||
sjohnson | :) | ||
sjohnson being a pointer, of course | |||
;) | 21:43 | ||
alright, back to perl6 mode for me | |||
too much low level thinking for one day | |||
silug | i hate asking a stupid question, but is there a replacement for hex() in perl 6? | 21:44 | |
flussence | fmt? | 21:45 | |
sbp | masak: source for the blog generator? | ||
flussence reads perldoc -f hex again | |||
sjohnson | sprintf with %H? | ||
flussence | rakudo: say '0xAF'.Int | ||
p6eval | rakudo 624188: OUTPUT«175» | 21:46 | |
flussence | rakudo: say :16<AF> | ||
p6eval | rakudo 624188: OUTPUT«175» | ||
masak | sbp: hm, it's not on github or anything like that yet. | ||
sbp: basically, what I have now is the specific solution that works for me. the next step is to generalize it while keeping it working. | 21:47 | ||
silug | flussence: neat. thanks. | ||
sbp | examples of Perl 6 in the wild might be helpful for learners, even if the code isn't generalised. it's probably a good example of idioms that many programmers will be using commonly, and it's designed specifically as a piece of working code rather than testing or showcode | 21:48 | |
masak | true. | ||
sbp | an annotated version of at least pieces of it might make a good post, too? | ||
masak | in that vein, here's a gist. gist.github.com/601864 -- enjoy. | ||
sbp | thanks! | ||
masak | I'm making my first post as we speak. might highlight some parts of the code just for fun :) | 21:49 | |
look at the sub 'html_escape', for example -- isn't that exquisite? | |||
even with the rakudobug workaround, it's short and to the point. | 21:50 | ||
sbp | yeah, I really like that one | ||
is this following piece approved perl6 stylewise? | |||
$infile.get; | |||
1 until $infile.get eq '---'; | |||
I presume it's just discarding stuff until --- | 21:51 | ||
masak | right. | ||
up to and including. | |||
I've been thinking of other ways to write that idiom. | |||
the '1 while' way is actually a bit p5-centric. I chose it this time for some reason. | 21:52 | ||
I also tend to like `repeat until $infile.get eq '---' {}` | 21:53 | ||
21:53
ruoso left
|
|||
sbp | hmm, I think I prefer that | 21:53 | |
masak | or `* until $infile.get eq '---';` | ||
sbp | the {} makes the noop more obvious | 21:54 | |
masak | aye. | ||
sbp | noop until $infile.get eq '---'... :-) | ||
finished skimming it, anyway | |||
thanks for posting that! | |||
masak++ | |||
have a kudon. the SI unit of kudos, I tink | |||
masak | :) | ||
thanks for skimming it! I feel kudo'd :) | 21:55 | ||
21:56
timbunce left
|
|||
sbp | what was the 'if "_site/$html_filename".IO ~~ :e' commented section for, by the way? | 21:57 | |
flussence | wow... that's a lot of stuff in not a lot of lines! masak++ | ||
sbp: skips generating files where the output's newer than the input, I guess | 21:58 | ||
masak | sbp: it's a failed attempt to only generate target files from the source files that were changed. | ||
sbp | ah, yes! makes sense now | ||
masak | aye. what flussence said. | ||
for some reason that I haven't had time investigating, it didn't quite work. | 21:59 | ||
I tend not to commit commented-out code, but this isn't committed code :P | |||
flussence | that's odd, irssi didn't highlight that line :/ | ||
sbp | why did you use the [<] there rather than a nested < between the two? | ||
flussence | he'd have to write .IO.modified out twice that way. | 22:00 | |
sbp | hmm. I guess somehow the IO.modified call is being applied to both the args before the < is... right | ||
flussence | .oO( I think I'm starting to learn this language! ) |
||
masak | aye. | ||
sbp | simple case of me no understand the "»", apparently | ||
hehe | |||
masak | sbp: the » is basically a 'map' here. | 22:01 | |
sbp | ah. so it's creating a new list each time? | 22:02 | |
array, sorry | |||
masak | maybe an example'll help. | ||
rakudo: my @a = <oh hi there>; .say for @a>>.ucfirst | 22:03 | ||
p6eval | rakudo 624188: OUTPUT«OhHiThere» | ||
sbp | this seems to provide a good adjunct to your "all good, well-established features, which find daily use in Perl 6 programs" paragraph. what the commentators are missing is that these features which seem to just be there to golf all programs into incomprehensible oblivion have actually been huffmanised with a lot of care and eye to practicality | 22:04 | |
the IO.modified being a good example | 22:05 | ||
masak | which paragraph is that? | ||
sbp | the one starting "I think these reactions" in strangelyconsistent.org/blog/idiomatic-perl-6 | 22:06 | |
masak | ah. didn't remember writing that :) | 22:10 | |
but I agree 100% with the sentiment. | |||
the featureset that I'm used to -- say, most of the features in Rakudo -- feel *very* well engineered. | 22:11 | ||
silug | flussence: fwiw, :16<> doesn't seem to work on a string. | ||
but prepending 0x and using .Int works fine, even if it is a little ugly. :) | 22:12 | ||
masak | I mean, I'm learning Perl 5 piece by piece, and apart from speed, memory usage and stability, there are many places where I wish that Perl 5 was more like Perl 6. | ||
flussence | that's because the <>s *are* string quote operators - use :16($string) | ||
silug | oh, duh | ||
see, like i said, stupid question | |||
masak | or :16«$string» -- should work too, for the same reason qq interpolates. | 22:13 | |
flussence | q = <, qq = «? | ||
22:13
mberends left
|
|||
silug | yeah, i can't seem to retain that (yet) | 22:14 | |
22:14
Mowah left
|
|||
hudnix | For some reason I just wanted to write something like "has $.attribute = somefunc($^a)" and likewise for other attributes and have it automatically generate the right .new() function for that. Anyone have any thoughts on that idea? | 22:15 | |
flussence | would *.&somefunc work there? | 22:16 | |
jnthn | What could the $^a be? | ||
You can call a function on the RHS of the = there and it automatically closures it up and does it once per instnace. | 22:17 | ||
hudnix | the first parameter to the automatically generated new funtion; | ||
sure, but how to pass a parameter to the RHS without writing a .new()? | 22:18 | ||
sbp | rakudo: my @pascal := [1], -> @p { [0, @p Z+ @p, 0] } ... *; say @pascal[^10].perl | 22:19 | |
p6eval | rakudo 624188: OUTPUT«([1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15, 20, 15, 6, 1], [1, 7, 21, 35, 35, 21, 7, 1], [1, 8, 28, 56, 70, 56, 28, 8, 1], [1, 9, 36, 84, 126, 126, 84, 36, 9, 1])» | ||
sbp | ah, bug #77462 was fixed | ||
jnthn | hudnix: Ah, I see what you mean. Hm. | 22:20 | |
hudnix | Just a thought inspired by an excess of laziness :) | 22:21 | |
jnthn | rakudo: class Foo { has $.x = .say }; Foo.new(x => 42) | ||
(curious :-)) | |||
p6eval | rakudo 624188: ( no output ) | ||
jnthn | Aw | 22:22 | |
masak | :) | ||
22:24
envi joined
|
|||
flussence | rakudo: class A { has $.a; has $.b = $.a.chars }; say A.new(a=>"abcd").b | 22:25 | |
p6eval | rakudo 624188: OUTPUT«4» | ||
masak | rakudo: class A { has $.b = $.a.chars; has $.a }; say A.new(a=>"abcd").b | 22:26 | |
p6eval | rakudo 624188: OUTPUT«Method 'chars' not found for invocant of class '' in <anon> at line 22:/tmp/sxuPU5SB3G in main program body at line 22:/tmp/sxuPU5SB3G» | ||
22:27
mberends joined
|
|||
hudnix | class A {has $.a = $^b + 1;has $.b = $^a }; say A.new(1,2).a # was kind of what I was thinking of | 22:29 | |
rakudo: class A {has $.a = $^b + 1;has $.b = $^a }; say A.new(1,2).a # was kind of what I was thinking of | |||
p6eval | rakudo 624188: OUTPUT«Null PMC access in type() in <anon> at line 22:/tmp/tqkPXiH0Dh in main program body at line 22:/tmp/tqkPXiH0Dh» | ||
masak | that doesn't rhyme well with how the ^ twigil works in other situations. | ||
masak submits rakudobug | |||
rakudo: class A { has $.a = $^b }; A.new | 22:30 | ||
p6eval | rakudo 624188: OUTPUT«Null PMC access in isa_pmc() in '&infix:<=>' at line 1 in main program body at line 22:/tmp/wzoXcvg6DL» | ||
masak | rakudo: class A { $^b }; A.new | ||
p6eval | rakudo 624188: ( no output ) | ||
masak | yay, I freaking BLOGGED! strangelyconsistent.org/blog/dog-fo...rl6-flavor | 22:38 | |
[Coke] | moritz_: please be more specific? | 22:39 | |
hudnix | wow, very nice. | ||
masak | [Coke]: could you please add my feed to Planet Perl 6? | ||
[Coke]: strangelyconsistent.org/blog/feed.atom | 22:40 | ||
and the post has already shown up in my Google Reader! \o/ | |||
I can't believe it all just works. | |||
[Coke] | masak: you want it to replace your use.perl one? | 22:41 | |
22:41
hanekomu_ left
|
|||
jnthn | masak: nice | 22:41 | |
masak | [Coke]: whatever's easiest for you. | ||
rjbs | masak: Yay! | ||
masak | [Coke]: since I can't blog from the old one, I don't really care. | ||
22:42
envi left
|
|||
masak | jnthn++ for suggesting the blog post title :) | 22:42 | |
[Coke] | masak: changed. | ||
masak | \o/ | ||
[Coke] | msg chromatic planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | 22:43 | |
phenny, tell chromatic planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | |||
phenny | [Coke]: I'll pass that on when chromatic is around. | ||
mfollett | masak++ | ||
22:44
justatheory left
|
|||
[Coke] | phenny, tell allison planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | 22:44 | |
phenny | [Coke]: I'll pass that on when allison is around. | ||
[Coke] | phenny, tell luqui planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | ||
phenny | [Coke]: I'll pass that on when luqui is around. | ||
[Coke] | phenny, tell obra planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | ||
phenny | [Coke]: I'll pass that on when obra is around. | ||
[Coke] | phenny, tell pmichaud planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | ||
phenny | [Coke]: I'll pass that on when pmichaud is around. | ||
[Coke] | phenny, tell stevan planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | 22:45 | |
phenny | [Coke]: I'll pass that on when stevan is around. | ||
[Coke] | phenny: tell moritz_ that robert disabled your 5-to-6 feed as it was borking planetsix. | ||
phenny | [Coke]: I'll pass that on when moritz_ is around. | ||
[Coke] | phenny: tell jnthn that robert disabled your 5-to-6 feed as it was borking planetsix. | ||
phenny | [Coke]: I'll pass that on when jnthn is around. | ||
[Coke] | phenny, tell jnthn whoops! I mean, planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | 22:46 | |
phenny | [Coke]: I'll pass that on when jnthn is around. | ||
masak | [Coke]: I'll try really really hard not to bork planetsix. so far my Atom feed seems very well-behaved. | ||
[Coke] | can someone pass that along to Herbert Breunung also? | ||
masak | phenny: tell lichtkind planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | 22:47 | |
phenny | masak: I'll pass that on when lichtkind is around. | ||
masak | [Coke]: done. | ||
jnthn | [Coke]: 5-6 feed? | 22:48 | |
phenny | jnthn: 22:45Z <[Coke]> tell jnthn that robert disabled your 5-to-6 feed as it was borking planetsix. | ||
jnthn: 22:46Z <[Coke]> tell jnthn whoops! I mean, planetsix points to your use.perl URL. Do you have a different one you'd like plugged in? | |||
masak | jnthn: [Coke] mis-copipasted a message to moritz_ to you. | ||
22:48
thundergnat joined
|
|||
sjohnson | niggers and bitches. | 22:48 | |
oops | |||
paste buffer accident | |||
diakopter | sigh. | ||
masak | sjohnson: now *that* is off-topic. | ||
sjohnson | i sincerely apologize for that | ||
masak | :( | ||
rjbs | Clearly meant for #perl5 | ||
masak | *lol* | 22:49 | |
sjohnson | damn rap lyrics. | ||
diakopter | apology accepted, captain needa | ||
flussence has absent-mindedly pasted hundreds of KB of random text into search engines to date... | |||
jnthn | [Coke]: Just toss the use.perl.org one. | ||
[Coke]: It's already aggregating from my current blog too. | 22:50 | ||
[Coke]: Not sure why it was added rather than replacing my existing one. | |||
masak | wait, did diakopter just strangle sjohnson? | ||
sjohnson | masak++ # funny way to make light of it | ||
masak | ...telekinetically? | ||
flussence | (thankfully irssi stopped me last time I accidentally middle clicked on this window) | ||
[Coke] | jnthn: done | 22:51 | |
jnthn | [Coke]++ # thanks! | ||
sjohnson | probably a sign i should stop using the computer for a while :) | ||
[Coke] cues up some eminem. | |||
jnthn | Or listem to some wholesome heavy metal instead. :P | 22:52 | |
sjohnson | maybe rap lyrics to influence people! | 22:53 | |
concerned parents were right | 22:54 | ||
thundergnat | 'lo #perl6 | ||
masak | y0 thundergnat | 22:55 | |
thundergnat | Is R* still on track for today? | ||
22:56
miso_soup joined
|
|||
jnthn | löwenbräu++ | 22:56 | |
And now I sleep. Night all o/ | |||
sjohnson | cya! | 22:57 | |
thundergnat | (backlogs) Ooo! tadzik and nymacro, perl6 golf. Let me take a whack at it. | 22:58 | |
[Coke] | last i heard, R* was on track, pmichaud is at least temporarily delayed by errands. | 23:00 | |
sjohnson | cover your eyes when you backlog near my parts ;) | 23:01 | |
diakopter | once upon a time some of us had access to an irclog memory hole | ||
thundergnat | sjohnson: I'll studiously avoid your parts, never fear. | 23:03 | |
sjohnson | ( `ー´) | 23:04 | |
23:07
kjeldahl joined,
mfollett left
|
|||
dalek | odel: cffcdc8 | mberends++ | java/ (6 files): [java] eliminate many (mis)uses of the C# var data type |
23:07 | |
mberends | ^^ just too late for jnthn++ to review | 23:09 | |
thundergnat | tadzik: golfed your 441 gist.github.com/601011 down to 355 gist.github.com/601953 | 23:18 | |
mostly got rid of intermediate variables. | 23:19 | ||
diakopter | '(h) hit (s) sit' could be '(s)(h)it' | ||
erm | |||
'(h)(s)it' | |||
thundergnat | heh | ||
I didn't change any of the prompts, but you have a point. | 23:20 | ||
The winning condition check is pretty fragile too. | 23:21 | ||
23:22
fod joined
23:24
ash_ left
23:27
miso_soup left
23:28
mavrc left
23:29
leprevost joined
23:33
envi joined
|
|||
masak | 'night, #perl6. | 23:33 | |
thundergnat | night masak | ||
23:33
masak left
|
|||
thundergnat | whittled it down to 350 gist.github.com/601953 | 23:34 | |
23:37
cdarroch left
23:48
stkowski left
23:51
ggoebel joined
23:55
masonkramer left,
ashleydev left,
masonkramer joined,
ashleydev joined
|