»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:00
stepnem left
00:02
Trashlord left
00:03
Trashlord joined
00:09
stepnem joined,
FordPhoenix joined
|
|||
FordPhoenix | perl6: fork while fork | 00:11 | |
p6eval | niecza v12-2-geb42dfa: OUTPUT«===SORRY!===Undeclared routine: 'fork' used at line 1,1Unhandled 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 | |
..rakudo 2b3135: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&fork' called (lines 1, 1)» | |||
..pugs b927740: OUTPUT«*** Unsafe function 'fork' called under safe mode at /tmp/dmTte77WmZ line 1, column 12 - line 2, column 1» | |||
FordPhoenix | perl6: `rm -rf /` | ||
p6eval | pugs b927740: OUTPUT«*** Unsafe function 'Pugs::Internals::runShellCommand' called under safe mode at /tmp/3RmdQHlQRd line 1, column 1 - line 2, column 1» | ||
..niecza v12-2-geb42dfa: OUTPUT«===SORRY!===Bogus statement at /tmp/ZYi4tyWl2H line 1:------> <BOL>⏏`rm -rf /`Parse failed» | |||
..rakudo 2b3135: OUTPUT«===SORRY!===Confused at line 1, near "`rm -rf /`"» | |||
diakopter | FordPhoenix: please stop :/ | ||
FordPhoenix | my frand told me 2 sry | 00:13 | |
00:14
overrosy left
|
|||
FordPhoenix | say hi 2 omgle vido chat =]!! | 00:14 | |
00:14
overrosy joined
|
|||
sorear | Could you try correct spelling and grammar? I can't understand you. | 00:15 | |
tadzik | <obligatory "what if your friend told you to smack your head with a hammer"> | 00:16 | |
FordPhoenix | i rpbly wuld | ||
it sound rly fun | |||
b r b smaking hed with hamrr | |||
i showing it 2 my frand on omgle [= | 00:17 | ||
diakopter | I assume you mean the anonymous video chat site omegle | 00:18 | |
FordPhoenix | ya | ||
tadzik | omg | ||
;) | |||
FordPhoenix | [O]h [M]y [G]öÐ | 00:19 | |
jnthn | .u öÐ | ||
phenny | U+00F6 LATIN SMALL LETTER O WITH DIAERESIS (ö) | ||
U+00D0 LATIN CAPITAL LETTER ETH (Ð) | |||
00:20
arlinius left
|
|||
FordPhoenix | ⓗⓐⓗⓐⓗⓐⓗⓐⓗⓐⓗⓐ | 00:20 | |
diakopter | I tire of you | ||
00:22
overrosy left
|
|||
FordPhoenix | diakopter: ¯¯¯º [£]àuGhz [O]u+ [L]oÙÐ º¯¯¯ | 00:22 | |
00:23
FordPhoenix left
|
|||
jnthn | aol. | 00:23 | |
00:24
FordPhoenix joined,
overrosy joined
|
|||
sorear | FordPhoenix: That kind of behavior is not welcome here. | 00:25 | |
00:25
ChanServ sets mode: +o diakopter,
FordPhoe1ix joined
00:28
FordPhoenix left
00:29
overrosy left
00:30
overrosy joined
|
|||
jnthn | 'night, #perl6 | 00:30 | |
cotto | 'night | 00:31 | |
00:37
fridim_ left
00:39
overrosy left
00:45
overrosy joined,
FordPhoe1ix left
00:59
hundskatt left
01:00
kcwu left
01:01
kcwu joined
01:02
overrosy left
01:04
overrosy joined
01:07
arlinius joined
01:08
mtk left
01:14
Vlavv` left
01:17
tokuhirom joined
01:18
vmspb left,
tokuhirom left
01:19
tokuhirom joined
01:20
wolfman2000 joined
01:22
Vlavv` joined
01:24
tokuhirom left
01:31
kcwu left
01:33
plutoid joined
01:38
woosley joined
01:42
arlinius left
01:47
kcwu joined
01:51
slavik1 left
01:56
Guest75643 left
02:04
arlinius joined
02:11
overrosy left
02:13
overrosy joined
02:25
benabik joined
02:26
cooper left
02:28
shinobicl_ joined
|
|||
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:31 | |
s/it fails/ends with a segmentation fault/ | 02:32 | ||
02:33
cooper joined
|
|||
colomon | shinobicl_: what compiler? | 02:41 | |
shinobicl_ | i compiled rakudo just yesterday | 02:42 | |
perl6 -v does not seem to work | |||
so i will say that is the latest version | 02:43 | ||
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" | ||
colomon | okays, that's real recent. | 02:45 | |
it's a literal segmentation fault? | |||
shinobicl_ | yes, it's literally a "segmentation fault" | 02:46 | |
i'll try to upload my code to github.... please give me a few minutes | 02:47 | ||
colomon | no worries. | ||
shinobicl_ | there is the .t file | 02:57 | |
github.com/shinobi/TaskScheduler/b...Calendar.t | |||
this is the module | |||
github.com/shinobi/TaskScheduler/b...alendar.pm | |||
im uploading the "calendar" files used for testing | 02:58 | ||
colomon | okay, I've cloned the github repo | 03:00 | |
03:00
overrosy left
|
|||
shinobicl_ | github.com/shinobi/TaskScheduler/t...ster/t/res | 03:02 | |
03:02
overrosy joined
|
|||
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 | |
03:04
satyavvd joined
|
|||
colomon | works with ufo? | 03:04 | |
03:04
donri left
|
|||
shinobicl_ | ehmmm.. "ufo"? | 03:05 | |
colomon | standard makefile generator | ||
shinobicl_ | no, not yet | 03:06 | |
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:07 | ||
03:08
overrosy left
|
|||
colomon | apparently you don't need it with your test files anyway. :) | 03:08 | |
okay, t/WorkdayCalendar.t actually runs without crashing for me | 03:09 | ||
03:09
overrosy joined
|
|||
shinobicl_ | and if you remove "say "step 1"' and 'say "step 2"' ???? | 03:10 | |
03:11
am0c joined,
ethndbst joined
|
|||
colomon | trying... | 03:11 | |
Bus error, yup | |||
shinobicl_ | mmm sorry... "bus error"? what does that mean? | 03:12 | |
sorear | segmentation fault and bus error are two possible errors from bad pointer use | 03:13 | |
there are others | |||
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. | ||
sorear | Unix only has SIGBUS and SIGSEGV, so only two kinds of memory error can be reported | ||
shinobicl_ | i'm using a OpenVZ virtual machine... Debian i386 | ||
sorry.. i686 | 03:15 | ||
sorear | Windows can report more kinds of errors since it was designed to work with the x86 | ||
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 | ||
I don' | |||
colomon | shinobicl_: looks like you've definitely got a legit nom bug | ||
sorear | I don't think Linux/i386 uses SIGBUS at all | ||
Linux/ppc uses SIGBUS for unaligned memory access exceptions | |||
shinobicl_ | oh.. well, i'll keep those "say" too | ||
also, i got another issue, on WorkdayCalendar.t | 03:17 | ||
give a minute please | |||
sorear | traditionally, SIGSEGV comes from hardware memory protection, while SIGBUS is signalled by hardware faults | ||
colomon | shinobicl_: sure, though I'm trying to see if I can get more info on your seg fault first. ;) | ||
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. | ||
sorear | I conjecture that SIGSEGV and SIGBUS were introduced during the period of Unix history when it mostly ran on mc68k systems | ||
colomon | phenny: tell jnthn 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. | ||
colomon | okay, second problem? :) | 03:23 | |
shinobicl_ | int the test file.... commenting or uncommenting the lien with "diag "-----------------";" also seems to "change" the point where the test segfaults | 03:24 | |
colomon | shinobicl_: I get the same error either way. | 03:27 | |
shinobicl_ | mmmm | 03:30 | |
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 =" | ||
the followwin text uses single quotes | |||
changing it to double quotes also changes the behavior | |||
colomon | got it | ||
again the same. | 03:32 | ||
shinobicl_ | oh well... maybe it's an issue in my VPS | ||
colomon | Sure looks like some sort of memory error. Changing the code changes when it happens, that's all. | 03:33 | |
I ran into a couple of garbage collection errors yesterday. | |||
I suspect nom is slightly less stable than we would really like it to be at the moment. | |||
shinobicl_ | thank you very much for your help, colomon | ||
colomon | you're welcome. thank you for stressing rakudo, it's a great way to help find where the compiler still needs work | 03:34 | |
shinobicl_ | oh, no problem.. i'll stress it a lot, specially in the part of overloaded operators :) | 03:35 | |
colomon | \o/ | ||
afk # bedtime | |||
shinobicl_ | ok, good night, and thanks again! | 03:36 | |
03:36
shinobicl_ left
|
|||
[Coke] | does t/spec/S03-operators/overflow.t require a bigint lib? | 03:46 | |
03:46
hundskatt joined
03:57
ethndbst left
04:30
serkfir joined
04:34
alester_ joined
04:41
envi_ joined
04:51
ethndbst joined,
ethndbst left,
ethndbst joined
04:56
hundskatt left
05:09
mkramer joined
05:18
sftp left
05:24
mkramer left,
satyavvd left
05:29
mkramer1 joined
05:40
mkramer1 left
05:48
Eth4n joined
05:49
ethndbst left,
Eth4n is now known as ethndbst
06:05
kaleem joined
06:12
thou left
06:18
satyavvd joined,
alester_ left
06:24
satyavvd left
06:25
satyavvd joined
|
|||
moritz | [Coke]: erm, rakudo has a bigint lib, bundled with nqp :-) | 06:34 | |
dalek | kudo/nom: 6006bc7 | moritz++ | src/core/IO/Socket/INET.pm: fix get() in Socket::INET to chomp the right delimiter |
06:35 | |
06:39
hundskatt joined
|
|||
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:46 | |
*is... | 06:47 | ||
moritz | what does "see flushed socket" means? | ||
Woodi | eg: connect-port-80; $s.put("GET \ ...); $s.get; $s.recv(10); $s.get(); | 06:49 | |
second get blocks | |||
moritz | all requests block, we don't have non-blocking IO yet. | ||
06:50
koban joined
|
|||
Woodi | but it shouldnt't | 06:50 | |
moritz | what do you mean by "blocks"? | ||
Woodi | just recv read everything, and return 10 bytes as sked. | ||
I have example somewhere, will post later | 06:51 | ||
moritz | Woodi: if you only want to read 10 bytes, use .read instead of .recv | 06:52 | |
Woodi | hmm :) missed that command somehow .. | 06:53 | |
will test | |||
moritz | not sure if it's specced | ||
07:14
zby_home left
07:16
serkfir left
07:50
ethndbst left
07:52
Trashlord left
07:54
Trashlord joined
07:57
fridim_ joined
07:59
satyavvd left
|
|||
masak | 挨拶, #perl6! | 08:12 | |
08:17
mikemol left
|
|||
moritz | \o masak | 08:17 | |
08:17
mikemol joined
|
|||
masak | goal for the day: blog about progress so far with macros. maybe prepare a blog post for later for perl6advent. | 08:22 | |
08:26
mj41 joined
09:01
arlinius left,
hundskatt left
09:04
arlinius joined
|
|||
moritz | moritz.faui2k3.org/tmp/03-binary-io-buf.pod early draft of the advent post for day 3 | 09:06 | |
it kinda misses a good end | 09:07 | ||
09:08
woosley left
|
|||
masak | s/has been solved/has been addressed/ ;) | 09:13 | |
also, to my non-native ear "to and fro" indicates an osciallating motion, like weed in the wind. | 09:14 | ||
"back and forth" is probably what you wanted. | |||
moritz | thanks | ||
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 | ||
no latin-1, that's your browser's interpretation :-) | 09:17 | ||
masak | could be. | ||
yes, it said it had chosen latin-1. I set it to utf-8, and now I see the møþ :) | |||
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/ | ||
masak | hm, ss/byte values of which/byte values from which/ | 09:18 | |
moritz updates | 09:19 | ||
masak++, snarkyboojum++ | |||
masak | agree about the ending :) best of luck with it. | 09:20 | |
dalek | kudo/nom: 7d35796 | moritz++ | src/Perl6/Actions.pm: special-case 0e<big-exponent> to not perform the 10**<big-exponent> operation |
09:22 | |
kudo/nom: 8c70898 | moritz++ | lib/Test.pm: [Test.pm] restore "bad death" in dies_ok, even though we seem to produce far fewer Null PMC Accesses these days |
|||
snarkyboojum | moritz: you also don't need the "does" there before the comma, but good stuff - moritz++ :D | 09:24 | |
09:31
satyavvd joined
|
|||
jnthn | morning | 09:34 | |
phenny | jnthn: 03:22Z <colomon> tell jnthn 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. | ||
jnthn | colomon: Thanks for the backtrace. This roaming segfault seems to be claiming a growing number of victims... | 09:35 | |
moritz | seems to always happen in Rakudo_cont_decontainerize, but of course the real error might be much earlier | 09:40 | |
jnthn | moritz: Yeah; we often decontainerize. | 09:46 | |
So could just be probability | 09:48 | ||
But worth a closer look | |||
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:53
jrockway left
09:54
jrockway joined
|
|||
mls | morning perl6 | 09:56 | |
I saw the same segfault when fixing the recursion bug, it seems to be a GC issue | |||
09:56
plutoid left
|
|||
mls | i.e. some write barrier is missing | 09:56 | |
sorear sleep | 09:57 | ||
moritz | \o mls | ||
mls | it crashed because STABLE(var)->container_spec was 1 | 09:58 | |
(and 1 is not a good pointer ;) ) | 09:59 | ||
(Actually I had a "find_in_cache" in the backtrace which is missing in moritz' gist. I suspect it was inlined.) | 10:01 | ||
10:01
dakkar joined
|
|||
Timbus | .oO( Image of a giant foam hand with '#1' on it ) |
10:01 | |
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: research.microsoft.com/en-us/um/cam...whatis.htm | 10:04 | |
10:04
arlinius left
|
|||
Woodi | and about Flow Based Programming vs OO: www.jpaulmorrison.com/fbp/oops.shtml | 10:04 | |
now I kind a understand TimToady silence on concurency topics :) | 10:05 | ||
10:07
arlinius joined
10:10
kfo_ left,
kfo joined
10:15
serkfir joined
|
|||
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:16 | |
10:17
serkfir left
|
|||
mls | or is that a workaround for a not defined "PMCCELL" (which happens to have the same value)? | 10:18 | |
10:20
koban left
10:21
koban joined
|
|||
mls | (and shouldn't it only call decontainerize if it is a smo?) | 10:21 | |
10:22
koban left
|
|||
jnthn | mls: The BIND_VAL_OBJ and friends exactly match the flags used by .type | 10:22 | |
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 | ||
called from Rakudo_md_dispatch | 10:24 | ||
jnthn | ...context? | ||
oh | |||
mls: Hm, good point. | |||
If a non-smo is getting in there, it won't be good. | 10:25 | ||
.oO( The answer to "is 6model stable enough for Parrot yet" is probably "please just do it yesterday!" :) ) |
10:26 | ||
mls: Looks like a fix is needed there, anyway. | 10:27 | ||
10:27
daxim joined
10:40
kfo left
10:46
kfo joined
|
|||
moritz | jnthn: I still can't stub X::BufAsStr in the setting :( | 10:50 | |
and package X { } is gone | |||
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» | ||
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» | ||
masak | nom: my class A::B { ... }; my class A::B {} | ||
p6eval | nom 8c7089: OUTPUT«===SORRY!===The following packages were stubbed but not defined: A::B» | ||
masak | nom: my class A { ... }; my class A {} | ||
p6eval | nom 8c7089: ( no output ) | ||
jnthn | nom: class A::B { ... }; class A::B {} | ||
p6eval | nom 8c7089: ( no output ) | ||
masak | so, necessary components: 'my', and '::' | 10:53 | |
moritz | I should update the ticket | ||
jnthn | moritz: In Grammar.pm, inside package_def | 10:54 | |
if $*ST.already_declared($*SCOPE, $*OUTERPACKAGE, $outer, @name) { | |||
Worth knowing if that's returning false in this case | |||
masak | jnthn: will we at some point see a rename of $*ST to something like $*W ? | 10:56 | |
jnthn | moritz: try this totally untested patch: gist.github.com/1415817 | 10:57 | |
masak: Yes. | |||
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. :) | |||
masak | \o/ | 10:58 | |
moritz | don't change it, I'll keep writing $*ST for ages :-) | 10:59 | |
jnthn: trying... | 11:01 | ||
11:10
lutok joined
|
|||
moritz | jnthn: the patch seems to be working | 11:18 | |
jnthn | nice :) | ||
moritz | I'm going to make concatenation of buffer to a string die | ||
masak | good. | 11:19 | |
moritz | it's been one of my least favorite non-errors in p5 for quite some time | ||
nom: say ~Buf.new() | |||
p6eval | nom 8c7089: OUTPUT«Buf<-483643341133299054>» | ||
moritz | I found this not very useful | ||
jnthn | Yes, there's no good way to DWIM in that case, so refusal is better. | ||
moritz | nom: say Buf.new() ~ ' foo' | ||
p6eval | nom 8c7089: OUTPUT«Buf<-7689102089863646801> foo» | ||
moritz | that's the current behavior, and not useful at all | 11:20 | |
jnthn | heh | ||
11:20
xinming_ joined
|
|||
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. | ||
moritz | seems they aren't hex anymore | ||
11:21
kaleem left
|
|||
moritz | $ ./perl6 -e 'try { ~Buf.new }; say $!.WHAT' | 11:22 | |
X::Buf::AsStr() | |||
\o/ | |||
jnthn | nice! :) | 11:23 | |
11:23
xinming left
|
|||
moritz | now I just need to spectest | 11:24 | |
jnthn | Yeah, hope the patch holds up well in the spectests. | 11:25 | |
Worth adding a spectest for the issue too. | |||
moritz | aye | ||
11:41
satyavvd left
11:55
plutoid joined
|
|||
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:04 | |
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:05 | |
jnthn | nom: { warn "blah"; CATCH { say "I caught something!" } } | 12:06 | |
p6eval | nom 8c7089: OUTPUT«blah» | ||
jnthn | nom: { warn "blah"; CONTROL { say "I caught something!" } } | ||
p6eval | nom 8c7089: OUTPUT«I caught something!blah» | ||
bbkr | thanks, tagging #77648 as testneeded | 12:10 | |
flussence | (also I'd like to point out Niecza's Test module has subs to trap any combination of die()/warn()/fail() :) | 12:12 | |
12:13
Psyche^ joined
12:16
Patterner left,
Psyche^ is now known as Patterner
12:24
lutok left
12:33
wk joined
12:36
tzhs joined
|
|||
moritz | we reallly need better exception catching tests, but I found niecza's approach a bit verbose | 12:39 | |
we should also consider typed exceptions | |||
dalek | kudo/nom: 17a2356 | moritz++ | src/ (3 files): throw typed exceptions when Buf is misused as a string Contains a patch by jnthn++ that fixes RT #104760 |
12:40 | |
masak | ooh! I just know of another thing to advent blog about :) | 12:44 | |
masak adds it to the list | 12:45 | ||
dalek | : c9e8134 | (Carl Mäsak)++ | misc/perl6advent-2011/topic-brainstorming: added two new potential topics |
12:46 | |
ast: c3f2a9e | moritz++ | S32-io/IO-Socket-INET.t: unfudge passing tests for rakudo |
12:51 | ||
ast: f7eced4 | moritz++ | S10-packages/joined-namespaces.t: RT #104760, stubbing of joined namespaces |
|||
moritz | nom: try { Buf.new().Str }; say $!.WHAT | 13:06 | |
p6eval | nom 8c7089: OUTPUT«Mu()» | ||
moritz | hrmpf | 13:07 | |
evalbot rebuild nom | 13:09 | ||
p6eval | OK (started asynchronously) | ||
moritz | turned out we still rebuilt rakudo twice an hour, and nom once per hour | 13:14 | |
jnthn | oh :) | 13:16 | |
masak | old habits and cronjobs die hard :) | 13:19 | |
moritz | jnthn: I'm at the point now where I'd like to start throwing typed exceptions from the Actions.pm | 13:20 | |
or maybe catch them in &eval, and re-throw as typed | |||
what do you think would be the best approach? | 13:21 | ||
I could do something like | 13:22 | ||
13:22
am0c left
|
|||
moritz | $*ST.find_symbol(['X', 'SomeException']).new(...) and handle the case when it can't be found somehow | 13:22 | |
13:24
jaldhar left
|
|||
jnthn | moritz: That probably works, modulo when we're compiling the setting :) | 13:32 | |
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. | ||
moritz | jnthn: it probably is | ||
jnthn | moritz: And then handle the "not found" case with an immediate panic or some such. | 13:35 | |
Note that find_symbol throws if it cannot find what you ask it for | |||
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. | ||
jnthn | try_or_be_sorry { ... } # :-) | 13:37 | |
13:37
leprevost joined
|
|||
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 | ||
moritz: I think HLL::Compiler.lineof is passed those | 13:39 | ||
moritz: And it computes the line number based on that | |||
moritz | nom: CATCH {}; CATCH {} | ||
p6eval | nom 17a235: OUTPUT«===SORRY!===only one CATCH block allowed at line 1, near ""» | ||
jnthn | fwiw, the "near" may want to look at the cursor's from rather than it's pos...maybe. | 13:40 | |
*its | |||
moritz | we also need a way to access the file name that is currently being compiled | ||
jnthn | should already be available | ||
moritz | current compile-time errors are missing that | ||
jnthn | see Actions.pm | ||
in TOP or comp_unit | |||
It sets a .file annotations | 13:41 | ||
moritz | ah, right | ||
my $file := pir::find_call_lex__ps('$?FILES') | |||
13:45
mkramer joined
|
|||
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» | ||
moritz | eh? | ||
13:50
bluescreen10 joined
|
|||
[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... | ||
[Coke] | (t/spec/S03-operators/overflow.t, since this was from last night.) | 13:53 | |
moritz | [Coke]: could you please nopaste the test output? | ||
[Coke] | jnthn: 105018 was on linux. | ||
moritz: momentito. | 13:54 | ||
moritz: feather.perl6.nl/~coke/overflow.out | 13:56 | ||
fails 28/97 | |||
moritz | [Coke]: thanks. Curious | 13:57 | |
[Coke] | this with a vanilla build on feather. | ||
moritz | two possibilities | ||
either another bigint error | |||
[Coke] | phenny: tell jnthn 105018 was on linux (vanilla build on feather) | ||
phenny | [Coke]: I'll pass that on when jnthn is around. | ||
moritz | or the usage of an int, where a bigint should have been used | ||
[Coke] | moritz: and I assume you're not seeing those errors? | 13:58 | |
moritz | [Coke]: correct | ||
[Coke] | k. let me know if I should open a ticket. | ||
I can let you poke around in my rakudo build on feather for a bit, if that helps. | 13:59 | ||
moritz | [Coke]: oh, I know what's going on | 14:00 | |
[Coke] | moritz: yeeees? | ||
moritz | the problem is that literals are polymorphic, and can be Int or int | ||
at least if the literal fits into an int | |||
[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:<*> | ||
[Coke] | *it's | ||
moritz | [Coke]: yes, but the result doesn't fit into an int | 14:02 | |
and we don't detect overflow or so | |||
[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" | ||
(or just always overflow?) | |||
moritz | [Coke]: right, we need to be more explicit about int vs. Int | 14:03 | |
and that's mostly a spec issue, IMHO | |||
[Coke] | you want to open a ticket in the right spot then? ;) | 14:04 | |
14:04
mkramer left
|
|||
moritz | [Coke]: that would be appreciated, yes :-) | 14:05 | |
[Coke] | no, I mean, do *you* ?;) | ||
moritz | erm | ||
moritz can't read | |||
yes, I should | |||
14:07
mkramer joined
14:08
benabik left
|
|||
masak | same situation could happen with infix:<+>, or infix:<-> | 14:08 | |
moritz | yes | ||
[Coke] | we require a new parrot since yesterday? | 14:09 | |
moritz | yes | ||
(for socket stuff) | |||
14:16
mtk joined
|
|||
moritz | summary at github.com/perl6/specs/issues/8 | 14:17 | |
(of the spec issue of int/Int literals) | 14:18 | ||
14:19
wolfman2000 left
|
|||
[Coke] | added a pointer to the spec test failures. | 14:21 | |
nom: say 0xDEADBEEF + 0xFACE / 65536.0; | 14:24 | ||
p6eval | nom 17a235: OUTPUT«3735928559.97971» | ||
[Coke] | nom: say :16<dead_beef.face> | ||
p6eval | nom 17a235: OUTPUT«3735928559.97971» | ||
[Coke] | nom: say ":16<dead_beef.face> | 14:25 | |
p6eval | nom 17a235: OUTPUT«===SORRY!===Confused at line 1, near "say \":16<d"» | ||
[Coke] | nom: say ":16<dead_beef.face>" | ||
p6eval | nom 17a235: OUTPUT«:16<dead_beef.face>» | ||
[Coke] | nom: say +":16<dead_beef.face>" | ||
p6eval | nom 17a235: OUTPUT«Failure.new()» | ||
moritz | try without the quotes | ||
oh, you did already :-) | |||
[Coke] | that's a regression in the same overflow.t file | ||
moritz | I think japhb++ will fix this one | ||
[Coke] | see S03-operators/overflow.t:260 | 14:26 | |
14:26
overrosy left
|
|||
[Coke] | nom: say +"3" | 14:26 | |
p6eval | nom 17a235: OUTPUT«3» | ||
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
|
|||
jnthn | [Coke]: OK, then it's genuine issue then :) | 14:28 | |
14:29
mkramer left,
mkramer joined
14:30
mkramer left
14:31
mkramer joined
|
|||
[Coke] | nom: say +":16<dead_beef>" | 14:35 | |
p6eval | nom 17a235: OUTPUT«3735928559» | ||
14:36
sftp joined
14:40
overrosy left
14:41
mkramer left
14:42
mkramer joined,
overrosy joined
|
|||
[Coke] | 280 more "nom regression" instances to go. ;) | 14:45 | |
jnthn guesses they boil down to a smaller number of underlying issues | 14:46 | ||
14:46
Maddingue joined
|
|||
[Coke] | we'll find out if we start getting TODOs when you fix the tickets. ;) | 14:47 | |
er, TODO passings. | |||
14:47
ribasushi left
14:48
ribasushi joined
14:52
mkramer left,
mkramer joined
|
|||
[Coke] | see lue? | 14:52 | |
aloha, seen lue? | |||
aloha | [Coke]: lue was last seen in #perl6 8 days 13 hours ago saying "right now, I don't think so.". | ||
[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. | ||
[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» | ||
[Coke] | nom: say (1,4,-2).min: { abs $^a <=> abs $^b } | 14:56 | |
p6eval | nom 17a235: OUTPUT«1» | ||
14:57
overrosy left
14:58
overrosy joined
|
|||
masak | [Coke]: I think I know what he means. | 14:59 | |
[Coke]: he expects <5 -3 7 0 1 -9> to produce a list of Int, not a list of Str. | 15:00 | ||
or at least objects that compare like Ints, not like Strs. | |||
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 | |
15:01
mkramer left
|
|||
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 | |
15:01
mkramer joined
|
|||
masak | but... it's spec. | 15:01 | |
so that's what lue is referring to. | |||
he was probably bitten by the numbers sortign stringishly. | 15:02 | ||
colomon | +1 to uneasy | ||
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. | ||
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. | ||
jnthn | Me either | ||
[Coke] | I think that's a separate test. | ||
jnthn | also, we make it easy to say how you want to sort | ||
$foo.sort: *.Numeric | |||
[Coke] | nom: (0, NaN).min | ||
p6eval | nom 17a235: ( no output ) | ||
[Coke] | nom: say (0, NaN).min | ||
p6eval | nom 17a235: OUTPUT«0» | 15:04 | |
colomon | itz: perl6advent.wordpress.com/ | ||
itz | ty | ||
jnthn | ooh, is it my turn tomorrow? :) | 15:05 | |
moritz | jnthn: yes :-) | ||
jnthn | \o/ | ||
[Coke] | lue expects NaN to be min'er than 0. I would expect... a Failure? | 15:06 | |
Hurm. I guess NaN is pretty much numeric failure. | |||
(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
mkramer left
|
|||
[Coke] | nom: say 3+NaN | 15:07 | |
p6eval | nom 17a235: OUTPUT«NaN» | ||
15:07
mkramer joined
|
|||
[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/… | ||
[Coke] | perl6: say min(0,NaN) | ||
p6eval | niecza v12-2-geb42dfa: OUTPUT«===SORRY!===Undeclared routine: 'min' used at line 1Unhandled 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… | ||
..pugs b927740: OUTPUT«NaN» | |||
..rakudo 17a235: OUTPUT«0» | |||
dalek | ast: 13261a2 | coke++ | S (2 files): Convert to tickets for Rakudo |
15:11 | |
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:12
overrosy left
15:13
wolfman2000 joined
|
|||
colomon | niecza: say 4 min 5 | 15:13 | |
p6eval | niecza v12-2-geb42dfa: OUTPUT«4» | ||
colomon | niecza: say 4 min NaN | 15:14 | |
p6eval | niecza v12-2-geb42dfa: OUTPUT«4» | ||
15:14
overrosy joined
|
|||
masak | [Coke]: NaN is already spec'd/behaving as a kind of failure in numeric context, that propagates outwards in numeric calculations. | 15:15 | |
moritz | perl6: say NaN min -Inf | 15:16 | |
p6eval | niecza v12-2-geb42dfa: OUTPUT«NaN» | ||
..rakudo 17a235: OUTPUT«-Inf» | |||
..pugs b927740: OUTPUT«***  Unexpected "min" expecting "=", operator, ":" or "," at /tmp/GDq2WrMbsX line 1, column 9» | |||
15:16
wolfman2000 left
15:17
wolfman2000 joined,
mkramer left
|
|||
tadzik | hello #perl6 | 15:18 | |
15:18
mkramer joined
|
|||
jnthn | o/ tadzik | 15:18 | |
moritz | \o tadzik | ||
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
wolfman2000 left
|
|||
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 | |
(syntactically) | |||
PerlJam hasn't played with Niecza enough | |||
colomon | PerlJam: also FatRats. | ||
moritz | tadzik: can I motivate you to write O(2) posts for the advent calendar? | ||
PerlJam: LTM outside of proto regexes | |||
jnthn | tadzik: Just two stars, I guess :) | ||
colomon | better error messages | ||
moritz | PerlJam: perl6.org/compilers/features answers that question nicely too | 15:20 | |
15:20
wolfman2000 joined
|
|||
tadzik | moritz: naturally, but I can't allocate almost any time during the upcoming week or such | 15:20 | |
I can write something about Pod | |||
jnthn | Is there anything blocking FatRat in Rakudo other than tuits to do it? | ||
tadzik | jnthn: ah, the challenge :) | ||
colomon | jnthn: not that I know of | 15:21 | |
moritz | rakudo has fat rats, but they are just called 'Rat' atm :-) | ||
PerlJam | moritz: that's a little lower level than I was thinking. | ||
jnthn | tadzik: If you want to practice pointer skills, hack on NCI :) | ||
tadzik | warning: incompatible pointer types passing 'void (**)(void *)' to parameter of type 'void *(*)(void *)' | ||
colomon | jnthn: I saw there was a rational branch, which I assumed was someone working on it already? | ||
tadzik | I even tried shotgun coding and even that didn't help :P | ||
jnthn | colomon: Sounds like a rational guess. | ||
moritz | yes, that was me | ||
but I didn't get far | |||
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 | ||
moritz | compilation hangs, and I don't know why | 15:22 | |
15:22
mkramer left
|
|||
colomon | moritz: were you actually tackling the Rational role? | 15:22 | |
moritz | colomon: yes, I tried to implement FatRat as Rational[Int, Int] | ||
and Rat as [Int, UInt128] or so | |||
colomon | right | 15:23 | |
15:23
mkramer joined
|
|||
[Coke] | PerlJam: seems like that'd be a great post for sorear. | 15:23 | |
PerlJam | [Coke]: indeed. | ||
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 | ||
phenny | moritz: I'll pass that on when mberends is around. | ||
15:25
mkramer left,
mkramer joined
15:27
takadonet joined
15:28
takadonet left
15:29
wolfman2000 left
15:30
wolfman2000 joined
15:33
mkramer left
15:35
mkramer joined,
mkramer left
|
|||
dalek | kudo/ex-from-actions: d62f8f2 | moritz++ | src/Perl6/Actions.pm: prepare a small helper for throwing an exception from Actions.pm |
15:35 | |
kudo/ex-from-actions: f961892 | moritz++ | src/ (2 files): try to throw the first typed exception from Actions.pm; fails setting compilation |
|||
moritz | jnthn: this patch makes the compilation fails with | 15:36 | |
None of the parametric role variants for 'X::Comp' matched the arguments supplied. | |||
maximum recursion depth exceeded | |||
which is curious, since X::Comp is not parametric | 15:37 | ||
jnthn | er | ||
Well, every role is parametric | 15:38 | ||
But what it really means is something else went wrong during role compositon. | |||
maximum recursion depth exceeded is bad news. | |||
dalek | : 846e321 | duff++ | misc/perl6advent-2011/topic-brainstorming: Add some more p6advent ideas |
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
15:40
mkramer joined
|
|||
jnthn | moritz: It'll be some evil, hard to find bootstrap issue, I'm sure. | 15:40 | |
moritz | :( | ||
jnthn | moritz: And it seems nobody is up for hunting those down besides me. | ||
moritz | jnthn: seems like :( | 15:41 | |
jnthn: but I kinda thought that role composition in the setting worked | |||
15:41
takadonet joined
|
|||
jnthn | moritz: it kinda does. :) | 15:41 | |
15:41
takadonet left
|
|||
jnthn | moritz: Emphasis on "kinda" | 15:41 | |
If you want to golf down exactly what it is that causes it to fail, that'd help | 15:42 | ||
moritz: That is, is it the attributes? | |||
moritz | jnthn: is there anything in particular that I should avoid? | ||
15:42
tokuhirom joined,
plobsing left
|
|||
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 | ||
moritz | which would also explain why Rational loops | 15:43 | |
jnthn | moritz: I dobut it's purely attribute related. | ||
moritz: It *may* be tied up with public attributes in roles in the setting, at a wild guess. | |||
(but if it is, I'm not sure why off hand) | |||
moritz | accessors are generated in Attribute.pm | ||
15:44
plobsing joined
|
|||
jnthn | Yes | 15:44 | |
But we must use accessors elsewhere in the setting. | |||
moritz | yes, but not in roles, I assume | 15:45 | |
jnthn | Maybe not | ||
If that's the bug, it'd kinda prevent us doing so ;) | |||
moritz | oh! | 15:46 | |
I accidentally duplicated role X::Comp | |||
so it might be an ambiguous dispatch that's wrongly reported | |||
sorear | good * #perl6 | ||
moritz | \o sorear | 15:47 | |
colomon | o/ | ||
jnthn | o/ sorear | ||
moritz: oh! | |||
moritz | nom: role A { }; role A { }; class B does A { } | ||
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)» | ||
moritz | ah, maybe it loops while generating the 'Ambiguous candidates' message | 15:48 | |
jnthn | oh! | ||
that's very possible. | |||
15:49
tokuhirom left,
mkramer left
15:50
mkramer joined,
tokuhirom joined
15:54
tokuhirom left
15:57
JimmyZ left
15:58
Trashlord left
16:03
tzhs left
16:04
JimmyZ joined
|
|||
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
wolfman2000 left
|
|||
moritz | oh, dyncall version switch broke nqp build | 16:08 | |
moritz tries after git clean -xdf | |||
16:10
mkramer left
16:11
mkramer joined
16:13
mkramer left
16:14
mkramer joined,
Trashlord joined
16:18
UncleFester6 joined
16:25
mkramer left
16:27
mkramer joined
|
|||
TimToady | moritz: github.com/perl6/specs/issues/8 is already largely covered by S02:705 and S09:106 | 16:33 | |
constant folds are just one form of "temporary value" | |||
jnthn | TimToady: It's maybe more problematic in the case of | 16:35 | |
multi m(Int) { } | |||
multi m(int) { } | |||
m(0x7FFFFFFF) | 16:36 | ||
well, provided the multis do something :) | |||
Maybe that's DIHWI... though :) | |||
masak | no, it seems like a fairly fundamental question. | ||
TimToady | the default should not be to recreate the bugs of C | ||
masak .oO( doctor, it hurts when I C ) | 16:37 | ||
jnthn | Which particular bug is this a case of? :) | ||
TimToady | so by default, native types are only storage constraints, and intermediate values mustn't lose info | ||
if that means infix:<+>(int,int) must return Int, so be it | 16:38 | ||
masak | ok, that's an easy enough rule. | ||
jnthn | er, what? | ||
So | |||
TimToady | we aren't trying to reproduce C's bugs | ||
masak | I think it has to return Int. | 16:39 | |
TimToady | the default is to do it right | ||
a pragma can turn on C's bugs if we want speed | |||
jnthn | loop (int $i = 1; $i < blah; $i = $i + 1) { ... } | ||
masak | but then wouldn't the user need to cast explicitly a lot? | ||
probably what jnthn++ is getting to above... :) | |||
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? | ||
*load | |||
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. | ||
But once you do...it's clear enough that you're opting in, no? | 16:41 | ||
16:41
snearch joined
|
|||
TimToady | the initial opt-in is for storage, not bugs | 16:41 | |
jnthn | er, apart from in the case above you're never going to be able to store the result without overflowing anyway... | 16:42 | |
0x7FFFFFFF * 0x7FFFFFFF overflowing is clearly wrong. That's certainly a bug. | |||
TimToady | well, we can probably optimize your loop if we know the limit | ||
jnthn | This is ridiculous. :/ | 16:43 | |
jnthn goes back to his $dayjob bits | |||
masak increments the "halting problem implicit mention" counter | |||
TimToady | this has been specced for a long time | 16:44 | |
and when people say "correctness first", everyone nods their heads | |||
it seems to have suddenly gone out of style :) | |||
masak | I'm all for it. :) | 16:45 | |
but I'd like to not throw out the performance with the buggy bathwater, too. | |||
s/performance/performance baby/ | |||
16:45
mj41 left
|
|||
TimToady | profile, then cheat | 16:45 | |
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
|
|||
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 | ||
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. | ||
TimToady | that's getting into type inference, I think | 16:48 | |
which is perhaps the mechanism by which we optimize that loop | |||
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" | ||
But I really don't like the idea that (int, int) --> Int | 16:51 | ||
I'd expect *either* to be doing (Int, Int) --> Int, or (int, int) --> int | |||
masak | 'my Int $a = 42; my int $b = $a' # does this typecheck at compile-time? | ||
'my Int $a = 10 ** 10; my int $b = $a' # does this fail at runtime? | |||
jnthn | masak: unboxing to native types currently never fails. | ||
masak: Provided the type on the RHS knows how. | 16:52 | ||
masak | ok, good. | ||
TimToady | that also is not according to spec | ||
jnthn | TimToady: Which bit? | ||
TimToady | not checking for overflow on storage to a native type | ||
masak | I don't follow. | 16:53 | |
either we don't check, or we can't do jnthn's native for loop above. | |||
16:54
daxim left
|
|||
TimToady | if we know the limit of the loop is smaller than maxint, then we've done our check outside the loop | 16:55 | |
16:56
JimmyZ left
|
|||
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 | ||
masak | right, but the '$i = $i + 1' part tries to store an Int in an int. | ||
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:58 | |
16:59
benabik joined
|
|||
TimToady | I have no trouble with a pragma that says "use temp :native", but I just don't think it should be the default | 16:59 | |
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 | ||
TimToady | my gut feel is that most of such attacks don't care that much about 32 vs 64 | ||
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. | ||
moritz | becaue the intermediate result from the first addition might not fit into an int | ||
jnthn | moritz: Exactly. | ||
moritz | so, no native operations even with native types. Ugh. | ||
TimToady | I never said that | ||
moritz | no, the spec says that | ||
TimToady | BY DEFAULT | 17:04 | |
"in the absence of declarations or explicit casts to the contrary" | |||
masak decommutes | |||
TimToady | I include "use native" in declarations | ||
I wouldn't push this quite so hard if it weren't a security issue | 17:05 | ||
17:05
MayDaniel joined
|
|||
TimToady | I love speed too... | 17:05 | |
I'd be okay with detecting overflow consistently too; it's silent overflow that is the problem | 17:07 | ||
maybe it's "no strict :overflow" that we're looking for | 17:09 | ||
17:13
fsergot joined
|
|||
fsergot | hi perl6! o/ | 17:13 | |
TimToady | howdy | ||
tadzik | hello fsergot | 17:17 | |
17:18
hundskatt joined
|
|||
moritz | hi fsergot. Do you want to write a post for the perl 6 advent calendar? | 17:30 | |
17:31
wolfman2000 joined
|
|||
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
wooden left
|
|||
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:44 | |
17:45
kaleem joined
|
|||
PerlJam scrolls back to read the int/Int discussion | 17:46 | ||
17:47
wooden joined
17:49
wk left
|
|||
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:49 | |
17:51
kaleem left
17:54
UncleFester6 left
|
|||
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 | |
17:56
nornagest joined
|
|||
Woodi out for few mins | 17:57 | ||
17:57
ethndbst joined
|
|||
PerlJam | Woodi: Are you claiming that hacking Perl 5 is *easy* compared with having a VM? | 17:57 | |
18:01
llabthgie left
|
|||
moritz | PerlJam: yes, I'm trying very hard to fill the slots | 18:05 | |
and to attract fresh contributors, of course | |||
18:05
donri joined
|
|||
PerlJam | moritz: sounds like a good advent article ;) | 18:06 | |
18:14
leprevost left
18:24
bluescreen10 left,
bluescreen10 joined
|
|||
masak | PerlJam: what, an advent article about filling the slots? sounds like a last-ditch filler article to me :P | 18:27 | |
PerlJam | no, about attracting fresh contributors ... something that would get people fired up | 18:28 | |
moritz | PerlJam: I tried that (with some success) with the challenges... but it was a lot of work | 18:34 | |
18:39
mkramer1 joined,
mkramer left
|
|||
dalek | kudo/ex-from-actions: dbee3a0 | moritz++ | src/ (2 files): file name and line need to be Perl 6 values |
18:45 | |
jnthn | moritz: Did removing the dupe fix the issue from earlier? | 18:46 | |
moritz | jnthn: yes, thanks | 18:49 | |
jnthn | moritz: OK, good to know. :) | ||
(sorry if it shoulda been obvious and I missed it...been taking care of $dayjob things :)) | 18:50 | ||
moritz should have noticed too :-) | |||
now | |||
> eval q[sub f() { $^x }]; say $!.WHAT | |||
(empty line, that is) | |||
18:51
MayDaniel left
|
|||
jnthn | eek | 18:51 | |
moritz | even nqp::say(pir::typeof__SP($!)) produces an empty line | ||
jnthn | o.O | 18:52 | |
moritz | erm | ||
the eval probably dies | |||
and the REPL catches it | 18:53 | ||
producing an empty line | |||
jnthn | oh :) | ||
moritz | and the say() is never executed :-) | ||
jnthn | ah yes, because eval doesn't catch exceptions :) | ||
jnthn is still getting used to that | |||
dalek | : 45f5498 | duff++ | misc/perl6advent-2011/ (2 files): claim a day |
||
moritz | $ > try { eval q[sub f() { $^x }] }; say $!.WHAT | ||
X::Signature::Placeholder() | |||
\o/ | |||
jnthn | nice :) | 18:54 | |
moritz | just... the message is gone :( | 18:57 | |
19:01
mkramer1 left
19:02
mkramer joined
19:08
ethndbst left
|
|||
dalek | kudo/nom: 46f72c8 | duff++ | src/Perl6/Grammar.pm: fix typo in error msg |
19:10 | |
diakopter | flip flip indeed | 19:12 | |
19:12
mkramer left,
diakopter sets mode: -o diakopter
19:13
mkramer joined
19:16
birdwindupbird joined,
birdwindupbird left
19:17
wolfman2000 left
|
|||
masak | perl6: say flip flip "flip" | 19:20 | |
p6eval | pugs b927740: OUTPUT«*** No such subroutine: "&flip" at /tmp/CciSIePpla line 1, column 5 - line 2, column 1» | 19:21 | |
..rakudo 17a235, niecza v12-2-geb42dfa: OUTPUT«flip» | |||
19:22
wk joined
19:23
snearch left
19:25
MayDaniel joined
19:37
MayDaniel left
19:38
ethndbst joined
19:45
zby_home_ joined
20:09
wk left
20:10
arlinius left
20:14
arlinius joined
|
|||
moritz | nom: say 1.^isa(X::Comp) | 20:15 | |
p6eval | nom 46f72c: OUTPUT«0» | ||
moritz | nom: say 1.^does(X::Comp) | ||
p6eval | nom 46f72c: OUTPUT«Bool::False» | ||
20:17
wk joined
20:27
mkramer left
20:28
alvis left
20:29
molaf joined
20:34
mkramer joined
20:36
localhost left,
fsergot left
20:37
localhost joined
|
|||
moritz | hrmpf | 20:38 | |
I seem to have completely broken error reporting completely in my branch :/ | 20:39 | ||
Tene | moritz: as long as there are no errors, that's okay! | 20:43 | |
20:51
mkramer left,
mkramer joined
20:54
mkramer1 joined
20:55
mkramer left
20:58
mkramer joined
20:59
fsergot joined
21:00
mkramer1 left
21:06
mkramer left,
mkramer joined
21:12
Trashlord left,
Trashlord joined
21:13
mkramer left
21:14
mkramer joined
|
|||
jnthn | 11 files changed, 176 insertions(+), 826 deletions(-) | 21:15 | |
...I like those commits. | |||
[Coke] | \o/ | ||
colomon | \o/ | 21:17 | |
21:18
hundskatt left
21:21
molaf left
21:23
hundskatt joined
21:26
mkramer left,
mkramer joined
|
|||
benabik | jnthn: Don't delete that! It's important! (Or maybe not..) | 21:28 | |
21:30
mkramer left
21:31
mkramer1 joined
|
|||
jnthn | benabik: Same functionality, just better factoring. :) | 21:32 | |
21:33
mkramer1 left
|
|||
[Coke] | NO, REFACTORS ARE BAD, KITTY! | 21:33 | |
21:33
mkramer joined
|
|||
jnthn | oh, calm down, it's not like I did a rewrite :P | 21:34 | |
diakopter | what did you not rewrite | 21:35 | |
jnthn | 6model :) | ||
21:36
Leo left
21:38
mj41 joined
|
|||
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. ;) | ||
alester | DAMN YOU COLEDA | ||
benabik | :-D | ||
You'll have to move all your tickets from RT to trac first. ;-) | 21:41 | ||
tadzik | oh joy :) | 21:42 | |
21:42
packetknife joined
|
|||
[Coke] | HA! | 21:42 | |
that was my gig for parrot. ain't doing that again. | |||
(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 | ||
wtf, where did you put that! :D | |||
dalek | p: 139fb76 | jnthn++ | src/6model/sixmodelobject.h: Split attribute and boxed parts of the REPR function table out into sub-tables. Breaks everything, of course. |
||
p: 851deb3 | jnthn++ | src/6model/reprs/ (11 files): Initial attempt to update representations for the sub-table change. Many bits of copy-paste boilerplate go away. |
|||
p: 092915a | jnthn++ | src/6model/repr_registry.c: Update representation registry to put default not implemented stubs in the sub-tables if they're not initialized. |
|||
p: b93593f | jnthn++ | src/pmc/sixmodelobject.pmc: Update 6model wrapper PMC for REPR changes. |
|||
p: c098088 | jnthn++ | src/6model/reprs/ (3 files): Couple of fixes to things that weren't quite right in the REPR updates. |
|||
p: af15c58 | jnthn++ | src/6model/knowhow_bootstrapper.c: Update to get 6model core to build agian. |
21:44 | ||
p: 780c4a3 | jnthn++ | src/ops/nqp (3 files): Fix ops...and we have a working/test-passing NQP build again. |
|||
diakopter | agh | ||
jnthn | diakopter: apologies for commiting stuff. :P | ||
21:45
kaare_ left
|
|||
masak | try not to do it again :P | 21:46 | |
dalek | kudo/nom: b9aa5be | jnthn++ | / (6 files): Bump to latest NQP, and some updates to adapt to REPR changes. |
21:48 | |
jnthn | ooops, I did it agian | ||
masak | \o/ | ||
21:48
mkramer left
|
|||
jnthn | </britney_voice> | 21:48 | |
tadzik | I played with your code | ||
got lost in the forks | 21:49 | ||
jnthn | oh save me, save me! | ||
masak | but I'm not that invocant | ||
21:49
mkramer joined
|
|||
PerlJam | That's a nice little cascade ...new nom requires new nqp requires new parrot | 21:49 | |
jnthn | The fallout of that refactor should be nothing observable. :) | 21:50 | |
[Coke] | ok, tadzik's were fine, but masak's is GROANable. | ||
masak | :P | ||
PerlJam | I *liked* masak's | ||
jnthn | ...apart from it unblocks me to work on CArray and removes a bunch of copy/paste that has bothered me for ages. | ||
[Coke] | PerlJam: that didn't require a new parrot, I don't think. | ||
tadzik | \o/ | 21:51 | |
PerlJam | [Coke]: it did on my box :) | ||
tadzik | masak: we should start a band | ||
[Coke] | you just need to update more often. ;) | ||
jnthn | No, my set didn't, though there was a PARROT_REVISION bump earlier today by moritz++ | ||
tadzik | or you can join Ąkancyrantia :) | ||
PerlJam | [Coke]: clearly. | ||
masak | tadzik: Tadeusz and the Britneys | ||
tadzik | it's more understandable than Ąkancyrantia, indeed | 21:52 | |
[Coke] | masak: so why aren't you mäsak on irc? | ||
masak | phenny: "Ąkancyrantia"? | ||
phenny | masak: Language guessing failed, so try suggesting one! | ||
masak | phenny: pl "Ąkancyrantia"? | 21:53 | |
phenny | masak: The pl to en translation failed, sorry! | ||
tadzik | masak: it's a made up word :) | ||
masak | oh! | ||
tadzik | it means the time interval between the sound of the beer opening and the sound of the bottle cap hitting the floor | ||
jnthn | :D | ||
[Coke] | also, there has GOT to be an easier way to type ä than alt-0228 :P | ||
masak | [Coke]: I used to be less UTF-8-friendly than I am now. :) | ||
benabik | tadzik: i.e. the time it takes you to drink it? | ||
tadzik | benabik: nah, the time when the cap falls | 21:54 | |
benabik | tadzik: You have to drink quickly. ;-) | ||
tadzik | I guess so :) | ||
jnthn | If you tape yourself to the ceiling, you get more time. | ||
Or open it on the moon. | |||
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 | ||
jnthn: it'd fly horizontally :P Imagine that | 21:56 | ||
you turn thebottle, and it goes sideways | |||
jnthn | Wow. You'd think you'd had too much before you even started. :P | 21:57 | |
tadzik | :) | ||
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:00 | |
[Coke] finally enables the international keyboard input on his windows laptop so he can type mäsak! | 22:03 | ||
masak | \o/ | ||
but then it won't highlight here... :) | |||
[Coke] | Makes it super hard to type "a now, but that's fine. ;) | ||
you need a better client! ;) | |||
22:05
benabik left
|
|||
diakopter | just have it highlight on sak | 22:05 | |
oops I just accidentally reset --hard | 22:08 | ||
22:10
bluescreen10 left
|
|||
Tene | yay reflog | 22:10 | |
22:11
benabik joined
|
|||
diakopter | too bad I hadn't committed | 22:17 | |
22:17
mkramer left,
mkramer joined
|
|||
benabik | git-reset needs a reset.interactive config option (like rm -i) | 22:19 | |
22:20
plutoid left
22:26
am0c joined
22:27
zby_home_ left
22:32
nornagest left
|
|||
masak | blog post! \o/ strangelyconsistent.org/blog/macros...-bit-of-d1 | 22:33 | |
I don't blog often enough nowadays :) | |||
22:37
mkramer left,
mkramer joined
|
|||
jnthn | e | 22:41 | |
oops | |||
masak mimes an empty file for jnthn | 22:42 | ||
Tene | masak: no, you don't. | 22:43 | |
benabik: you can make your own with an alias | |||
benabik | Tene: Yes, but I want it to stop me from using reset --hard. ;-D | ||
Although I suppose I could bash alias git to something else that modifies reset. Blah. Easier to just hack git.git | 22:44 | ||
masak | ok, I'm going on a short two-week leave. not sure I'll be on IRC much. will miss y'all. | 22:47 | |
& | 22:48 | ||
jnthn | .oO( gee, I'm glad it's a short two weeks, not a long two weeks :) ) |
||
22:49
f00li5h joined
|
|||
jnthn | grr, this sized type stuff is a little bit tricky :) | 22:51 | |
PerlJam | masak: When do you guess you'll merge into nom? | ||
masak: in any case, a forward-looking advent post on macros might be nice ;) | |||
benabik | PerlJam: Probably not in the next two weeks, since he just said he was going on leave. | 22:52 | |
PerlJam | indeed. I didn't think it would be soon, just curious when it might be | 22:55 | |
23:02
wolfman2000 joined
|
|||
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:02 | |
23:07
mkramer left,
mkramer joined
|
|||
felher | masak: Bye :( | 23:10 | |
Tene very tempted to work on masak's macros branch. | 23:12 | ||
23:24
benabik_ joined
23:26
benabik left
23:29
benabik_ left
23:36
orafu joined
23:45
mj41 left
23:50
gfldex left
|
|||
dalek | p: 60ed59a | jnthn++ | src/6model/sixmodelobject.h: First sketch out the indexable representation function table. |
23:51 | |
p: e07a169 | jnthn++ | src/6model/repr_registry.c: Initialize indexable REPR function table for REPRs that don't support it. |
|||
p: 0b0638b | jnthn++ | src/6model/reprs/ (11 files): Allocate ready zeroed out memory for REPR function tables, meaning we're more future-proof, but also can delete a bunch of ... = NULL assignments. |
|||
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
23:52
gfldex joined
23:58
hundskatt left
|