Parrot 4.0.0 "Hyperstasis" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 January 2012.
00:18 benabik_ joined
dukeleto whiteknight: part of the problem is testing that feature requires a file system boundary 00:44
whiteknight among other problems
sorear I do not support making rename transparently attempt to paper over EXDEV. (Not that you necessarily care what I think.) 01:03
Tene_ Use a higher-level library if you want transparent cross-device copies, IMO 01:14
dukeleto Tene_: people will be trying to write higher-level libraries with Parrot, which doesn't support this out of the box 01:18
Tene_: which means lots of wheel-reinventing in HLLs/libs because we don't provide this 01:19
sorear imo, you're REMOVING functionality.
Tene_ My initial inclination is "don't take away rename()", but I honestly can't think of a situation where I'd prefer to distinguish between these cases.
sorear right now Parrot has a fail-safe atomic rename
dukeleto sorear: that won't go away
Tene_ Maybe it's a failure of creativity on my part, though.
dukeleto sorear: we could make the current rename default and create a new function that attempts to do renames across FS boundaries 01:20
people who deal with NFS a lot will have the strongest opinions about this
just as a data point, git does not go across FS boundaries unless you set an env var 01:21
sorear dukeleto: cool. are you planning to implement this at the PIR or C level?
Tene_ As long as a cross-device move is being added in addition to rename, I can't see any problems.
sorear as a data point, Perl 5 has a rename() builtin which emulates the rename() system call, and File::Copy::move which emulates the mv utility 01:22
01:41 woosley joined
whiteknight The OS PMC .rename() method should do what it says: wrap the rename() function 01:49
we can add a .move() or .mv() method to do more magical crap
I personally prefer ".move", but there seems to be a pattern in that PMC of following the obscure naming conventions of the posix API and stdlibc 01:51
we have a relatively powerful and full-featured string handling subsystem and good ICU bindings, and we still have methods named .cwd(), .rm() and .chroot() 01:53
If we keep all the bytes we save in a jar, eventually we might be able to save up enough for something good, like half of a small bitmap image 01:54
02:01 jsut_ joined
cotto ~~ 02:19
whiteknight++ 02:20
whiteknight hello cotto
cotto howdy whiteknight 02:23
whiteknight what's the fallback supposed to be if rename fails? bytewise copy then delete the original? 02:28
sorear yes 02:29
recursive if directory
whiteknight: ICU bindings? are you suggesting replacing .rm with .⌦ or something? :D 02:30
whiteknight That's something that we don't need a new C-level method for. Rosella already does all those operations in pure parrot
Tene_ it would also be unfortunate if that silently changed or dropped permissions, ACLs, etc.
whiteknight sorear: I'm simply saying, we can do better than "rm" 02:31
Tene_ Seems a bit inaccurate to call posix conventions "obscure", to me. 02:33
whiteknight obscure might not be the right word. "unnecessarily terse" is better
And considering Parrot aims to provide a much higher level of abstraction than libc does, it doesn't make a lot of sense (to me) to follow all the same exact APIs and same naming conventions 02:34
Tene_ Yeah, that seems better to me. 02:35
sorear "rm" isn't the POSIX name or the C name 02:36
those are "unlink" and "remove" respectively
"rm" is the shell name... which is quite silly for Parrot to be using
whiteknight oh, thats the shell name
right, even worse
sorear a low-level wrapper around unlink should probably be called unlink
whiteknight or ".delete_the_damn_file"
sorear that's a bit much to type IMO :p 02:37
whiteknight on win32, it isn't a wrapper around unlink
so calling it "unlink" is already not accurate 02:38
sorear opbots trust sri 02:39
slavorg Ok
whiteknight .delete() makes the most sense to me, but it's hardly worth the rename at this point
sorear opbots trust awwaiid
slavorg Ok
sorear opbots trust cxreg
slavorg Ok
sorear opbots trust jjore
slavorg Ok
sorear opbots trust Khisanth
slavorg Ok
whiteknight Tene_: yes, mucking with ACLs and security settings is a bit of an extra hassle 02:48
Parrot doesn't really deal with those things at all in any of its current operations 02:52
not that we couldn't or shouldn't, of course
03:03 benabik joined 05:37 JimmyZ joined
moritz fwiw the exceptions thrown from rename are fine 05:42
06:02 Psyche^ joined 06:22 alvis joined
dukeleto ~~ 06:31
sorear !~~ 06:32
jjore silly sorear, trust jjore? Shoot... 06:49
sorear sure 07:03
you can LOSE my trust if you want to
but you haven't yet
dalek kudo/nom: 6ed624d | moritz++ | src/Perl6/Actions.pm:
Throw one more typed exception
jjore Oh, I'm not rude enough for that. 07:13
dukeleto is, sometimes 07:22
jjore "Show me your polymorphic inline cache." 07:29
dalek kudo/nom: a2792b9 | moritz++ | src/ (2 files):
typed exceptions for things that must be known at compile time
07:55
08:45 mj41 joined 09:12 woosley left 09:22 lucian joined 09:23 lucian joined
dalek p: 19f1639 | moritz++ | / (2 files):
[bigint] fix detection of negative numbers from binary ops

This should fix RT #109740
09:43
10:06 Psyche^ joined 10:22 Psyche^ joined
dalek kudo/nom: 0a3ee96 | moritz++ | tools/build/NQP_REVISION:
bump NQP revision to get RT #109740 fix
10:35
10:55 mj41 joined 11:02 seme joined
seme hey guys... could anyone give me a hand... I just built parrot-4.0.0 on my mac (intel 11.2.0) but when I run parrot I get this error, PARROT VM: Could not initialize new interpreter 11:29
I also get that error when I run the setup.pir that is generated from the mk_language_shell.pl script 11:30
hrm.... hold on... I think that my previous install of parrot was interacting with the new one 11:34
12:42 benabik joined 12:46 mtk joined
benabik o/ #parrot 12:51
msg seme re parrot/mac problem: Sounds like a common problem. If libparrot is installed, trying to run a new parrot can go very badly. Best to remove the old one before building the new. 12:53
aloha OK. I'll deliver the message.
12:57 bluescreen joined
Coke which, btw, is horrible. someday someone will fix that. ;) 13:52
benabik Coke: I don't think there's a simple way to do it, sadly. 13:54
I suppose fixing the testing part is possible, since the Makefile could set the LD_* env variables. But allowing the user to run non-installed with an installed lib is tricky. 13:55
I dislike long lines in commit messages. git.git has spoiled me with high quality messages. 14:01
dalek kudo/nom: 15dc125 | moritz++ | src/core/Exception (2 files):
eliminate X::Base

It is replaced by Exception as a base class, and by X::AdHoc for die with non-Exception arguments
14:15
benabik It occurs to me that people working on rakudo get double karma. Once in #perl6, once here. 14:17
Not that I care, just kinda interesting. 14:19
masak in the end, there's a risk that people get twice the recognition they should've got.
leading to a kind of "recognition inflation".
and the risk of collapse of the entire karma system. 14:20
benabik Yeah. With this kind of inflation, it's no wonder the karma to dollar exchange rate is so low. ;-) 14:21
masak benabik: back in the Pugs days, people got one ++ per *line* of commit comment. :) 14:22
14:22 jwilliams joined
benabik I guess that's one way to encourage people to write detailed commit messages. 14:22
14:33 PacoAir joined 15:07 jwilliams left 15:43 Psyche^ joined
dalek kudo/nom: ef61a32 | moritz++ | src/core/Exception.pm:
experiment a bit with backtrace printing

inpsired by a discussion with masak++, [Coke]++ and a few others
15:47
15:54 fperrad joined 16:03 seme joined
seme hey guys... does rosella work with parrot 4? I installed parrot and then tried to build rosella but it failed with the following error when trying to build core.pbc 17:08
error:imcc:syntax error, unexpected PREG, expecting '(' ('$P3')
benabik seme: I think it should, but I'll check. 17:18
seme cool thanks 17:20
benabik Hm. Builds fine here. Perhaps you need to make clean or get a newer version?
seme are you downloading from git or the download link on the web site? 17:21
benabik git
seme ok let me try that
benabik Although the tar ball from the website appears to just grab the latest from git.
msg whiteknight You appear to have a markup problem with the Rosella home page. "plumage install rosella</pre>" is unlikely to be a useful command. 17:23
aloha OK. I'll deliver the message.
seme hrm... I just downloaded it from git and had the same issue... here is the complete error pastebin.com/t3jqFCmV 17:24
benabik Hmmmmm... 17:27
What is line 1228 of core.pir? ( sed -ne '1228p' rosella/core.pir ) 17:28
seme get_context $P3 17:29
benabik Hm. I'm guessing IMCC doesn't know about the get_context op for some reason.
hmmmm.... 17:30
seme what are you running? I'm wondering if it could be environmental?
I'm running on a mac pro intel x64 box
benabik MacBook Pro. 17:31
Running parrot master rather than a release though.
seme aah... I'm running the 4.0.0 release
benabik get_context was added after 4.0.0
seme I see
benabik Your winxed shouldn't be generating it, I think. 17:32
seme doesn't rosella come with parrot? or is that just winxed that comes with parrot?
benabik Winxed comes with parrot, Rosella doesn't.
seme aah ok
well I'll forget about rosella for the moment... :) 17:33
I'm still reading through the tutorials and examples so I can understand puffin and pynie :)
benabik I'm somewhat confused how you have a winxed that knows get_context and an IMCC that doesn't.
seme I have no idea :)
I just cleaned my system today and did a fresh install of parrot 17:34
benabik Ohhhhhhhh....
Rosella's been updated to use get_context.
seme I was going to try to install rosella too but that was where I hit a snag
benabik Rosella master seems to require parrot master.
Try Rosella 4d6d1fab9f5568d1ecfd89131a09fd15358b77b8
seme right.... it would be nice if there were releases of rosella that coinsided with the parrot releases... 17:35
ok let me try and grab that
I just do a git checkout 4d6d1fab9f5568d1ecfd89131a09fd15358b77b8 right? 17:36
benabik Yeah.
seme cool... it is building now 17:37
benabik \\o/
seme looks like that did the trick
17:41 dmalcolm joined
dukeleto seme: welcome, I haven't seen you around before 17:45
seme thanks dukeleto I'm new 17:48
I've been trying to learn more about language design, compilers, etc. and I found parrot.. I've been reading for days now, trying to get an understanding of thigns 17:49
pretty cool stuff
17:53 zby_home joined
dukeleto seme: awesome! I am the parrot community dude, so if you have questions, feel free to ask. 17:54
looks like some cardinal tests are failing on Parrot 4.0.0 17:55
i don't think anybody has been running "make allhlltest"
seme thanks... I appreciate it... for a newbie it is definitely a steep learning curve
dukeleto seme: yes, we are trying to make it better
seme: parrot.github.com is a new site that lists docs for every version of parrot, which might help
tadzik dukeleto: some that didn't fail before?
dukeleto seme: newcomers are often confused by old/wrong documentation/blogs/etc 17:56
seme is that the same as docs.parrot.org
dukeleto tadzik: not sure. I thought they all passed last time I checked, but I am pretty good at lying to myself
tadzik :)
dukeleto seme: not quite. parrot.github.com is going to eventually replace docs.parrot.org
tadzik I haven't looked at Cardinal in a while
Tene_ dukeleto: Remember a year ago, when you told me to expect automated HLL testing "Real Soon Now" and I was pessimistic?
seme ooh so forget about docs.parrot.org?
dukeleto seme: not quite. Both sites are useful 17:57
benabik Is there anything on docs that isn't on github?
dukeleto Tene_: pessimism isn't very useful to me
Tene_: i prefer action and optimism
Tene_: and since then, we have "make allhlltest" and now we run the parrot test suite on every commit via Travis CI 17:58
tadzik I have a feeling that both setup.pir and setup.winxed are broken in cardinal. Do we need them, having Rakefile?
dukeleto benabik: ayardley is the captain of our documentation refactor. Not sure. I think docs.parrot.org does indeed have info parrot.github.com does not have
tadzik: having 3 build systems does seem a bit freaking ridiculous. Keeping them all in sync really sucks. 17:59
NotFound ~~
tadzik if( (req[0] > sys[0]) || (req[1] > sys[1]) || (req[2] > sys[2]) ) { 18:00
dukeleto tadzik: would you mind sending an email to parrot-dev asking people what to do about cardinals multiple-build-system disorder?
tadzik no wonder that fails against 3.8.0 vs 4.0.0
dukeleto: nope, can do that
dukeleto tadzik++
NotFound: wazzup
NotFound dukeleto: not much, I'm busy these days 18:01
dukeleto tadzik: i am trying to merge this github.com/parrot/cardinal/pull/20 18:03
tadzik: but then ran into failing tests
tadzik: and merging new code with an already failing test suite makes me sad
tadzik no wonder
I'm fixing setup.winxed now
dukeleto tadzik++
NotFound tadzik: that setup.pir in hand written or is generated from setup.winxed? 18:04
tadzik NotFound: no idea, but it gives diferent results 18:06
seems to be hand-written 18:07
NotFound I suggest to kill it.
tadzik that should be painless, now that we have winxed in Parrot
bundled, I mean
dukeleto: and yes, tests fail 18:09
dukeleto: btw, maybe it should go to github issues rather than parrot-dev?
dukeleto tadzik: both, either, whatevs :) 18:10
+1 to killing the hand-written setup.pir. That is archaic 18:11
and is from before winxed came with parrot
tadzik some of those failing tests are more suitable for something like eval_dies_ok
that's it ends up with Dubious, test returned 1
18:18 bluescreen joined
dalek rdinal: b675f75 | tadzik++ | setup.winxed:
Fix setup.winxed
18:20
rdinal: d4f22c4 | tadzik++ | setup.pir:
Remove setup.pir. No need to have both setup.winxed and setup.pir while winxed in bundled with Parrot
kudo/usage-prints-WHY: 0683298 | moritz++ | src/ (2 files):
more typed exceptions
18:41
kudo/usage-prints-WHY: 5fcfed5 | moritz++ | src/Perl6/Actions.pm:
fix thinko
kudo/usage-prints-WHY: cb00ad1 | moritz++ | src/ (2 files):
typed exceptions for "my $!foo"
kudo/usage-prints-WHY: 683a387 | jnthn++ | src/core/ (2 files):
Enumerations should .gist to just the key, not including the full package name.
tadzik oh, crap
dalek kudo/usage-prints-WHY: ef22e37 | jnthn++ | src/core/Str.pm:
Forbid :8(non-Str-here), as per spec.
kudo/usage-prints-WHY: ce5ccae | moritz++ | tools/build/NQP_REVISION:
bump NQP revision to get option handling and charclass fixes
kudo/usage-prints-WHY: 6b62395 | jnthn++ | tools/build/NQP_REVISION:
Bump to latest NQP to get <!> fix.
kudo/usage-prints-WHY: acbec86 | moritz++ | tools/build/NQP_REVISION:
fix NQP_REVISION
kudo/usage-prints-WHY: 6a17a5e | moritz++ | src/core/Match.pm:
implement Match.make
kudo/usage-prints-WHY: a47a56a | jnthn++ | src/ (2 files):
Improve error reporting for nextsame and friends when they are used with no dispatcher in the dynamic scope; TimToady++.
kudo/usage-prints-WHY: a177364 | tadzik++ | / (2 files):
Remove trailing whitespace in declarator blocks
kudo/usage-prints-WHY: 6bcd7b6 | tadzik++ | / (18 files):
Merge branch 'nom' into usage-prints-WHY
kudo/nom: 2251cbb | tadzik++ | src/core/Main.pm:
Make default USAGE print .WHY for the documented candidates
18:42 mj41 joined
benabik Heh. dalek just helped me notice I was on the wrong end of a net split on free node. :-D 18:43
18:56 trey joined 19:07 Khisanth joined 19:58 lucian joined 21:56 jsut joined 22:01 jsut_ joined 22:05 benabik_ joined 22:30 awwaiid joined 22:38 dmalcolm joined
dalek kudo/stdinit: f3058c8 | jnthn++ | src/Perl6/Actions.pm:
Small refactor to bind_op/assign_op to prepare for initializer changes.
23:23
kudo/stdinit: 95a255a | jnthn++ | src/Perl6/ (2 files):
First round of changes to parse variable initializers as part of variable_declarator. Basically works, though doesn't yet handle the attribute initializer case yet.
23:31 trey joined 23:36 benabik joined
dalek kudo/stdinit: b0a9d14 | jnthn++ | src/Perl6/Actions.pm:
Re-work attribute initializer handling, getting rid of the nasty action at a distance stuff. Also a bit more robust.
23:37
23:49 TonyC joined 23:51 nopaste joined