Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by Zoffix on 27 July 2018. |
|||
00:16
MasterDuke joined,
MasterDuke left,
MasterDuke joined
|
|||
MasterDuke | uh, does --target=parse (even for -e '') work for anybody? | 00:54 | |
yoleaux | 7 Apr 2019 18:11Z <Kaiepi> MasterDuke: no it still segfaults | ||
7 Apr 2019 18:11Z <Kaiepi> MasterDuke: er, trace trap | |||
MasterDuke | on two different systems at HEAD, it's just chewing up 100% of a core and ram used keeps growing | 00:56 | |
--target=optimize works fine | |||
committable6: 2018.12 say run <perl6 --target=optimize -e ''> | 01:03 | ||
committable6 | MasterDuke, gist.github.com/56903b7d96c11d6f01...8eb0ff22ee | ||
MasterDuke | committable6: 2018.12 say run <perl6 --target=parse -e ''> | ||
hm, its default timeout may be too long for this... | 01:06 | ||
committable6 | MasterDuke, ¦2018.12: ««timed out after 40 seconds» «exit signal = SIGHUP (1)»» | 01:08 | |
MasterDuke | committable6: 2018.08 say run <perl6 --target=parse -e ''> | 01:09 | |
committable6 | MasterDuke, gist.github.com/158ea0f9d9ce9dd87b...df97cd7923 | ||
MasterDuke | committable6: 2018.09 say run <perl6 --target=parse -e ''> | ||
committable6 | MasterDuke, gist.github.com/bbaf0dabd274fc316f...1b9053371d | ||
MasterDuke | committable6: 2018.10 say run <perl6 --target=parse -e ''> | ||
committable6 | MasterDuke, gist.github.com/78830f5e024c21614b...ab8e32e448 | ||
MasterDuke | committable6: 2018.11 say run <perl6 --target=parse -e ''> | ||
ok, looks like it happened sometime between 2018.10 and 2018.11 | 01:10 | ||
committable6 | MasterDuke, ¦2018.11: ««timed out after 40 seconds» «exit signal = SIGHUP (1)»» | 01:11 | |
02:03
epony left
03:08
vrurg left
03:24
epony joined
03:38
AlexDani` joined
03:42
AlexDaniel left
04:29
AlexDani` is now known as AlexDaniel,
AlexDaniel left,
AlexDaniel joined
|
|||
AlexDaniel | bisectable: old=2018.10 new=2018.11 say run <perl6 --target=parse -e ''> | 04:52 | |
worth a try :) | |||
sooooo…? | 04:55 | ||
bisectable6: help | |||
04:55
bisectable6 left
04:58
bisectable6 joined
04:59
bisectable6 left
05:04
bisectable6 joined
05:18
evalable6 left,
committable6 left,
bisectable6 left
05:20
bisectable6 joined
05:22
evalable6 joined,
ChanServ sets mode: +v evalable6
|
|||
AlexDaniel | let's try again | 05:23 | |
05:23
committable6 joined
|
|||
AlexDaniel | bisectable: old=2018.10 new=2018.11 say run <perl6 --target=parse -e ''> | 05:23 | |
… what | 05:24 | ||
05:26
bisectable6 left
05:27
bisectable6 joined
|
|||
AlexDaniel | bisectable: old=2018.10 new=2018.11 start { sleep 5; exit 1 }; say run <perl6 --target=parse -e ''> | 05:31 | |
:| | |||
aaah actually | 05:32 | ||
05:33
shareable6 left
|
|||
bisectable6 | AlexDaniel, Bisecting by exit code (old=2018.10 new=2018.11). Old exit code: 0 | 05:33 | |
05:33
reportable6 left,
reportable6 joined
|
|||
bisectable6 | AlexDaniel, bisect log: gist.github.com/d5a0aa39c2773cb485...87fa160f26 | 05:34 | |
AlexDaniel, (2018-10-27) github.com/rakudo/rakudo/commit/46...96034408c8 | |||
AlexDaniel | c: 46ef0ea08cae96^,46ef0ea08cae96 start { sleep 5; exit 1 }; say run <perl6 --target=parse -e ''> | 05:35 | |
05:36
shareable6 joined,
ChanServ sets mode: +v shareable6
05:37
AlexDaniel left
05:48
AlexDaniel joined
|
|||
committable6 | AlexDaniel, gist.github.com/fabb5bd36bec34e81f...a344854ccc | 05:50 | |
06:37
patrickb joined
|
|||
patrickb | releasable6: status | 06:37 | |
yoleaux | 8 Apr 2019 18:55Z <brrt> patrickb: yes, I have seen it, I couldn't really do anything with it | ||
8 Apr 2019 18:55Z <brrt> patrickb: actually I had not | 06:38 | ||
releasable6 | patrickb, Next release in ≈11 days and ≈12 hours. 12 blockers. 0 out of 172 commits logged | ||
patrickb, Details: gist.github.com/1a5d67397bad04a180...413dc535e8 | |||
06:51
ufobat_ left
07:14
tobs` joined
07:15
tobs left,
tobs` is now known as tobs
07:16
|Tux| left
07:17
|Tux| joined
|
|||
lizmat | Files=1254, Tests=87994, 386 wallclock secs (20.90 usr 6.54 sys + 2759.31 cusr 231.45 csys = 3018.20 CPU) | 07:31 | |
~10 seconds faster :-) | 07:32 | ||
AlexDaniel | that's awesome | 07:41 | |
timotimo | that's neat | 07:50 | |
08:06
pmurias joined
|
|||
jnthn | 10 seconds wallclock, but more CPU, yes? :) | 09:08 | |
(As in, the saving in CPU is larger than that, because it's running in parallel.) | 09:09 | ||
timotimo | no, the CPU time is also at a low point compared to the last few days | 09:29 | |
for as far back as my scroll buffer goes | |||
jnthn | Ah yes, yesterdays was 3059.02 CPU | 09:31 | |
m: say 3018 / 3059 | |||
evalable6 | 0.986597 | ||
jnthn | Hmm, not so impressive as what I got locally | ||
timotimo | it was even 3028 a few days ago | 09:32 | |
jnthn | But still, nice. | ||
timotimo | aye | ||
jnthn | Not bad for just changing a number :) | ||
timotimo | we need a mode where the test file runs five times start to finish so that spesh perhaps has a chance to kick in | 09:33 | |
then we can measure if the cpu time goes up 5x or less | |||
(also, hooray, half an hour spec test time again!) | |||
Geth | rakudo/more-precise-return-tracking: 165f918403 | (Jonathan Worthington)++ | 2 files Better tracking of what needs return handlers So that we can produce code with a lot less of them. This can give a speedup since it results in code that's easier to analyze and slightly more compact. |
09:42 | |
jnthn | Sticking that in a branch for later digging; it triggers some kind of spesh bug | 09:45 | |
09:49
AlexDaniel left,
AlexDaniel joined
09:57
AlexDaniel left,
AlexDaniel joined
10:06
AlexDaniel left
|
|||
Geth | nqp: 34bfa2c71e | (Paweł Murias)++ | 2 files [js] Fix nqp::uname and make it call the uname command |
11:03 | |
nqp: 85ec713c6c | (Paweł Murias)++ | src/vm/js/nqp-runtime/browser.js [js] Add a placeholder nqp::uname in the browser |
|||
nqp: 74d95cb65f | (Paweł Murias)++ | src/vm/js/const_map.nqp [js] Add UNAME constants |
|||
11:09
AlexDaniel joined
12:02
bloatable6 left,
bloatable6 joined,
ChanServ sets mode: +v bloatable6
|
|||
Geth | rakudo: 8fc53ec263 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 WIP: re-implementation of sprintf() For now available as "zprintf()" to allow for easier testing. |
13:03 | |
13:14
pmurias left
13:16
lucasb joined
13:29
vrurg joined
13:42
pmurias joined
|
|||
Geth | rakudo/more-precise-return-tracking: 451b864b00 | (Jonathan Worthington)++ | lib/Test.pm6 Avoid hack involving early return in Test.pm6 Instead, implement it with a control exception. This means that we could lift the restriction on needing a `Callable` that can be returned from in this place too; unfortunately, we have spectests that make sure it fails, so simply lifting the restriction will cause failures in the spectest for released language versions. For now, just preserve the existing behavior, but in a way that won't break our more accurate tracking of which things need return handlers. |
13:57 | |
Guest16965 | lizmat: the original sprintf implementation is incomplete, is the new one better, i.e. supports more formatting flags? | 14:05 | |
14:24
ctilmes left
|
|||
Geth | rakudo/more-precise-return-tracking: 84b0e38048 | (Jonathan Worthington)++ | lib/Test.pm6 Avoid hack involving early return in Test.pm6 Instead, implement it with an exception. This means that we could lift the restriction on needing a `Callable` that can be returned from in this place too; unfortunately, we have spectests that make sure it fails, so simply lifting the restriction will cause failures in the spectest for released language versions. For now, just preserve the existing behavior, but in a way that won't break our more accurate tracking of which things need return handlers. |
15:14 | |
rakudo/more-precise-return-tracking: 9072278092 | (Jonathan Worthington)++ | src/core/Mu.pm6 Fix .&fail after better return handler tracking Also, the fact this was needed points to us missing optimizing the $foo.&bar case into &bar($foo) rather than going through the dispatch helper. |
|||
rakudo/more-precise-return-tracking: 69c535ecfb | (Jonathan Worthington)++ | src/Perl6/Grammar.nqp Retain current return from default behavior Currently, `sub { sub foo($x = return 42) { } say foo }` sees the return actually return from the enclosing sub! While that's probably a bug, unfortunately a spectest exists specifying it this way. So, retain the semantics that the test suite wants for now. |
|||
15:29
pmurias left
15:32
pmurias joined
15:35
patrickb left
|
|||
Geth | specs: pmqs++ created pull request #124: tell: use the term "bytes" instead of "octets" |
15:44 | |
16:05
pmurias left
|
|||
lizmat | Guest16965: for now, it is trying to do the same as the current implementation, but to be (much) faster on repeated calls with the same format | 16:05 | |
since it is all written in Perl 6, adding new formatting flags should be pretty straightforward | 16:06 | ||
Geth | specs: d0393d762d | (Paul Marquess)++ (committed using GitHub Web editor) | S32-setting-library/IO.pod tell: use the term "bytes" instead of "octets" Make "tell" and "seek" use the same unit. github.com/perl6/specs/issues/85 |
16:08 | |
specs: 8d471152f4 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | S32-setting-library/IO.pod Merge pull request #124 from pmqs/master tell: use the term "bytes" instead of "octets" |
|||
16:10
MasterDuke left,
vrurg left
16:12
vrurg joined
16:13
vrurg left,
vrurg joined
16:21
ggoebel joined
16:30
Kaiepi left
16:31
Kaiepi joined
|
|||
timotimo | lizmat: anycontingency for when some code keeps generating more and more different format strings? | 16:50 | |
this isn't something you should be doing, but for example for ^100_000 { sprintf "number $_: %s", "lol" } will give 100k different format strings, technically | |||
Geth | rakudo: 12a094ad5d | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Streamline flag handling Since we don't enforce any order in the flags, it feels like we can simplify flag checking significantly by just storing the flags in a single Match, and then just use .contains to see whether a flag is set. |
16:54 | |
lizmat | timotimo: yeah, I'm aware of that eventuality. I was thinking of adding a maximum to the number of keys in FORMATS and deleting the first from the hash iterator if that number is exceeded | 16:55 | |
timotimo: but in real situations, I don't think this will occur so much | 17:02 | ||
timotimo: so it's more about preventing a DOS rather than anything else | |||
Geth | rakudo: 7201d89e5a | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Make sure we only keep 100 formats around To prevent a DOS attack by eating memory by generating many, many different format specifications. |
17:04 | |
17:06
llfourn left
|
|||
Geth | rakudo/more-precise-return-tracking: 2eb93b2d7d | (Jonathan Worthington)++ | 2 files Don't emit unrequired init code for natives When we assign to them immediately, then we don't need to retain the initial zeroing out. Shaves a few cycles off all the things that use natively typed lexicals. |
17:21 | |
rakudo/more-precise-return-tracking: 286aa29e2a | (Jonathan Worthington)++ | src/core/Array.pm6 Simplify array fast-path checking We need to evaluate all the pieces anwyay; this means we get less control flow in the resulting generated code. (We do trade off doing some evaluations, but the common case is that all of these are true.) |
|||
rakudo/more-precise-return-tracking: a21cf6ae0b | (Jonathan Worthington)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp Initialize $!reified/$!todo to a type object Which means spesh turns it into something simpler; together with a JIT improvement in MoarVM, we save over 300 bytes off the machine code that is produced for ASSIGN-POS. |
|||
Kaiepi | can someone running oracle's jdk run this and tell me what its output looks like? hastebin.com/kimuvucini.cs | 17:42 | |
vrurg | Kaiepi: I have jdk, but never used java. How do I run this? | 17:44 | |
Geth | rakudo: 29107b172d | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Fix various issues with order of flag checks Also, if there is no size specified, we don't need to check for anything wrt to justification or padding. |
17:45 | |
Kaiepi | vrurg, save it as Test.java, then run javac Test.java, then java Test | 17:46 | |
vrurg | Kaiepi: Found myself. ;) | 17:47 | |
lizmat | m: dd sprintf("%#o",65) # shouldn't this need to be 0o101 ?? | ||
evalable6 | "0101" | ||
vrurg | I'll make hastebin.com/ohaxasejis.coffeescript | ||
Kaiepi | and you're sure it's oracle's jdk, not openjdk? | 17:48 | |
vrurg | It's macOS and I was downloading from Oracle. | ||
javac 1.8.0_201 | 17:49 | ||
Kaiepi | alright | ||
it matches openjdk's output, perfect | |||
actually wait, what i was planning to do with this probably isn't the best idea, which is to allow SO_SNDTIMEO/SO_RCVTIMEO support for getsockopt/setsockopt by adding 1 and 2 to whatever the highest value is to get their values for the SockOpt enum | 17:51 | ||
i'm not sure what the best way to write this is | 17:52 | ||
Geth | rakudo: 972a242f9a | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Add ssupport for "o" and "x" formats By generalizing the "b" format handling. This deviates "o" format handling from the current implementation, which I deem to be in error. See R#2830 |
18:11 | |
synopsebot | R#2830 [open]: github.com/rakudo/rakudo/issues/2830 dd sprintf("%#o",65) # is 0101, shouldn't this be 0o101 ?? | ||
dogbert17 | lismat: FWIW both P5 and Ruby returns 0101 | 18:17 | |
gah | 18:18 | ||
lizmat: FWIW both P5 and Ruby returns 0101 | |||
lizmat | dogbert17: but does that make it right ? | 18:19 | |
dogbert17 | that's how it seems to be specced, "For o, x, X types, the text 0, 0x, 0X, respectively, is prepended to non-zero numbers" en.wikipedia.org/wiki/Printf_format_string | 18:20 | |
lizmat | m: use MONKEY; dd EVAL sprintf("%#x",65) | 18:23 | |
evalable6 | 65 | ||
lizmat | m: use MONKEY; dd EVAL sprintf("%#b",65) | ||
evalable6 | 65 | ||
lizmat | m: use MONKEY; dd EVAL sprintf("%#o",65) | ||
evalable6 | Potential difficulties: Leading 0 has no meaning. If you meant to create an octal numb… |
||
lizmat, Full output: gist.github.com/5f7896da3fe0bfae26...e4f5298463 | |||
lizmat | feels to me the output of sprintf("%#o"...) should roundtrip | 18:24 | |
it does so in C, Perl 5 and Ruby, but not so in Perl 6 | |||
also, usually octal literals are used for things like chmod() | 18:26 | ||
but in Perl 6 you *also* have to specify them with 0o, like chmod(0o644, $file) | 18:27 | ||
dogbert17 | that complicates thing | 18:37 | |
*things | |||
Geth | rakudo: 1cad10b76e | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Revert "o" format to Perl 5 / C / Ruby behaviour Which I think is wrong, but here you go. |
18:38 | |
dogbert17 | lizmat: possibly insane suggestion but perhaps you could introduce another specifier for outputting P6 octal values, e.h. O instead of o ? | 18:40 | |
Kaiepi | so i'm writing support for SO_SNDTIMEO/SO_RCVTIMEO for my setsockopt/getsockopt pullreq | 18:53 | |
i ran into a problem on the jvm though | |||
async sockets allow you to set a separate timeout for sending/receiving data, but sync sockets don't, they just use one timeout for both | |||
should i allow having separate read/write timeouts with async sockets or make it follow the same behaviour as sync sockets? | 18:54 | ||
vrurg | Kaiepi: I would allow it. | 18:58 | |
Kaiepi | ok good, that's what i already wrote lol | 19:01 | |
Geth | rakudo: 4ae023c717 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Introduce "O" format for Perl 5 semantics The "o" format conforms to the way "x" and "b" are rendered. dogbert17++ for the suggestion. |
19:30 | |
19:44
lucasb left
|
|||
dogbert17 | lizmat: cool, just wondering if 'o' should be P5 style and 'O' P6 style instead? | 19:45 | |
bartolin | lizmat: I think about adding a return type --> Nil to method !RE-INITIALIZE here: github.com/rakudo/rakudo/blob/4ae0...y.pm6#L281 This seems to help with two spectest failures in S02-types/array-shapes.t on the JVM backend. Do you think such a change would be ok moar, too? (There are no spectest failures on moar, at least.) | 19:48 | |
lizmat | dogbert17: but then the O format would generate a 0o123 string | 19:50 | |
bartolin: looks ok to me | 19:51 | ||
bartolin | lizmat: thanks! | ||
Geth | rakudo: af7b833f0d | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Make sure that "x" creates lowercase hex characters |
19:52 | |
lizmat | bartolin: good catch! | ||
dogbert17 | lizmat: yes, and 'o' would create 0123, just like P5/Ruby/C etc | 19:53 | |
bartolin | roast++ :) | ||
lizmat | dogbert17: will think about it... it feels wrong to me to perpetuate an inconsistency if it is not necessary | 19:55 | |
dogbert17 | lizmat: sounds like a plan, sorry for the bikeshedding :) | 19:57 | |
lizmat | no pb... glad to have someone look at my code :-) | ||
Geth | rakudo: 417fa68e9f | usev6++ | src/core/ShapedArray.pm6 Don't return internal value from !RE-INITIALIZING This fixes internal errors for the JVM backend for code like 'my @c[2;2] .= new(:shape(2, 2), <a b>, <c d>)' |
20:02 | |
lizmat | bartolin++ | ||
Geth | roast: 07ad1f284b | usev6++ | S02-types/array-shapes.t [JVM] Unfudge now passing tests Fixed with github.com/rakudo/rakudo/commit/417fa68e9f |
20:04 | |
lizmat | m: dd sprintf(q/%#X--%2$d/,0xFF) # feels to me this should die | ||
evalable6 | "0XFF--0" | ||
lizmat | m: dd sprintf(q/%#X--%0$d/,0xFF) # this is definitely LTA | 20:05 | |
evalable6 | (exit code 1) This representation (Null) does not support elems (for type VMNull) in block <unit> at /tmp/Z2_ibreN2O line 1 |
||
20:35
Kaiepi left,
Kaiepi joined
20:37
lucasb joined,
Kaiepi left,
Kaiepi joined
|
|||
dogbert17 | lizmat: in your first example P5 prints the same result while Ruby dies with an ArgumentError | 20:43 | |
Ruby dies, ArgumentError, in the second example as well | 20:46 | ||
20:47
ggoebel left
|
|||
lizmat | dogbert17++ | 20:48 | |
20:59
Kaiepi left
21:01
Kaiepi joined
21:02
Kaiepi left,
Kaiepi joined
21:12
ggoebel joined
21:15
llfourn joined
21:22
vrurg left
21:24
vrurg joined
|
|||
Geth | rakudo: 745053891b | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Add support for the "N$" index feature TIL you can actually access specific arguments in your format string. |
21:54 | |
rakudo: d000a12557 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Fix issue with "u" Caused by running value() in a scope that didn't have a valid $/ |
22:06 | ||
rakudo: dc02335dd9 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 Make sure the EVAL doesn't show in any backtraces |
22:16 | ||
lizmat | and that concludes my hacking for today | ||
Geth | roast: tony-o++ created pull request #527: add tests of rounding methods (adverbs for basic rounding methods) se… |
22:25 | |
rakudo: tony-o++ created pull request #2831: see:rakudo/rakudo#2826; add HALF-[UP|DOWN|EVEN|ODD] | [TO|FROM]-ZERO … |
22:35 | ||
synopsebot | RAKUDO#2826 [open]: github.com/rakudo/rakudo/issues/2826 [math] Rounding behaviors | ||
22:43
travis-ci joined
|
|||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Introduce "O" format for Perl 5 semantics | 22:43 | |
travis-ci.org/rakudo/rakudo/builds/517949480 github.com/rakudo/rakudo/compare/1...e023c717ce | |||
22:43
travis-ci left
23:52
travis-ci joined
|
|||
travis-ci | Rakudo build passed. usev6 'Don't return internal value from !RE-INITIALIZING | 23:52 | |
travis-ci.org/rakudo/rakudo/builds/517963829 github.com/rakudo/rakudo/compare/a...7fa68e9f9f | |||
23:52
travis-ci left
|