»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by moritz on 3 May 2013.
grondilu adu: bellard.org/jslinux/ <-- that's impressive 00:11
adu grondilu: yeah, I heard it uses llvm2js combined with clang
or something like that 00:12
grondilu does that mean they compiled a kernel into javascript code? 00:16
adu grondilu: I guess so 00:19
gfldex no, it's a x86 emulator
it's fairly basic on the hardware side, it got a ramdisk and serial ports
and in that it runs a linux kernel
adu here it is: bellard.org/jslinux/tech.html 00:20
gfldex that bellard fellow did a lot of cool stuff
en.wikipedia.org/wiki/Fabrice_Bellard
dalek kudo-star-daily: 7d2f3be | coke++ | log/ (5 files):
today (automated commit)
01:21
[Coke] .ask arnsholt can you get zavolaj passing its tests so we can cut a star a release? I see you've got some other commits in htere. 01:38
yoleaux [Coke]: I'll pass your message to arnsholt.
[Coke] .ask perlpilot can you get Grammar-Profiler-Simple passing its tests so we can cut a star release? 01:39
yoleaux [Coke]: I'll pass your message to perlpilot.
[Coke] .ask cosimo can you get perl6-lwp-simple passing its tests so we can cut a star release? looks like some sub signatures have changed. 01:41
yoleaux [Coke]: I'll pass your message to cosimo.
colomon n: say Set ~~ Cool 02:08
camelia niecza v24-51-g009f999: OUTPUT«False␤»
colomon that's awkward
r: say Set ~~ Cool
camelia rakudo 570d1d: OUTPUT«False␤»
colomon rn: say Hash ~~ Cool
camelia niecza v24-51-g009f999: OUTPUT«False␤»
..rakudo 570d1d: OUTPUT«True␤»
labster r: my \foo; 02:25
camelia rakudo 570d1d: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'NQPMu'␤»
labster r: my \foo = 1;
camelia rakudo 570d1d: ( no output )
labster huh.
sorear You found a bug! 02:32
diakopter heh, it's in RT 02:33
at least, I recall summoning masakbot for that a few months ago 02:34
colomon rn: sub foo(*@a) { say @a.perl; }; foo(1, set <a b c>); 02:35
camelia rakudo 570d1d: OUTPUT«Array.new(1, "a", "b", "c")␤»
..niecza v24-51-g009f999: OUTPUT«(1, Set.new("a", "b", "c")).list␤»
sorear ok
moritz \o 04:59
labster o/ 07:31
sorear o/ labster
FROGGS o/ 07:32
labster good $localtime, sorear && FROGGS
FROGGS hi 07:33
lizmat morning #perl6! 07:53
FROGGS morning lizmat
lizmat .tell jnthn that the spectest worked out ok, so that his patches fixed the autoviv pb on typed hashes 07:54
yoleaux lizmat: I'll pass your message to jnthn.
FROGGS cool
jnthn Cool, somebody PR or push it :) 07:56
yoleaux 07:54Z <lizmat> jnthn: that the spectest worked out ok, so that his patches fixed the autoviv pb on typed hashes
sorear lizmat! :D 08:15
lizmat can't do a pull request without getting other stuff along :-( 08:34
fwiw, these are the changes: gist.github.com/lizmat/5597773 08:36
lizmat wishes she had a commit bit :-) 08:37
FROGGS you could clone to another location :/
sorear lizmat: branches! 08:40
lizmat sorear: yes, branches. The problem is that if I branch now, it includes a number of other fixes that I made which are in the pull request for nom 08:41
lizmat I polluted my version of nom 08:42
see pull request #138 (nom) and #139 (dotkvshoulddie). #139 contains stuff that shouldn't be in there 08:43
FROGGS what if you checkout the revision right before adding your commits, and then create a new branch? does that work?
lizmat no, because there are other peoples fixes in it after that 08:44
lizmat so I should probably checkout just before my first commit, branch and then start cherry picking ? 08:45
or clone again :-(
maybe I'll just do that
FROGGS might be less headaches 08:46
jnthn: I watched a video from you about optimization last night, this is the result: gist.github.com/FROGGS/d830a84c4bb9f6b2fe07 08:47
I hope there is no thinko, and I hope it is worth committing
moritz there is a thinko 08:48
you return the result of the cmp
not the sorted list
FROGGS ahh, yes 08:50
labster well, I thought that I had figured out how to fix Rakudo to let assigning Nil to a container yield the empty container type, but it's not working unless I call infix:<=> directly. 08:56
moritz also the (Mu, Mu) special case is wrong; there could be call as sort(&comparator, $single-item) which shouldn't do a comparison at all, just return $single-item 08:57
moritz labster: the last time I approached that topic, the problem was that my $x = Nil; should produce Any (the default), not Mu (the container type) 08:58
labster: and it needs a special case in C
labster my Cool $f = 3; $f = Nil #`($f set to Nil) ; infix:<=>($f, Nil) # $f set to Cool
moritz labster: see branch nil-assign
labster Okay, I was approaching it through infix<=> in operations.pm 09:01
lizmat grrr.. I can't seem to fork rakudo again without dropping my current fork, which would invalidate all my pull requests presumably :-( 09:04
FROGGS hmmm 09:05
moritz just use a different branch, not a different fork
lizmat I'll just add it to my current pull request #138 then
moritz: see pull request #139
it contains #138 basically
ok, will branch from 2a04f23dbcbe42dd8e62a0e352d116fc0464be15, this will miss a few commits from you wrt to constant folding 09:07
moritz no problem, a merge won't remove them
lizmat but that shouldn't matter for the pull request then, should it?
moritz correct 09:08
labster moritz: so a naive approach like this in operators.pm won't work? gist.github.com/labster/5597934 09:10
sorear lizmat: make a new branch, switch to it, git reset --hard origin/master 09:15
moritz labster: correct
sorear sleep& 09:16
lizmat gnight sorear!
labster Yeah, if I'm not going to make any progress tonight, sleep sounds good 09:17
good night
lizmat finally: github.com/rakudo/rakudo/pull/141 09:23
rn: my $s=Stash.new; say $s.WHAT 09:27
camelia rakudo 570d1d: OUTPUT«(Hash)␤»
..niecza v24-51-g009f999: OUTPUT«(Stash)␤»
lizmat this means I can't use Stash as a parameter constraint :-(
r: sub S (Stash $s) { say $s }; S(Stash.new) # rakudobug? 09:28
camelia rakudo 570d1d: OUTPUT«Nominal type check failed for parameter '$s'; expected Stash but got Hash instead␤ in sub S at /tmp/ep3aQw5kNa:1␤ in block at /tmp/ep3aQw5kNa:1␤␤»
moritz yes, Stash.new should produces a Stash, not a Hash
lizmat submist rakudobug 09:29
daxim stumbit. it's spelt stumbit. 09:32
lizmat yes, I know, I'm studip
dyslexists, untie! 09:33
daxim perlmonks.org/?node_id=25195
FROGGS I'd like to commit this to nqp today: any objections? gist.github.com/FROGGS/5598019 09:34
mathw o/ 09:35
FROGGS \o 09:36
lizmat hmmm…. that's new at the bottom of every PerlMonks page: "Built with the Perl programming language."
that should help the Tiobe index :-) 09:37
daxim perlmonks.org/?node_id=1023745 09:38
moritz is still pondering whether to add the same to the irclog pages 09:41
lizmat thinks "Powered by ilbit. Provided by Moritz Lenz. Built with the Perl programming language. Please direct…. " would look good 09:43
.tell sorear "git reset --hard orgin/master" gave "fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree." 09:44
yoleaux lizmat: I'll pass your message to sorear.
moritz lizmat: what does 'git remote' say? 09:45
lizmat: oh, on rakudo you have to say origin/nom, not origin/master
we have no master branch :-)
lizmat I was just testing that :-)
indeed: HEAD is now at f1f965b Merge remote-tracking branch 'upstream/nom' into nom 09:46
ok, learned some more git fu today
moritz++ :-) 09:47
(for adding "Built with the Perl programming language") ;-) 09:48
lizmat blogs.perl.org/users/enkidu/2013/05...erl-6.html # suggestions anyone? 10:06
daxim he asks too much, likely unwittingly 10:12
lizmat well, fwiw, I've had mberends ask me the same question a few months back 10:14
and I've been thinking about it, but apart from creating some meta Test language from which Perl 5 / 6 tests can be generated 10:15
I don't really see a solution
lizmat r: my %h{Any}; my %i=%h.new; say %h.WHAT; say %i.WHAT # did we agree that this was a rakudobug? 10:36
camelia rakudo 570d1d: OUTPUT«(Hash+{TypedHash})␤(Hash)␤»
FROGGS moritz / jnthn: <FROGGS> I'd like to commit this to nqp today: any objections? gist.github.com/FROGGS/5598019 10:41
moritz FROGGS: I don't have much time for reviews today, sorry 10:43
lizmat r: my %h{Any}; my %i=%h.clone; say %h.WHAT; say %i.WHAT # it also goes wrong for .clone, I assume because it uses .new 10:44
camelia rakudo 570d1d: OUTPUT«(Hash+{TypedHash})␤(Hash)␤»
lizmat submits rakudobug
mathw lizmat: in theory, with the ability to call a Perl 5 module from Perl 6 you could run a Perl 6 test suite against the Perl 5 implementation to ensure the test suite matches the Perl 5 one, before then running it against the Perl 6 module. Except the interface to the module wouldn't be the same, so you'd need to shim it a bit... 11:00
lizmat well, yes, that's the problem, I think: you can create a Test.pm API that would work in both Perl 5 and Perl 6, but you'd still have code inbetween that is either Perl 5 or Perl 6 and would not run both 11:01
I guess you could write something with fudging, as fudging takes out lines of code, and not tests 11:02
as I found out yesterday ;-)
moritz fwiw ilbot6 has been running for several days in a row 11:56
moritz and its memory usage is increasing steadily, but slowly 11:56
FROGGS moritz: and still fits on a cd? 11:57
moritz FROGGS: no
now at 1G
FROGGS I hope it is only NativeCalls fault, and nothing else 11:58
lizmat moritz: and it started at ? 12:00
moritz lizmat: dunno, but a few days ago it was 600MB 12:01
lizmat so nothing a restart at 8am wouldn't fix :-)
Juerd Let's bikeshed about the timezone 12:02
moritz sheds some bikes
lizmat 8am CEST 12:03
it;s usually quietest on #perl6, I think
lizmat how do I convert a Pair into a list of its parts? 12:30
r: my $a= (a => 1); say $a.list.elems # creates a 1 element list with a pair 12:31
camelia rakudo 570d1d: OUTPUT«1␤»
lizmat r: my $a= (a => 1); say $a.kv.list.elems # by first taking the .kv 12:34
camelia rakudo 570d1d: OUTPUT«2␤»
lizmat :-)
sdo hello 12:43
FROGGS hi
lizmat hi sdo!
sdo I have little troble but nothing serious 12:44
I installed Perl6 on Mac OS X a year ago
dalek kudo/jvm-support: 07e5a3f | tadzik++ | tools/build/Makefile-JVM.in:
Fix parallel build
12:45
lizmat that's a long time in Perl 6 years
[Coke] definitely time to upgrade. what's the trouble, sdo? 12:46
tadzik hah, now clean 'make -j4' on jvm is just over 2 minutes here 12:48
how awesome is that
lizmat pretty awesome, I guess ? 12:50
tadzik awesome by my standards :)
[Coke] sees that vanillaperl is up for grabs. 12:52
[Coke] hurls blogs.perl.org/users/enkidu/2013/05...rce=feedly for commentors. 12:53
lizmat [Coke]: there has been some discussion about that at irclog.perlgeek.de/perl6/2013-05-17#i_7081381 12:56
[Coke] reads more schwernage and is saddened by the state of the onion. 13:00
tadzik yeah 13:01
dalek p: c3cdeb6 | (Tobias Leich)++ | src/QRegex/P (2 files):
enable regex special characters as delimiters

Special chars like quantifiers or control characters can be used as delimiters. If they are used as delims they cant be used for their original meaning, of course.
13:02
lizmat FROGGS++ 13:03
FROGGS lizmat: you pushed failing tests to roast, which pull request is connected with it? 138? 13:04
lizmat FROGGS: I think I fudged these last night 13:05
the failing tests were indeed for 138 and/or 139
FROGGS hmmm, still fails here
t/spec/S32-hash/exists-adverb.rakudo (Wstat: 0 Tests: 44 Failed: 8)
Failed tests: 6-13
# 138 {}:delete and {}:exists up to spec 13:06
lizmat ok, I'll fudge those as well then
FROGGS or you wait a bit and I'll test your pr 13:09
dalek ast: 86f678d | (Elizabeth Mattijsen)++ | S32-hash/exists-adverb.t:
Some more fudges needed while waiting for pull request #138

Spotted by FROGGS++
13:10
lizmat FROGGS: actually, if you could pull #141 13:11
those are jnthn's fixed from last night
cognominal www.johndcook.com/blog/2013/05/16/e...me-syntax/
lizmat *fies
*fixes (sigh)
dalek kudo/nom: 93e96b4 | (Elizabeth Mattijsen)++ | src/ (2 files):
Fix for autoviv Typed hash problem

As suggested by jnthn. I think there is a ticket for this, but do not know its number.
13:12
kudo/nom: 7c7a709 | (Tobias Leich)++ | src/ (2 files):
Merge pull request #141 from lizmat/fixautovivtypedhash

Fix for autoviv Typed hash problem
cognominal it points to a book that talks about (lisp) macros "Let Over Lambda"
that may interest masak
FROGGS masak will read everything that stays still long enough :P 13:13
cognominal it seems that macros are the forte of this book 13:14
part of it is online letoverlambda.com/index.cl/toc 13:15
tadzik speaking of reading everything, guess what I found at $company library yesterday 13:19
tadzik a shiny dragonbook, 2ed, waiting to be borrowed 13:19
I did. I borrowed it hard.
FROGGS I dont have time for reading right now :/ 13:20
all I want to read atm are grammars and action-hooks
cognominal and the acronym is : LoL 13:21
mathw dragonbook? 13:24
tadzik mathw: www.amazon.com/Compilers-Principles...321486811/ 13:25
colomon wonders if his old copy is 1st or 2nd ed. 13:26
looks like 1st reprinted with corrections? 13:27
1988
dalek kudo/nom: 86cf85a | (Tobias Leich)++ | t (2 files):
pull in nqp's delim-fix, fixes RT #117415
13:28
tadzik does it have a chapter about GC?
cognominal colomon, if you bought it you would remember the price, over $100
ho, now a bargain, at $76 13:29
dalek ast: 8387137 | (Tobias Leich)++ | S05-metasyntax/delimiters.t:
new test file for regex-delims, RT #117415
13:30
tadzik heh, I usually frown at books that are over 30 PLN :)
tadzik (circa $10)
colomon cognominal: no memory whatsoever of what it cost me. I think I bought it for the compilers class I dropped out of on the first day. (probably foolishly, but they were very insistent that I didn't have the proper prerequisites for the class.) 13:39
mathw tadzik: aah, good book 13:40
daxim tadzik, should I exchange € → P⃫L⃫N⃫ before I leave? what are the chances of getting around in warsaw with just €? 13:41
lizmat or relatedly: what are the chances of getting by with plastic ? 13:42
tadzik daxim: having bare € might be tricky, some stores accept it, some not
lizmat afk for a few hours
tadzik getting by with plastic should be quite possible
lizmat also for parking?
tadzik hmm, probably not 13:43
tadzik I'm usually getting by without cash, it only doesn't work when I'm ordering food to work 13:44
but I don't drive or whatnot
dalek ecza: 5c908dc | (Tobias Leich)++ | t/spectest.data:
new test file for regex-delimiters
13:45
colomon r: say 9*11, 10*10 13:48
camelia rakudo 570d1d: OUTPUT«99100␤»
[Coke] nifty todoing there.
rpn: gist.github.com/coke/5599132
camelia niecza v24-51-g009f999: OUTPUT«1..23␤ok 1 - ^ as delimiter in match and substitution␤ok 2 - ° as delimiter in match and substitution␤ok 3 - ! as delimiter in match and substitution␤ok 4 - " as delimiter in match and substitution␤ok 5 - § as delimiter in match and substitution␤ok 6 - $ a… 13:49
..pugs: OUTPUT«pugs: *** Unsafe function 'use' called under safe mode␤ at /tmp/su7ElI6oDZ line 1, column 1␤»
..rakudo 570d1d: OUTPUT«1..23␤not ok 1 - ^ as delimiter in match and substitution␤ok 2 - ° as delimiter in match and substitution␤ok 3 - ! as delimiter in match and substitution␤not ok 4 - " as delimiter in match and substitution␤ok 5 - § as delimiter in match and substitution␤not ok 6 - …
FROGGS rakudo should be fine in 20 minutes 13:50
PerlJam A little late here, but did you guys read the comments to that Extreme Syntax post? Specifically www.johndcook.com/blog/2013/05/16/e...ent-125932 13:51
“Lisp” is a family of languages whereas Perl is a language
That's already not true, but also not well-known I think 13:52
(Perl too is a family of languages with at least 4 variants that I can think of without try too hard)
[Coke] pug: r: "b" ~~ m/b/
PerlJam s/try/trying/
[Coke] r: r: "b" ~~ m/b/
camelia rakudo 570d1d: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/YBtMqRUzSh:1␤------> r⏏: "b" ~~ m/b/␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statement m…
[Coke] r: "b" ~~ m/b/
camelia rakudo 570d1d: ( no output )
[Coke] r: say "b" ~~ m/b/
camelia rakudo 570d1d: OUTPUT«「b」␤␤» 13:53
[Coke] ... shouldn't that have to be m/'b'/ ?
FROGGS why?
jnthn no
FROGGS you can quote it, but you dont have to
jnthn It's only non-alphanums that have to be quoted
PerlJam [Coke]: no. S05:111 13:54
FROGGS [Coke]: it has no special meaning, so it can be like it is
r: "a" ~~ m-a- 13:55
camelia rakudo 570d1d: ( no output )
FROGGS r: "a" ~~ m-a-g
camelia rakudo 570d1d: OUTPUT«===SORRY!===␤Unsupported use of /g; in Perl 6 please use :g␤at /tmp/j27NclDWPn:1␤------> "a" ~~ m-a-g⏏<EOL>␤»
[Coke] hokay. 13:55
FROGGS weird, I'd expected it to parse it as a sub
I guess that is actually a bug (and I think there already is a ticket) 13:56
r: sub m-a-g { }
camelia rakudo 570d1d: ( no output )
FROGGS yeah
nwc10 is curious if anyone knows the Eclipse Memory Analyzer enough to experiment on Rakudo JVM. It will probably help Rakudo on parrot too 14:06
FROGGS nwc10: you might wanna bug donaldh: irclog.perlgeek.de/search.pl?channe...;q=eclipse 14:07
nwc10 I don't feel I know him well enough to "bug" him. 14:08
also, I have no good idea how "hard" this is. If there is "excess" memory use from a lot of similar little objects that are retained on many many nodes of the tree, then it's probably not going to stand out on any simple view of "where did all the RAM go?" 14:10
but a one or two line fix somewhere will prune many of them
pm's hunch being that some things are being kept about that are never needed again, but because they are still referenced, the GC (correctly) can't free them.
FROGGS .tell donaldh you might find this interesting: irclog.perlgeek.de/perl6/2013-05-17#i_7082019 14:11
yoleaux FROGGS: I'll pass your message to donaldh.
donaldh hi o/ 14:12
yoleaux 16 May 2013 18:44Z <jnthn> donaldh: the runner seems to work fine on Windows
14:11Z <FROGGS> donaldh: you might find this interesting: irclog.perlgeek.de/perl6/2013-05-17#i_7082019
FROGGS nwc10: I mot sure though that this is the right time for these kind of optimizations, maybe it is cleverer to wait until rakudo has landed?
donaldh: o/ *g*
donaldh noticed flashing IRC icon
nwc10 FROGGS: jnthn accidentally made NQP on JVM about 15% faster. 14:13
so there is potential for quick clean wins, if you can find them
*but*, yes
FROGGS ya, you are right
nwc10 effort better spent on "make it work" ahead of "make it work fast"
donaldh nwc10: sounds great - do you have more details ?
FROGGS I've watched his "optimizing rakudo" video last night and was keen to find something to improve :/ 14:14
jnthn Note that anything that makes things faster reduces build times which in turn lets me make thigns work faster :)
nwc10 donaldh: no. Really not. sorry
FROGGS VERYBODY HURRY!!!
nwc10 donaldh: you'd have to ask pmichaud what his hunch was about where th memory went
tadzik video/
FROGGS MAKE THINGS FASTER FOR FASTER JNTHN!
jnthn Anyways, decommute :)
FROGGS :o)
jnthn o/
nwc10 the big slow "spendy" thing is compiling the setting
FROGGS tadzik: www.youtube.com/watch?v=hyfAxxdYAP8 14:15
nwc10 so if you know enough of the Java toolchain to be able to get stats on that, it's really "does anything jump out as obviously slow?"
FROGGS "Jonathon Worthington: Optimizing Rakudo Perl 6 " - March 2012
donaldh nwc10: yep. I tried using the JVM hprof cli commands last night but they barfed so need to use more sophisticated tools :-)
nwc10 "bigger hammer!"
[Coke] hits the video... and realizes he's never heard jnthn speak. 14:16
FROGGS I did, last YAPC::EU
it was about Rakudo::Debugger, and it was impressive to see the open mouths of the attendees
donaldh Also tried the profiler in jvisualvm but that seemed to give up too. I think because the generated backing classes for P6 objects are generated in memory and jvisualvm cannot find them to optimize them. 14:17
FROGGS (mine included)
[Coke] 's american brain cringes internally at all the british pronounciations!
nwc10 you'd better get used to it :-)
diakopter I've found jvisualvm quite useful sometimes 14:18
nwc10 anyway, don't worry. Even the US is going to get outnumbered by Hinglish and then Chinglish. :-(
[Coke] maybe if he sang the presentation it woudl come out in an american accent.
donaldh diakopter: Yep. Fastest way to gather profiling stats.
I will spend my evening hacking calories trying to unblock using jvisualvm 14:19
nwc10 donaldh: cool. We will owe you beer (or acceptable substitute) 14:20
[Coke] donaldh++ #yay, I don't have to beat my head against the wall.:)
we need a BEER.md file. where to send people beer credits.
FROGGS true 14:21
r: say "abc" ~~ m*a* # there you go 14:22
camelia rakudo 86cf85: OUTPUT«「a」␤␤»
[Coke] r: say "abc" ~~ müaü; 14:24
camelia rakudo 86cf85: OUTPUT«===SORRY!===␤Undeclared routine:␤ m\xFCa\xFC used at line 1␤␤»
FROGGS [Coke]: alnum are not allowed
alnums*
r: say "ü" ~~ /\w/ 14:25
camelia rakudo 86cf85: OUTPUT«「ü」␤␤»
FROGGS r: say "abc" ~~ m「a」;
camelia rakudo 86cf85: OUTPUT«「a」␤␤»
[Coke] r: say "abc" ~~ m“a”; 14:26
camelia rakudo 86cf85: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀U␀␀␀n␀␀␀r␀␀␀e␀␀␀c␀␀␀o␀␀␀g␀␀␀n␀␀␀i␀␀␀z􏿽xE2
[Coke] r: say "abc" ~~ m¢b¢; 14:27
camelia rakudo 86cf85: OUTPUT«「b」␤␤»
dalek : 06121a6 | (Tobias Leich)++ | STATUS.md:
status update after nqp-fix (delimiters)
FROGGS r: say "abc" ~~ m“a“;
camelia rakudo 86cf85: OUTPUT«「a」␤␤»
FROGGS so it doesnt know the pair
FROGGS r: say "abc" ~~ m␤b␤; 14:27
camelia rakudo 86cf85: OUTPUT«===SORRY!===␤Alphanumeric character is not allowed as a delimiter␤at /tmp/TPDzDFyqnN:2␤------> <BOL>⏏b␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ prefix or term␤ prefix…
FROGGS r: say "abc" ~~ m«b»; 14:28
camelia rakudo 86cf85: OUTPUT«「b」␤␤»
FROGGS r: say "abc" ~~ m\\b\\;
camelia rakudo 86cf85: OUTPUT«===SORRY!===␤Null regex not allowed␤at /tmp/blN4tUtaSB:1␤------> say "abc" ~~ m\⏏\b\\;␤Two terms in a row␤at /tmp/blN4tUtaSB:1␤------> say "abc" ~~ m\\⏏b\\;␤ expecting any of:␤ postfix␤ infix …
FROGGS r: say "abc" ~~ m\b\;
camelia rakudo 86cf85: OUTPUT«「b」␤␤»
FROGGS O.o
FROGGS well, I think I'm happy with it 14:29
TimToady std: say "abc" ~~ m“a”; 14:42
camelia std 9906f18: OUTPUT«ok 00:00 43m␤»
TimToady n: say "abc" ~~ m“a”;
camelia niecza v24-51-g009f999: OUTPUT«「a」␤␤»
donaldh mmph, the latest Eclipse TPTP tools are over two years old and the project is archived. I don't have much hope of it working with Java 7 features. 14:46
nwc10 that's a bit of a bummer 14:48
donaldh It's worth a try tho. But jvisualvm first. 14:49
FROGGS .u “” 15:01
yoleaux U+201C LEFT DOUBLE QUOTATION MARK [Pi] (“)
U+201D RIGHT DOUBLE QUOTATION MARK [Pf] (”)
FROGGS $ perl6 -e 'say "abc" ~~ m“a”;' 15:13
「a」
# locally++
[Coke] FROGGS++ 15:25
r: say (16*60+14) / 28 15:27
camelia rakudo 86cf85: OUTPUT«34.785714␤»
FROGGS std has about 125 pairs more :/ 15:32
FROGGS okay, confirmed, all pairs nqp has has std too 15:47
I hope it has no performance impact ó.ò 15:50
dalek p: a0808a0 | (Tobias Leich)++ | src/HLL/Grammar.nqp:
add brackets from STD

This only adds brackets, none is removed.
16:30
kudo/nom: 9c5650b | (Tobias Leich)++ | tools/build/NQP_REVISION:
add more brackets (starters+stoppers)
16:32
nwc10 why does dalek report "nqp" but "rakudo/nom"? Hard coded to strip "/master" ?
dalek ast: 930f470 | (Tobias Leich)++ | S02-lexical-conventions/unicode.t:
fudge for rakudo, rakudo has now all brackets STD has
16:34
FROGGS nwc10: master is the default branch
branch name*
timotimo "unfudge"*? 16:36
FROGGS hmmm, maybe, yeah 16:37
masak hello hello #perl6 from a *train*! \o/ 16:44
FROGGS masak! \o/ 16:45
PerlJam masak: Would you code Perl in a train? Would you code Perl in the rain? Would you code Perl on a bus? Would you code Perl without much fuss?
nwc10 FROGGS: master is the default default, as I understand it, and I found a way to get the actual default, but offhand I forget it, and I don't know how robust or "official" it is 16:53
[Coke] eh. I don't mind rakudo/nom, reminds us we're odd. 16:58
nwc10 Perl 5 was odd first :-) 16:59
masak PerlJam: I love you.
[Coke] oooook. someone broke pug's run streak.
nwc10 masak: this train has beer? :-)
masak nwc10: no, but I'm tired enough to feel a little drunk. :) 17:00
masak just learned that there's a connection between dual numbers and the Pauli exclusion principle o.O
nwc10 do you have to remember to get off? Or does this train terminate in Sweden?
[Coke] TERMINAAAATE! 17:01
masak the "remember" one.
if I forget, I end up in Denmark.
nwc10 that was the alternative I was imagining 17:02
different expensive beer.
masak cheaper'n Sweden, tho'
FROGGS [Coke]: but it wasnt me, was it?
masak hm, running low on battery. be back in about 2.5 hours. 17:11
nwc10 have fun. 17:12
the right sort 17:13
tadzik act.yapc.eu/plpw2013/news/1019 PLPW status update 17:15
nwc10 sorry if this is a bit of an RTFM question, but given this: 17:30
nr: my int $i = 0; for 0..4 { $i = $i + 1 }; say $i
camelia rakudo 9c5650: OUTPUT«5␤»
..niecza v24-51-g009f999: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/MLXQzKHb9g line 1:␤------> my⏏ int $i = 0; for 0..4 { $i = $i + 1 }; s␤␤Parse failed␤␤»
nwc10 why is this an error? 17:31
r: my int $i = 0; for 0..4 { ++$i }; say $i
camelia rakudo 9c5650: OUTPUT«Cannot modify an immutable value␤ in sub prefix:<++> at src/gen/CORE.setting:3272␤ in sub prefix:<++> at src/gen/CORE.setting:1756␤ in block at /tmp/iUpj87v31Z:1␤␤»
nwc10 why does ++ consider $i to be immutable, but = not?
FROGGS nr: my Int $i = 0; for 0..4 { $i = $i + 1 }; say $i
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«5␤»
FROGGS r: my Int $i = 0; for 0..4 { ++$i }; say $i
camelia rakudo 9c5650: OUTPUT«5␤»
nwc10 ah, OK, that's half the answer. "You meant to use Int" 17:32
FROGGS nwc10: native types are a bit special
flussence native ints have no container, or something like that
nwc10 yes. but that seems just a bit *too* special.
I guess then I'm curious if the answer is something like "if we made this work, then it means this other part of the design becomes less consistent, because ..." 17:33
FROGGS feather.perl6.nl/syn/S02.html#Native_types 17:34
flussence well let's make it work, and see who complains :)
r: multi sub prefix:<++>(int $i is rw) { $i = $i + 1; return $i }; my int $a = 4; ++$a
camelia rakudo 9c5650: ( no output )
flussence r: multi sub prefix:<++>(int $i is rw) { $i = $i + 1; return $i }; my int $a = 4; say ++$a
camelia rakudo 9c5650: OUTPUT«5␤»
flussence r: multi sub prefix:<++>(int $i is rw) { $i = $i + 1; return $i }; my int $a = 4; say ++$a; say $a
camelia rakudo 9c5650: OUTPUT«5␤4␤»
flussence there's a problem there.
r: multi sub prefix:<++>(Int $i is rw) { $i = $i + 1; return $i }; my Int $a = 4; say ++$a; say $a
camelia rakudo 9c5650: OUTPUT«Ambiguous call to 'prefix:<++>'; these signatures all match:␤:(Int:D \a)␤:(Int $i is rw)␤ in sub prefix:<++> at src/gen/CORE.setting:1756␤ in block at /tmp/LrSJydqDpk:1␤␤» 17:35
flussence r: multi sub prefix:<@@>(Int $i is rw) { $i = $i + 1; return $i }; my Int $a = 4; say @@$a; say $a
camelia rakudo 9c5650: OUTPUT«5␤5␤»
nwc10 the problem being that the int $i is boxed in some way on the way into the sub implmenting ++, and so the sub doesn't change the original? 17:36
flussence yep
nwc10 and there isn't a signature that can circumvent that? 17:37
flussence I think there's no fix that wouldn't also violate the "everything is immutable by default" rule 17:38
flussence r: macro prefix:<++>(int $i) { $i = $i + 1 }; my int $a = 4; say ++$a; say $a 17:41
camelia rakudo 9c5650: OUTPUT«===SORRY!===␤Cannot unbox argument to '$i' as a native int␤at /tmp/Kz800FrRt_:1␤------> ␤»
flussence hm, I just get a NPMCA there in the repl. 17:42
nwc10 NPMCA?
flussence > macro prefix:<++>(int $i) { $i = $i + 1 }; my int $a = 4; say ++$a; say $a
Null PMC access in get_string()
nwc10 anyway, it's sort of starting to make sense in my head. native types don't have reference semantics on their (possibly implicit) container because they don't *have* a container 17:43
they are passed by value to subroutines
ana. NPMCA sounds LTA. :-(
timotimo flussence: don't you need to return a quasi from a macro so that it works? or is that a golf for the bad error? 17:50
flussence I tried a few things, they all gave me the NPMCA locally 17:51
flussence my rakudo's not that old but I'm updating it now just in case 17:51
timotimo r: macro prefix:<++>($a) { quasi { {{{ $a }}} = {{{ $a }}} + 1; } }; my int $a = 4; say ++$a; say $a; 17:52
camelia rakudo 9c5650: OUTPUT«Cannot modify an immutable value␤ in any at /tmp/TkvvtzUkRT:1␤ in block at /tmp/TkvvtzUkRT:1␤␤»
timotimo r: macro prefix:<++>($a) { quasi { {{{ $a }}} = {{{ $a }}} + 1; } }; my Int $a = 4; say ++$a; say $a;
camelia rakudo 9c5650: OUTPUT«5␤5␤»
[Coke] I really wish I'd been logging run times on the roast build/runs for rakudo. 17:58
lizmat [Coke]: wrt to pugs smoke, something I did ? 17:59
TimToady the compiler has to know about native variables in order to modify them; currently it knows only how to this via unboxing, but there eventually needs to be a mechanism to know about native containers (aka "pointers") like C does
dalek rl6-roast-data: f831797 | coke++ | / (4 files):
today (automated commit)
18:00
TimToady *do this
[Coke] I don't expect people to necessarily track pugs when roasting, it's ok, lizmat.
lizmat I tried to fudge it as far as I understand how pugs works, though 18:01
so I would like to learn from any fudging mistakes I made
TimToady so that there's some way to do the box-increment-unbox without actually doing the boxing and unboxing
[Coke] pugs : S09-hashes/objecthash.pugs aborted 2 test(s) 18:02
I can't 18:03
worked outside the harness for me, though.
TimToady but that requires a static type engine such as C has if we want to program Perl 6 in the C subset (or the C subset that the JVM allows :)
timotimo how can i install modules with niecza (from source if panda won't run) 18:06
colomon timotimo: 18:07
errr.... little fast on the trigger there.
lizmat [Coke]: should that be visible in the roast-commit? 18:08
colomon timotimo: there isn't exactly an automatic way of doing it at the moment, so far as I know.
timotimo: trying to improve that is on my to-do list, but distressingly far down it at the moment. 18:09
lizmat [Coke]: something weird going on with the plan there… maybe we should just forget about a plan in S09-hashes/objecthash.t
if you change the plan to 29, you will get errors on rakudo, for some reason
hmmmm….. could it be that fudging acts on number of lines, and that the non-test lines cause a problem? 18:10
timotimo colomon: so, do i have to copy the lib folders together into some place or other?
colomon timotimo: usually when I'm working with a module in Niecza I just directly specify its path on the command line using -I 18:11
but that's not exactly "installing"
lizmat [Coke]: I think I know a way around it... 18:12
colomon n: say $*CUSTOM-LIB 18:13
camelia niecza v24-51-g009f999: OUTPUT«/home/p6eval/.config/niecza␤»
timotimo hm. my solution to GRAPH from masakism won't run on niecza :(
colomon timotimo: I'm not sure niecza is doing anything useful at all with library include paths at the moment. 18:14
[Coke] lizmat: if I run it by hand, I get 29 tests, which is the plan.
lizmat is counting
[Coke] colomon: good work on niecza; only 17 failures. 18:15
timotimo well, at least it doesn't complain about the library missing when i copy the lib folder to my project dir and do -Ilib
timotimo but it seems like it doesn't do autoviv properly in this case here 18:15
rn: my %neighbour; push %neighbour<A>, "B"; say %neighbour;
camelia rakudo 9c5650: OUTPUT«("A" => ["B"]).hash␤»
..niecza v24-51-g009f999: OUTPUT«Unhandled exception: Unable to resolve method push in type Any␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/vbVk8glKBQ line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4331 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting li…
timotimo indeed. 18:16
lizmat timotimo: a pb with autoviv of objecthashes was fixed this morning in rakudo 18:16
timotimo lizmat: i'm experiencing trouble on nicecza, my code runs prefectly with rakudo :)
(albeit pretty slow)
lizmat [Coke]: I've added 2 dummy tests, and that seems to fix the pb 18:17
colomon [Coke]: ooo, positive encouragement. ;)
timotimo: no object hashes in niecza yet.
dalek ast: f69337d | (Elizabeth Mattijsen)++ | S09-hashes/objecthash.t:
Some more fudging

Specifcally by making 2 skipped non-test lines tests
18:18
[Coke] colomon: I'm sneaky that way.
timotimo colomon: so, a hash with string keys and list values won't be possible? 18:19
colomon timotimo: oh, that should work. string keys are the key
lizmat colomon: having a list, object, type, whetever as a key 18:20
timotimo great, with "manual autovivification" i made my little test suite pass
hm, but the other use case doesn't work. i should obviously improve my test suite.
colomon test suite ++ 18:21
timotimo i suppose Rakudo::Debugger won't work on niecza? ;)
what with it being implemented in nqp and such ...
rn: my @x-names = ("A".."Z")[^5]; say @x-names; 18:24
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«A B C D E␤»
timotimo rn: my @x-names = ("A".."Z")[^5]; my @y-names = ("0".."9")[^4]; say @x-names X~ @y-names; 18:25
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«A0 A1 A2 A3 B0 B1 B2 B3 C0 C1 C2 C3 D0 D1 D2 D3 E0 E1 E2 E3␤»
timotimo rn: my @x-names = ("A".."Z")[^20]; my @y-names = ("0".."9")[^20]; say @x-names X~ @y-names; 18:26
camelia niecza v24-51-g009f999: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1355 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 266 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.settin…
..rakudo 9c5650: OUTPUT«A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 G0 G1 G2 G3 G4 G5 G6 G7 G8 G9 H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 I0 I1 I2 I3 I4 I5 I6 I7 I…
timotimo ah, interesting
rn: (1, 2, 3, 4)[^10].perl.say;
camelia rakudo 9c5650: OUTPUT«(1, 2, 3, 4)␤»
..niecza v24-51-g009f999: OUTPUT«(1, 2, 3, 4, Any, Any, Any, Any, Any, Any)␤»
timotimo that would explain it.
is rakudo behaving to spec?
lizmat feels to me that it doesn't
timotimo you've spent a lot of time slogging through the whole spec recently, haven't you? 18:28
i guess i'll search for the place where it's specced
timotimo oh, look, i have found a mention of (). wasn't that deprecated from the spec? anyway, the sentence is Since method calls are performed directly on any object, Nil can respond to certain method calls. Nil.defined returns False (whereas ().defined returns True). and it's from S02 18:33
lizmat timotimo: I was familiarising myself with Perl 6, anno 2013. It was at least 8 years ago since I last looked at Apocalypses
I haven't seen them all yet
timotimo OK 18:34
i can't find the place where the behavior of slices that are bigger than the array itself are specced
lizmat I think they're only specced in the context of Z and X and the like 18:35
timotimo oh? i'll have a look there then
lizmat the smaller ones need to be repeated, in some contexts 18:36
rn: (1, 2, 3, 4)[*].perl.say;
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«(1, 2, 3, 4)␤»
timotimo AFAIK that just means that the length of the list is passed to the closure inside [] and that becomes the result
huh, wait, what? 18:37
rn: my @a = 1, 2, 3; @a[*].perl.say
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«(1, 2, 3)␤»
timotimo i thought that would have to return only one element?
rn: my @a = 1, 2, 3; @a[3].perl.say 18:38
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«Any␤»
TimToady S09:218 talks about auto-truncating ranges 18:40
lizmat so from that I gather that niecza is right in the (0..4)[^10] case ? 18:44
TimToady no 18:45
rakudo is
lizmat "when used as an rvalue, the range is truncated as necessary to map only valid locations" 18:46
rn: (1, 2, 3, 4)[4..9].perl.say; 18:47
camelia niecza v24-51-g009f999: OUTPUT«(Any, Any, Any, Any, Any, Any)␤»
..rakudo 9c5650: OUTPUT«()␤»
TimToady that's an rvalue, so rakudo is truncating 18:48
lizmat in this case, they're both wrong as they don't die? "legal for a range or sequence iterator to extend beyond the end of an array as long as its min value is a valid subscript"
TimToady arguably 1 off the end is still kinda legal for talking about arrays 18:49
as a degerate case producing 0 values
lizmat rn: (1, 2, 3, 4)[5..9].perl.say;
camelia niecza v24-51-g009f999: OUTPUT«(Any, Any, Any, Any, Any)␤»
..rakudo 9c5650: OUTPUT«()␤»
TimToady my spelling is degerate... 18:49
lizmat rn: (1, 2, 3, 4)[9].perl.say;
camelia niecza v24-51-g009f999: OUTPUT«Any␤»
..rakudo 9c5650: OUTPUT«Nil␤»
lizmat rn: (1, 2, 3, 4)[9..10].perl.say;
camelia niecza v24-51-g009f999: OUTPUT«(Any, Any)␤»
..rakudo 9c5650: OUTPUT«()␤»
TimToady also, if it's easier for rakudo to ignore whether the left arg is within the array, then maybe it'd be better to spec it that way anyway 18:52
there are probably use cases for both approaches
nwc10 TimToady: so, if I understand you correctly, you would like it for Perl 6 to have a means to be able to implement ++ on native types such as int? 18:55
lizmat rn: my @a=<a b c>; splice @a, 10, 0, <d e f>; say @a
camelia niecza v24-51-g009f999: OUTPUT«a b c (Any) (Any) (Any) (Any) (Any) (Any) (Any) d e f␤»
..rakudo 9c5650: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/joTcmj_VyG:1␤␤use of uninitialized value of type Any in string context in block at /tmp/joTcmj_VyG:1␤␤use of uninitialized value of type Any in string context in block at /tmp/joTcmj_Vy…
TimToady nwc10: why not? incrementing native ints is, like, really, really fast in C 18:56
nwc10 yes, sorry if I wasn't clear. I didn't mean "why not?" I more meant "but there's got to be a concept added, doesn't there, to get this to work? As one needs to have a signature that behaves somewhat like a C++ &, to force reference semantics" 18:57
lizmat TimToady: if you're changing the spec there, there is something similar about splice in S32/Containers:812
TimToady the native part of Perl 6 has to understand the difference between lvalues and rvalues much as C does
lizmat: maybe, but I can be argued into keeping it like it is too :)
nwc10 I think that it would be useful to have, as demonstrably I was expecting it to work, and was a bit confused as to why not. Until it was (sort of) explained that there's no way to do it currently 18:58
lizmat but then we have a rakudobug right now
and a niecza bug as well, actually 18:59
TimToady r: my $b = Buf.new: 65..70; say $b.splice(3,3)
camelia rakudo 9c5650: OUTPUT«No such method 'splice' for invocant of type 'Buf'␤ in block at /tmp/khuL1ICFZA:1␤␤»
TimToady there's a NYI fer ya
lizmat yeah, but for Iteratives it works and doesn't complain when doing things after the last index 19:00
TimToady r: my $b = Buf.new: 65..70; say $b.push: 71; say $b 19:01
camelia rakudo 9c5650: OUTPUT«Cannot call 'push'; none of these signatures match:␤:(Any:U \SELF: *@values, Mu *%_)␤ in method push at src/gen/CORE.setting:1441␤ in block at /tmp/Ot4rFoKi2S:1␤␤»
lizmat TimToady: do you agree that %b= %a{ slce }:delete:p is a good way of slicing out elements of a hash into another hash? 19:13
*slice 19:14
PerlJam lizmat: I don't know what TimToady thinks, but that looks good to me :) 19:15
lizmat I was thinking to at least add tests for that already
todo tests :-) 19:16
TimToady I don't see any reason why it shouldn't work the way you expect
lizmat I'll take that as a +1 on writing todo tests :-) 19:17
PerlJam What does %hash{@slice}:delete return currently? Just keys? 19:18
lizmat just the values
PerlJam Hmm.
lizmat just as in p5
PerlJam so %hash{@slice}:p:delete would be broken 19:19
lizmat yes 19:20
TimToady adverbs aren't ordered
just as named args aren't ordered
PerlJam ah. good to know 19:21
lizmat they are in the implementation, unfortunately
by virtue of some being more constraint than others
r: my %h=a=>1,b=>2; say %h<a>:delete:p; say %h
camelia rakudo 9c5650: OUTPUT«1␤("b" => 2).hash␤»
PerlJam sounds like something that needs tests if they don't exist already
lizmat r: my %h=a=>1,b=>2; say %h<a>:p:delete; say %h
camelia rakudo 9c5650: OUTPUT«1␤("b" => 2).hash␤»
TimToady semantically you have to *do* them in an order, but the syntax shouldn't care 19:22
lizmat actually, this would only be true after pull request #138 has been merged
Util timotimo: Roast:S02-types/array.t says "# RT #76676\n#?niecza todo\n{\n is ~<a b>.[^10], 'a b', 'Range subscript as rvalues clip to existing elems';\n}" 19:28
Util chimes in late; airport connectivity intermittent.
masak is home 19:29
FROGGS masak: so what are we gonna do today? 19:30
masak FROGGS: open a beer, write some emails, sleep. :) 19:30
FROGGS bah :P
masak this evening concludes a successful $workweek. 19:31
FROGGS has no beer at home ;/
:/
well, that's something
masak tomorrow I'll be back with a vengeance, mapping out PLPW and YAPC::NA talks :>
masak taught Git today
FROGGS ya, I have to start to prepare too some day
masak it's a happy thing to spread the Git message.
FROGGS did they get it?
lizmat has hers prepared already, only need to adapt to last minute developments :-) 19:32
masak FROGGS: the atmosphere in the room was such that it seemed they got it. 19:32
FROGGS: also, at this point, our material is polished to the point where it tends to get across with a high success rate ;)
FROGGS good, git is not the easiest to start with... I think it might make sense to do a bit svn before git 19:33
lizmat to me that feels like saying: it is good to learn programming with BASIC
masak yeah, kinda.
FROGGS why not?
masak learning svn first will probably both help and confuse; one more than the other, depending on circumstances. 19:34
FROGGS depends on the audience
lizmat didn't learn programming with BASIC, but with TUTOR :-)
masak looks up TUTOR
[Coke] downgrades his copy of ack on feather to 1.96 to avoid the -a muscle memory problem.
lizmat en.wikipedia.org/wiki/TUTOR_(progra..._language)
FROGGS just to show what a repository is... but maybe mixing the commands is really a bit confusing
masak FROGGS: I assure you that it's possible to teach Git from first principles with good results. 19:37
FROGGS: in fact, as one who learned SVK, I think I may have had an easier time with Git than those who went straight from a centralized version control system.
FROGGS hmmm, k 19:38
masak in some sense, Git is a file system protocol with an extra (history) dimension built in.
lizmat: TUTOR/PLATO seems awesome. 19:39
lizmat: nowadays we'd call that a DSL. :)
lizmat it was… it was like the Internet is now, but back in 1977 (for me at least).
and in one way, it was even better than now
on IRC, you only see lines once they're completed 19:40
masak ah, so like Google Wave. :) 19:40
lizmat on TERM-talk on PLATO, you could actually see the other person type, and make corrections
it was much closer to a real conversation that way
masak: probably, but then in 1977 :-) 19:41
masak aye. 19:42
flussence my major git gripe for the day: *nothing* tells you when you're missing submodules. It should mention it in git-status at least. 19:49
flussence r: say (^5 xx *)[^20] 19:51
camelia rakudo 9c5650: OUTPUT«0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4␤»
timotimo flussence: indeed. many makefiles or cmake files i've seen will complain loudly if submodules are missing
flussence n: say (^5 xx *)[^20] 19:52
FROGGS what I hate is adding commits to a detached head, even if it is pretty easy to resolve
camelia niecza v24-51-g009f999: OUTPUT«0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5 0..^5␤»
flussence
.oO( there needs to be a "difficulty" option in git-config )
19:52
timotimo :D 19:53
FROGGS it is a fixed value set to HIGH
[Coke] star - no new modules passing tests. :( 19:57
dalek kudo-star-daily: 50094a1 | coke++ | log/ (5 files):
today (automated commit)
FROGGS std: use v5; grep({ 1 } 2) 19:59
camelia std 9906f18: OUTPUT«===SORRY!===␤Confused at /tmp/25oypeywTP line 1:␤------> use v5; grep({ 1 }⏏ 2)␤Parse failed␤FAILED 00:01 53m␤»
FROGGS std: use v5; grep { 1 } 2
camelia std 9906f18: OUTPUT«ok 00:01 52m␤»
donaldh_ omg, I've just hit the Java tracing mother lode 20:01
this should enable some rakudo on JVM profiling.
nwc10 it filled your disk faster than you could kill it?
donaldh_ kenai.com/projects/btrace/pages/UserGuide 20:02
[Coke] were you able to do it with jvisualvm?
donaldh_ nope, jvsualvm refuses to give me anything. still trying to figure out why.
[Coke] ah.
donaldh_ Eclipse TPTP might work, but it is not supported on MacOS so I've bombed out. 20:03
[Coke] you have some sample output you can show us?
donaldh_ are you sure you want? 20:04
is there an upper limit on gist size? 20:05
lizmat RAM?
FROGGS donaldh: there will be a max post size, yes 20:07
donaldh_ Caveat: this was started from within jvisualvm after the perl6 CORE.setting compilation had started. Some data missed 20:08
gist.github.com/donaldh/c58c548d1595f2de9aa7
The gist is truncated at 3446 lines. 20:09
timotimo vim syntax highlighting for this file has reached the point where i can no longer use vim to edit.
donaldh_ I have >10,000 lines.
So BTrace successfully instruments all the generated classes, which is good. 20:10
BTrace also lets you write java programs, so I can write some code to roll up the data as it is collected.
donaldh_ afk 20:22
nwc10 masak: are you sure that it was a good idea getting off in Sweden? www.bbc.co.uk/news/entertainment-arts-22442276 20:31
dalek ast: bf0e68e | (Elizabeth Mattijsen)++ | S32-hash/delete-adverb.t:
Added tests for combined :p:delete adverbial pair usage
20:36
masak nwc10: modulo some minor annoyances at the train station, I'm blissfully unaffected.
lizmat that brand new train station provided minor annoyances? 20:37
masak nwc10: last year I was sucked in at the last minute, after successfully avoiding the whole thing. Sweden won, and I was deeply unmoved.
masak lizmat: in the form of what I assume was Sweden's song this year, yes. and a disco ball. 20:37
lizmat yikes, too bad Anouk wasn't performing :-) 20:38
masak Anouk Teeuwe?
lizmat yup
sorear is hoping to leave San Diego before the olympics move in, if that's really happening...
yoleaux 09:44Z <lizmat> sorear: "git reset --hard orgin/master" gave "fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree."
lizmat crazy Dutch rock chick
masak changes his Spotify plans for the evening 20:39
lizmat sorear! good morning, I realize it had to be origin/nom
sorear good morning lizmat
masak sorear! \o/ 20:44
lizmat masak: and c.s: is there a way to find out *which* keys matched with this smart match? my %h=a=>1,b=>2,c=>3; <a e> ~~ %h 20:48
masak lizmat: no, and generally, smartmatching is only meant to give you a True or False answer. if you want more, you want your own construct, probably. 20:49
lizmat I was afread so… 20:50
masak lizmat: only regexp matching gives more information for successes, AFAIK.
lizmat: though TimToady's full-fledged OKness proposal seemed to point in a direction where successes and failures were annotated with various information.
lizmat but that would mean first building a string
masak I don't like the idea of doing it all the time, though. because it would have a performance penalty, too. 20:51
better to special-case it with a sub or method of one's own making.
lizmat r: my %h=a=>1,b=>2,c=>3; my $b= <a e> ~~ %h; say $b.WHAT
camelia rakudo 9c5650: OUTPUT«(Bool)␤»
lizmat will do, just wanted to make sure I wasn't reinventing any wheels
masak lizmat: I'm also put in mind of people's expectations of junctions. after becoming comfortable with junctions helping them in boolean situations, they also want the answer to the question "but *what* matched?" -- which you're Not Meant To Ask. 20:52
masak I haven't decided whether this is a Design Flaw or just Unreasonable Expectations. ;) 20:52
lizmat <a e> ~~ %h:whatmatched ? 20:53
only half kidding here :-) 20:54
as long as it is internally a hyper and not a race...
sorear yo masak 20:58
jnthn *sigh* another hour worth of train delays 21:00
sweden--
masak sorry.
tadzik :D 21:01
lizmat blame the ESC
*blames
tadzik it reminds me of how Norwegians supposedly consider Polish health care superior to theirs
I concluded that if Scandinavians can't do something right, then probably nobody can 21:02
masak sounds about right. 21:05
sorear: I just learned how 2x2 real matrices help generalize from complex numbers to dual numbers and split-complex numbers. that's pretty cool.
sorear <3 finitely generated algebras 21:06
masak :) 21:12
donaldh has no idea what you are talking about :-/ 21:28
masak donaldh: can I take a shot at explaining? 21:29
FROGGS welcome to #perl6 :P 21:30
masak donaldh: I'd like to try. :)
lizmat where you learn something else every day!
sorear masak: Have you encountered the norm and trace maps yet?
masak sorear: no.
well, "norm" sounds familiar.
as does "trace".
donaldh Please give it a try. Tho I warn you that my braincells are weak tonight.
masak donaldh: how familiar are you with complex numbers? 21:31
donaldh: do you know why they were discovered?
masak (I need to know where to start explaining.) 21:31
sorear masak: www.math.uconn.edu/~kconrad/blurbs/...cenorm.pdf
neatly generalizes the absolute value of a complex number 21:32
masak ooh
donaldh I understand complex numbers, but not sure if I ever knew why they were discovered.
masak donaldh: they were discovered because some polynomials with x^3 in them didn't have three zeroes, as expected/predicted. 21:33
donaldh: if you add i = sqrt(-1), suddenly everything makes much more sense.
donaldh yep. which always felt like an indirect why to me. 21:34
I have a book called 50 mathematical ideas which covers imaginary numbers. 21:35
I really should keep reading it :-)
masak donaldh: the neat thing is that it handles not just x^3, but any x^N. suddenly such polynomials have N roots. (sometimes roots coincide.) this is known as "The Fundamental Theorem of Algebra": an N-ary polynomial has N roots.
so you don't need anything "beyond" i. i explains everything. which is rather huge. 21:36
donaldh 's mind was blown at infinity.
sorear complex numbers are necessary because they are the smallest field which contains the rationals and is both algebraically closed and closed under limits
masak yeah. complex numbers are surprisingly consistent.
it's almost like they "want" to exist. 21:37
sorear also, quantum mechanics requires them.
masak or at least a field that is isomorphic to them.
donaldh: anyway. getting to the point. the decision that i = sqrt(-1) is still somewhat arbitrary. 21:38
donaldh yep.
masak donaldh: there are two other likely candidates that would also work, namely, i * i = 0 or i * i = 1. these yield two other fields: the dual numbers and the split-complex numbers, respectively.
donaldh: what I realized today is that there's a way to represent complex numbers as (some) 2 x 2 matrices. and if you consider *all* 2 x 2 real matrices, these three fields (complex, dual, split-complex) are all the fields you need. 21:39
sorear a algebra over a field is a vector space equipped with multiplication 21:40
a unital, associative algebra is one that is a ring 21:41
a finite dimensional algebra is finite dimensional as a vector space, it has a finite basis
donaldh mind blown
sorear how many 2-dimensional unital, associative algebras are there over the real numbers? 21:42
masak 3?
sorear we can always pick one basis element to be <1>
call the other basis element i
the algebra is defined by i^2 = A + Bi
I think the answer is 3, yeah 21:43
masak me too.
donaldh: not only that, but (for example) dual numbers have applications in applied mathematics and quantum physics, too.
so they're not just theoretical constructs. they're actually usable. 21:44
I'm a little surprised we don't hear about them more often.
lizmat r: my %h{Any}; %h{Any}=1; my @a= %h{ grep { $_ ~~ Any }, %h.keys} ; say @a.perl # this works
camelia rakudo 9c5650: OUTPUT«Array.new(1)␤»
sorear let j = C + Di; if D!=0, then (1,j) is an equally valid basis with jj = CC+DDA + (2CD+DDB)i
lizmat r: my %h{Any}; %h{Any}=1; my @a= %h{ grep { $_ ~~ Any }, %h.keys}:p ; say @a.perl # this doesn't, rakudobu? 21:45
camelia rakudo 9c5650: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/rPos9pIFaI:1␤␤Array.new()␤»
lizmat r: my %h{Any}; %h{Any}=1; my @a= %h{Any}:p ; say @a.perl # this doesn't, rakudobu? 21:46
camelia rakudo 9c5650: OUTPUT«Array.new(Any => 1)␤»
lizmat that one actually works
[Coke] uconn, my home state school!
donaldh that's _the_ bit which has always amazed me. Theoretical mathematical construct that was, for want of a better term, conjured out of thin air is the foundation of applied maths, quantum mechanics and more.
masak donaldh: I guess it's because mathematicians tend to find "systems" which are internally consistent and make sense. 21:47
sorear since D!=0, we can pick C = -DB/2, leaving jj = DDBB/4 + DDA
masak donaldh: and the world basically has to run on systems like those.
sorear or jj = DD(A + BB/4); DD is a positive nonzero arbitrary number, so we can always force jj = {1,0,-1} 21:48
masak donaldh: but really, I'm amazed by it too, and I don't really know why.
sorear: QED, it seems.
donaldh I suppose it only seems arbitrary or conjured because we have difficulty visualising its origins. Whereas real numbers are easy to visualise. 21:49
But real numbers were conjured up in much the same way. 21:50
sorear real numbers aren't all that easy to visualize
it's easy to visualize something deceptively similar to the real numbers, but your intuitions will all apart when you get to stuff like Banach-Tarski 21:51
donaldh turns to google
sorear there seems to be an unwritten rule in fundamental physics that all functions that are used are constrained to be complex-analytic 21:52
non-analytic field configurations aren't even considered
which is really extremely constraining
moritz but also seems to work pretty well for explaining real-world stuff 21:53
masak also, to be fair, holomorphic functions are probably the prettiest thing I've ever encountered in mathematics. 21:53
something about them just makes a whole lotta sense. more than it "should" if complex numbers were just some thing that humans invented. 21:54
lizmat r: my %h{Any}; %h{Any}=1; say (%h{Any}:p).perl; my @a=Any; say @a.perl; say (%h{@a}:p).perl
camelia rakudo 9c5650: OUTPUT«Any => 1␤Array.new(Any)␤use of uninitialized value of type Any in string context in block at /tmp/2ouUnJ18av:1␤␤((),)␤»
lizmat it looks like doing a slice out of an object hash with Any as a key, is not returning the right thing :-( 21:55
it works with a scalar:
r: my %h{Any}; %h{Any}=1; say (%h{Any}:p).perl; my @a=Any; say @a.perl; say (%h{@a[0]}:p).perl 21:56
camelia rakudo 9c5650: OUTPUT«Any => 1␤Array.new(Any)␤Any => 1␤»
donaldh on a more mundane note, the organic scottish heather honey beer I'm drinking is rather nice.
lizmat masak: rakudobug ?
lizmat (if you agree, I will make it a rakudobug) 21:56
donaldh what more could this beer be?
sorear moritz: OT: what do you think of GUTs? I have trouble imagining a coincidence in the way that the fermion content and gauge charges of the SM+right handed neutrinos are reproduced by breaking a representation of Spin(10) 21:58
moritz sorear: I'm really not up-to-date with the current set of GUTs (more) 22:00
masak lizmat: looking, trying to understand with my feeble $work-addled mind.
lizmat: yes, that looks buggy. 22:01
FROGGS donaldh: the sheepshagger I had once was okay, but I prefer german beer :o)
moritz sorear: but last time I looked, I was thorougly disappointed by the lack of scientific rigor that came with most of them
lizmat still golfing down
r: my %h{Any}; %h{Any}=1; say %h{Any}:exists
camelia rakudo 9c5650: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/6PK2DrIS7m:1␤␤False␤»
moritz (ie most were not experimentally falsifiable, or didn't offer a much simpler explanation for existing data than previous theories)
lizmat masak: I think that's the problem 22:02
masak lizmat: agreed.
lizmat r: my %h{Any}; %h{Any}=1; say %h{Any}; say %h{Any}:exists
camelia rakudo 9c5650: OUTPUT«1␤use of uninitialized value of type Any in string context in block at /tmp/30nteXxcOh:1␤␤False␤» 22:02
lizmat submits rakudobug
masak yeah, that's self-contradictory.
lizmat++
moritz I'm pretty sure that role TypedHash should provide its own method exists 22:07
moritz something like multil method exists($?CLASS:D: Mu $key) { nextwith($key.WHICH) } 22:08
jnthn yes, sounds right. 22:09
moritz (and same for method delete)
second attempt at sleeping& 22:10
lizmat moritz: working on just that
this is my proposed addition to TypedHash: method exists(TKey \key) { self.exists(key.WHICH) } 22:11
(making now)
masak 'night, #perl6 22:12
lizmat goodnight masak! 22:13
donaldh FROGGS: I enjoy a german beer but I suspect I am culturally predisposed to the beers I grew up with. 22:14
haha. I need to feed this profiling data into d3 so that I can v i s u a l i s e it :-) 22:15
lizmat moritz: not so oddly enough, my solution gets into an infinite loop :-) 22:17
trying your solution now 22:18
donaldh awww, OOM 22:22
lizmat .tell moritz: your solution worked, and indeed :delete has a similar issue 22:26
yoleaux lizmat: What kind of a name is "moritz:"?!
lizmat .tell moritz your solution worked, and indeed :delete has a similar issue
yoleaux lizmat: I'll pass your message to moritz.
jnthn donaldh: I'm going to look at using annotations to hold the massive amount of info currently set up through the getCodeRefs stuff. 22:43
donaldh: Hopefully will deal with some of the startup time stuff...
donaldh jnthn: oh
that sounds promising 22:44
jnthn Been through the ASM docs and it seems like it can work.
lizmat wonders why "~~foo" couldn't be a synonym for "$_ ~~ foo" 22:45
and on that thought: goodnight #perl6! 22:46
diakopter o/
jnthn 'night, lizmat
dalek p/rak-jvm-support: 9756183 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Fix a thinko.
donaldh jnthn: not very scientific evidence suggests increasing heap will give 15% performance gain when compiling CORE.setting 22:49
I used -Xxm2048m but would need to experiment to find out what's actually needed. 22:50
cognominal in S06, the name fixity (probably borrowed from haskell) is used. This is the only use of the word in the synopses. Should that be replaced by "arity, precedence"?
jnthn donaldh: Sounds like the usual GC memory overhead / throughput trade-off. 22:52
donaldh jnthn: yep. 22:55
jnthn ugh, tired. Will continue hacking this annotation thing tomorrow. 23:06
'night o/ 23:07
[Coke] r: use Test; is(5*14, 25, "www.youtube.com/watch?v=omyUncKI7oU...mp;NR=1"); 23:20
camelia rakudo 9c5650: OUTPUT«not ok 1 - www.youtube.com/watch?v=omyUncKI7oU...amp;NR=1␤# got: '70'␤# expected: '25'␤»
donaldh 'night
lue r: BEGIN { temp COMPILING::<$?FOO> = 1; }; say COMPILING::<$?FOO>; BEGIN { COMPILING::<$?FOO> = 42; }; # I had a feeling S02:3079 was wrong (as a bonus, $?FOO doesn't work in the first place, at least on rakudo (must be COMPILING::<$?FOO>)) 23:43
camelia rakudo 9c5650: OUTPUT«42␤»
sdo hello 23:50
I had trouble with installing Perl 6 Rakudo... Now I took Rakudo star and it seems compiling without a stitch... Thanx 23:51
[Coke] sdo++ 23:59