japhb timotimo: 0 bytes in a utf-8 encoded buffer mean the same thing they mean in an ASCII string, because codepoints 0..127 are guaranteed to encode the same in ASCII and utf-8. This is part of the the utf-8 design -- they wanted applications to be able to upgrade to handling the full Unicode charset without having to replace every single function that assumed nul-terminated C strings. 00:02
Unlike, say UCS-2, wherein an aligned pair of 0 bytes marks end of string, and singleton (or unaligned pairs of) 0 bytes can appear randomly and must not be treated as string terminators. 00:04
yoleaux Zoffix: fix up `make test` along with other test (make all the tests in rakudo's t/ actually get run when make test is run) 01:17
travis-ci Rakudo build errored. usev6 'Use nqp::eqaticim on MoarVM only 02:45
travis-ci.org/rakudo/rakudo/builds/273420062 github.com/rakudo/rakudo/compare/e...52b07b710f
buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0).
bartolin pmurias++ 05:28
samcv almost reading to merge the collation stuff into moarvm. so close 07:56
:-)
going to try and leave in some debug functions though. since that was super invaluble when i was creating it. and i really don't want to get rid of them. so will try to relegate them to certain functions hidden behind #define's 08:01
there's a lot of code involved in the whole collation thing which you might imagine. like 700 lines of code (not counting the data i mean) 08:15
very happy with it though
despite having a fair amount of code it's very fast because of the methods i used, so the code that gets run usually doesn't run very much, unless it has to 08:16
JimmyZ wonders whether perl6 has something @annotation syntax like java or not 08:20
samcv what is that? 08:25
JimmyZ samcv: docs.oracle.com/javase/tutorial/ja...fined.html 08:33
pmurias samcv: the unimatch tests really want to DWIM and take either a property value or a property name... 08:39
samcv pmurias, unimatch is pretty broken
well. i think it is :)
uh i wouldn't bother with unimatch that much. uh yes you will need properly value checking for that 08:40
pmurias samcv: what do you think about spliting the op behavior and having both a nqp::unipropname and nqp::uniproporpvalname
ops
samcv i hate that
pmurias why? 08:41
samcv properly values are not unique
they only really make sense with a property value to go along with it
what does this return? a propcode? 08:42
or does it return whether it has that properly or property value assigned to it?
pmurias meant to have that op called nqp::unipropcode and nqp::uniproporpvalcode
both ones would return the propcode
samcv well property values are not unique 08:43
so what does it return back when like 8 properties have the same possible prop value?
pmurias throw an exception?
samcv tbh i don't think unimatch sholud let you search ALL property values
pmurias i hate that interface too, but we have to implement the tests somehow :/ 08:44
samcv because it is insane to implement when you have proprety values that are shared
for unimatch?
i would focus on making unimatch work when the property name *is* specified
and not on having it work when there's no propname specified
the design docs don't specify it matching ANYTHING 08:45
i should check the 6.c errata and see what it has
pmurias the design docs seem to specify that unimatch matches on general category 08:46
samcv but imo i think it should only function the same way that regex functions. like if you give it a script name or a general category or a property name itself. not a property value from any category
yeah
pmurias but the design docs commits seem to mention just describing the implementation :/ 08:47
samcv what do you mean by just describing the implementation?
but yeah. unimatch needs to change/be restricted in 6.d i think or at least the docs updated so that it says it only guarentees certain things work like script and proprety names 08:48
anything else is not future portible and not going to be scalable across more than one backend 08:49
thanks for bringing this up though. :-)
pmurias hmm, maybe moving the crazy unimatch behavior to the setting code and sanitizing nqp::unipropcode makes sense? 08:53
samcv sanitizing? 08:54
pmurias make it more sane
samcv hm 08:55
pmurias so nqp::uniprocode would take care of the property name to numer matching while unimatch would do the crazy DWIM
samcv well the unimatch behavior is just caused by moarvm having been created assuming property values were unique and so it'd match property values with propcodes. it had one big hash that had proprety values as keys and the propcodes of their owner propreties
which ended up messing up all kinds of things becuase they could override each other with idetical names 08:56
which is why we have the weird unimatch functionality
i mean how would you implement that? have it look up all the properties which contain that property value then check every one of those properties? 08:57
something like that?
that could be do-able 08:58
pmurias not sure, either just check the 4 or so properties that are used in the test or add an op that does a lookup with DWIM
samcv DWIM = letting you give it something that could be shared between properties?
and checking them all? 08:59
pmurias how many property values are there?
it seems like there are 3806 ones 09:02
not sure how big of a performance penalty would having such a hash in Perl 6 land be 09:03
samcv: if something is shared across the properties I don't think we can do anything better than failing (it's not future proof with new unicode versions but neither is picking a random choice) 09:04
samcv i mean if you're checking if it has a property value you should really know which property you're checking 09:06
scovit Hello, I suspect I found a bug: gist.github.com/scovit/3cec65085dc...d0bfd03cf5
is it a bug?
[Tux] This is Rakudo version 2017.08-99-g591b93eaf built on MoarVM version 2017.08.1-128-gde6dceda 09:17
csv-ip5xs 1.385 - 1.485
test 10.098 - 10.420
test-t 3.555 - 3.861
csv-parser 11.325 - 11.820
samcv \o [Tux]
evalable6, gist.githubusercontent.com/scovit/...tfile1.txt
evalable6 samcv, Successfully fetched the code from the provided URL.
(exit code 1) (uint8)
concatenate requires a concrete string, but got null
in any protec…
samcv, Full output: gist.github.com/57c82d27d2c3271f8e...886b3677a5
[Tux] Error encoding UTF-8 string: could not encode codepoint 1696741 (0x19E3E5), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF)
in block <unit> at 88.t line 21
samcv probably an error scovit 09:18
hm
well. i will look into it give me one sec
scovit thanx 09:19
samcv: I found an easy workaround, using a local 'my \ty = T;' and then Blob[ty] instead of Blob[T] 09:24
seems like a bug to me
samcv bisectable6, gist.githubusercontent.com/scovit/...tfile1.txt 09:26
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, Bisecting by exit code (old=2015.12 new=591b93e). Old exit code: 0
samcv, bisect log: gist.github.com/de3e8763a17ffb4f4e...9acd4eb4e8 09:27
samcv, (2016-02-28) github.com/rakudo/rakudo/commit/1e...4fcf1a4159
samcv let's see if it was my fault or not
yay i didn't do it :p
looks old
oh nvm 09:28
looks like it was always broken before?
or i think it may have just found out where it first started working
i need it to bisect by output
bisectable6, help
bisectable6 samcv, Like this: bisectable6: old=2015.12 new=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # See wiki for more examples: github.com/perl6/whateverable/wiki/Bisectable
samcv bisectable6, old=2016.3 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt 09:29
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, Cannot find revision “2016.3” (did you mean “2016.03”?)
samcv bisectable6, old=2016.03 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, Bisecting by output (old=2016.03 new=591b93e) because on both starting points the exit code is 1
samcv, bisect log: gist.github.com/8de3c7acde04637b80...c289c591cc
samcv, (2016-04-20) github.com/rakudo/rakudo/commit/60...f93f46a849
lizmat Files=1223, Tests=67688, 292 wallclock secs (11.02 usr 4.67 sys + 1977.87 cusr 207.02 csys = 2200.58 CPU)
samcv bisectable6, old=2016.05 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt 09:35
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, Bisecting by output (old=2016.05 new=591b93e) because on both starting points the exit code is 1
samcv, bisect log: gist.github.com/eff9bc00fce8d7e9b7...1432d0b2a9
samcv, (2016-08-05) github.com/rakudo/rakudo/commit/71...4841fbf12f
samcv bisectable6, old=2017.03 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, Bisecting by output (old=2017.03 new=591b93e) because on both starting points the exit code is 1
samcv, bisect log: gist.github.com/9c06534ddc4329b761...230ef4b8c2 09:36
samcv, (2017-05-26) github.com/rakudo/rakudo/commit/c4...4439bab3db
samcv bisectable6, old=2017.05 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, Bisecting by output (old=2017.05 new=591b93e) because on both starting points the exit code is 1
samcv lizmat, you know anything about this?
bisectable6 samcv, bisect log: gist.github.com/c41af86c061dcb19a5...f51038c8a4
samcv, (2017-05-26) github.com/rakudo/rakudo/commit/c4...4439bab3db
samcv evalable6, gist.githubusercontent.com/scovit/...tfile1.txt
evalable6 samcv, Successfully fetched the code from the provided URL.
(exit code 1) (uint8)
concatenate requires a concrete string, but got null
in any protec…
samcv, Full output: gist.github.com/a1c2c6b55174ff562b...dd7ccd0f06
samcv seems to be related to buffer code 09:37
seems you've worked with that code
lizmat looks
samcv bisectable6, old=2017.07 new=HEAD gist.githubusercontent.com/scovit/...tfile1.txt 09:38
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, Bisecting by output (old=2017.07 new=591b93e) because on both starting points the exit code is 1
samcv, bisect log: gist.github.com/8d983f749fad791765...3ce48e510e
samcv, (2017-09-04) github.com/rakudo/rakudo/commit/4b...77b74cd59d
samcv wow that's not helpful 09:39
the output is the same but the order is different
due to buffering code
bisectable6, old=2017.07 new=2017.08 gist.githubusercontent.com/scovit/...tfile1.txt 09:40
bisectable6 samcv, Successfully fetched the code from the provided URL.
samcv, On both starting points (old=2017.07 new=2017.08) the exit code is 1 and the output is identical as well
samcv, gist.github.com/93e61346702eabdb48...ccee7f2535
lizmat well, the error seems to occur when trying to say that it couldn't instantiate the rold
*role
samcv yep
lizmat samcv: not sure what's going on, but I found a workaround 09:51
samcv hm
lizmat if you put "my $type := T;" at the start of the role, and use "Blob[$type].new" later on, it seems to work 09:52
this should probably be rakudobugged
bartolin an update regarding the jvm backend: it's not only precompilation, but most (if not all) file operations that are broken. if i'm not mistaken, this is caused by uses of nqp::filenofh -- e.g. here: github.com/rakudo/rakudo/blob/591b...dle.pm#L30 10:09
that op is only stubbed on jvm and always returns -1
i suppose, it's above my head to implement a working version of that nqp::filenofh -- but that seems to be the way to go 10:12
bartolin will look further
lizmat bartolin: I will stub out the auto-closing of files for JVM, and perhaps buffering should then also be not default on JVM 10:20
pmurias samcv: the unicode docs suggest that loose matching "Ignore case, whitespace, underscore ('_'), and hyphens." should be used for property names and property value names 10:30
samcv: do we want to use that?
samcv well moarvm allows original, lowercase, and lowercase with no underscore 10:38
whitespace isn't allowed
so: Canonical_Combining_Class OR canonical_combining_class OR canonicalcombiningclass 10:39
no others. but it would be simple enough to make it just lowercase it and remove underscores 10:40
Geth rakudo/nom: dd8d0d89a3 | (Elizabeth Mattijsen)++ | 2 files
Make auto-closing files a MoarVM only thing

This should help unbusting the JVM, bartolin++ . Can be reverted when someone makes nqp::filenofh give valid values on the JVM.
samcv so you could do CaNoNi_cAl_coMBIN_Ing_ClaSS
what do you think is sane
i don't approve of whitespace though 10:41
lizmat .tell bartolin hopefully dd8d0d89a3 will help you 10:42
yoleaux lizmat: I'll pass your message to bartolin.
bartolin lizmat: thanks! i'll try in a minute 10:44
yoleaux 10:42Z <lizmat> bartolin: hopefully dd8d0d89a3 will help you
pmurias samcv: I don't have intutions what's sane in unicode, but if there is a defined rule using it will hopefully be consistent with other unicode using things 10:53
unicode.org/reports/tr44/tr44-16.html#UAX44-LM3 - unicode.org/reports/tr44/tr44-16.ht...g_Symbolic 10:54
scovit Some of you might be interested: I made a very useful CBuffer type gist.github.com/scovit/a061415aa84...c6c6901490 . Might make a module out of it, what is the faster way here to make a simple module skeleton? Any git repo to clone? 10:58
Skarsnik_ mi6 10:59
scovit Skarsnik_ it is a pity that many things in NativeCall are not composable I could have used a typed role instead of a class 11:02
MasterDuke i was curious, so last night i ran a script to build rakudo at each release and pull out the parse time 11:54
results: 57,58,58,64,56,57,66,67,68,70,73,65,64,64,66,68,65,66,71 11:55
timotimo can you correlate it with the line count of the core setting?
MasterDuke hm, that gets created by make, not Configure.pl, right? 11:57
timotimo right 11:58
MasterDuke ugh, i'd have to re-run then and also record the line count 11:59
but i guess a rough approx would just be wc -l in the src folder at each release? 12:00
jnthn Well, it just concatenates all the source under src/core/ so I guess you can just count up those
MasterDuke it'd misscount the #?if <backend> stuff, but woulf prob be close enough for a rough correlation 12:02
timotimo no problem, IIRC we actually put empty lines in for the non-matched things 12:03
so that line numbers in the concatenated core setting match up with the source files regardless of what parts were included or not includde
MasterDuke ah, right 12:05
Geth rakudo/nom: 16f8419a3e | usev6++ | src/core/IO/Handle.pm
Avoid trailing semicolon for JVM backend

The trailing semicolon in combination with binding nqp::null gave a NullPointerException in infix:<,>.
This can be reverted with dd8d0d89a3 when nqp::filenofh give valid values on the JVM.
12:23
bartolin ^^ with that precompilation (and other file IO) seems to work again on the jvm backend. 'make test' does not work, yet -- but one can run single test files 12:24
lizmat: shouldn't the semicolon in this line be a comma (because we are inside nqp::stmts)? github.com/rakudo/rakudo/blob/nom/...le.pm#L254 12:26
lizmat: and also here: github.com/rakudo/rakudo/blob/nom/...le.pm#L813
lizmat checks 12:27
bartolin lizmat: but I tried to use a comma instead and got a lot of failing tests (make test and make spectest)
lizmat it needs parens :-) 12:28
testing that now
bartolin ah, of course!
Geth rakudo/nom: 2762bcc49f | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm
Oops, need parens + comma inside nqp::stmts

  bartolin++ for spotting
12:31
bartolin lizmat++ :-)
AlexDaniel committable6: releases gist.githubusercontent.com/scovit/...tfile1.txt 12:42
committable6 AlexDaniel, Successfully fetched the code from the provided URL.
AlexDaniel, gist.github.com/10f9bc1c3c34f7211e...db7711fd4f
AlexDaniel samcv: LPT use committable with “releases” to get the big picture, then bisect precisely what you need :) 12:45
timotimo i get a whole bunch of "unhandled failure in DESTROY" from t/spec/S11-modules/require.t 12:47
has that always been there?
lizmat timotimo: I think so 12:52
timotimo OK
that test failed on my spec test run, but not without the harness 12:53
lizmat fwiw, roast as many more of those
timotimo failed test 13, ok 13 - can require with variable name
lizmat that one has been a occasional flapper for me for a long time already
timotimo OK, good 12:56
in that case, i just fixed junction optimization
lizmat whee! :-) 12:57
you mean, the one that handles 2 eigenstate junctions ?
AlexDaniel faster junctions? Whee indeed!
timotimo only static junctions
Geth rakudo/nom: 4de858a555 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp
junction optimizer shall ignore proto and only look at candidates
12:58
timotimo you know, when you have if $foo == 1 | 2
Skarsnik still good ^^
timotimo one of the first things i contributed to rakudo
i wonder if i should put in a test to warn when the junction folding ops get b0rked 13:02
travis-ci Rakudo build canceled. Will "Coke" Coleda 'Note how to build on windows' 13:07
travis-ci.org/rakudo/rakudo/builds/273280313 github.com/rakudo/rakudo/compare/3...a600997c30
buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0).
travis-ci Rakudo build canceled. usev6 'Use nqp::eqaticim on MoarVM only 13:22
travis-ci.org/rakudo/rakudo/builds/273420062 github.com/rakudo/rakudo/compare/e...52b07b710f
buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0).
pmurias is ($foo, $bar) := ($bar, $foo) planned to be implemented? 14:15
jnthn No
pmurias I'll removed it from roast then (it's fudged) 14:16
jnthn +1
pmurias++ # tidying all kinds of things up
Geth roast: cb18065737 | pmurias++ | S02-types/lists.t
Remove fudged test we don't plan on implementing
14:19
travis-ci Rakudo build canceled. pmurias 'Refactor a regex in a way that avoids a JVM backend bug and is cleaner' 14:25
travis-ci.org/rakudo/rakudo/builds/273456019 github.com/rakudo/rakudo/compare/d...1b93eaf8aa
buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (3), GitHub connectivity (0), or failed make test (0).
timotimo m: my ($foo, $bar) = <ofo aba>; dd $foo, $bar; ($foo, $bar) = ($bar, $foo); dd $foo, $bar 14:26
camelia Str $foo = "ofo"
Str $bar = "aba"
Str $foo = "aba"
Str $bar = "ofo"
timotimo so just not with binding?
[Coke] bartolin++ 16:41
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make auto-closing files a MoarVM only thing 16:46
travis-ci.org/rakudo/rakudo/builds/273581289 github.com/rakudo/rakudo/compare/5...8d0d89a3f4
bartolin looks like the reason for 'make test' not working on the jvm backend is that the EvalServer is unable to find BOOTSTRAP.jar. it looks in /nqp/lib/Perl6/BOOTSTRAP.jar. even when installing with --libdir there is no value for nqp::getcomp('perl6').config<libdir> 18:52
cmp. github.com/rakudo/rakudo/blob/4de8...er.nqp#L53
that looks fixable (though i don't know how a clean fix would look like) 18:54
AlexDaniel Skarsnik: any news? :S 18:55
Skarsnik I make it crash faster with a bigger webpage \o/ ? 18:56
AlexDaniel yeey… 18:57
Skarsnik it crash at like 10-12 iterations, but crash with 40 in valgrind and efence fill my ram xD 18:58
pmurias bartolin: the path stuff is looked up was changed, the used to be a /share/ stuck in that path 19:24
s/stuff/BOOTSTRAP
bartolin: if you look at 0d7ea0a0aa you will see the change on moarv 19:26
m
bartolin pmurias: thanks! i'll look into this later 19:30
pmurias: one other question: when a special case for the jvm backend is added -- do you prefer '#?if jvm' or '#?if !moar'? (the latter would affect the js backend as well, wouldn't it?) 19:39
pmurias hmm, for jvm bugs workaround #if jvm is preferable 19:41
for some brand new moar specific missing feature maybe #?if !moar?
bartolin ok, that's what I thought. regarding the commits from today: you already implemented nqp::filenofh for js, didn't you? 19:43
pmurias bartolin: yes 19:56
bartolin: when in doubt you can use '#?if jvm' and I'll change the workarounds to '#?if !moar' when merging stuff into my branch 19:57
ugexe m: while $(1,2) -> @_ { FIRST { say 42 } } 20:15
camelia Too few positionals passed; expected 1 argument but got 0
in block <unit> at <tmp> line 1
lizmat m: while 1 -> { last } 20:21
camelia ( no output )
lizmat ugexe: the block gets called without any params in a while structure 20:22
jnthn m: while 1 -> $x { say $x } 20:23
camelia (timeout)1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1…
lizmat hmmm... that appears to run a lot ?
ugexe m: while $(1,2) -> @_ { LAST { say 42 }; last if $++ }
camelia 42
jnthn Yeah, it should be passed the thing 20:24
lizmat ah, TIL
jnthn That's why the (not entirely wise unless you know your data) while @a.pop -> $x { } works
Not sure what's up with the example ugexe posted
m: while $(1,2) -> @_ { say 42; last } 20:25
camelia 42
jnthn m: while $(1,2) -> @_ { say @_; last }
camelia (1 2)
jnthn Something about the FIRST apparently
ugexe m: for $(1,2) -> @_ { FIRST { say 42 } } 20:28
camelia 42
ugexe m: while $(1,2) { FIRST { say 42 } last if $++ } 20:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3while $(1,2) { FIRST { say 42 }7⏏5 last if $++ }
expecting any of:
infix
infix stopper
ugexe m: while $(1,2) { FIRST { say 42 }; last if $++ }
camelia 42
jnthn m: while $(1,2) -> @_ { FIRST { say 42 } } 20:33
camelia Too few positionals passed; expected 1 argument but got 0
in block <unit> at <tmp> line 1
jnthn m: while $(1,2) -> $_ { FIRST { say 42 } }
camelia Too few positionals passed; expected 1 argument but got 0
in block <unit> at <tmp> line 1
jnthn Ah, OK, it's nothing about the @ 20:34
So seems to be while block + parameter + FIRST
ugexe m: while $(1,2) -> $_? { FIRST { say 42 }; last if $++ } 20:37
camelia 42
ugexe m: while $(1,2) -> *@_ { FIRST { say 42 }; say @_.perl; last if $++ } 20:38
camelia 42
[]
[]
ugexe m: while $(1,2) -> $_? { say $_.perl; last if $++ } 20:41
camelia Mu
Mu