»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by diakopter on 25 January 2010.
diakopter I'm bouyant in C# 00:00
lue heh, of course. It's really shallow :D
mberends throws diakopter a .oO( thought bubble ) for bouyancy
jnthn OK, time for me to go read for a bit, and then get some sleep :-) 00:02
00:03 snarkyboojum joined
mberends good night jnthn, nice work today 00:03
jnthn :-)
night o/
lue o/
diakopter if C# is the Mariana Trench, Perl is a black hole
lue Good thing C# isn't the Mariana Trench then :) 00:04
mberends Perl 6 has Infinity and Beyond!
diakopter the closer you get to it, the faster you feel you're moving, but to everyone else, you never reach it [in their lifetimes]. 00:05
lue speaking of infinity (restarting the Inf discussion in 3 2 1)... 00:06
mberends (drive-by black hole) 00:07
00:08 Exodist joined
lue I'm going to WSoGMM dimension 65536 again, to test my (hopefully fixed) pan-dimensional wireless. 00:08
lue is testing PanDimensional Wireless with this /me 00:10
00:16 snarkyboojum left
mberends lue: p65536i65536n65536g # is that the correct coordinate format? 00:18
k23z__ anybody here doing the Google Tron challenge ? have you noticed it takes a lot of time for the bot to move ? any ideas how to speed that up ?
lue I don't know! Let me check the terminal...
diakopter I guess you mean csclub.uwaterloo.ca/contest/ 00:19
lue I'm in WD65536, my location is 12345678:FFCA81D2:10867CD5; 00:21
00:22 Rix joined
lue Ping this IP to get me: FF.FF.FF.FF 00:22
mberends the wireless seems to be working now 00:23
00:23 wknight8111 joined
wknight8111 jnthn: ping 00:24
lue quite. Although, pan-dimaewnsional wirelsdss tends to send faulti characterns.
It'sd realldfcy quite annoy~*@^&82ing. 00:25
mberends wknight8111: jnthn checked out a few mins ago
wknight8111 I'm looking for info about Parrot's TT #1443 that he just filed 00:26
mberends right, the valgrind output
I may be able to recall, I had a similar one around the same time 00:27
what do you need to know?
wknight8111 I tried to reproduce it, but I wasn't even able to build the master branch of rakudo
mberends it's the ng branch
wknight8111 /usr/local/bin/parrot: symbol lookup error: dynext/perl6_group.so: undefined symbol: Parrot_pcc_get_results
make: *** [perl6.pbc] Error 127
ok, how do I get the ng branch from git?
mberends oops, I'm the git fool around here (especially this morning) but I'll look it up 00:28
wknight8111 ok
lue I know, I did this a few days ago, all you have to do is... I FORGOT! Quick! Terminal history save me!
quietfanatic git checkout -b ng -t origin/ng 00:29
mberends quietfanatic++: perfect!
quietfanatic So I say, but I also used my bash history to find that.
aesop lol 00:30
mberends gitready.com/intermediate/2009/01/0...ranch.html 00:31
wknight8111 no love. Same error on the ng branch: /usr/local/bin/parrot: symbol lookup error: dynext/perl6_group.so: undefined symbol: Parrot_pcc_get_results 00:32
make: *** [perl6.pbc] Error 127
lue is working on the P6 calendar system
aesop lol 00:33
mberends wknight8111: did you start with something like perl Configure.pl --parrot-config=/usr/local/bin/parrot/bin/parrot_config ? 00:35
wknight8111 just perl Configure.pl. I had parrot installed and it claims to have found it ok
mberends it may need a specific Parrot 00:36
cat rakudo/build/PARROT_REVISION says 43487 2.0.0 00:37
and it must be an installed Parrot from parrot's 'make install' 00:38
wknight8111 i'mdoing --gen-parrot now 00:39
mberends wknight8111: if you have time/space, and easier solution is: .. what you said :)
the ticket does not mention it, but it may be that the amd64 platform has more errors than x86 00:42
wknight8111 i'm on amd64 00:43
Okay, rakudo finally built. Now, what do I need to do to see this problem? 00:44
mberends on linux/amd64 there is a similar heap corruption in S32-str/index.rakudo and S32-array/unshift.rakudo
ok, try 'make testable', then perl tools/test_summary.pl 00:45
should take 5-10 minutes total
wknight8111 ok, running now 00:46
mberends the perl script "fudges" tests, changing the .t to .rakudo and putting in implementation specific skips and todos 00:47
another run is 'make spectest', but the output is less informative
if you find a crashing test, the next step would be something like 'valgrind ./perl6 t/spec/S32-str/index.rakudo', but you probably knew most of that anyway 00:50
and the toolchain makes a difference too, colomon++ uses Red Hat and has fewer errors than I get on Ubuntu 10.4 testing 00:54
lue That makes me feel better. I use Fedora :D 00:56
00:58 ihrd joined 00:59 snarkyboojum joined 01:00 ihrd left 01:05 jaldhar left 01:14 jaldhar joined, jaldhar left 01:15 jaldhar joined 01:20 jaldhar left
ash__ i have gentoo if you want me to test something there for whatever reason 01:20
01:22 jaldhar joined
mberends it would be handy to have a few more regular spectest runs on the ng branch 01:22
development is going at a very quick pace again, increasing the risk of bugs 01:23
lue I can compile and `make spectest' rakudo/ng. I run Fedora 12 on a PPC architecture, should prove handy.
ash__ i can run it on a ppc running gentoo, and an amd64 gentoo 01:24
mberends yes, please :)
ash__ spectests that is
lue My first linux distro on PPC was gentoo. My patience lost it while getting sound to work. 01:25
ash__ its for a sys admin class i am taking, i don't need sound, heck i only installed gnome on it last wednesday 01:26
if i used it more i would, but i don't mind not having it
lue Gentoo can teach you A LOT about Linux. But it was my first Linux distro, so I learned nothing :D 01:27
01:27 jaldhar left
ash__ fedora was my first linux, fedora 5... 01:28
lue is trying to come up with 16 Perl6 related 'terms' He has Camelia, Onion, and -Ofun
ash__ i normally use ubuntu now though, unless i am making an embedded system, then i always use gentoo
01:28 meppl left
lue After Gentoo, I used Ubuntu, but parts of it were non-free. So I switched to OpenSuSE. 01:28
ash__ running spectest on 3 systems, i'll report any errors
01:28 jaldhar joined
lue OpenSuSE didn't support PPC much at all, so I switched to Fedora. Happy ever since :) 01:29
ash__ gist.github.com/303777
01:29 IllvilJa left
ash__ i'll put all my reports there 01:30
mberends ash__: for a bit more information, you could also try 'time perl tools/test_summary.pl'
ash__ ill do that one too
first ones from darwin 10.6 with 64-bit perl6/parrot
lue This is a formal request for RAM upgrade for PowerBook G3 Pismo. 01:35
Contact me through craigslist. NO FAKES!!!!!!1!!!1!!one!!!
ash__ mberends: gist.github.com/303777 updated 01:37
mberends looking
ash__ dang, the ppc is still building parrot
both the 64 bit ones (OS X and linux) are done compiling and running the test (OS X ran it twice now)
lue Heh, I only have 384 MiB ram on this PPC dinosaur (and 768 MiB swap space). I'm still on Actions.pm! 01:38
mberends thanks ash__++, that fail in S29-conversions/ord_and_chr.rakudo is similar on Ubuntu 01:39
01:39 pmurias left
ash__ running ppc 01:40
tests now, finally :P
its a G4 7455
btw
mberends wknight8111: S29-conversions/ord_and_chr.rakudo is a segfault, not a heap corruption
lue G3 with 1GHz, if I remember right.
lucky :( 01:41
I had a G4 laptop, but the monitor was busted.
ash__ its not mine, its the schools (student resource ftw?)
lue ft nostalgic w! 01:42
01:42 Chillance left
lue again, this G3 laptop was a gift. Free Mac! 01:43
ash__ which test is the bad one? is it the same on OS X as it is on Linux?
wow
i just got a bad error on ppc 01:44
gist.github.com/303777 updated, its under PPC 01:45
mberends anything non-zero in the fail column is bad
ash__ the 3rd file, i got a failed assertion during an allocation
i got that error multiple times, it didn't kill the test suite though, i'll post it all once it finishes 01:46
mberends that sounds like a Parrot memory corruption
01:47 am0c left
mberends ash__: nice speed, this Turion laptop is about 50% slower 01:48
wknight8111 which test causes parrot memory corruption
?
mberends ash__?
ash__ 2 so far, something in: S03-operators/range.rakudo and something in S03-operators/basic-types.t
the test_summary.pl is still running 01:49
i'll try to see specifically which one when that finishes
mberends thanks. can you use valgrind as well?
ash__ sure, gotta install it 01:50
mberends :)
lue bah, compile error.
Missing block at line 1309, near "( my $i=0;"
in the file core.pm
ash__ you forget how fast things are until you use a computer built in 1999 01:54
mberends lue: bah indeed, don't understand that error. the file is in src/gen, by the way 01:55
lue I don't know how fast things are :(
ash__ got another assertion error
in S32-array/push.rakudo
and in S29-conversions/ord_and_chr.rakudo 01:56
only a few more tests left
lue I think that error came from some of my custom code. (I thought git pull gets rid of that) 01:57
mberends all the same tests as others are crashing, that's good confirmation, thanks 01:58
ash__ no, it will only get rid of your code if it conflicts with a change in the pulll
do git stash
it will remove any custom changes into a temporary stash you can pull up later (if you don't want to commit them)
lue then I can ignore it forever if I want!? o.o 01:59
I can just remove the code, I know where it is. 02:00
mberends yes, with git stash drop
ash__ git revert can revert a file
02:00 drbean joined
lue I'll try git revert. 02:01
nah, didn't work. I'll just remove it manually (I know what it is)
wknight8111 git revert --hard
02:02 nihiliad left
lue I just removed it manually. If, however, I changed a couple dozen files (as opposed to 1), I'd have use git commands. 02:04
ash__ S32-num/roots.rakudo gave me the assertion error too 02:06
gist.github.com/303777 updated with full test stuff 02:08
test 19 of t/spec/S03-operators/basic-types.t died 02:09
anything else I could do for this test? i'll run the parrot tests 02:11
doing a make fulltest on parrot 02:12
ah, i guess i could run it with valgrind, i'll do that 02:13
do you want the other linux run with valgrind? the x86_64 gentoo 02:15
02:15 bacek joined, lue left
bacek o hai 02:15
seen jnthn
diakopter a couple hours ago 02:16
02:16 diakopter sets mode: +v diakopter, diakopter sets mode: -o diakopter
bacek sigh. 02:18
cognominal?
diakopter bacek: wknight8111 is here
bacek diakopter, this slacker probably sleeping :) 02:19
wknight8111 hello
bacek colomon, ping
wknight8111, o hai! :)
ash__ how does one run a test with valgrind? 02:21
mberends valgrind ./perl6 t/spec/S03-operators/basic-types.t
then make a cup of tea 02:22
02:22 MaL0 joined
mberends use the .rakudo extension instead if it exists 02:23
ash__ is that the one you want me to check?
mberends no, it was just an example from your gist
I'd let wknight8111 choose the tests, he's into the Parrot guts 02:24
02:24 mssm left
ash__ kk, want me to run it for all the ones that had a failure + backtrace? 02:24
wknight8111: any suggestions for valgrind tests?
mberends ash__: sure, you're so helpful today :)
wknight8111 no idea, still not sure where to start with this one 02:25
ash__ i am just reading, so its not hard to check every few second for tests to finish
wknight8111 may be multiple bugs
mberends slacks off and thinks of sleep 02:28
ash__ which one's the one that orginally started all of this?
bacek wknight8111, are you trying to fix TT#1443?
02:29 mberends left
wknight8111 bacek: I was looking at it. I posted a backtrace but it doesn't look like a string compact problem 02:30
looks more like heap corruption or something
bacek wknight8111, indeed. Is is on "ng"? 02:31
02:31 lue joined
bacek wknight8111, and parrot's trunk? 02:31
wknight8111 bacek: yes
bacek ok, digging in 02:34
ash__ i have to rebuild glibc with the debug flags before valgrind will work on gentoo, so... this otta take a while... 02:36
wknight8111 I don't have time for any more test runs tonight. I'm going to bed. I posted what little info I know to the ticket 02:37
02:37 wknight8111 left 02:38 k23z__ left 02:42 snarkyboojum left
bacek Any rakudo committers around? 02:45
ash__ what do you need? (probably can't answer it, but i can try) 02:46
bacek Apply patch from nopaste.snit.ch/19611
It will remove deprecated usage of CallContext.results 02:47
ash__ how would i apply that? 02:49
bacek download, patch -p1 < foo.patch; commit 02:50
or I can provide git format-patch for simplicity 02:51
ash__ that might be nice ^_^
bacek meh. It doesn't work. I can fork rakudo on github and send pull request. 02:54
colomon bacek: pong 02:57
bacek colomon, unping. I'm trying to check rakudo's crash. 03:07
ash__, what is your github id?
colomon bacek: great. 03:08
bacek: I'm trying to apply your patch right now.
bacek I just sent "pull request"
For this one github.com/bacek/rakudo/commit/e32e...f116b48c72 03:09
colomon Hmmm, I don't seem to get rakudo pull request e-mails. 03:10
can I do a pull from that commit of yours to my machine, and then push it? 03:11
bacek colomon, I think so. 03:12
colomon which branch is your patch against? 03:13
bacek ng
"Patches to Rakudo should be submitted to RT; pull requests via github tend to be ignored, discarded, or take a very long time to process. "
erm...
colomon I ignore RT too, but patches sent to #perl6 probably get results. :) 03:14
bacek colomon, than just apply patch from nopaste :)
colomon Hmmm... I tried git pull github.com/bacek/rakudo/commit/e32e...f116b48c72 but that doesn't seem to do it.
applying it from nopaste didn't work either, not sure why.
bacek colomon, you have to add remote
colomon ah.
bacek colomon, redhat? 03:15
colomon still a git novice, I fear.
actually, I'm normally on os x (including now).
but I have a centos x64 box.
do I want to pull or merge, actually? 03:16
never mind that, I see they're the same. 03:17
ish
bacek colomon, nopaste.snit.ch/19612, save it than "git apply <filename>" 03:19
it should work
colomon apply or am ?
am, beauty. 03:20
now making and testing.
thank you for the patch (and help)!
bacek colomon, it's just small clean-up... 03:24
colomon every little bit helps!
03:26 am0c joined
colomon pushed 03:27
03:32 athenot left
dalek kudo/ng: 668a1c8 | bacek++ | src/ (3 files):
Remove obsoleted Parrot_pcc_(set|get)_results.
03:33
bacek ok. I can wallpaper problem with compact_pool. But it's just wallpapering 03:38
colomon anything you can do that will help! The problem has been quite annoying... 03:39
bacek colomon, you can apply this patch locally to parrot nopaste.snit.ch/19613 03:40
just for testing purpose
colomon okay, let me see... 03:41
should I need to rebuild rakudo or no? 03:44
Just tried two of the failing tests, they seem to work fine. Going for full spectest now... 03:46
bacek no
just rerun
03:47 gfx joined
colomon bacek: that made all the segfaults go away for me. 03:49
obviously they are heisenbugs so I can't say for certain that they're not lurking waiting for a different build, but this test seems extremely promising.
bacek colomon, yeah... But it's just fixing symptoms.
colomon y 03:50
Can you tell us more about the problem?
bacek Someone using more memory than allocated.
colomon And when the symptoms are 2-4 segfaults every spectest run, just getting rid of the symptoms is no small matter.
pugs_svn r29718 | colomon++ | [t/spec] Refudge more precisely. 03:53
03:53 athenot joined
colomon bacek: Please keep us informed on progress with this bug! In the meantime, unless you advise against it, I'm going to suggestion Rakudo developers switch to using it. 03:58
and thanks again!
afk # bed 03:59
bacek colomon, I'm in progress to find real problem...
And good night
colomon \o/
04:19 cognominal joined 04:23 athenot left 04:24 drbean left 04:25 snarkyboojum joined 04:30 ruoso left 04:45 cognominal left
lue hello anyone? 04:49
04:49 cognominal joined 04:50 am0c left
lue ...hello? cognominal? anyone? (i'm scared…………) 04:51
cognominal lue? 04:53
alone in the cold night?
lue yes. 04:54
cognominal I can't sleep... Reading Resig books.
lue I have no need to sleep yet. 04:55
cognominal what is your localtime?
lue 20:55
cognominal 5:55 here
lue Oi. The only reason I give my local time is because I give you 1/24 of the world to find me in. That's a lot. 04:56
cognominal somewhere on the west coast... 04:58
lue yeah, but still. 1/24 of the world.
cognominal more than that except if you live on water... 04:59
lue I don't. I'm not a Zora. 05:00
05:04 am0c joined 05:17 bacek left 05:20 jj__ joined
jj__ hi 05:20
05:21 jj__ left
lue eh.. hi NO WAIT aww 05:22
lue is learning estuary english thru wikipedia 05:28
05:54 bkeeler left 06:25 maerline joined 06:26 justatheory left, justatheory joined
maerline perl6: say "foo"; 06:26
p6eval elf 29718, pugs, rakudo 1d4928: OUTPUT«foo␤»
maerline perl6: say "hlgh"; 06:27
p6eval elf 29718, pugs, rakudo 1d4928: OUTPUT«hlgh␤»
06:31 maerline left 06:32 maerline joined 06:37 cognominal left, cognominal joined 07:04 justatheory left 07:12 gfx left 07:18 k23z__ joined 07:21 bacek joined 07:24 am0c left 07:48 lue left 07:52 drbean joined 08:17 mberends joined 08:20 z3ndrag0n joined 08:21 patspam joined
mberends T-riffic, bacek++'s Parrot patch eliminates all the ng spectest crashes. Now passing 3982 tests out of 16418 (24.3%) 08:24
08:32 kaare joined, kaare is now known as Guest99874 08:38 bacek left 08:43 k23z__ left 08:47 cognominal left 08:51 iblechbot joined 08:59 cognominal joined 09:03 k23z__ joined 09:36 Trashlord left 09:38 Su-Shee joined
Su-Shee good morning 09:38
sjohnson hi 09:39
09:41 Rix left 09:42 Rix joined 09:55 drbean left 10:16 IllvilJa joined, mikehh joined 10:19 Guest99874 left 10:20 kaare joined, kaare is now known as Guest80169 10:37 snarkyboojum left 10:40 Chillance joined 10:54 jferrero left 10:57 jferrero joined 11:00 pmurias joined 11:16 meppl joined
pugs_svn r29719 | pmurias++ | [mildew] places where phi function need to be inserted are correctly 11:23
r29719 | detected
r29720 | pmurias++ | [mildew] phi functions are inserted 11:24
11:27 patspam left 11:36 patspam joined, patspam left 11:38 patspam joined, patspam left
colomon mberends: Is that the patch bacek posted here, or does he have a more complete patch now? 11:39
11:51 drbean joined 11:53 redicaps joined
mberends colomon: that's all currently, bacek said he would work more on it because so far he has only removed the symptom 11:57
colomon yeah, that was the status of things before I went to bed, I was hoping there had been further progress. 11:58
but all tests clean is awesome.
mberends yes :)
pugs_svn r29721 | pmurias++ | [mildew] added a test-ssa target to the Makefile 12:04
mberends pmurias++ for implementing Single Static Assignment in Perl 5, for Perl 6 :) 12:07
pmurias mberends: i'm still fixing the bugs 12:09
pugs_svn r29722 | colomon++ | [t/spec] Note that tests being skipped are out of sync with the spec. 12:15
colomon okay, my ng is pretty clean. I'm going to try bumping parrot and see what happens. 12:16
pmurias mberends: you expressed interest in adding a js backend to rakudo how hard would it be to seperate the parrot specific parts?
mberends pmurias: it's much more feasible in the ng version. I'm still studying how it would work, and see no conceptual blockers. 12:21
pmurias: it would negatively impact the Rakudo * release to do any work on it right now, but planning and documenting are worthwhile. 12:22
rakudo/docs/compiler_overview.pod is now about 30% revised for the ng branch 12:23
12:34 ruoso joined
pugs_svn r29723 | pmurias++ | [mildew] fix AST::Loop::simplified 12:36
pmurias ruoso: hi
pugs_svn r29724 | pmurias++ | [mildew] fixed the AST produced by unless 12:40
12:45 payload left
colomon make test has two failures with the latest parrot. :( 12:47
say +^1 fails. 12:48
That runs :pirop<bnot> 12:49
error is Null PMC access in set_integer_native() 12:50
12:50 cognominal left
k23z__ eval: import random; @t=("R","F","U","L","D","B"); @t2=(" ","2","`");for ($i=1;$i<=15+int(rand(10));$i++) {print $t[rand(6)],$t2[rand(3)]," "};print "\n"; 12:51
hmm no bots here ?
ruoso hi pmurias 12:52
colomon no perl 5 bots, anyway...
12:55 masak joined
masak good wonderful Sunday, #perl6. 12:55
colomon \o
masak slept the wrong hours again 12:56
masak feels less bad about it than usual :)
12:59 redicaps left, redicaps joined, redicaps left
pmurias ruoso: what compile optimalisation do you think mildew will most benefit from? i'm thinking about working on simple RI inference at first (so we can emit much more efficient code for some method calls) 13:00
13:03 orafu left 13:04 orafu joined 13:07 cognominal joined
ruoso pmurias, what do you mean by simple RI inference? 13:11
pmurias we assuming we know what the $scope register contains we could infer what all the lookup method calls return 13:13
s/we/well,/ 13:14
ruoso ah... sure...
are you talking about optimization in mildew per se? or directed to one specific backend? 13:15
pmurias in mildew per se
the backends could then use the type info to emit specific code 13:16
ruoso pmurias, I think constant values flagging would be usefull as well 13:17
jnthn oh hai, folks 13:19
pmurias jnthn: hi
jnthn masak: My sleep times are also REALLY messed up.
:-(
hi pmurias :-)
masak jnthn: want to compare :) I fell asleep at 5-ish, and woke up slightly before 1.
s/are/are?/ 13:20
13:21 payload joined
jnthn masak: Went to bed a bit after 1:30, failed to sleep until 3:30-4:00ish, alarm went off for church at 8:30, tried to get up but epicly failed, quickly fell asleep again and slept until almsot 2. 13:22
masak: I lost a lot of sleep to ESTOMACHPAIN
colomon o/
jnthn: do you know anything about :pirop<bnot>? 13:23
jnthn colomon: It's found in a PAST::Op node? :-)
masak jnthn: sounds like a tie to me.
colomon jnthn: token prefix:sym<+^> { <sym> <O('%symbolic_unary, :pirop<bnot>')> } 13:24
doesn't work under the latest parrot.
jnthn masak: Missed out on church...and thus seeing красивая Лена. :-( And meeting a friend visiting Bratislava for a few days at six to show her where to obtain good food and beer. So it'll be a short day's hacking here.
colomon: Oh. 13:25
colomon: Did they deprecate bnot? :-/
colomon: Also, I need to backlog, but I see there's something about a Parrot patch that helped out with the spectests?
colomon I dunno. Didn't see anything about it in the parrot log.
yes!
masak jnthn: same here. I'm off to a late-bound fika soon, and later this evenening to a very late-bound dancing session. :)
jnthn masak: fika? 13:26
colomon apparently it doesn't solve the real problem, but it hides it from us quite nicely.
masak jnthn: unfamiliar with the term? welcome to Sweden. :)
colomon latest ng + that patch in parrot + latest spectest == clean spectest run here.
jnthn masak: Well, I saw a product called "ficklampa" and figured it'd amuse the German tourists. :-)
masak jnthn: probably :)
jnthn But I assume that's unrelated. :-)
Su-Shee chokes on her pancakes :)
masak jnthn: as well as 'fick-kalender', I guess. 13:27
jnthn: yes, unrelated. 'fika' has a REALLY interesting etymology, so I suggest you look it up.
jnthn oooh! I like that word! 13:28
masak thought you might. :) 13:29
I don't do fika often, especially not at work. but I've made a new foreign-exchange-student friend, and he seems to like fika quite a lot.
jnthn "to impress, serve a variety of seven freshly baked items--and be ready to talk about the weather." :-D 13:30
masak :P
fika &
13:30 masak left
jnthn As a Britt, I can at least be an expert in one of those :-) 13:30
colomon: Will check out the patch. 13:31
colomon: What's the error you get, btw?
(with bnot)
colomon Null PMC access in set_integer_native()
that's when you try +^1 13:32
huf w t f. why are you people on about booger?
fika seems at least as unfortunate to me as "gecis" (GE Capital International Services)
jnthn colomon: Oh. Oddness. 13:33
13:33 rv2733 joined
jnthn huf: Heh. Welcome to the world of words that are normal in one language and sound weird in another. :-) 13:34
huf yeah ;) 13:35
fika is just booger, but gecis...
13:35 uniejo joined
jnthn hehe 13:36
colomon: Yeah, bacek++'s patch does appear to be the wallpaper approach, but it's pretty, problem-solving wallpaper.
colomon oh, yes, having all tests clean is AWESOME!!!!11!!!! 13:37
seriously, I'm very glad I'm seeing that before ng --> master 13:38
jnthn Yeah, same!
colomon though I do hope he can come up with a proper patch, too.
jnthn So, is patch applied to latest Parrot?
colomon jnthn: I don't think so. 13:39
jnthn Ah, OK
colomon no, I don't see it there. 13:40
jnthn colomon: And the bnot is the only blocker to us running on latest Parrot?
colomon the only blocker I've seen so far. everything builds and whatnot, there are just two +^1 fails in make test
didn't try make spectest
I guess there could be another problem later on in those two test files, I wouldn't know. 13:42
jnthn Ah, that'd be the more telling one
But if it really is only that place that we fail...it's not a huge deal.
colomon should I patch the files and see what happens?
jnthn "the files"?
PARROT_REVISION?
colomon no, the test file -- "skip" the test that fails and see what happens next. 13:43
jnthn Could do that as an experiment to see, yeah. 13:44
colomon okay, for the first file, all remaining tests pass
pugs_svn r29725 | pmurias++ | [mildew] added ->simplified for while 13:46
r29726 | pmurias++ | [mildew] ssa conversion leaves ¢foo registers alone
colomon and the same with the second. so we pass all the make test tests except the two tests that do prefix:<+^>.
jnthn OK, not bad. 13:49
13:54 wknight8111 joined 14:23 ruoso left 14:24 xomas_ joined, drbean left, xomas_ is now known as xomas 14:38 ruoso joined, mssm joined 14:44 nihiliad joined 14:45 uniejo left, uniejo joined
pmichaud good morning #perl6 14:46
colomon \o 14:47
pmichaud apologies for disappearing yesterday -- %family_stuff happened
colomon Two exciting bits in the backlog: bacek++ came up with a patch that hacks around the segfaults we've been getting in parrot. 14:48
with it, ng tests clean.
spectest, I mean.
14:48 jackyf joined
pmichaud bacek++ 14:48
colomon (that's a parrot patch)
pmichaud patch to rakud..... okay
so we bumped PARROT_REVISION?
colomon not actually applied to parrot yet, as far as I know.
pmichaud (if yes, good)
oh.
colomon no, just changed local parrots by hand. 14:49
pmichaud why not patched to parrot yet?
colomon I tried bumping PARROT_REVISION this morning, and it's got a glitch.
I think because it's fixing the symptoms rather than the problem. bacek was still working on a better patch when I went to bed last night.
in latest parrot, prefix:<+^> crashes. 14:50
pmichaud that's kinda bizarre :)
colomon Null PMC access in set_integer_native()
pmichaud I have to run an errand ... any specific things I should work on upon returning? 14:54
colomon figuring out how to get the latest parrot working and switching ng to master? 14:55
I didn't accumulate any fresh blockers yesterday, and really need to dig in some more to see what all tests will run now, I suspect there are a lot which are just a touch away from working. 14:56
jnthn colomon: I can probably give some tuits to looking at that +^ crash in about 10 mins. 14:59
pmichaud: imho, slices, latest Parrot, s/ng/master/. 15:01
In no particular order.
colomon jnthn: \o/
jnthn (I'd really like to see us have slices before the Thursday release, but not fussed on if it's before we make ng master.)
colomon: Did you just go for latest Parrot trunk? 15:02
jnthn goes for 43952 15:03
15:03 cognominal left 15:07 cognominal joined 15:11 pmurias left
pmichaud slices should be no real problem 15:14
jnthn colomon: OK, make spectest with latest Parrot doesn't has a fail. 15:16
pmichaud +1
jnthn We appear to get some more tests which segfault after running all tests.
pmichaud urgh 15:17
jnthn But bacek++'s patch may resolve that.
(I don't have that applied locally.)
pmichaud afk for a bit
jnthn Our performance is horrid. 15:18
10,000 sub dispatches benchmark takes 3 times longer than I had it down to in master before we started on ng. :'( 15:19
Only consolation is that multi-dispatch and single dispatch are still almost neck and neck, but that's mostly because our multi-dispatcher is cachetastic. 15:20
bnot $P23, $P22 15:23
hmm
Did it go from making a new PMC to expecting one to assign the result to, I wonder? :-/ 15:24
Either way, we should probably switch it to being a proper multi...
15:24 colomon left 15:25 ash__ left
pmichaud jnthn: is the performance switch due to rakudo changes or to parrot ones, I wonder? 15:27
jnthn pmichaud: Hard to say ATM 15:28
pmichaud maybe benchmark current master?
jnthn pmichaud: I do know we "only" were two times slower last time I checked.
Which was a week or so ago.
pmichaud hmmmm
15:30 jaldhar left
jnthn Got a patch that gets us passing all make test again with latest Parrot trunk 15:30
Checking spectest now, plus applied bacek's patch too.
cognominal ho, I first thought that cachestatic was a sort of cacochimy...
pmichaud reviews backscroll
15:33 bacek joined 15:35 jaldhar joined
jnthn pmichaud: I get a bunch of exit status 1 reports still, but all the segfaults are gone after I locally applied bacek++'s patch. 15:35
pmichaud: Anyway, pushed patch and bumped us to latest Parrot. 15:38
dalek kudo/ng: fc96739 | jonathan++ | src/ (2 files):
Move prefix:<+^> to the Perl 6 setting and do an implementation that doesn't crash on latest Parrot trunk.
kudo/ng: d779a9e | jonathan++ | build/PARROT_REVISION:
Bump us to Parrot HEAD.
15:38 Psyche^ joined
pmichaud ...surely pir::bnot($x) is better than Q:PIR ... ? 15:39
jnthn pmichaud: It seems that it expects a desintation register.
An already created one.
pmichaud ugh! 15:40
jnthn Yeah
I think Parrot change. :-/
Bit surprising.
pmichaud if so, it changed to go against the stated standard. I wonder when that happened.
jnthn Didn't have chance to hunt it down in the commit logs yet.
15:40 colomon joined
pmichaud did whiteknight++ do his "prune the vtables" merge yet? That might be a likely candidate. 15:41
jnthn I think so, yeah.
wknight8111: ping
wknight8111 jnthn: pong 15:42
jnthn wknight8111: It appears that the bnot opcode in Parrot has gone from creating a destination PMC on the LHS to expecting one to be already existing that it can assign into.
wknight8111: Any ideas? 15:43
wknight8111 I'll look into it
pmichaud test program coming up
(just waiting for parrot trunk to rebuild)
PS1=$
15:43 Patterner left, Psyche^ is now known as Patterner, pmurias joined
wknight8111 we're talking about bnot_p_p? 15:43
jnthn wknight8111: Yes. 15:44
pmichaud nopaste.snit.ch/19615
(still building parrot trunk :-| 15:45
wknight8111 okay, i see the issue. So bnot_p_p should always create a new LHS PMC? 15:46
jnthn Null PMC access in set_integer_native()
current instr.: 'main' pc 3 (bug.pir:4)
Is that it gives with latest Parrot head.
wknight8111: It seems that it used to.
wknight8111 okay, let me look around to make sure that's the old behavior and I will change it
jnthn wknight8111: It'd be good to preserve existing semantics, plus creating result is consistent with other opcodes.
wknight8111++ # thanks 15:47
wknight8111 jnthn: I had intended to maintain the old semantics, so if I didn't it's a mistake
jnthn OK, cool.
pmichaud my nopaste 19615 shows the 2.0.0 behavior 15:48
nopaste.snit.ch/19616 # current trunk fail
wknight8111 the old behavior was dependant on the output of VTABLE_binary_not(), most core implementations seem to have returned a new PMC by convention there 15:50
so I'll fix the op to do that
15:50 crazed joined
crazed is IO::Socket working with SOCK_RAW in perl6? 15:51
jnthn wknight8111: OK, thanks. Once that's in, I can simply our code that uses it.
mberends crazed: only TCP sockets afaik 15:52
crazed know of anyone working on this?
mberends currently nobody, because getting ng to be the new master is more important 15:53
wknight8111 I'm building and testing now. Should have a commit in a minute or two
jnthn Yay
crazed moving from rakudo?
mberends no, rakudo/ng to rakudo/master 15:54
crazed ooh
is there any good place to read up on the status of these things?
mberends ng has much better internals 15:55
not really, I'm updating the compiler overview today. the rest is happening before our eyes right here
jnthn crazed: Folks have been doing rather more coding than blogging of late, it turns out.
crazed: github.com/rakudo/rakudo/commits/ng is the commit log for ng 15:56
wknight8111 jnthn: r43953 15:57
15:57 justatheory joined
crazed i'll have to stay idle in here more often then 15:58
jnthn wknight8111: Thanks, testing. 16:00
wknight8111: Looks good. 16:02
wknight8111 w00t. 16:03
16:03 Trashlord joined
wknight8111 would you mind putting together a regression test for it? 16:04
I am out of coding time this morning
16:04 mssm left 16:09 maerline left, masak joined
pmichaud > my @a = 5..10; say @a[4,2]; 16:09
97
jnthn wknight8111: Will commit one in a moment. 16:10
pmichaud: Yay!
pmichaud oops, I just pushed the commit w/o spectesting
spectesting now
(should be okay, but there's a chance it isn't) 16:11
jnthn wknight8111: done. 16:12
wknight8111 w00t. jnthn++
dalek kudo/ng: bf37cc3 | pmichaud++ | src/builtins/List.pir:
Fix bug with RPAs not flattening properly in lists.
pmichaud okay, spectest did okay 16:15
jnthn Cool. 16:16
pmichaud > sub foo() { return 1,4; }; my @a = 5..10; say @a[foo()];
69
yay
jnthn :-D 16:17
Yeah, I'm rather happy about multiple return values working. :-)
pmichaud S02 says 16:18
@array[*] # flattens, unlike @array[]
jnthn Oh.
dalek kudo/ng: e0a8fb9 | jonathan++ | (2 files):
Bump to latest Parrot, which lets us simplify our usage of bnot__PP.
jnthn I'd thought there were identical...
pmichaud not entirely. I know that @array[] is supposed to be a "zen slice" 16:19
but I'm a little fuzzy on the difference at the moment
jnthn pmichaud: Same - we don't implement slice context at all yet though, do we? 16:21
pmichaud no slice context, no
jnthn I guess for now it doesn't matter so much then.
pmichaud yeah
I need to go read up on the latest changes to the contextualizers 16:22
jnthn Same, plus the patches yesterday.
pmichaud: Gah. 16:24
pmichaud: The one slight issue with us changing Hash from a role to a class...
...is that we have a bunch of places that want the Parrot one but don't do root_new.
pmichaud then we should fix those 16:25
jnthn Yeah
pmichaud I've been pretty careful to avoid using 'new' when I really mean the Parrot one
jnthn Just means it's not quite a s/role/class/ :-)
pmichaud although I'm sure I've mised a few
*missed
jnthn I'll go through and hunt 'em down.
Once this is done, we can have hash slices too. 16:26
pmichaud what should we call the old "master" branch?
"genesis"
"nebula"?
"close-but-no-cigar"? 16:27
"booster"?
jnthn Hmm...booster is nice on the space theme (along with R* etc)
"launchpad"
"appollo1" 16:28
:-)
pmichaud launchpad is nice
mberends confusing to ubuntu people
pmichaud or even just "launch"
colomon alpha?
jnthn Yeah
pmichaud: Turns out making EnumMap a class is enough to let us rename back to postcircumfix:<{ }> 16:34
16:34 dual joined
jnthn pmichaud: Comitting that now, then you're free to take on hash slices if you like. 16:34
16:34 ash__ joined
jnthn pmichaud: And I'll triage the stuff to make Hash a class. 16:34
pmichaud jnthn: okay, wfm 16:37
jnthn: I'll tackle hash slices soonish -- not hard. still have some stuff to do with array slices.
right now I'm testing rename-ng-to-master
jnthn pmichaud: OK 16:38
16:39 payload left
masak wait, so Hash is a class again? 16:39
jnthn masak: Yeah 16:40
masak: Thing is, Seq and Array are...
masak: In Rakudo at least.
pmichaud I'm fine with making them roles... I just don't know how to do that :)
jnthn masak: So we decided to go for consistency. 16:41
pmichaud (and have everything work )
jnthn masak: Also, having them roles brought up some bootstrapping issues for us.
pmichaud so short-term, classes seems easier
dalek kudo/ng: 90b7b01 | jonathan++ | src/ (3 files):
EnumMap becomes a class instead of a role, for consistency with the way we do Seq/Array. Avoids a bootstrapping issue too, and so we can remove the XXX-postcircumfix:<{ }> hack.
masak I'm glad. I think.
Hash always felt like a class to me.
jnthn Well, it's the parametricity that is the trickier bit.
masak so now we don't do Hash[Int] and the like?
jnthn But we'll take the same approach as master for typed hashes.
masak: Well, that's the issue. :-|
masak that's why I'm asking :) 16:42
jnthn masak: We may be able to get a workaround to make that work though.
pmichaud did we have it working in master?
masak ok.
jnthn pmichaud: No
pmichaud oh.
masak pmichaud: don't think so.
jnthn my Int %foo worked, for example.
16:42 k23z__ left
jnthn But not my Hash of Int $foo; 16:42
pmichaud oh, I see.
jnthn my Positional of Int $foo could work though. 16:43
I can dream up a hack that'll give us Hash of Int.
But we need to do the definedness modifiers first.
pmichaud anyway, I agree we don't want this to be a blocker for slices and a few other things; we can figure out how to make it work with some non-core roles and then backport, perhaps?
jnthn The hard part isn't the roles.
pmichaud okay
jnthn The hard part is the bootstrap.
The really, really annoying thing with hashes is methods depend on hashes. 16:44
Because they get an implicit *%_
16:45 payload joined
jnthn So as soon as the role composer goes and calls a method written in Perl 6, rather than NQP or PIR, we go boom. 16:45
pmichaud okay, I managed to rename master->alpha and ng->master in a copy of the repo. Shall I do it in the rakudo repo?
When we do the rename, everyone needs to check out fresh clones of the repo
jnthn oh, gah
er
masak loves tp hear about bootstrapping woes
it's not schadenfreude, it's fascination with the loopiness. :) 16:46
jnthn pmichaud: OK, go for it, I can easily re-create my local patch.
pmichaud jnthn: I can wait
jnthn pmichaud: Just don't lose my 90b7b01ee2320d11b6a82bf0bc2279afaf20621a :-)
pmichaud I'd rather wait and have everything as clean as we can get it than have to fix up a bunch of stuff. It's not hard.
(the renames aren't hard)
jnthn pmichaud: I've cleared up enough to probably allow hash slices.
I can do the rest after the rename. 16:47
pmichaud jnthn++
well, I need a short break to review everything in my head and make sure I'm not forgetting something important
might also be a good idea to make sure we have a backup clone of the existing repo somewhere :)
jnthn OK, well, let's see what I can get done on this patch while you have yoru break then. :) 16:48
pmichaud how about if I just say I'll do the rename at 17h15 UTC ?
(28 mins from now)
jnthn pmichaud: oh, ouch
pmichaud: Here's the problem one:
phash = vivify our, '%!PHASERS', ['Hash']
pbank = vivify phash, bank, ['ResizablePMCArray']
Can I write 'parrot';'Hash' in there? 16:49
pmichaud no, but you can pass in a namespace
$P0 = get_root_namespace ['parrot';'Hash']
masak pmichaud: it's not that hard to do a branch 'overwrite'. just delete the master branch remotely ('git push origin :mater') and locally ('git branch -D master'), then rename ng locally ('git co -b master ng'), and push it.
pmichaud masak: right, that's essentially what I'm doing
masak has never done it, but that seems like the way to do it
pmichaud but one also has to change github's notion of 'default branch' -- it won't let you delete the default 16:50
jnthn pmichaud: Testing.
pmichaud and I don't want to completely delete 'master', -- I want to rename it also
masak pmichaud: oh! didn't know that.
pmichaud: well, a branch is just a little note on a commit.
pmichaud right
masak one that moves. :)
pmichaud so the steps are effectively
- copy 'master' to 'alpha' 16:51
- change default branch to 'alpha'
- delete 'master'
- copy 'ng' to 'master'
- change default branch to 'master'
- delete 'ng'
masak right.
pmichaud the results of doing that are in my personal github account: github.com/pmichaud/rakudo 16:52
masak \o/
dalek kudo/ng: ca923f4 | (Martin Berends)++ | docs/compiler_overview.pod:
[docs/compiler_overview.pod] ng update 50% completed
pmichaud anyway, short break
will do branch renames at 17h15 (23 mins from now) 16:53
mberends \o/
jnthn Awww. My beer friend's bus broke down on the way here!
No nom and beer trip for me tonight. :-(
16:53 athenot joined
mberends jnthn: I'll have a beer for you 16:53
jnthn :-) 16:54
masak if the verb 'to be' were the least bit regular in English, a 'beer' would be someone who is. 16:55
mberends hmm, yes. an 'exister' 16:57
jnthn I beer Rakudo hacker!
Oh wait...not quite like that. :)
16:57 justatheory left
mberends I code, therefore I beer 16:57
masak jnthn: more like "I think, therefor I'm a beer." 16:58
dang, mberends was slightly faster :)
mberends golf
masak usually wins those
masak well, golfing bugs is fun. 16:59
golfing features is still quite hard in rakudo. looking forward to lax mode :)
mberends heh
jnthn pmichaud: oh noes 17:00
pmichaud: NQP generates code that does new $P4269, 'Hash'
pmichaud: I've fixed up all the other instances I can see in the codebase and will push those though, we can do the actual switch later. 17:02
17:03 crazed left, crazed joined 17:04 payload left
mberends 10 minutes to ng becoming master 17:05
this calls for another beer, since I've just finished jnthn's 17:06
masak this is becoming very existential.
colomon woah, too early in the day for beer here. 17:07
crazed hotness
mberends is that why the aussies drink so much beer?
crazed what distro you guys develop on 17:08
jnthn XP
;-)
crazed lol
pmichaud <- kubuntu
colomon os x
crazed anyone on freebsd?
masak crazed: does OS X count? :) 17:09
dalek kudo/ng: 33bf199 | jonathan++ | src/ (7 files):
Replace a bunch of new ['Hash'] that wanted a Parrot Hash with root_new ['parrot';'Hash].
jnthn refrains from patching 17:10
mberends crazed: try irclog.perlgeek.de/search.pl?channe...;q=freebsd
arnsholt crazed: I've tried it on fBSD a bit, but it's not my day-to-day platform
(And I'm not really a Rakudo dev either)
17:12 wknight8111 left
pmichaud 3 mins to branch renames 17:13
(will someone be able to update p6eval?)
crazed ah useful 17:14
pmichaud okay, 17h15 17:15
starting renames
colomon what did you guys decide master was going to become? 17:16
pmichaud "alpha"
masak that's a good name as any.
pmichaud also puts it at the top of the branches list
masak it's the name of the Bad Guy in Dollhouse :P
colomon masak: ;)
pmichaud Done. 17:18
jnthn
.oO( We coulda called it Юлия - it was the branch that didn't quite make it to lead the way forward...and also it woulda tested how well everyone's console handles unicode. ;-) )
pmichaud okay, old master is now 'alpha', 'ng' is now 'master'
jnthn \o/
pmichaud re-clone repos :)
jnthn pmichaud: Need to get a...OK. :-) 17:19
pmichaud I'll send messages to lists.
arnsholt jnthn: One of the advantages of OS X. It handles all kinds of strange languages with no hassle =D
jnthn Wow, that cloned fast. 17:20
ash__ Objective-C (what most of OS X is written in) defaults all C strings to UTF-8 when they are used internally, so, it generally handles unicode well 17:21
pmichaud mail sent 17:23
jnthn is building new master :-) 17:25
frettled \o/
masak \o/
frettled managed to read the mail before looking here, haha
jnthn So, let's see how many tests we can get back before the Thursday release. :-) 17:26
colomon is building the new alpha first... got to have something to fall back on for my projects before blowing away the old master.
arnsholt ash__: Also, OS X has very good font support, which is just as important 17:27
masak dancing &
jnthn o/
17:27 masak left 17:28 lue joined
pmichaud running 'make spectest' on new master 17:29
frettled However, MacOS X has uck-fupped handling of Unicode in the filesystem code.
So for interoperability, filenames should stick to US-ASCII. Darnit.
jnthn pmichaud: It looks good here, though I blew away my locally applied patch to Parrot from bacek that dealt with the segvs. 17:30
lue O.o a-are you s-s-saying t-that ng... is master now?
jnthn lue: It is. 17:31
mberends yyyyesss!
lue is screaming in 7 base dimensions
jnthn pmichaud: Time to shuffle some things in the ROADMAP? :-)
arnsholt frettled: Really? That sure is a bummer
diakopter pmichaud: what does p6eval need 17:32
lue sigh... do I have to switch to the master branch, or does it all still happen in the ng branch?
frettled arnsholt: Yep. Apparently, Apple started using an incomplete Unicode specification way back when, or something like that. It's all over the interwebs, and although Leopard (or was that Tiger) fixed a bunch of problems, some of the more annoying ones are still there. 17:33
pmichaud jnthn: (ROADMAP) yes, probably. I might not get to it until tonight/tomorrow -- but feel free to start shuffling :)
diakopter: I suspect p6eval needs to be told not to grab from ng
17:33 bacek left
mathw whoa 17:33
ng now master
it feels like an important day 17:34
colomon yay, alpha seems to work!
lue amen!
colomon now to blow away my old master...
jnthn mathw: The same say I learend what a Tenori-on is, strangely enough. :-)
mathw That's nowhere near as important
Unless you want to buy one :)
jnthn mathw: No, but I had never heard of it. :-)
mathw grumbles about Parrot's enormously messy build 17:35
jnthn pmichaud: I'll do some tweaks.
pmichaud it's also okay to start switching around the #?rakudo skip and todo markers in the spectests
jnthn We've been doing that for a while already. :-) 17:36
pmichaud we might also want p6eval to be able to pull from alpha and run code from there (for historicak purposes)
colomon pmichaud: errr, we've been using rakudo for ng skips for about two months now.
lue so... does I have to slide on over to master?
pmichaud colomon/jnthn: okay, shows how far behind I've been :)
colomon and here jnthn and I thought you were okay with our crazy decision making... when actually you just hadn't noticed! ;) 17:37
pmichaud yes, I'm okay with it :)
in general it's a forgiveness > permission policy :) 17:38
jnthn pmichaud: We tied master to a particular revision of the Pugs repo for pulling the spectests.
17:38 nwc10 joined
jnthn So changes after that only influenced ng :-) 17:38
pmichaud btw, for those chasing down the parrot segfault (e.g., bacek and others) -- I highly recommend the ord_and_chr.t test. It crashes in the middle of a loop on my system.
nwc10 github is nicely confused. On github.com/rakudo/rakudo/ "history" links to github.com/rakudo/rakudo/commits/ng/ 17:39
On github.com/rakudo/rakudo/tree/alpha "history" links to github.com/rakudo/rakudo/commits/master/
lue *sigh* guess I'm a gonna switch to the master branch
pmichaud github's notion of history may get fixed next time we push a commit to 'master'
(the new one) 17:40
nwc10 ah right
you mean no-one has comitted anything in over 30 minutes?
that's unusual :-)
pmichaud we need to update the files in docs/ with the ones from alpha
lue WHAT!!!!! 30 minutes? The Apocalypse of the Camels has started!
pmichaud (if anyone is looking for something to do :-) 17:41
colomon we can't push changes, we're all too busy rebuilding our systems!
diakopter p6eval vps rebuilding the bird
lue how do I switch to master? (the Git beginner strikes again) 17:42
pmichaud lue: easiest is to re-clone the repo
jnthn pmichaud: A push to master worked.
pmichaud: I moved five items to completed that I was very confident we could. :-)
They were all priority 1. :-)
pmichaud in general, though, one switches branches using "git checkout <branch>"
github++
lue yeah, but a merging err popped up. 17:43
pmichaud lue: right, which is why one needs a fresh clone
lue: the branch renames will confuse local git checkouts
lue soo... git clone <something here> ?
pmichaud git clone github.com/rakudo/rakudo.git # I think
diakopter git clone git://github.com/rakudo/rakudo.git 17:44
dalek kudo/master: abc9b2e | jonathan++ | docs/ROADMAP:
Move five completed, top-priority ROADMAP items to the completed section, now ng is master. :-)
pmichaud what diakopter++ said
jnthn pmichaud: The top 3 "Large-scale tasks" are I think essentially all done too.
nwc10 pmichaud: yep, that fixed the history link for master
now someone needs to find a reason to commit to alpha :-)
pmichaud could update alpha's README :-) 17:45
TimToady now someone needs to turn the masakbot back on
mathw feeds Form to ng and gets "Symbol 'TOP' not predeclared in <anonymous>"
has something changed with grammars?
pmichaud mathw: they may not be completely enabled yet
mathw 'may not be'? :) 17:46
pmichaud mathw: I'm quite serious when I say that the ng branch (now master) is far behind where the old one was
mathw: but we expect to catch up soon :)
mathw \o/
nwc10 TimToady: he's probably blocking on rt.perl.org. (it's down, so if the masakbot is single threaded and trying to submit a bug report, it will be stalled)
pmichaud jnthn: I see a few other priority-1 items we can likely mark as done, or do so soon 17:47
diakopter nwc10: I think masakbot is cooperatively multitasking
jnthn pmichaud: Same, I was being conservative. :-)
pmichaud jnthn: wfm :)
nwc10 POE!
diakopter also, masakbot is male 17:48
pmichaud okay, I need short lunch break, then will come back and keep working on spectests
or things in the issues wiki
nwc10 well, I was asuming that masak was male. I wasn't sure if masakbot was exactly the same thing.
diakopter :)
jnthn pmichaud: Awesome. Given my evening has got a chunk clearer, I may get some more commits in too :-)
pmichaud: Though I'm selfishly focusing on finishing my grant tasks. ;-)
diakopter parrot refused to rebuild after svn up 17:49
so, starting from fresh
smaller fonts are so much easier to read on a non-glossy screen 17:50
17:53 nwc10 left
diakopter erm 17:57
perl6.ops:50: warning: request for implicit conversion from âvoid *â to âINTVAL (*)(struct parrot_interp_t *, struct PMC *, struct PMC *, struct PMC *, INTVAL, struct STRING **)â not permitted in C++
17:58 rgrau joined
diakopter I'll be ...surprised... if p6eval has been using gcc-c++ up until now... 17:58
mberends I've been reading those warnings for months, they're not harmful (currently) 18:00
lue CUR_CTX is a very famous unused variable, apparently... 18:01
arnsholt The conversion warning probably comes from -Wimplicit or somesuch 18:05
And as it says, it's only illegal in C++. Rakudo is C
jnthn It's only an issue if people want to compile C code with a C++ compiler. :-) 18:06
jnthn afk for a little bit 18:07
18:07 p6eval joined
diakopter rakudo: say $PARROT_VERSION 18:07
p6eval rakudo abc9b2: OUTPUT«Symbol '$PARROT_VERSION' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
diakopter is abc9b2 the latest? 18:08
mberends it was until 5 seconds ago, just made a trivial commit 18:09
diakopter oh, ok.
pmichaud: p6eval updated 18:10
pmichaud: do you still want nqp available from the evalbot?
18:11 Guest80169 left
dalek kudo/master: e778f84 | (Martin Berends)++ | docs/compiler_overview.pod:
[docs/compiler_overview.pod] any excuse for a commit to the new master branch formerly known as ng
18:12
18:13 ChanServ sets mode: +o diakopter, diakopter sets mode: +v p6eval, diakopter sets mode: -o diakopter 18:14 Guest80169 joined 18:35 bartolin joined 18:39 bartolin left 18:40 nihiliad left
jnthn back 18:42
lue rakudo is taking FOREVER to compile (G3 computer *grumble*)
18:48 rabbit64 joined 18:49 rabbit64 left
lisppaste3 uniejo pasted "Copy announcements from alpha" at paste.lisp.org/display/94946 18:54
uniejo Can someone apply the above? 18:55
mberends will do 18:59
uniejo Thanks. 19:00
19:01 mssm joined 19:03 mssm left, wolf2k_ubuntu joined
dalek kudo/master: 4afc080 | (Martin Berends)++ | docs/announce/20 (3 files):
[docs/announce] restore the Lisbon #23 Seoul #24 and Minneapolis #25 announcements, uniejo++ for notifying
19:09
wolf2k_ubuntu ...forgot I auto joined this room. how's the perl 6 development coming along? 19:12
colomon wolf2k_ubuntu: ng just became master
\o/
wolf2k_ubuntu the famous ng branch has grown up, huh? 19:13
what's the old master now called? og?
colomon alpha
wolf2k_ubuntu I wonder if I still have my feather account...maybe some of the code I tried to make work earlier works now 19:14
colomon probably not, ng is still behind where master was in terms of completeness.
I mean, master is still behind where alpha was!
but it has laziness and some other funky stuff like that . 19:15
pmichaud and it's a fair bit easier to (re)add features
colomon pmichaud++ # that's the truth
pmichaud: what would it take to get @array.map: { blah } working? 19:16
19:16 fridim left
pmichaud does .map currently work at all? 19:16
colomon ummm....
jnthn Believe so.
pmichaud rakudo: my @a = 5..10; say @array.map({$_ / 2});
p6eval rakudo e778f8: OUTPUT«Symbol '@array' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
colomon yes
pmichaud rakudo: my @a = 5..10; say @a.map({$_ / 2});
p6eval rakudo e778f8: ( no output ) 19:17
colomon and I'm not especially interested in map, just in the general colon form.
pmichaud right
I'll look.
jnthn rakudo: (1,2,3).map({ .say }).eager;
p6eval rakudo e778f8: ( no output )
pmichaud I don't think that .say is implemented yet
(w/o invocant)
jnthn rakudo: my $_ = 42; .say;
p6eval rakudo e778f8: OUTPUT«Redeclaration of symbol $_ at line 10, near " = 42; .sa"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
jnthn rakudo: $_ = 42; .say; 19:18
colomon no, it works fine locally.
pmichaud okay
colomon rakudo: (1..10).map({ .say }).eager
jnthn Yeah, I'm sure I'd put the .foo form back.
19:18 mssm joined
p6eval rakudo e778f8: ( no output ) 19:18
colomon p6eval must be having issues.
pmichaud all of those "no outputs" are troubling. Wonder if p6eval is still trying to "use Safe" (or equivalent)
we could probably borrow Safe.pm from master (and comment out any pieces that aren't yet working) 19:19
s/master/alpha/ :-)
jnthn How long until we get used to that one. :-) 19:20
pmichaud oh, probably just a day or so :)
colomon jnthn: tuesday.
jnthn Another useful thing, if anyone fancies taking it on, would be to have .sort back
pmichaud oh, I can work on .sort again, now that we have slices 19:21
jnthn Lots of tests to do with hashes use .sort
Amongst other tests.
So it could give some collateral wins, as well as direct ones.
pmichaud colomon: locally I get 19:22
> my @a = <a b c>; (@a.map: {.say}).eager;
a
b
c
so it looks to me like the colon form works already.
19:24 pmurias left
colomon pmichaud: huh. same here. sorry for sending you on a wild goose chase. 19:26
pmichaud We still need to get sink context implemented, I guess.
I'm not entirely looking forward to that one :-|
colomon I'd be interested in trying to get the [op] metaop working, but I have no idea where to start on the grammar 19:28
pmichaud yes, the grammar is pretty tricky on that one.
jnthn colomon: I still had the colon form as todo in my mind as well. :-)
colomon I looked at STD.pm for it and got scared off. 19:29
jnthn colomon: I tried the grammar on that one, and...well...it's tricky.
I got it to parse at one point, but then it got back to TOP and complained it couldn't reduce or something. :-)
19:29 nihiliad joined 19:30 TimToady left
colomon jnthn: I was looking at a test where the grammar is blowing up, and it was a colon form... 19:30
19:30 lichtkind joined, TimToady joined
colomon is (@array.min: { $^a <=> $^b }), -9, 19:30
"method form of min with identity comparison block works";
lichtkind mberends: hello infidel 19:31
colomon Unable to parse blockoid, couldn't find final '}' at line in the second line of that
jnthn -> nom nom nom
colomon rakudo: say 1 <=> 2; 19:32
p6eval rakudo e778f8: OUTPUT«Confused at line 10, near "say 1 <=> "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
pmichaud rakudo: say (1 <=> 2);
p6eval rakudo e778f8: OUTPUT«Confused at line 10, near "say (1 <=>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
pmichaud looks like a problem with <=>
colomon oh, maybe that's the problem
pmichaud doesn't appear in Grammar.pm 19:33
19:33 Helios joined
colomon I can get that one 19:33
I think
pmichaud certainly worth a shot :)
colomon thought at the moment I need to read thomas the tank engine
diakopter lotsa irc lag; odd 19:34
pmichaud: do you still want nqp available from the evalbot?
19:34 diakopter joined
pmichaud diakopter: yes, I'd like to keep nqp around 19:34
diakopter pmichaud: how do you want the use Safe; repaired 19:35
pmichaud maybe turn it off for now, until we have it working in master again?
19:35 ascent_ joined
diakopter I must admit, I'm afraid of abuse/sabotage 19:35
pmichaud I don't know if we have any of .run implemented in current master, though 19:36
diakopter oh
colomon could we keep ng as a synonym for rakudo?
pmichaud okay with me :) 19:37
but I'm not the p6eval maintainer :)
19:41 p6eval left, p6eval joined
diakopter rakudo: my @a = <a b c>; (@a.map: {.say}).eager; 19:43
p6eval rakudo 4afc08: ( no output )
pmichaud nopaste.snit.ch/19619 # why does this say infix:<cmp> twice? 19:44
diakopter my @a = <a b c>; (@a.map: {.say}).eager;
pmichaud hmmm, I wonder if Perl6MultiSub is flattening. 19:45
diakopter rakudo: my @a = <a b c>; (@a.map: {.say}).eager;
p6eval rakudo 4afc08: ( no output )
colomon pmichaud: could the REPL be calling it too?
pmichaud colomon: I didn't use the REPL
colomon pmichaud: good point.
hey, <=> was already implemented, it just wasn't in the grammar 19:46
I'll have it pushed in as soon as I can spectest 19:47
pmichaud (have to get approval from Sir Topham Hatt, first? ;-) 19:48
colomon pmichaud: I don't think he appears in the (appallingly bad) TtTE books we have. :) 19:49
pmichaud aka "the fat controller"
which sounds a lot like a new dietary product :)
en.wikipedia.org/wiki/The_Fat_Controller
jnthn Thomas the Tank Engine!! :-D 19:50
colomon We don't have the real books, we have a set of board books which appear to have been written by... metaphors fail me. The rhythms of the books are all wrong to read, the rhymes are lame, and the plots dire. 19:51
and of course Henry wants us to read them over and over.
:) 19:52
pmichaud we have a -ton- of TtTE track and railway cars here :)
(wooden set)
I figured out my issue in #19619
colomon we've got a small set, 15 pieces of track, I believe.
19:52 rindolf joined
pmichaud (yes, it was flattening) 19:52
19:53 pmurias joined
jnthn built a fairly sizable non-TtTE model railway as a kid. :-) 19:54
pmichaud I built one as an adult :) Still have the track and components, but had to take it apart for various moves 19:55
basically it was several 3'x4' platforms that could bold together to make a large set :)
colomon I've loved model trains since about age 4, but haven't had a set since college.
either didn't have the room or didn't have the time.
dalek kudo/master: b96c6ef | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Add <=> to the grammar.
19:56
jnthn I've wanted to make one again, but it doesn't go well with a lifestyle that involves moving around a lot.
19:56 lue left
jnthn So I've satisfied myself by trying to do long journeys on real trains instead. :-) 19:56
colomon I keep trying to figure out how to take the train to Newfoundland. But apparently it costs as much as flying. :( 19:57
pmichaud sounds easy, then. 19:58
the hard part is taking the train to Newfoundland w/o spending a lot of money :)
19:58 lue joined
pmichaud ugh, my scalar fix apparently creates an infinite loop somewhere 19:58
colomon well, and you can't actually take the train through Newfoundland. Canada told them they could only afford a cross-island highway or a railroad, and they went for the highway. 19:59
jnthn I've often found cases where the train costs >= flying.
colomon so you'd pay as much as flying, get there slowly, then have to rent a car, take the ferry, and drive across the island. And driving across the island takes longer than flying there from Toronto. 20:00
jnthn I don't really enjoy flying though, and if there's an overnight train, it means I've got the day to do stuff.
colomon: Yeah, trains don't work out well if you get to the other end and there's not good public transport from thta point on. 20:01
That's one of the things Europe tends to do well at.
pugs_svn r29727 | colomon++ | [t/spec] Fudge out tests for [min] and [max]. 20:02
colomon Hmmm... given multi method min($by = &infix:<cmp>) 20:08
> say (1, 3, -1).min
Null PMC access in find_method('Scalar')
> say (1, 3, -1).min({ $^a cmp $^b})
-1
any idea why &infix:<cmp> doesn't work?
jnthn I seem to remember that not working in master either... 20:09
pmichaud doesn't know how to parse it
afk, gotta chase an escaped dog
colomon pmichaud: good luck!
trying multi method min($by = { $^a cmp $^b}) now
colomon cannot wait until they have a dog again... 20:10
jnthn queues up "Who let the dogs out" on his mp3 player
frettled «woof, bloody woof» 20:11
lichtkind party music 20:16
20:19 ChanServ sets mode: +o lichtkind
jnthn Mention a party. Get an op. 20:21
mberends pmichaud: rakudo new master does have a run(Str) that returns an Int status. 'use Safe' probably doesn't work only because there is no PERL6LIB equivalent yet. 20:24
diakopter p6eval wasn't doing use Safe; 20:25
it was prepending the irc input with the contents of Safe.pm
jnthn oh! 20:26
diakopter and now it's not even doing that
frettled You know you're talking to a computer nerd when the word "prepend" crops up. :)
mberends oh, interesting way to do it. some resourceful guys around here :)
Tene frettled: what other word has the same meaning? 20:27
mberends frettled: it takes one to know one
diakopter had to do that b/c 'use Safe;' wouldn't work at all when fed from stdin
frettled Tene: append
diakopter wiktionary says 'prefix' is more proper
frettled Tene: that is, "prepend" is a bastardisation of "append" and "prefix"
Tene frettled: I'd expect that presence in #perl6 is a bigger indicator. :)
frettled Tene: yet we don't say "sufpend"
mberends: damn straight :D 20:28
Tene frettled: speak for yourself. ;)
diakopter oops, not wiktionary, another.
frettled diakopter: you can append both to either end of something ;)
Tene .ety append
phenny "1640s, 'to hang on, attach as a pendant,' from L. appendere 'to cause to hang (from something), weigh,' from ad- 'to' + pendere 'hang' (see pendant)." - etymonline.com/?term=append
frettled But "prepend" gives a rather unique specific meaning in certain parts of computing. 20:29
"Prepend" is one of my favourite words. 20:30
dalek kudo/master: ac581a1 | (Solomon Foster)++ | src/core/Any-list.pm:
Add $by argument to Any.min and Any.max.
spinclad prepend: hang before. append: hang on. su_s_pend: hang under.
20:30 mssm left
spinclad all good forms. 20:30
frettled spinclad: "prepend" was first defined in the Jargon file, IIRC :)
spinclad sure, but well formed with good precedents 20:31
frettled that's debatable, but it's still a cool word. 20:32
spinclad (postpend for specifically after)
frettled will suggest a new word: pretatch
spinclad (but append seems good enough for that already) 20:33
pmichaud back
spinclad why, yes, i'm a compnerd, why do you ask?
20:33 colomon left
jnthn pmichaud: Mit hund? :-) 20:33
pmichaud yes 20:34
jnthn \o/
pmichaud she was about 4-5 blocks over from our house
jnthn !!
spinclad jailbreak!
mberends jnthn: dein Deutsch ist wunderbar! 20:35
jnthn My family's dog got out once, but instead of just doing a generic running off followed the route of one of the walks she's usually taken on. :-)
pmichaud well, we take a lot of different routes in our neighborhood :) 20:36
20:36 rindolf left
jnthn The funny part was after trying to go around the village finding her, she finished her walk and was sat by the door wating to be let back in. :-) 20:36
pmichaud I suspect the dog would've successfully made it back to our house -- she's quite intelligent -- but we've never tested that before.
okay, back to scalar hell. 20:37
20:37 snearch_ joined
pmichaud I'm convinced that I'm missing something truly obvious or fundamental about how scalars and flattening and assignment are supposed to work in Perl 6. 20:38
jnthn pmichaud: What did you do that triggered the infinite loop, out of curiosity?
pmichaud currently in assignment, if we have an object that doesn't know how to !FETCH, we create an ObjectRef to it 20:39
I switched that to create a Perl6Scalar to it
under the theory that most objects shouldn't flatten
(and Perl6Scalar suppresses flattening)
jnthn Ah, so just s/ObjectRef/Perl6Scalar/? 20:40
pmichaud in Mu!STORE, yes.
jnthn That's...odd given one is just a simple subclass of the other.
pmichaud well, we no longer have a 'flatten' flag, we now check for Perl6Scalar and/or Iterator
*Iterable
Perl6Scalar never flattens; anything else flattens if it does Iterable 20:41
jnthn Ah, yes...I remember now.
What's the scalar property for?
pmichaud I was going to use it as the reverse flag, but so far I've pretty much decided that "isa Perl6Scalar" does the trick for now
jnthn OK, so in Actions.pm is this legacy:
# If it's a scalar, mark it as scalar (non-flattening)
if $sigil eq '$' {
$vivipast := PAST::Op.new($vivipast,'scalar',$true,:pirop('setprop'));
}
?
pmichaud at the moment, yes.
20:42 mssm joined
pmichaud so, I have to figure out the difference(s) between 20:43
$a = 4
$a = $b
$a = [1,2,3]
$a = @c
20:44 bacek joined
pmichaud I'm fairly sure TimToady++ would say that it's all tied up with .WHICH processing... but I don't quite follow that either. 20:46
diakopter is about 2 years away from following today's conversation 20:47
jnthn Well
.WHICH is what gives us an idea about value or reference semantics.
pmichaud perhaps indirectly 20:48
jnthn But I don't see how it relates to assignment.
I mean, we shouldn't (even if it made sense) be going calling .WHICH to see what it does on every assignment.
I don't think it makes sense though. :-/ 20:49
pmichaud that's been my assumption, yes (that we don't call .WHICH on every assignment)
jnthn At one point, I think we relied on a .item or .Scalar method to give us back the assignable thingy. 20:50
pmichaud it's now !FETCH
jnthn Right.
pmichaud but many things don't have !FETCH 20:51
so there's a default
and that default should probably be "act like a scalar"
thus, Perl6Scalar->
jnthn wonders if that's where the mutable/immutable difference should be made.
pmichaud to some extent, yes. 20:52
jnthn pmichaud: How did you get the infinite loop?
pmichaud: I s/ObjectRef/Perl6Scalar/ in Mu!STORE
pmichaud I didn't look too deeply, but essentially the problem is that we end up with some reference assignments instead of value assignments
so, you can see the problem with a simple: say ~(4..7) 20:53
jnthn > say ~(4..7)
8 8 8 8
ouch.
pmichaud so, I'm certain that the problem there is that we have deobjectref in Mu!STORE that needs to somehow be able to dereference a Scalar 20:54
i.e., in the case $a = $b
or... I don't know. I'm so confused about it these days because of all of the different false starts we've made :-| 20:55
jnthn I'm not sure whether we should be putting things in the default !FETCH into an ObjectRef or Perl6Scalar though? Or is that just to ensure we don't try to flatten it?
(I'm still trying to catch up on the model the latest implementation has, sorry...)
pmichaud I'm not sure it has a succinct model at this point. That's part of what bugs me. 20:56
Something is fundamentally missing from our "model"
let's consider some cases
sub foo($b) { say $b; }; foo(<a b c>); # should $b flatten? 20:57
jnthn No, because it's in a scalar.
pmichaud I'm pretty sure the answer is "no, it doesn't flatten".
jnthn afaict, it goes very heavily on the sigil.
pmichaud But *is* it in a scalar? I think our current binding semantics create a ObjectRef
20:58 uniejo left
jnthn Right, they do. 20:59
pmichaud so, as things stand now, master would likely flatten $b (wrong)
because $b isn't a Perl6Scalar
20:59 bkeeler joined
pmichaud so, here's another case 21:00
sub bar(@a) { say @a; }; my $b = <a b c>; bar($b); # should @a flatten?
jnthn (On the last one, I kinda wonder if it's putting the <a b c> in item context that causes it to be in a Perl6Scalar, rather than something to do with the binding mechanism.) 21:01
pmichaud I'm not sure it's in item context, though.
s1n pmichaud: that first snippet says: Too many positional parameters passed; got 3 but expected 1
jnthn Oh, that's another annoying buglet.
s1n so it passed unflattened, but expected flattened 21:02
pmichaud my $b := <a b c> ; # I'm not sure there's an item context here
jnthn <a b c> currently makes an &infix:<,> which foo(...) then treats as an argument list of 3 items...I ran into that the other day. :-/
pmichaud: Good question - the thing is that since that's binding, I'd expect it to have the same semantics as when we bind in a signautre. :-/ 21:03
s1n pmichaud: := isn't implemented, and = gives null pmc
pmichaud jnthn: correct
s1n: I'm speaking hypothetically here, not anything that's implemented. I *know* the implementation is wrong, thus the discussion.
s1n pmichaud: okay, just checking with the re(p)l
jnthn pmichaud: My takeaway from the discussions has very much been "if it has an @ it flattens in flattening context, if it has a $ it doesn't" though. 21:04
s1n hmm: my $b = (a b c); #could not find existent sub &c
jnthn s1n: That's correct.
pmichaud jnthn: I think that's not quite complete, though. 21:05
s1n jnthn: oh?
pmichaud Clearly if it has a $ it doesn't flatten.
but my @a = 1, 2, foo(), 3; # does foo() flatten?
there's no sigil there.
s1n if i define @b and print $b, it says $b isn't defined 21:06
21:06 z3ndrag0n left
pmichaud it seems to me that most things flatten (parcels, ranges, arrays, hashes), and scalars are kind of the exception 21:06
jnthn pmichaud: IIUC, it does but here's why...
...you end up with a parcel containing annother parcel which is what foo() returned, and then the context imposed by the assignment to @a is what causes it to flatten. 21:07
pmichaud my point is simply that I agree with the "$ doesn't flatten" part of your statement
jnthn That is, (1, 2, foo(), 3) is just a parcel.
pmichaud but I don't necessarily agree with the "@ is needed to flatten" part. 21:08
jnthn I didn't mean "@ is needed", just that "if it has an @ it will"
pmichaud all of which is stuff I pretty well follow -- that's not the problem
spinclad s1n: that's also correct. ($b not defined) 21:09
jnthn pmichaud: Wait, by "@" is needed, do you mean "only things with an @ will flatten ever" or "@ always implies flattening"? 21:10
spinclad and (a b c) is (a(b(c))), so &a, &b, &c are all expected defined.
pmichaud jnthn: I'm saying that the default is flattening, and $ suppresses that.
I'm saying that @ isn't special beyond the default.
jnthn Ah, OK. 21:11
pmichaud the problem I'm having is figuring out what our PMCs need to look like for all of this
jnthn But then that implies that in
sub foo(@x) { }; my $y = <1 2 3>; foo($y)
Something needs to "restore the default" as it were. 21:12
pmichaud well, I'm fine if every container (i.e. variable) keeps track of whether it's a $ or not
21:12 justatheory joined
pmichaud if so, it's a property of the container, and only the container -- we can't use isa checks if that's the case. (and that's okay) 21:12
spinclad foo(|$y) should flatten, foo($y) should not? 21:13
pmichaud so in the case of
sub foo(@x) { say @x; }; my $y = <1 2 3>; foo($y)
jnthn spinclad: That's maybe a different kinda flattening than what we're discussing here; I'm not sure quite how related the problems are right now.
pmichaud we see that @x is a flattening container, even though that container is bound to $y (which wouldn't flatten) 21:14
simpler is probably to imagine it as
my $y = <1 2 3>; my @x := $y; say @x;
jnthn In that case though, I'm quite sure that we _do_ enforce list context.
spinclad sure, carry on. if it's related it'll still be there. 21:15
pmichaud or better still
my $y = <1 2 3>; my @x := $y; say $y; say @x;
the first gives "1 2 3", the second gives "123"
(the first 'say' gives ... the second 'say' gives ...) 21:16
jnthn I slightly prefer an example of
my $y = <1 2 3>; my @x := $y; .say for $y; .say for @x;
pmichaud okay, I'm convinced that flattening/non-flattening has to be a property of the container.
jnthn The first giving one line of output, the second giving three lines. 21:17
pmichaud and can't be done with an 'isa' check.
jnthn Hmm 21:18
It can't be about the type of the container?
pmichaud do you mean sigil?
21:18 bacek left
jnthn No, I mean type. 21:18
pmichaud if so, I'm confused.
jnthn But I guess not.
pmichaud in the case of my $y = <1 2 3>; my @x := $y; both @x and $y have the same "type" 21:19
jnthn Yes, you're right.
21:19 jackyf left
jnthn They should also reference the same thing but they can't actually *be* the same thing. 21:19
pmichaud well, @x is allowed to place additional constraints, but in the notion of ".ACCEPTS" we'd have to say they're of the same type
jnthn That's what's hurting my branes here. 21:20
spinclad the same type as containers? i see they have the same contents
pmichaud right, @x is going to be an ObjectRef to $y
right now, binding means "create ObjectRef"
and the ObjectRef PMC itself is allowed to have properties that are different (and sometimes derived from) the thing it's bound to
jnthn OK, that sounds workable.
pmichaud 'rw' being one of the obvious ones :) 21:21
jnthn *nod*
pmichaud and (in my model at least) &infix:<:=> is just a way to put an ObjectRef into a container
thus @x := $y internally does the binding check ($y ~~ Positional) and then sets an ObjectRef 21:22
jnthn And the other way around?
$x := @y;
An ObjectRef with a "this is a scalar, don't flatten me" property set?
pmichaud same thing, but with untyped scalar containers there's no check needed
right, the "don't flatten me" is a property of scalar declarations 21:23
jnthn OK.
I *think* I follow.
pmichaud but unlike alpha and other things in Parrot, a "binding" is never actually changing the symbol table, it's creating an ObjectRef
i.e., once we establish a PMC for a given symbol, it remains that always. If we need to rebind the symbol, we do so via ObjectRef
jnthn That means we don't have to mess around checking symbol tables time and time again? 21:24
spinclad so the 'don't flatten me' is not on the ObjectRef but on the $ container?
jnthn And have a vague chance of being efficient?
pmichaud well, I think it's the only way we can get the correct binding semantics.
but yes, we don't have to check tables all over the place.
jnthn Sounds like an overall win.
pmichaud spinclad: the $ container will often be an ObjectRef.
(but it doesn't have to be.) 21:25
spinclad (still thinking $ means P6Scalar container)
pmichaud right. I'm thinking Perl6Scalar might go away. Or be named something else.
traditionally, Perl6Scalar has been the way that I deal with bracketed arrays 21:26
i.e., for
my @a = [1,2,3];
the [1,2,3] part has to be a non-flattening object
so perhaps it's just an ObjectRef with the "scalar" property set.
spinclad (Seqs don't flatten there, Parcels do?) 21:27
pmichaud Seqs flatten, yes.
but [1,2,3] is a scalar Array
spinclad confused
pmichaud square brackets don't flatten in list context
perhaps it's easier to see with 21:28
my @a = 1, <a b c>, 2; # 5 elements
spinclad yes
pmichaud my @b = 1, [<a b c>], 2; # 3 elements
spinclad yes
pmichaud my @a = 1,2,3; # 3 elements
spinclad my @b = 1, (<a b c>), 2 # 5 elements? 21:29
pmichaud my @b = [1,2,3]; # 1 element -- an array of arrays
yes, 5 elements in your example.
spinclad (parcel flattens away)
pmichaud parcels flatten, arrays flatten, but scalars (including scalar arrays) don't.
spinclad ok, scalar array says it well to me 21:30
21:30 payload joined
pmichaud although I'm curious about 21:31
my @b = 1, Array.new(<a b c>), 2; # how many elements?
jnthn Good one. :-)
spinclad could see it both ways 21:32
pmichaud and
my @b = 1, Array(<a b c>), 2; # how many elements?
jnthn I'd expect the same answer to both of those, whichever way it goes.
pmichaud well, I'd expect the second to flatten.
spinclad my @b = 1, <a b c>.Array, 2; # how many? same as Array(<a b c>)? 21:33
(not sure it's relevant)
pmichaud okay, so I need to go back and get rid of the existing Perl6Scalar nonsense and replace it with a 'scalar' property
which means the jnthn++ asked about earlier isn't a fossil :) 21:34
*the code
jnthn I'm glad to know I'm not a fossil too, though. :-P
spinclad (and |$foo unwraps the scalarr property, perhaps) 21:35
pmichaud |$foo actually does a bit more than that, even, but yes.
jnthn I'm still working out how to do |$foo :-) 21:36
pmichaud so, in the context of my $a = [<a b c>]; my $b = $a; .... 21:37
pmichaud thinks
I almost want deobjectref and descalarref to be property based instead of type based. 21:39
deobjectref -- follow value until we find a container with 'scalar' set 21:40
descalarref -- follow value until we reach something not ObjectRef
spinclad (those sound reversed) 21:41
pmichaud spinclad: yes, it's hard to get names that aren't confusing. the idea is that deobjectref dereferences objectrefs but not scalars
while descalarref dereferences scalars also
jnthn That's pretty much what they've menat up until now, just with a different mechanism. 21:42
pmichaud right
the existing ones are type-based, but I'm thinking Perl6Scalar is a mistake
so it would need to be property based
which is fine (and likely much cheaper) 21:43
21:44 nihiliad left
jnthn Just going to do it as a getprop/setprop type property for now? 21:44
pmichaud yes. 21:45
I'm still having to figure out how to handle
$a = 4
$b = [1, 2]
$c = $a
$c = $b
21:45 bacek joined
mathw well that's obvious - just remove untyped variables 21:46
:P
pmichaud i.e., value versus reference semantics in assignment
for $c = $a, $c needs to be a copy of $a's value
for $c = $b, $c is a copy of $b's value.... but $b's value is an ObjectRef
mathw do ObjectRefs have sane copy behaviour? 21:47
spinclad $b[0] = $a; say $c[0]; # 1 or 4?
pmichaud 4
spinclad good
pmichaud $c = $b means they both refer to the same array.
spinclad good, that stays (relatively) simple 21:48
mathw if you said @c = $b, would @c get a copy of the array $b points to? 21:49
pmichaud no, @c would have one element
mathw good 21:50
I was hoping that would be the case
pmichaud (that one element being an Array)
mathw excellent
that puts me in a happy mood for bed 21:51
o/
jnthn night, mathw o/
spinclad @c = |$b; $b[0] = $a; say @c[0]; # 1, @c has copies of $b's elements, not $b itself ?
mathw, \o 21:52
(again with the |! what is this?!)
jnthn I'm not sure how much sense it makes there. 21:53
You normally use it in calls, to make an array count as a bunch of parameters, or some such.
spinclad felt it was a stretch, too
pmichaud yes, more typical would be @c = @$b 21:56
so, I'm still left with figuring how to handle the difference between $c = $a and $c = $b above 21:57
specifically handling the dereferencing semantics :-(
jnthn pmichaud: If you don't wrap things in a !FETCH up...
...actually, wait, that won't work.
:-|
pmichaud well, I might be able to make !FETCH work, if it does descalarref
jnthn I was going to say "can you go on 'it doesn't have an objectref'"... 21:58
pmichaud then everything else is a normal deref
my $a = 4; my $b := 4; my $c = $b;
jnthn It feels like it's a decision that belongs with a type though.
pmichaud oops
my $a = 4; my $b := $a; my $c = $b;
jnthn Yes, I realized it wouldn't work. :-)
21:59 cj joined
jnthn Maybe our immutable types do some Immutable role, which has a !FETCH that descalarrefs. 21:59
pmichaud or simpler is to just put !FETCH in them directly
there aren't many of those 22:00
jnthn Well, I was thinking of DRY
But yes, that's true.
22:00 pmurias left
jnthn Maybe better not to over-engineer it. 22:00
pmichaud and it's not just "immutable types" -- some immutables still want to have references instead of value copies
jnthn Yeah, immutable is the wrong word.
ValueType woulda been a betterone.
pmichaud e.g., Range is immutable but it's still better as reference copies than copying the PMC
jnthn Right. 22:01
pmichaud it's really only Int/Num/Str that want to make copies. Although I'm not sure about Complex.
jnthn Rat?
pmichaud yeah, Rat too.
jnthn It is quite few though.
spinclad Numeric/Stringy
pmichaud my $a = 3/4; my $b = $a; $a++; say $b
bacek jnthn, r43956 in parrot/trunk.
it's proper (fsvo) fix for compact_pool crash 22:02
pmichaud bacek++
jnthn bacek: ooh, good find.
bacek++ 22:03
bacek: Thanks for that; I'll try it and bump.
pmichaud I asked the question once before on p6l about distinguishing value types from reference types and didn't get a satisfactory answer.
jnthn Yeah, I haven't seen a good one yet either. 22:04
pmichaud here's the way to phrase it, I think.
my $a = Rat.new(3,4); my $b = $a; $a++; say $b;
my $c = Foo.new(3,4); my $d = $c; $c.mutate; say $d; 22:05
in the first case, I think we agree that $b is unchanged by $a++
spinclad # Foo: insufficient clue
pmichaud in the second case, I think we agree and $c and $d reference the same object
unless, of course, we think that $a++ is really the same as $a = $a.succ; 22:06
In that case I guess we're okay, because we're not really mutating the original $a, but rather creating a new one and assigning it to $a
(leaving $b referencing the original $a)
spinclad and likewise $c.=mutate would leave $d unchanged 22:07
jnthn spinclad: Not if Foo is just Any Old Class. 22:08
pmichaud well, if .mutate doesn't affect the invocant
I'm presuming that .mutate means "changes the invocant"
jnthn Well, yeah. I was assuming mutate did. :)
pmichaud and the difference with $a++ is that it leaves the original invocant unchanged
jnthn Right.
pmichaud that might work.
I'll have to think about that a bit.
bacek jnthn, can you close trac ticket after test?
jnthn I mean, that's the desired semantics. It seems clear enough that it's a decisoin to be made by an individual type too. 22:09
bacek: aye.
pmichaud well, it would mean that all of our objects are really "reference types", and there's no such thing as "value assignment"
jnthn Hmm, yes.
I guess it's because all of the things that we want to have value semantics for are immutable. 22:10
pmichaud right
that's a good way of saying it. 22:11
it's not that all immutables want to have "value" semantics, but all of the things that we'd want to have value semantics are immutable
jnthn Yes.
pmichaud that kind of argues for "every container is an ObjectRef", also.
22:12 snearch_ left
jnthn feels like we might be getting towards a model that's gonna fly. 22:12
pmichaud including elements of arrays would be ObjectRef. and assignment is just doing the appropriate set_ref
jnthn Sounds like we get to avoid a *lot* of copying.
pmichaud and cloning :)
jnthn (compared to the amount we did in alpha)
22:13 xomas left
pmichaud we do end up with the case of aggregates requiring two pmcs per element 22:13
jnthn In terms of cost/benefit though, I think we'll come out ahead.
pmichaud yes, perhaps so. I'll try that a bit later tonight and see what comes up. 22:14
need a break for now.
jnthn OK, cool.
Aye. I'll check and do the revision bump and I'm about done for the day.
ooh! 22:15
Cleanest run ever.
Well
For a *long* while.
gah, I gotta stop trying to push to ng! 22:16
spinclad i could see a version of Array that doesn't support @a[0] := $b (can't rebind its elements) and perhaps ends up not needing full container/objectref PMCs per element 22:17
i'm not sure it's any simpler to make that work in present object model; maybe harder even... 22:19
22:19 rv2733 left
dalek kudo/master: 6d40788 | jonathan++ | build/PARROT_REVISION:
Bump to a Parrot with a fix for various segfaults we've been seeing, thanks to bacek++.
22:19
22:22 payload left
jnthn I'm glad that segfault issue got patched ahead of the Parrot relesae. :-) 22:23
mberends bacek++ wknight8111++
jnthn colomon++ for providing the valgrind trace that helped us get a good bug report in too :-) 22:24
22:25 bacek left
pmichaud ugh, I'm still needing something that can distinguish [1,2,3] from a normal scalar variable :-( 22:28
oh, perhaps not 22:29
(still thinking on it)
jnthn rw? 22:31
22:33 Guest80169 left
jnthn afk for a bit 22:34
22:41 Su-Shee left 22:52 colomon joined 22:55 xomas joined, xomas left, xomas joined, payload joined 22:56 hercynium left 22:57 MaL0 is now known as MaL0_
colomon Why did PARROT_REVISION change again? 23:01
mberends bacek did a proper patch 23:02
colomon (irclog is very slow for me at the moment, it hasn't gotten to the point where I closed the computer and hopped in the car yet...)
ooooo.... is it a "real
mberends yeah :-)
colomon "real" fix, or just the patch we had before checked in? 23:03
\o/
mberends not just the patch any more 23:05
colomon sweeet!
(building new parrot now...) 23:06
(irclog is still loading... woah...) 23:07
23:11 masak joined
masak <TimToady> now someone needs to turn the masakbot back on 23:11
oh, I'm on.
masak 's eyes glow 23:12
that said, I'll probably not start spamming RT with rakudobugs until tomorrow. :) 23:13
23:17 k23z__ joined
mberends masak: with the new master branch you could run a masakbotnet 23:17
masak mberends: if I had a botnet of masaks, I would set them on finishing all my unfinished Perl 6 projects :) 23:18
mberends that would suddenly make botnets very socially acceptable 23:19
23:19 Rix left
masak mberends: botnets are generally very misunderstood. 23:20
mberends masak: that MacBook went for £580, btw
masak mberends: what does a new one cost?
mberends I guess almost twice as much
masak sounds like a good deal, then. 23:21
oh ouch: gist.github.com/304336 23:24
masak decides to tell #parrot, too
mberends some people had problems if they did not use a fresh checkout 23:25
masak my checkout is hardly fresh! :) 23:26
oh. 'did not use...'. I see.
masak removes and checks out anew
mberends if all else fails, rm -rf # I did that anyway, as a low-tech solution 23:27
masak I'm on it.
23:31 Rix joined 23:33 Rix left
masak sometimes I wonder about those users who only stay for two minutes or so. 23:34
are they here by mistake? 23:35
23:35 iblechbot left
lichtkind masak: get your kick :) 23:35
masak would they stay if we talked more? :)
lichtkind: hello, child of light. what do you mean?
mberends does the needing to register to have a voice hinder many newbies?
masak mberends: that's a fair question. that might be. 23:36
then again, maybe those newbies are evil spambots, the whole lot of them.
lichtkind masak: just spreading asskicks that november runs soon again :)
mberends that NickServ stuff might be a barrier
masak lichtkind: hm. I'd prefer if you didn't spread any type of kicks, let along that kind.
s/along/alone/ 23:37
lichtkind in perlde we never have problems with spambosts
masak: but htese are very loving asskicks :)
does NQP-rq uses PCT under the hood, i think no 23:38
mberends yes it does
lichtkind i mean PGE
mberends not it doesn't
lichtkind thanks
masak maybe the bootstrapping part...
lichtkind currently reading github.com/rakudo/rakudo/blob/maste...erview.pod
masak I'm not 100% sure how that works.
mberends I'm still finding out, even though I'm revising that doc 23:39
it's turning out to be a pleasant journey of discovery 23:40
masak I see rakudo has been updated on feather, too :) suddenly my November test smoke cron job errors out completely. 23:44
hm, does that mean... :/
mberends ouch
if you depend on %*ENV for CGI you're out of luck 23:45
masak nope, the site is still up. phew.
it's because we're running from a local build of Rakudo. and that's because we fetch november via an unconfigured proto :)
again, phew.
strange though that the smoke runs on the global... aha! 23:46
right.
it's because of the way I call the smoke framework. :)
something akin to -run 'perl6'
yay! I now have New Rakudo For Realz Now installed locally! \o/ 23:49
mberends \o/
masak tomorrow, the testage and rakudobug reportage beguines.
but now, teh sleep. 23:50
g'night.
mberends good ideaz
23:50 masak left
lichtkind good night 23:54
mberends yes good night
23:54 mberends left 23:58 ash__ left