Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-12-01

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 Trashlord joined #perl6
00:09 stepnem joined #perl6
00:09 FordPhoenix joined #perl6
00:11 FordPhoenix perl6: fork while fork
00:12 p6eval niecza v12-2-geb42dfa: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤      'fork' used at line 1,1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 880 (die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1139 (P6.comp_unit @ 32) â�¤  at /hom…
00:12 p6eval ..rakudo 2b3135: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&fork' called (lines 1, 1)␤»
00:12 p6eval ..pugs b927740: OUTPUT«*** Unsafe function 'fork' called under safe mode␤    at /tmp/dmTte77WmZ line 1, column 12 - line 2, column 1␤»
00:12 FordPhoenix perl6: `rm -rf /`
00:12 p6eval pugs b927740: OUTPUT«*** Unsafe function 'Pugs::Internals::runShellCommand' called under safe mode␤    at /tmp/3RmdQHlQRd line 1, column 1 - line 2, column 1␤»
00:12 p6eval ..niecza v12-2-geb42dfa: OUTPUT«[31m===[0mSORRY![31m===[0m��Bogus statement at /tmp/ZYi4tyWl2H line 1:�------> [32m<BOL>[33m�[31m`rm -rf /`[0m��Parse failed��»
00:12 p6eval ..rakudo 2b3135: OUTPUT«===SORRY!===␤Confused at line 1, near "`rm -rf /`"␤»
00:12 diakopter FordPhoenix: please stop :/
00:13 FordPhoenix my frand told me 2 sry
00:14 FordPhoenix say hi 2 omgle vido chat =]!!
00:14 overrosy joined #perl6
00:15 sorear Could you try correct spelling and grammar?  I can't understand you.
00:16 tadzik <obligatory "what if your friend told you to smack your head with a hammer">
00:16 FordPhoenix i rpbly wuld
00:16 FordPhoenix it sound rly fun
00:16 FordPhoenix b r b smaking hed with hamrr
00:17 FordPhoenix i showing it 2 my frand on omgle [=
00:18 diakopter I assume you mean the anonymous video chat site omegle
00:18 FordPhoenix ya
00:18 tadzik omg
00:18 tadzik ;)
00:19 FordPhoenix [O]h [M]y [G]öÐ
00:19 jnthn .u öÐ
00:19 phenny U+00F6 LATIN SMALL LETTER O WITH DIAERESIS (ö)
00:19 phenny U+00D0 LATIN CAPITAL LETTER ETH (Ð)
00:20 FordPhoenix ⓗⓐⓗⓐⓗⓐⓗⓐⓗⓐⓗⓐ
00:20 diakopter I tire of you
00:22 FordPhoenix diakopter: ¯¯¯º [£]àuGhz [O]u+ [L]oÙÐ º¯¯¯
00:23 jnthn aol.
00:24 FordPhoenix joined #perl6
00:24 overrosy joined #perl6
00:25 sorear FordPhoenix: That kind of behavior is not welcome here.
00:25 FordPhoe1ix joined #perl6
00:30 overrosy joined #perl6
00:30 jnthn 'night, #perl6
00:31 cotto 'night
00:45 overrosy joined #perl6
01:01 kcwu joined #perl6
01:04 overrosy joined #perl6
01:07 arlinius joined #perl6
01:17 tokuhirom joined #perl6
01:19 tokuhirom joined #perl6
01:20 wolfman2000 joined #perl6
01:22 Vlavv` joined #perl6
01:33 plutoid joined #perl6
01:37 woosley joined #perl6
01:47 kcwu joined #perl6
02:04 arlinius joined #perl6
02:13 overrosy joined #perl6
02:25 benabik joined #perl6
02:28 shinobicl_ joined #perl6
02:31 shinobicl_ hi.... i am running a test on a module i'm doing... but something weird happens. My test ends with a segmentation fault at the 3rd test. But, when i add a 'say "1"' to the most called function, it fails but this time at the 89th test...
02:32 shinobicl_ s/it fails/ends with a segmentation fault/
02:33 cooper joined #perl6
02:41 colomon shinobicl_: what compiler?
02:42 shinobicl_ i compiled rakudo just yesterday
02:42 shinobicl_ perl6 -v does not seem to work
02:43 shinobicl_ so i will say that is the latest version
02:44 colomon try perl6 --version
02:44 shinobicl_ "This is perl6 version 2011.11-65-ga8dfd47 built on parrot 3.10.0 revision RELEASE_3_10_0-30-ga8cb7da"
02:45 colomon okays, that's real recent.
02:45 colomon it's a literal segmentation fault?
02:46 shinobicl_ yes, it's literally a "segmentation fault"
02:47 shinobicl_ i'll try to upload my code to github.... please give me a few minutes
02:47 colomon no worries.
02:57 shinobicl_ there is the .t file
02:57 shinobicl_ https://github.com/shinobi/TaskSched​uler/blob/master/t/WorkdayCalendar.t
02:57 shinobicl_ this is the module
02:57 shinobicl_ https://github.com/shinobi/TaskSched​uler/blob/master/WorkdayCalendar.pm
02:58 shinobicl_ im uploading the "calendar" files used for testing
03:00 colomon okay, I've cloned the github repo
03:02 shinobicl_ https://github.com/shinobi/Ta​skScheduler/tree/master/t/res
03:02 overrosy joined #perl6
03:04 shinobicl_ on WorkdayCalendar.pm, look for the lines 'say "step 1"' and 'say "step 2"'. If you remove them, the test dies much earlier
03:04 satyavvd joined #perl6
03:04 colomon works with ufo?
03:04 donri left #perl6
03:05 shinobicl_ ehmmm.. "ufo"?
03:05 colomon standard makefile generator
03:06 shinobicl_ no, not yet
03:07 shinobicl_ i started from scratch many months ago. I had stopped because my VPS didn't have enough memoty to compile newer versions of rakudo.. until yesterday when i upgraded it to 1GB of RAM :)
03:08 colomon apparently you don't need it with your test files anyway.  :)
03:09 colomon okay, t/WorkdayCalendar.t actually runs without crashing for me
03:09 overrosy joined #perl6
03:10 shinobicl_ and if you remove "say "step 1"' and 'say "step 2"' ????
03:11 am0c joined #perl6
03:11 ethndbst joined #perl6
03:11 colomon trying...
03:11 colomon Bus error, yup
03:12 shinobicl_ mmm sorry... "bus error"? what does that mean?
03:13 sorear segmentation fault and bus error are two possible errors from bad pointer use
03:13 sorear there are others
03:14 sorear the set of possible errors depends on CPU; when using a portable OS, some information is sometimes lost
03:14 colomon yeah, it's a form of a seg fault on a mac.
03:14 sorear Unix only has SIGBUS and SIGSEGV, so only two kinds of memory error can be reported
03:14 shinobicl_ i'm using a OpenVZ virtual machine... Debian i386
03:15 shinobicl_ sorry.. i686
03:15 sorear Windows can report more kinds of errors since it was designed to work with the x86
03:16 sorear general protection faults, unresolved page faults, stack faults, etc all map to SIGSEGV on Linux/i386 but are different error codes on Windows
03:16 sorear I don'
03:16 colomon shinobicl_: looks like you've definitely got a legit nom bug
03:16 sorear I don't think Linux/i386 uses SIGBUS at all
03:16 sorear Linux/ppc uses SIGBUS for unaligned memory access exceptions
03:16 shinobicl_ oh.. well, i'll keep those "say" too
03:17 shinobicl_ also, i got another issue, on WorkdayCalendar.t
03:17 shinobicl_ give a minute please
03:17 sorear traditionally, SIGSEGV comes from hardware memory protection, while SIGBUS is signalled by hardware faults
03:17 colomon shinobicl_: sure, though I'm trying to see if I can get more info on your seg fault first.  ;)
03:21 sorear e.g. many old mc68k systems will signal the BERR# pin if you try to access a physical address which no device answers to
03:21 shinobicl_ no problem :) anyway, i think it might be the same issue.
03:21 sorear I conjecture that SIGSEGV and SIGBUS were introduced during the period of Unix history when it mostly ran on mc68k systems
03:22 colomon phenny: tell jnthn https://gist.github.com/1413232 summarizes how I duplicated shinobicl_'s seg fault, and the backtrace from the crash point.  Let me know if there is anything else I can do to help track it down.
03:22 phenny colomon: I'll pass that on when jnthn is around.
03:23 colomon okay, second problem?  :)
03:24 shinobicl_ int the test file.... commenting or uncommenting the lien with "diag "-----------------";" also seems to "change" the point where the test segfaults
03:27 colomon shinobicl_: I get the same error either way.
03:30 shinobicl_ mmmm
03:31 colomon anyway, hopefully the backtrace will be a good start for jnthn++ to figure out what is going wrong.
03:31 shinobicl_ look for "my $test_list ="
03:31 shinobicl_ the followwin text uses single quotes
03:31 shinobicl_ changing it to double quotes also changes the behavior
03:31 colomon got it
03:32 colomon again the same.
03:32 shinobicl_ oh well... maybe it's an issue in my VPS
03:33 colomon Sure looks like some sort of memory error.  Changing the code changes when it happens, that's all.
03:33 colomon I ran into a couple of garbage collection errors yesterday.
03:33 colomon I suspect nom is slightly less stable than we would really like it to be at the moment.
03:33 shinobicl_ thank you very much for your help, colomon
03:34 colomon you're welcome.  thank you for stressing rakudo, it's a great way to help find where the compiler still needs work
03:35 shinobicl_ oh, no problem.. i'll stress it a lot, specially in the part of overloaded operators :)
03:35 colomon \o/
03:35 colomon afk # bedtime
03:36 shinobicl_ ok, good night, and thanks again!
03:36 shinobicl_ left #perl6
03:46 [Coke] does t/spec/S03-operators/overflow.t require a bigint lib?
03:46 hundskatt joined #perl6
04:30 serkfir joined #perl6
04:34 alester_ joined #perl6
04:41 envi_ joined #perl6
04:51 ethndbst joined #perl6
04:51 ethndbst joined #perl6
05:09 mkramer joined #perl6
05:24 mkramer left #perl6
05:29 mkramer1 joined #perl6
05:40 mkramer1 left #perl6
05:48 Eth4n joined #perl6
06:05 kaleem joined #perl6
06:18 satyavvd joined #perl6
06:25 satyavvd joined #perl6
06:34 moritz [Coke]: erm, rakudo has a bigint lib, bundled with nqp :-)
06:35 dalek rakudo/nom: 6006bc7 | moritz++ | src/core/IO/Socket/INET.pm:
06:35 dalek rakudo/nom: fix get() in Socket::INET to chomp the right delimiter
06:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6006bc7ee8
06:39 hundskatt joined #perl6
06:46 Woodi moritz: if I use: get-recv-get sequence then second get see flushed socket. not checked Perl5 behaviour on that yet but it at least unconvenient...
06:47 Woodi *is...
06:47 moritz what does "see flushed socket" means?
06:49 Woodi eg: connect-port-80; $s.put("GET \ ...); $s.get; $s.recv(10); $s.get();
06:49 Woodi second get blocks
06:49 moritz all requests block, we don't have non-blocking IO yet.
06:50 koban joined #perl6
06:50 Woodi but it shouldnt't
06:50 moritz what do you mean by "blocks"?
06:50 Woodi just recv read everything, and return 10 bytes as sked.
06:51 Woodi I have example somewhere, will post later
06:52 moritz Woodi: if you only want to read 10 bytes, use .read instead of .recv
06:53 Woodi hmm :) missed that command somehow ..
06:53 Woodi will test
06:53 moritz not sure if it's specced
07:54 Trashlord joined #perl6
07:57 fridim_ joined #perl6
08:12 masak 挨拶, #perl6!
08:17 moritz \o masak
08:17 mikemol joined #perl6
08:22 masak goal for the day: blog about progress so far with macros. maybe prepare a blog post for later for perl6advent.
08:26 mj41 joined #perl6
09:04 arlinius joined #perl6
09:06 moritz http://moritz.faui2k3.org/tmp/03-binary-io-buf.pod early draft of the advent post for day 3
09:07 moritz it kinda misses a good end
09:08 woosley left #perl6
09:13 masak s/has been solved/has been addressed/ ;)
09:14 masak also, to my non-native ear "to and fro" indicates an osciallating motion, like weed in the wind.
09:14 masak "back and forth" is probably what you wanted.
09:14 moritz thanks
09:16 masak funnily enough, your server delivers that URL as latin-1 (I think), but I see from the mojikabke that it's really UTF-8.
09:16 moritz Content-Type: text/plain
09:17 moritz no latin-1, that's your browser's interpretation :-)
09:17 masak could be.
09:17 masak yes, it said it had chosen latin-1. I set it to utf-8, and now I see the møþ :)
09:17 snarkyboojum also maybe /do not provide the same level of Unicode support yet as Perl 5 does/do not yet provide the same level of Unicode support as Perl 5/
09:18 masak hm, ss/byte values of which/byte values from which/
09:19 * moritz updates
09:19 moritz masak++, snarkyboojum++
09:20 masak agree about the ending :) best of luck with it.
09:22 dalek rakudo/nom: 7d35796 | moritz++ | src/Perl6/Actions.pm:
09:22 dalek rakudo/nom: special-case 0e<big-exponent> to not perform the 10**<big-exponent> operation
09:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7d35796d24
09:22 dalek rakudo/nom: 8c70898 | moritz++ | lib/Test.pm:
09:22 dalek rakudo/nom: [Test.pm] restore "bad death" in dies_ok, even though we seem to produce far fewer Null PMC Accesses these days
09:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8c70898d27
09:23 snarkyboojum moritz: you also don't need the "does" there before the comma, but good stuff - moritz++ :D
09:31 satyavvd joined #perl6
09:34 jnthn morning
09:34 phenny jnthn: 03:22Z <colomon> tell jnthn https://gist.github.com/1413232 summarizes how I duplicated shinobicl_'s seg fault, and the backtrace from the crash point.  Let me know if there is anything else I can do to help track it down.
09:35 jnthn colomon: Thanks for the backtrace. This roaming segfault seems to be claiming a growing number of victims...
09:40 moritz seems to always happen in Rakudo_cont_decontainerize, but of course the real error might be much earlier
09:46 jnthn moritz: Yeah; we often decontainerize.
09:48 jnthn So could just be probability
09:48 jnthn But worth a closer look
09:51 jnthn phenny: ask [Coke] if #105018 was tested on Windows. If so, it's a bug with :args['--x'] option handling in the test utility thing, which I didn't manage to figure out yet...
09:51 phenny jnthn: I'll pass that on when [Coke] is around.
09:54 jrockway joined #perl6
09:56 mls morning perl6
09:56 mls I saw the same segfault when fixing the recursion bug, it seems to be a GC issue
09:56 mls i.e. some write barrier is missing
09:57 * sorear sleep
09:57 moritz \o mls
09:58 mls it crashed because STABLE(var)->container_spec was 1
09:59 mls (and 1 is not a good pointer ;) )
10:01 mls (Actually I had a "find_in_cache" in the backtrace which is missing in moritz' gist. I suspect it was inlined.)
10:01 dakkar joined #perl6
10:01 Timbus .oO( Image of a giant foam hand with '#1' on it )
10:04 Woodi found lastly OOP critiques that method call (message sending in Smalltalk) is synchronous. and realy they are in current OO languages... Actor model look seems to be proposition to make comunication asynchronous... FlowBasedProgramming is nice technology from 1970s :) and Comega from MS uses chords for concurency - sets of async and sync method calls: http://research.microsoft.com/en-us/um/camb​ridge/projects/comega/doc/comega_whatis.htm
10:04 Woodi and about Flow Based Programming vs OO: http://www.jpaulmorrison.com/fbp/oops.shtml
10:05 Woodi now I kind a understand TimToady silence on concurency topics :)
10:07 arlinius joined #perl6
10:10 kfo joined #perl6
10:15 serkfir joined #perl6
10:16 mls I wonder how pc_positionals[i].type == BIND_VAL_OBJ can be true, isn't BIND_VAL_OBJ supposed to be only used in type Rakudo_BindVal and not in Pcc_cell?
10:17 serkfir left #perl6
10:18 mls or is that a workaround for a not defined "PMCCELL" (which happens to have the same value)?
10:21 koban joined #perl6
10:21 mls (and shouldn't it only call decontainerize if it is a smo?)
10:22 koban left #perl6
10:22 jnthn mls: The BIND_VAL_OBJ and friends exactly match the flags used by .type
10:23 jnthn mls: Which decontainerize are you looking at? I suspect the answer is "we either coerced to a smo or died by this point"
10:23 mls the one in find_in_cache
10:24 mls called from Rakudo_md_dispatch
10:24 jnthn ...context?
10:24 jnthn oh
10:24 jnthn mls: Hm, good point.
10:25 jnthn If a non-smo is getting in there, it won't be good.
10:26 jnthn .oO( The answer to "is 6model stable enough for Parrot yet" is probably "please just do it yesterday!" :) )
10:27 jnthn mls: Looks like a fix is needed there, anyway.
10:27 daxim joined #perl6
10:46 kfo joined #perl6
10:50 moritz jnthn: I still can't stub X::BufAsStr in the setting :(
10:50 moritz and package X { } is gone
10:51 moritz nom: my class A::B { ... }; my class A::C { }; my role A::D { }; my class A::B { }
10:51 p6eval nom 8c7089: OUTPUT«===SORRY!===␤The following packages were stubbed but not defined:␤    A::B␤␤»
10:52 moritz nom: my class A::B { ... }; my class A::C { }; my class A::B { }
10:52 p6eval nom 8c7089: OUTPUT«===SORRY!===␤The following packages were stubbed but not defined:␤    A::B␤␤»
10:52 masak nom: my class A::B { ... }; my class A::B {}
10:52 p6eval nom 8c7089: OUTPUT«===SORRY!===␤The following packages were stubbed but not defined:␤    A::B␤␤»
10:52 masak nom: my class A { ... }; my class A {}
10:52 p6eval nom 8c7089:  ( no output )
10:52 jnthn nom: class A::B { ... }; class A::B {}
10:52 p6eval nom 8c7089:  ( no output )
10:53 masak so, necessary components: 'my', and '::'
10:53 moritz I should update the ticket
10:54 jnthn moritz: In Grammar.pm, inside package_def
10:54 jnthn if $*ST.already_declared($*SCOPE, $*OUTERPACKAGE, $outer, @name) {
10:54 jnthn Worth knowing if that's returning false in this case
10:56 masak jnthn: will we at some point see a rename of $*ST to something like $*W ?
10:57 jnthn moritz: try this totally untested patch: https://gist.github.com/1415817
10:57 jnthn masak: Yes.
10:57 jnthn masak: There's no reason for it not to have already happened other than it's an internal detail and there's many external details that people finding more interesting. :)
10:58 masak \o/
10:59 moritz don't change it, I'll keep writing $*ST for ages :-)
11:01 moritz jnthn: trying...
11:10 lutok joined #perl6
11:18 moritz jnthn: the patch seems to be working
11:18 jnthn nice :)
11:18 moritz I'm going to make concatenation of buffer to a string die
11:19 masak good.
11:19 moritz it's been one of my least favorite non-errors in p5 for quite some time
11:19 moritz nom: say ~Buf.new()
11:19 p6eval nom 8c7089: OUTPUT«Buf<-483643341133299054>␤»
11:19 moritz I found this not very useful
11:19 jnthn Yes, there's no good way to DWIM in that case, so refusal is better.
11:19 moritz nom: say Buf.new() ~ ' foo'
11:19 p6eval nom 8c7089: OUTPUT«Buf<-7689102089863646801> foo␤»
11:20 moritz that's the current behavior, and not useful at all
11:20 jnthn heh
11:20 xinming_ joined #perl6
11:20 jnthn yeah, should just not work
11:20 masak why are those arbitrary object IDs so long nowadays? they used to be about half as long.
11:20 moritz seems they aren't hex anymore
11:22 moritz $ ./perl6 -e 'try { ~Buf.new }; say $!.WHAT'
11:22 moritz X::Buf::AsStr()
11:22 moritz \o/
11:23 jnthn nice! :)
11:24 moritz now I just need to spectest
11:25 jnthn Yeah, hope the patch holds up well in the spectests.
11:25 jnthn Worth adding a spectest for the issue too.
11:25 moritz aye
11:55 plutoid joined #perl6
12:04 bbkr I have a question about warn(). Spec says that it "Throws a resumable warning exception, which is considered a control exception, and hence is invisible to most normal exception handlers.". Does that mean eval_lives_ok should pass on warn or not?
12:05 flussence I think that means CATCH won't catch it, so if eval_lives_ok only uses that then it'll pass it on
12:06 jnthn nom: { warn "blah"; CATCH { say "I caught something!" } }
12:06 p6eval nom 8c7089: OUTPUT«blah␤»
12:06 jnthn nom: { warn "blah"; CONTROL { say "I caught something!" } }
12:06 p6eval nom 8c7089: OUTPUT«I caught something!␤blah␤»
12:10 bbkr thanks, tagging #77648 as testneeded
12:12 flussence (also I'd like to point out Niecza's Test module has subs to trap any combination of die()/warn()/fail() :)
12:13 Psyche^ joined #perl6
12:33 wk joined #perl6
12:36 tzhs joined #perl6
12:39 moritz we reallly need better exception catching tests, but I found niecza's approach a bit verbose
12:39 moritz we should also consider typed exceptions
12:40 dalek rakudo/nom: 17a2356 | moritz++ | src/ (3 files):
12:40 dalek rakudo/nom: throw typed exceptions when Buf is misused as a string
12:40 dalek rakudo/nom:
12:40 dalek rakudo/nom: Contains a patch by jnthn++ that fixes RT #104760
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/17a2356312
12:44 masak ooh! I just know of another thing to advent blog about :)
12:45 * masak adds it to the list
12:46 dalek mu: c9e8134 | (Carl Mäsak)++ | misc/perl6advent-2011/topic-brainstorming:
12:46 dalek mu: added two new potential topics
12:46 dalek mu: review: https://github.com/perl6/mu/commit/c9e81347ef
12:51 dalek roast: c3f2a9e | moritz++ | S32-io/IO-Socket-INET.t:
12:51 dalek roast: unfudge passing tests for rakudo
12:51 dalek roast: review: https://github.com/perl6/roast/commit/c3f2a9ed08
12:51 dalek roast: f7eced4 | moritz++ | S10-packages/joined-namespaces.t:
12:51 dalek roast: RT #104760, stubbing of joined namespaces
12:51 dalek roast: review: https://github.com/perl6/roast/commit/f7eced4bee
13:06 moritz nom: try { Buf.new().Str }; say $!.WHAT
13:06 p6eval nom 8c7089: OUTPUT«Mu()␤»
13:07 moritz hrmpf
13:09 moritz evalbot rebuild nom
13:09 p6eval OK (started asynchronously)
13:14 moritz turned out we still rebuilt rakudo twice an hour, and nom once per hour
13:16 jnthn oh :)
13:19 masak old habits and cronjobs die hard :)
13:20 moritz jnthn: I'm at the point now where I'd like to start throwing typed exceptions from the Actions.pm
13:20 moritz or maybe catch them in &eval, and re-throw as typed
13:21 moritz what do you think would be the best approach?
13:22 moritz I could do something like
13:22 moritz $*ST.find_symbol(['X', 'SomeException']).new(...)  and handle the case when it can't be found somehow
13:32 jnthn moritz: That probably works, modulo when we're compiling the setting :)
13:34 moritz jnthn: yes, I need to be a bit careful not to produce too sucky errors in that case :-)
13:34 jnthn moritz: Dunno if it's possible to factor it out in some way.
13:34 moritz jnthn: it probably is
13:35 jnthn moritz: And then handle the "not found" case with an immediate panic or some such.
13:35 jnthn Note that find_symbol throws if it cannot find what you ask it for
13:36 moritz I think for Actions.pm we need a wrapper that calls find_symbol, and throws a still helpful error message if find_symbol fails
13:36 masak sounds reasonable.
13:37 jnthn try_or_be_sorry { ... } # :-)
13:37 leprevost joined #perl6
13:38 moritz jnthn: in the case of $/.CURSOR.panic(...), where is the line number taken from?
13:38 jnthn moritz: CURSOR has a position and the original text
13:39 jnthn moritz: I think HLL::Compiler.lineof is passed those
13:39 jnthn moritz: And it computes the line number based on that
13:39 moritz nom: CATCH {}; CATCH {}
13:39 p6eval nom 17a235: OUTPUT«===SORRY!===␤only one CATCH block allowed at line 1, near ""␤»
13:40 jnthn fwiw, the "near" may want to look at the cursor's from rather than it's pos...maybe.
13:40 jnthn *its
13:40 moritz we also need a way to access the file name that is currently being compiled
13:40 jnthn should already be available
13:40 moritz current compile-time errors are missing that
13:40 jnthn see Actions.pm
13:40 jnthn in TOP or comp_unit
13:41 jnthn It sets a .file annotations
13:41 moritz ah, right
13:41 moritz my $file := pir::find_call_lex__ps('$?FILES')
13:45 mkramer joined #perl6
13:49 moritz nqp: my $a := try { 1 + 1 }; say($a)
13:49 p6eval nqp: OUTPUT«Can't exec "./nqp": No such file or directory at lib/EvalbotExecuter.pm line 192.␤exec (./nqp /tmp/ny337SVQJV) failed: No such file or directory␤»
13:49 moritz eh?
13:50 bluescreen10 joined #perl6
13:52 [Coke] moritz: (bundled) ok. wasn't sure if it required extra configurating. I get test failures in that file.
13:52 phenny [Coke]: 09:51Z <jnthn> ask [Coke] if #105018 was tested on Windows. If so, it's a bug with :args['--x'] option handling in the test utility thing, which I didn't manage to figure out yet...
13:53 [Coke] (t/spec/S03-operators/overflow.t, since this was from last night.)
13:53 moritz [Coke]: could you please nopaste the test output?
13:53 [Coke] jnthn: 105018 was on linux.
13:54 [Coke] moritz: momentito.
13:56 [Coke] moritz: http://feather.perl6.nl/~coke/overflow.out
13:56 [Coke] fails 28/97
13:57 moritz [Coke]: thanks. Curious
13:57 [Coke] this with a vanilla build on feather.
13:57 moritz two possibilities
13:57 moritz either another bigint error
13:57 [Coke] phenny: tell jnthn 105018 was on linux (vanilla build on feather)
13:57 phenny [Coke]: I'll pass that on when jnthn is around.
13:57 moritz or the usage of an int, where a bigint should have been used
13:58 [Coke] moritz: and I assume you're not seeing those errors?
13:58 moritz [Coke]: correct
13:58 [Coke] k. let me know if I should open a ticket.
13:59 [Coke] I can let you poke around in my rakudo build on feather for a bit, if that helps.
14:00 moritz [Coke]: oh, I know what's going on
14:00 [Coke] moritz: yeeees?
14:00 moritz the problem is that literals are polymorphic, and can be Int or int
14:00 moritz at least if the literal fits into an int
14:01 [Coke] so on feather its fitting into an int and then not changing?
14:01 moritz but that means that   <mid-sized-int> * <mid-sized-int> choses the native type int infix:<*>
14:01 [Coke] *it's
14:02 moritz [Coke]: yes, but the result doesn't fit into an int
14:02 moritz and we don't detect overflow or so
14:02 [Coke] seems like we need to be able to say "this is an int because I said so!" and "this is an int because... meh"
14:02 [Coke] (or just always overflow?)
14:03 moritz [Coke]: right, we need to be more explicit about int vs. Int
14:03 moritz and that's mostly a spec issue, IMHO
14:04 [Coke] you want to open a ticket in the right spot then? ;)
14:05 moritz [Coke]: that would be appreciated, yes :-)
14:05 [Coke] no, I mean, do *you* ?;)
14:05 moritz erm
14:05 * moritz can't read
14:05 moritz yes, I should
14:07 mkramer joined #perl6
14:08 masak same situation could happen with infix:<+>, or infix:<->
14:08 moritz yes
14:09 [Coke] we require a new parrot since yesterday?
14:09 moritz yes
14:09 moritz (for socket stuff)
14:16 mtk joined #perl6
14:17 moritz summary at https://github.com/perl6/specs/issues/8
14:17 moritz (of the spec issue of int/Int literals)
14:21 [Coke] added a pointer to the spec test failures.
14:24 [Coke] nom: say 0xDEADBEEF + 0xFACE / 65536.0;
14:24 p6eval nom 17a235: OUTPUT«3735928559.97971␤»
14:24 [Coke] nom: say :16<dead_beef.face>
14:24 p6eval nom 17a235: OUTPUT«3735928559.97971␤»
14:25 [Coke] nom: say ":16<dead_beef.face>
14:25 p6eval nom 17a235: OUTPUT«===SORRY!===␤Confused at line 1, near "say \":16<d"␤»
14:25 [Coke] nom: say ":16<dead_beef.face>"
14:25 p6eval nom 17a235: OUTPUT«:16<dead_beef.face>␤»
14:25 [Coke] nom: say +":16<dead_beef.face>"
14:25 p6eval nom 17a235: OUTPUT«Failure.new()␤»
14:25 moritz try without the quotes
14:25 moritz oh, you did already :-)
14:25 [Coke] that's a regression in the same overflow.t file
14:25 moritz I think japhb++ will fix this one
14:26 [Coke] see S03-operators/overflow.t:260
14:26 [Coke] nom: say +"3"
14:26 p6eval nom 17a235: OUTPUT«3␤»
14:27 jnthn moritz: (Int vs int) yes, there's certainly some issues there.
14:27 phenny jnthn: 13:57Z <[Coke]> tell jnthn 105018 was on linux (vanilla build on feather)
14:28 overrosy joined #perl6
14:28 jnthn [Coke]: OK, then it's genuine issue then :)
14:29 mkramer joined #perl6
14:31 mkramer joined #perl6
14:35 [Coke] nom: say +":16<dead_beef>"
14:35 p6eval nom 17a235: OUTPUT«3735928559␤»
14:36 sftp joined #perl6
14:42 mkramer joined #perl6
14:42 overrosy joined #perl6
14:45 [Coke] 280 more "nom regression" instances to go. ;)
14:46 * jnthn guesses they boil down to a smaller number of underlying issues
14:46 Maddingue joined #perl6
14:47 [Coke] we'll find out if we start getting TODOs when you fix the tickets. ;)
14:47 [Coke] er, TODO passings.
14:48 ribasushi joined #perl6
14:52 mkramer joined #perl6
14:52 [Coke] see lue?
14:52 [Coke] aloha, seen lue?
14:52 aloha [Coke]: lue was last seen in #perl6 8 days 13 hours ago saying "right now, I don't think so.".
14:53 [Coke] phenny: ask lue what he meant by the comment at the top of S32-list/minmax.t
14:53 phenny [Coke]: I'll pass that on when lue is around.
14:55 [Coke] nom: say (-10..10).min: { abs $^a <=> abs $^b }
14:55 p6eval nom 17a235: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in method min at src/gen/CORE.setting:1232␤  in block <anon> at /tmp/FOX6arzPat:1␤  in <anon> at /tmp/FOX6arzPat:1␤»
14:56 [Coke] nom: say (1,4,-2).min: { abs $^a <=> abs $^b }
14:56 p6eval nom 17a235: OUTPUT«1␤»
14:58 overrosy joined #perl6
14:59 masak [Coke]: I think I know what he means.
15:00 masak [Coke]: he expects <5 -3 7 0 1 -9> to produce a list of Int, not a list of Str.
15:00 masak or at least objects that compare like Ints, not like Strs.
15:01 colomon That's right by the spec, isn't it?  Some sort of hybrid Int/Str is supposed to be produced, as I recall.
15:01 masak the spec says this should be so: objects of an anonymous subtype of Str with Intish behaviour should be produced. personally, I still feel uneasy about that kind of type hybrids.
15:01 mkramer joined #perl6
15:01 masak but... it's spec.
15:01 masak so that's what lue is referring to.
15:02 masak he was probably bitten by the numbers sortign stringishly.
15:02 colomon +1 to uneasy
15:02 masak people ran into this in szabgab++'s class in Oslo 2009 when they read integers from input and did .sort on them. same thing.
15:03 itz where was the perl6 advent calender?
15:03 [Coke] I don't think we should be relying on that in a file that tests other things.
15:03 jnthn Me either
15:03 [Coke] I think that's a separate test.
15:03 jnthn also, we make it easy to say how you want to sort
15:03 jnthn $foo.sort: *.Numeric
15:03 [Coke] nom: (0, NaN).min
15:03 p6eval nom 17a235:  ( no output )
15:03 [Coke] nom: say (0, NaN).min
15:04 p6eval nom 17a235: OUTPUT«0␤»
15:04 colomon itz: http://perl6advent.wordpress.com/
15:04 itz ty
15:05 jnthn ooh, is it my turn tomorrow? :)
15:05 moritz jnthn: yes :-)
15:05 jnthn \o/
15:06 [Coke] lue expects NaN to be min'er than 0. I would expect... a Failure?
15:06 [Coke] Hurm. I guess NaN is pretty much numeric failure.
15:07 [Coke] (hey, why don't we respec NaN to just be Failure in a numeric context?)
15:07 moritz that's kinda the idea
15:07 [Coke] nom: say 3+NaN
15:07 p6eval nom 17a235: OUTPUT«NaN␤»
15:07 mkramer joined #perl6
15:08 [Coke] niecza: say (0, NaN).min
15:08 p6eval niecza v12-2-geb42dfa: OUTPUT«Unhandled exception: Unable to resolve method min in class Parcel␤  at /tmp/FSiaxuWLtF line 1 (mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2224 (ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2225 (module-CORE @ 58) ␤  at /home/…
15:08 [Coke] perl6: say min(0,NaN)
15:08 p6eval niecza v12-2-geb42dfa: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤      'min' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 880 (die @ 2) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1139 (P6.comp_unit @ 32) â�¤  at /home/p…
15:08 p6eval ..pugs b927740: OUTPUT«NaN␤»
15:08 p6eval ..rakudo 17a235: OUTPUT«0␤»
15:11 dalek roast: 13261a2 | coke++ | S (2 files):
15:11 dalek roast: Convert to tickets for Rakudo
15:11 dalek roast: review: https://github.com/perl6/roast/commit/13261a2e57
15:12 moritz colomon++ # advent post
15:12 colomon [Coke]: yes, it's not that NaN is "min'er", it's that NaN propagates through math operations.
15:13 wolfman2000 joined #perl6
15:13 colomon niecza: say 4 min 5
15:13 p6eval niecza v12-2-geb42dfa: OUTPUT«4␤»
15:14 colomon niecza: say 4 min NaN
15:14 p6eval niecza v12-2-geb42dfa: OUTPUT«4␤»
15:14 overrosy joined #perl6
15:15 masak [Coke]: NaN is already spec'd/behaving as a kind of failure in numeric context, that propagates outwards in numeric calculations.
15:16 moritz perl6: say NaN min -Inf
15:16 p6eval niecza v12-2-geb42dfa: OUTPUT«NaN␤»
15:16 p6eval ..rakudo 17a235: OUTPUT«-Inf␤»
15:16 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "min"␤    expecting "=", operator, ":" or ","␤    at /tmp/GDq2WrMbsX line 1, column 9␤»
15:17 wolfman2000 joined #perl6
15:18 tadzik hello #perl6
15:18 mkramer joined #perl6
15:18 jnthn o/ tadzik
15:18 moritz \o tadzik
15:19 colomon o/
15:19 PerlJam What does Niecza have that Rakudo doesn't?   I seem to recall you could easily interface with graphics libs and such through CLR
15:19 tadzik 2-star programmer is the one who can handle pointers to pointers. I wonder how many stars do you need to handle pointers to function pointers :)
15:19 tadzik (syntactically)
15:19 * PerlJam hasn't played with Niecza enough
15:19 colomon PerlJam: also FatRats.
15:19 moritz tadzik: can I motivate you to write O(2) posts for the advent calendar?
15:19 moritz PerlJam: LTM outside of proto regexes
15:19 jnthn tadzik: Just two stars, I guess :)
15:19 colomon better  error messages
15:20 moritz PerlJam: http://perl6.org/compilers/features answers that question nicely too
15:20 wolfman2000 joined #perl6
15:20 tadzik moritz: naturally, but I can't allocate almost any time during the upcoming week or such
15:20 tadzik I can write something about Pod
15:20 jnthn Is there anything blocking FatRat in Rakudo other than tuits to do it?
15:20 tadzik jnthn: ah, the challenge :)
15:21 colomon jnthn: not that I know of
15:21 moritz rakudo has fat rats, but they are just called 'Rat' atm :-)
15:21 PerlJam moritz: that's a little lower level than I was thinking.
15:21 jnthn tadzik: If you want to practice pointer skills, hack on NCI :)
15:21 tadzik warning: incompatible pointer types passing 'void (**)(void *)' to parameter of type 'void *(*)(void *)'
15:21 colomon jnthn: I saw there was a rational branch, which I assumed was someone working on it already?
15:21 tadzik I even tried shotgun coding and even that didn't help :P
15:21 jnthn colomon: Sounds like a rational guess.
15:21 moritz yes, that was me
15:21 moritz but I didn't get far
15:21 PerlJam I was going to write a topic idea for the advent calendar to the tune of "stuff Niecza has that Rakudo doesn't"  but the idea is to showcase the other things Perl 6 can do that aren't so ... languagey
15:22 moritz compilation hangs, and I don't know why
15:22 colomon moritz: were you actually tackling the Rational role?
15:22 moritz colomon: yes, I tried to implement FatRat as Rational[Int, Int]
15:22 moritz and Rat as [Int, UInt128] or so
15:23 colomon right
15:23 mkramer joined #perl6
15:23 [Coke] PerlJam: seems like that'd be a great post for sorear.
15:23 PerlJam [Coke]: indeed.
15:24 colomon I was hoping mberends might do a Tetris in niecza Advent post...
15:24 moritz phenny: ask mberends if he wants to d a p6advent post on Tetris in niecza
15:24 phenny moritz: I'll pass that on when mberends is around.
15:25 mkramer joined #perl6
15:27 takadonet joined #perl6
15:28 takadonet left #perl6
15:30 wolfman2000 joined #perl6
15:35 mkramer joined #perl6
15:35 dalek rakudo/ex-from-actions: d62f8f2 | moritz++ | src/Perl6/Actions.pm:
15:35 dalek rakudo/ex-from-actions: prepare a small helper for throwing an exception from Actions.pm
15:35 dalek rakudo/ex-from-actions: review: https://github.com/rakudo/rakudo/commit/d62f8f2a2c
15:35 dalek rakudo/ex-from-actions: f961892 | moritz++ | src/ (2 files):
15:35 dalek rakudo/ex-from-actions: try to throw the first typed exception from Actions.pm; fails setting compilation
15:35 dalek rakudo/ex-from-actions: review: https://github.com/rakudo/rakudo/commit/f9618920ee
15:36 moritz jnthn: this patch makes the compilation fails with
15:36 moritz None of the parametric role variants for 'X::Comp' matched the arguments supplied.
15:36 moritz maximum recursion depth exceeded
15:37 moritz which is curious, since X::Comp is not parametric
15:37 jnthn er
15:38 jnthn Well, every role is parametric
15:38 jnthn But what it really means is something else went wrong during role compositon.
15:38 jnthn maximum recursion depth exceeded is bad news.
15:39 dalek mu: 846e321 | duff++ | misc/perl6advent-2011/topic-brainstorming:
15:39 dalek mu: Add some more p6advent ideas
15:39 dalek mu: review: https://github.com/perl6/mu/commit/846e321d93
15:39 moritz it's really just   my role X::Comp { some attributes };  my class X::Signature::Placeholder is X::Base does X::Comp { a method here }
15:39 JimmyZ joined #perl6
15:40 mkramer joined #perl6
15:40 jnthn moritz: It'll be some evil, hard to find bootstrap issue, I'm sure.
15:40 moritz :(
15:40 jnthn moritz: And it seems nobody is up for hunting those down besides me.
15:41 moritz jnthn: seems like :(
15:41 moritz jnthn: but I kinda thought that role composition in the setting worked
15:41 takadonet joined #perl6
15:41 jnthn moritz: it kinda does. :)
15:41 takadonet left #perl6
15:41 jnthn moritz: Emphasis on "kinda"
15:42 jnthn If you want to golf down exactly what it is that causes it to fail, that'd help
15:42 jnthn moritz: That is, is it the attributes?
15:42 moritz jnthn: is there anything in particular that I should avoid?
15:42 tokuhirom joined #perl6
15:42 moritz ah, that might be it
15:42 jnthn moritz: I'm not sure what it is that's at the bottom of the issue
15:43 moritz which would also explain why Rational loops
15:43 jnthn moritz: I dobut it's purely attribute related.
15:43 jnthn moritz: It *may* be tied up with public attributes in roles in the setting, at a wild guess.
15:43 jnthn (but if it is, I'm not sure why off hand)
15:43 moritz accessors are generated in Attribute.pm
15:44 plobsing joined #perl6
15:44 jnthn Yes
15:44 jnthn But we must use accessors elsewhere in the setting.
15:45 moritz yes, but not in roles, I assume
15:45 jnthn Maybe not
15:45 jnthn If that's the bug, it'd kinda prevent us doing so ;)
15:46 moritz oh!
15:46 moritz I accidentally duplicated role X::Comp
15:46 moritz so it might be an ambiguous dispatch that's wrongly reported
15:46 sorear good * #perl6
15:47 moritz \o sorear
15:47 colomon o/
15:47 jnthn o/ sorear
15:47 jnthn moritz: oh!
15:47 moritz nom: role A { }; role A { }; class B does A { }
15:47 p6eval nom 17a235: OUTPUT«===SORRY!===␤None of the parametric role variants for 'A' matched the arguments supplied.␤Ambiguous dispatch to multi '_block1382'. Ambiguous candidates had signatures:␤:(Mu)␤:(Mu)␤␤»
15:48 moritz ah, maybe it loops while generating the 'Ambiguous candidates' message
15:48 jnthn oh!
15:48 jnthn that's very possible.
15:50 mkramer joined #perl6
15:50 tokuhirom joined #perl6
16:04 JimmyZ joined #perl6
16:06 moritz nqp: say(1)
16:06 p6eval nqp: OUTPUT«Can't exec "./nqp": No such file or directory at lib/EvalbotExecuter.pm line 192.␤exec (./nqp /tmp/me8eoIjIdw) failed: No such file or directory␤»
16:08 moritz oh, dyncall version switch broke nqp build
16:08 * moritz tries after  git clean -xdf
16:11 mkramer joined #perl6
16:14 mkramer joined #perl6
16:14 Trashlord joined #perl6
16:18 UncleFester6 joined #perl6
16:27 mkramer joined #perl6
16:33 TimToady moritz: https://github.com/perl6/specs/issues/8 is already largely covered by S02:705 and S09:106
16:33 TimToady constant folds are just one form of "temporary value"
16:35 jnthn TimToady: It's maybe more problematic in the case of
16:35 jnthn multi m(Int) { }
16:35 jnthn multi m(int) { }
16:36 jnthn m(0x7FFFFFFF)
16:36 jnthn well, provided the multis do something :)
16:36 jnthn Maybe that's DIHWI... though :)
16:36 masak no, it seems like a fairly fundamental question.
16:36 TimToady the default should not be to recreate the bugs of C
16:37 * masak .oO( doctor, it hurts when I C )
16:37 jnthn Which particular bug is this a case of? :)
16:37 TimToady so by default, native types are only storage constraints, and intermediate values mustn't lose info
16:38 TimToady if that means infix:<+>(int,int) must return Int, so be it
16:38 masak ok, that's an easy enough rule.
16:38 jnthn er, what?
16:38 jnthn So
16:38 TimToady we aren't trying to reproduce C's bugs
16:39 masak I think it has to return Int.
16:39 TimToady the default is to do it right
16:39 TimToady a pragma can turn on C's bugs if we want speed
16:39 jnthn loop (int $i = 1; $i < blah; $i = $i + 1) { ... }
16:39 masak but then wouldn't the user need to cast explicitly a lot?
16:39 masak probably what jnthn++ is getting to above... :)
16:39 jnthn You're saying that instead of that being allocation-free, it's going to have to make a laod of Int objects just in case?
16:39 jnthn *load
16:40 TimToady that's probably the correct default for code that has not been proven "hot"
16:40 jnthn I agree if you never mention a native type constraint in your code, you probably should never expect native ints.
16:41 jnthn But once you do...it's clear enough that you're opting in, no?
16:41 snearch joined #perl6
16:41 TimToady the initial opt-in is for storage, not bugs
16:42 jnthn er, apart from in the case above you're never going to be able to store the result without overflowing anyway...
16:42 jnthn 0x7FFFFFFF * 0x7FFFFFFF overflowing is clearly wrong. That's certainly a bug.
16:42 TimToady well, we can probably optimize your loop if we know the limit
16:43 jnthn This is ridiculous. :/
16:43 * jnthn goes back to his $dayjob bits
16:43 * masak increments the "halting problem implicit mention" counter
16:44 TimToady this has been specced for a long time
16:44 TimToady and when people say "correctness first", everyone nods their heads
16:44 TimToady it seems to have suddenly gone out of style :)
16:45 masak I'm all for it. :)
16:45 masak but I'd like to not throw out the performance with the buggy bathwater, too.
16:45 masak s/performance/performance baby/
16:45 TimToady profile, then cheat
16:46 masak nodnod
16:46 jnthn I'd assumed that writing native type annotations was the way you said to the compiler "feel free to cheat here"
16:47 kaare_ joined #perl6
16:47 jnthn I'm not arguing that it should cheat without being given that hint.
16:47 TimToady it can be, in some context that probably should not be the default
16:47 jnthn I do think that if I carefully wrote native types on all my variables, then the operators I use on them should not be going creating Int objects in the meantime.
16:48 TimToady that's getting into type inference, I think
16:48 TimToady which is perhaps the mechanism by which we optimize that loop
16:50 TimToady but it does indicate we need to think about native/non-native return polymorphism as something that is known at compile time
16:50 jnthn Well, much of the native stuff hangs off "known at compile time"
16:51 jnthn But I really don't like the idea that (int, int) --> Int
16:51 jnthn I'd expect *either* to be doing (Int, Int) --> Int, or (int, int) --> int
16:51 masak 'my Int $a = 42; my int $b = $a' # does this typecheck at compile-time?
16:51 masak 'my Int $a = 10 ** 10; my int $b = $a' # does this fail at runtime?
16:51 jnthn masak: unboxing to native types currently never fails.
16:52 jnthn masak: Provided the type on the RHS knows how.
16:52 masak ok, good.
16:52 TimToady that also is not according to spec
16:52 jnthn TimToady: Which bit?
16:52 TimToady not checking for overflow on storage to a native type
16:53 masak I don't follow.
16:53 masak either we don't check, or we can't do jnthn's native for loop above.
16:55 TimToady if we know the limit of the loop is smaller than maxint, then we've done our check outside the loop
16:56 jnthn If we're going to make it this hard for the compiler to do anything efficient with native types, they're probably a waste of time.
16:56 TimToady there are way too many security holes on the internet that arise from C's cavalier attitude toward overflow
16:56 masak right, but the '$i = $i + 1' part tries to store an Int in an int.
16:58 TimToady which is why the compiler would need to know how to substitute --> int for --> Int if we do the optimization, my reference to "return polymorphism" above
16:59 benabik joined #perl6
16:59 TimToady I have no trouble with a pragma that says "use temp :native", but I just don't think it should be the default
17:02 TimToady it's possible that my argument has less weight in the 64-bit world than the 32-bit world, but I don't know what percentage of integer overflow attacks depend on the size of the integer
17:02 moritz TimToady: S09:106 sounds rather disturbing to me, from the POV of optimizations
17:02 TimToady my gut feel is that most of such attacks don't care that much about 32 vs 64
17:03 moritz it means that things like   my int $x = ...; $x + $x + $x cannot use 'int' semantics ever
17:03 jnthn TimToady: It just feels like you want another level of configurability, when Int vs int already gave us one.
17:03 moritz becaue the intermediate result from the first addition might not fit into an int
17:03 jnthn moritz: Exactly.
17:03 moritz so, no native operations even with native types. Ugh.
17:03 TimToady I never said that
17:03 moritz no, the spec says that
17:04 TimToady BY DEFAULT
17:04 TimToady "in the absence of declarations or explicit casts to the contrary"
17:04 * masak decommutes
17:04 TimToady I include "use native" in declarations
17:05 TimToady I wouldn't push this quite so hard if it weren't a security issue
17:05 MayDaniel joined #perl6
17:05 TimToady I love speed too...
17:07 TimToady I'd be okay with detecting overflow consistently too; it's silent overflow that is the problem
17:09 TimToady maybe it's "no strict :overflow" that we're looking for
17:13 fsergot joined #perl6
17:13 fsergot hi perl6! o/
17:13 TimToady howdy
17:17 tadzik hello fsergot
17:18 hundskatt joined #perl6
17:30 moritz hi fsergot. Do you want to write a post for the perl 6 advent calendar?
17:31 wolfman2000 joined #perl6
17:41 Woodi "Native types are primarily intended for declaring compact array storage", can it be just 'compact' and 'native' predeclaration statements ? having Int and int look ugly at least... and all optimizations can be done or not by optimizer
17:41 PerlJam moritz: is that going t be the greeting for everybody until we've filled them all?  :)
17:44 Woodi two day ago readed review of "Nature of order" by Christoph Alexander and hi sugests that what is beauty that is usulay more functional too. all that flowers beauty is efect of evolution technical specialization
17:45 kaleem joined #perl6
17:46 * PerlJam scrolls back to read the int/Int discussion
17:47 wooden joined #perl6
17:49 Woodi and me thinks that Perl should alway be "higher level" by having at least "membrane" or vm betwen implemented-in language and Perl level code. optimizations can be done by using NCI modules/functions
17:56 Woodi and (last one :) ) me thing that should be perl6 interpreter written in C becouse programming in private intermediate language will/can be more stopper in A.D. 2025 then just plain hacking terribly C code. that happend to Perl5 and becouse it is C ppls still can hack it with one level less of cognitive troubles... and after all C is portable assembler for speed and portability :)
17:56 nornagest joined #perl6
17:57 * Woodi out for few mins
17:57 ethndbst joined #perl6
17:57 PerlJam Woodi: Are you claiming that hacking Perl 5 is *easy* compared with having a VM?
18:05 moritz PerlJam: yes, I'm trying very hard to fill the slots
18:05 moritz and to attract fresh contributors, of course
18:05 donri joined #perl6
18:06 PerlJam moritz: sounds like a good advent article  ;)
18:24 bluescreen10 joined #perl6
18:27 masak PerlJam: what, an advent article about filling the slots? sounds like a last-ditch filler article to me :P
18:28 PerlJam no, about attracting fresh contributors ... something that would get people fired up
18:34 moritz PerlJam: I tried that (with some success) with the challenges... but it was a lot of work
18:39 mkramer1 joined #perl6
18:45 dalek rakudo/ex-from-actions: dbee3a0 | moritz++ | src/ (2 files):
18:45 dalek rakudo/ex-from-actions: file name and line need to be Perl 6 values
18:45 dalek rakudo/ex-from-actions: review: https://github.com/rakudo/rakudo/commit/dbee3a01fe
18:46 jnthn moritz: Did removing the dupe fix the issue from earlier?
18:49 moritz jnthn: yes, thanks
18:49 jnthn moritz: OK, good to know. :)
18:50 jnthn (sorry if it shoulda been obvious and I missed it...been taking care of $dayjob things :))
18:50 * moritz should have noticed too :-)
18:50 moritz now
18:50 moritz > eval q[sub f() { $^x }]; say $!.WHAT
18:50 moritz
18:50 moritz (empty line, that is)
18:51 jnthn eek
18:51 moritz even  nqp::say(pir::typeof__SP($!)) produces an empty line
18:52 jnthn o.O
18:52 moritz erm
18:52 moritz the eval probably dies
18:53 moritz and the REPL catches it
18:53 moritz producing an empty line
18:53 jnthn oh :)
18:53 moritz and the say() is never executed :-)
18:53 jnthn ah yes, because eval doesn't catch exceptions :)
18:53 * jnthn is still getting used to that
18:53 dalek mu: 45f5498 | duff++ | misc/perl6advent-2011/ (2 files):
18:53 dalek mu: claim a day
18:53 dalek mu: review: https://github.com/perl6/mu/commit/45f54982c0
18:53 moritz $ > try { eval q[sub f() { $^x }] }; say $!.WHAT
18:53 moritz X::Signature::Placeholder()
18:53 moritz \o/
18:54 jnthn nice :)
18:57 moritz just... the message is gone :(
19:02 mkramer joined #perl6
19:10 dalek rakudo/nom: 46f72c8 | duff++ | src/Perl6/Grammar.pm:
19:10 dalek rakudo/nom: fix typo in error msg
19:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/46f72c8e8f
19:11 diakopter flip flip indeed
19:13 mkramer joined #perl6
19:16 birdwindupbird joined #perl6
19:16 birdwindupbird left #perl6
19:20 masak perl6: say flip flip "flip"
19:21 p6eval pugs b927740: OUTPUT«*** No such subroutine: "&flip"␤    at /tmp/CciSIePpla line 1, column 5 - line 2, column 1␤»
19:21 p6eval ..rakudo 17a235, niecza v12-2-geb42dfa: OUTPUT«flip␤»
19:22 wk joined #perl6
19:25 MayDaniel joined #perl6
19:38 ethndbst joined #perl6
19:45 zby_home_ joined #perl6
20:14 arlinius joined #perl6
20:15 moritz nom: say 1.^isa(X::Comp)
20:15 p6eval nom 46f72c: OUTPUT«0␤»
20:15 moritz nom: say 1.^does(X::Comp)
20:15 p6eval nom 46f72c: OUTPUT«Bool::False␤»
20:17 wk joined #perl6
20:29 molaf joined #perl6
20:34 mkramer joined #perl6
20:37 localhost joined #perl6
20:38 moritz hrmpf
20:39 moritz I seem to have completely broken error reporting completely in my branch :/
20:43 Tene moritz: as long as there are no errors, that's okay!
20:51 mkramer joined #perl6
20:54 mkramer1 joined #perl6
20:58 mkramer joined #perl6
20:59 fsergot joined #perl6
21:06 mkramer joined #perl6
21:12 Trashlord joined #perl6
21:14 mkramer joined #perl6
21:15 jnthn 11 files changed, 176 insertions(+), 826 deletions(-)
21:15 jnthn ...I like those commits.
21:15 [Coke] \o/
21:17 colomon \o/
21:23 hundskatt joined #perl6
21:26 mkramer joined #perl6
21:28 benabik jnthn: Don't delete that! It's important!  (Or maybe not..)
21:31 mkramer1 joined #perl6
21:32 jnthn benabik: Same functionality, just better factoring. :)
21:33 [Coke] NO, REFACTORS ARE BAD, KITTY!
21:33 mkramer joined #perl6
21:34 jnthn oh, calm down, it's not like I did a rewrite :P
21:35 diakopter what did you not rewrite
21:35 jnthn 6model :)
21:38 mj41 joined #perl6
21:40 Tene it's not deleted; it's still in git history. ;)
21:40 [Coke] so if we ever want to move our tickets to github, I hear alester does good work. ;)
21:40 alester DAMN YOU COLEDA
21:40 benabik :-D
21:41 benabik You'll have to move all your tickets from RT to trac first. ;-)
21:42 tadzik oh joy :)
21:42 packetknife joined #perl6
21:42 [Coke] HA!
21:42 [Coke] that was my gig for parrot. ain't doing that again.
21:43 [Coke] (of course I did it by hand because I'm an idiot.)
21:43 tadzik Showing 11 changed files with 96 additions and 746 deletions
21:43 tadzik wtf, where did you put that! :D
21:43 dalek nqp: 139fb76 | jnthn++ | src/6model/sixmodelobject.h:
21:43 dalek nqp: Split attribute and boxed parts of the REPR function table out into sub-tables. Breaks everything, of course.
21:43 dalek nqp: review: https://github.com/perl6/nqp/commit/139fb760c4
21:43 dalek nqp: 851deb3 | jnthn++ | src/6model/reprs/ (11 files):
21:43 dalek nqp: Initial attempt to update representations for the sub-table change. Many bits of copy-paste boilerplate go away.
21:43 dalek nqp: review: https://github.com/perl6/nqp/commit/851deb3d49
21:43 dalek nqp: 092915a | jnthn++ | src/6model/repr_registry.c:
21:43 dalek nqp: Update representation registry to put default not implemented stubs in the sub-tables if they're not initialized.
21:43 dalek nqp: review: https://github.com/perl6/nqp/commit/092915a543
21:43 dalek nqp: b93593f | jnthn++ | src/pmc/sixmodelobject.pmc:
21:43 dalek nqp: Update 6model wrapper PMC for REPR changes.
21:43 dalek nqp: review: https://github.com/perl6/nqp/commit/b93593fddf
21:43 dalek nqp: c098088 | jnthn++ | src/6model/reprs/ (3 files):
21:43 dalek nqp: Couple of fixes to things that weren't quite right in the REPR updates.
21:43 dalek nqp: review: https://github.com/perl6/nqp/commit/c098088b48
21:44 dalek nqp: af15c58 | jnthn++ | src/6model/knowhow_bootstrapper.c:
21:44 dalek nqp: Update to get 6model core to build agian.
21:44 dalek nqp: review: https://github.com/perl6/nqp/commit/af15c58e38
21:44 dalek nqp: 780c4a3 | jnthn++ | src/ops/nqp (3 files):
21:44 dalek nqp: Fix ops...and we have a working/test-passing NQP build again.
21:44 dalek nqp: review: https://github.com/perl6/nqp/commit/780c4a367a
21:44 diakopter agh
21:44 jnthn diakopter: apologies for commiting stuff. :P
21:46 masak try not to do it again :P
21:48 dalek rakudo/nom: b9aa5be | jnthn++ | / (6 files):
21:48 dalek rakudo/nom: Bump to latest NQP, and some updates to adapt to REPR changes.
21:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b9aa5be40b
21:48 jnthn ooops, I did it agian
21:48 masak \o/
21:48 jnthn </britney_voice>
21:48 tadzik I played with your code
21:49 tadzik got lost in the forks
21:49 jnthn oh save me, save me!
21:49 masak but I'm not that invocant
21:49 mkramer joined #perl6
21:49 PerlJam That's a nice little cascade ...new nom requires new nqp requires new parrot
21:50 jnthn The fallout of that refactor should be nothing observable. :)
21:50 [Coke] ok, tadzik's were fine, but masak's is GROANable.
21:50 masak :P
21:50 PerlJam I *liked* masak's
21:50 jnthn ...apart from it unblocks me to work on CArray and removes a bunch of copy/paste that has bothered me for ages.
21:50 [Coke] PerlJam: that didn't require a new parrot, I don't think.
21:51 tadzik \o/
21:51 PerlJam [Coke]: it did on my box  :)
21:51 tadzik masak: we should start a band
21:51 [Coke] you just need to update more often. ;)
21:51 jnthn No, my set didn't, though there was a PARROT_REVISION bump earlier today by moritz++
21:51 tadzik or you can join Ąkancyrantia :)
21:51 PerlJam [Coke]: clearly.
21:51 masak tadzik: Tadeusz and the Britneys
21:52 tadzik it's more understandable than Ąkancyrantia, indeed
21:52 [Coke] masak: so why aren't you mäsak on irc?
21:52 masak phenny: "Ąkancyrantia"?
21:52 phenny masak: Language guessing failed, so try suggesting one!
21:53 masak phenny: pl "Ąkancyrantia"?
21:53 phenny masak: The pl to en translation failed, sorry!
21:53 tadzik masak: it's a made up word :)
21:53 masak oh!
21:53 tadzik it means the time interval between the sound of the beer opening and the sound of the bottle cap hitting the floor
21:53 jnthn :D
21:53 [Coke] also, there has GOT to be an easier way to type ä than alt-0228 :P
21:53 masak [Coke]: I used to be less UTF-8-friendly than I am now. :)
21:53 benabik tadzik: i.e. the time it takes you to drink it?
21:54 tadzik benabik: nah, the time when the cap falls
21:54 benabik tadzik: You have to drink quickly. ;-)
21:54 tadzik I guess so :)
21:54 jnthn If you tape yourself to the ceiling, you get more time.
21:54 jnthn Or open it on the moon.
21:55 * jnthn ponders what pouring a beer would look like in a lower-gravity environment
21:55 tadzik the cap may fly away and confuse astronauts
21:56 tadzik jnthn: it'd fly horizontally :P Imagine that
21:56 tadzik you turn thebottle, and it goes sideways
21:57 jnthn Wow. You'd think you'd had too much before you even started. :P
21:57 tadzik :)
22:00 benabik I think you've already had too much if you're taping yourself to the ceiling and thinking you're on the moon. ;-)
22:03 * [Coke] finally enables the international keyboard input on his windows laptop so he can type mäsak!
22:03 masak \o/
22:03 masak but then it won't highlight here... :)
22:03 [Coke] Makes it super hard to type "a now, but that's fine. ;)
22:03 [Coke] you need a better client! ;)
22:05 diakopter just have it highlight on  sak
22:08 diakopter oops I just accidentally reset --hard
22:10 Tene yay reflog
22:11 benabik joined #perl6
22:17 diakopter too bad I hadn't committed
22:17 mkramer joined #perl6
22:19 benabik git-reset needs a reset.interactive config option (like rm -i)
22:26 am0c joined #perl6
22:33 masak blog post! \o/ http://strangelyconsistent.org/blog​/macros-progress-report-a-bit-of-d1
22:33 masak I don't blog often enough nowadays :)
22:37 mkramer joined #perl6
22:41 jnthn e
22:41 jnthn oops
22:42 * masak mimes an empty file for jnthn
22:43 Tene masak: no, you don't.
22:43 Tene benabik: you can make your own with an alias
22:43 benabik Tene: Yes, but I want it to stop me from using reset --hard.  ;-D
22:44 benabik Although I suppose I could bash alias git to something else that modifies reset.  Blah.  Easier to just hack git.git
22:47 masak ok, I'm going on a short two-week leave. not sure I'll be on IRC much. will miss y'all.
22:48 masak &
22:48 jnthn .oO( gee, I'm glad it's a short two weeks, not a long two weeks :) )
22:49 f00li5h joined #perl6
22:51 jnthn grr, this sized type stuff is a little bit tricky :)
22:51 PerlJam masak: When do you guess you'll merge into nom?
22:51 PerlJam masak: in any case, a forward-looking advent post on macros might be nice ;)
22:52 benabik PerlJam: Probably not in the next two weeks, since he just said he was going on leave.
22:55 PerlJam indeed.  I didn't think it would be soon, just curious when it might be
23:02 wolfman2000 joined #perl6
23:02 jnthn I asked recently if "before the Dec nom relesae" was likely, and the answer was "maybe". But I think for the January release is more likely.
23:07 mkramer joined #perl6
23:10 felher masak: Bye :(
23:12 * Tene very tempted to work on masak's macros branch.
23:24 benabik_ joined #perl6
23:36 orafu joined #perl6
23:51 dalek nqp: 60ed59a | jnthn++ | src/6model/sixmodelobject.h:
23:51 dalek nqp: First sketch out the indexable representation function table.
23:51 dalek nqp: review: https://github.com/perl6/nqp/commit/60ed59a254
23:51 dalek nqp: e07a169 | jnthn++ | src/6model/repr_registry.c:
23:51 dalek nqp: Initialize indexable REPR function table for REPRs that don't support it.
23:51 dalek nqp: review: https://github.com/perl6/nqp/commit/e07a169f70
23:51 dalek nqp: 0b0638b | jnthn++ | src/6model/reprs/ (11 files):
23:51 dalek nqp: Allocate ready zeroed out memory for REPR function tables, meaning we're more future-proof, but also can delete a bunch of ... = NULL assignments.
23:51 dalek nqp: review: https://github.com/perl6/nqp/commit/0b0638b98a
23:51 jnthn OK, that's much of my pre-requisites for working on array passing for native call done. Will hack on that tomorrow. :)
23:51 tokuhirom joined #perl6
23:52 gfldex joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo