MasterDukeLaptop wrap_option_n_code ends with QAST::Want.new(QAST::Op.new(...), 'v', QAST::Op.new(...)). what is the meaning of those two Ops with the 'v' inbetween? 00:12
i'm trying to re-write wrap_option_n_code to the equivalent of 'while ($_ := get()).DEFINITE { $code }' instead of 'for lines() { $code }' 02:21
but if i run "./perl6-m -ne '.say' VERSION", i get "Cannot call method 'sink' on a null object" 02:22
what i get from --target=ast for my change is pretty similar to what i get from --target=ast -e 'while ($_ := get()).DEFINITE { }' with an unmodified rakudo 02:24
samcv ok I have implemented `uniprops` and despite the DRAFT synopsis saying uniprops only works on strings. I thought it was necessary for it to also work on lists as well, and function the same as calling uniprop on each item 03:00
and made it so you can call uninames with an array as well
I think that's element of least surprise, since you can call uniname on int's and chars. so uninames can take arrays of ints or characters, or a string 03:01
pull here: github.com/rakudo/rakudo/pull/945 03:10
MasterDukeLaptop when would a string have a storage type of MVM_STRING_GRAPHEME_8 vs _32 vs _ASCII? 06:06
nine MasterDukeLaptop: the QAST::Want stuff is for distinguishing sink from item context. IOW to ensure that .sink gets called on unused results. 08:33
RabidGravy good morning my little ponies 08:59
samcv good morning RabidGravy 09:12
RabidGravy eugh, what possible rationale could there be for taking ~/bin out of the default $PATH in Fedora 25? 09:32
ooh, and it ain't running .bash_profile 09:35
nine RabidGravy: you could file it as a bug on Fedora?
RabidGravy will need to track down exactly what changed 09:37
as it was before it must have been running the .bash_profile which in turn was sourcing .bashrc if it existed 09:39
it seems it isn't running the .bash_profile and running the .bashrc directly
timotimo MasterDuke: a Want node is a compile-time construct that lets the compiler decide "later" whether an expression should be evaluated in void context or giving an object (that's when you have a v in between) or whether it should give an Int or a native int (in that case you'll have an Ii in between) 09:40
psch hrm, i don't see through the {capture,clone}_inner stuff in QASTCompilerMAST 09:53
i mean, both get called for {declaration,immediate}_static, but that always happens *after* we're actually adding those captured/cloned registers to the prelude of a block..? 09:54
well, frame prologue actually, not block prelude .) 09:56
+.
[Tux] This is Rakudo version 2016.11-182-gea28845f9 built on MoarVM version 2016.11-44-g8e24145d 12:16
csv-ip5xs 3.166
test 14.807
test-t 6.376
csv-parser 14.287
lizmat Zoffix++ # nice blog post 12:41
dalek p: 81e1444 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
[js] Implement nqp::getlexreldyn.
13:19
p: 35b241d | (Pawel Murias)++ | t/nqp/021-contextual.t:
Test nqp::getlexreldyn.
p: 05fa8ab | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement nqp::getlexrelcaller.
p: 2684f4a | (Pawel Murias)++ | t/nqp/021-contextual.t:
Test nqp::getlexrelcaller.
MasterDukeLaptop at what haystack and/or needle length would you expect to start seeing a speedup from using Boyer-Moore vs our current brute index() implementation? 13:26
pmurias MasterDukeLaptop: if we statically know the pattern and can precalculate the tables I would expect the speedup with smaller inputs 13:37
yoleaux2 7 Dec 2016 23:11Z <babydrop> pmurias: I assume the `fix-powers-with-big-exponents` branch can be deleted? It's the one that included a fix to avoid the bug explotation of pow_I in Int ** Int, but that was merged.
babydrop that
that's an old message alraedy taken care of 13:38
MasterDukeLaptop precalculate at compile time you mean? 13:39
i dropped in an implementation (copied verbatim from the wikipedia example), but it seems almost exactly the same speed with the sample inputs i tried on the command line 13:44
but i just did it for MVM_STRING_GRAPHEME_8 strings and the only way i can seem to create them is by directly assigning to a str variable 13:47
doing any operations on it (e.g., x, ~) changes it from MVM_STRING_GRAPHEME_8 13:48
making it hard to text with really large inputs
dalek kudo/lexical_module_load: 0607e25 | niner++ | / (5 files):
Make importing globals from loaded modules lexical

Right now if A depends on C:auth<foo> and B depends on C:auth<bar> you cannot use A and B in the same program. Fix this by having not only exported symbols be lexical but also the globals contained in a module.
So only A will even have a C that's bound to C:auth<foo>. This means that you have to "use" modules in every scope that accesses those names, which is a good thing to do anyway.
Definitely 6.d material though as it will break existing code.
14:33
kudo/lexical_module_load: 4bf7567 | niner++ | src/Perl6/World.nqp:
a class of the same name was declared.
kudo/lexical_module_load: 930daea | niner++ | src/Perl6/ModuleLoader.nqp:
Fix: class Foo { use Foo::Bar; my Foo $foo; } not finding Foo

The lexically imported "Foo" package stub containing "Bar" shadowed the
  "Foo" class we're currently declaring. Fix by considering all scopes
when looking for existing symbols, not just the one we're importing into.
kudo/lexical_module_load: d3acd8f | niner++ | src/Perl6/World.nqp:
Fix our scoped nested package swallowed by lexically scoped parent

In "use Foo; class Foo::Bar { }" Foo::Bar would be created as child of the lexically imported Foo class and was thus missing from the globals. Previous fixes only handled the case when Foo was a stub package, not when it was a full class. Remove the special case and fix the follow up bug that we now got a duplicate symbol when trying to lexically override classes in the RESTRICTED setting. There's no need to upgrade the main package to a global if we only want to create a lexically scoped child anyway.
kudo/lexical_module_load: 3653f68 | niner++ | src/Perl6/World.nqp:
Fixup "Make importing globals from loaded modules lexical"

Remove commented code
babydrop :o 14:34
nine just a rebase 14:35
Another one to follow. Only noticed the fixup after pushing this one :/
pmurias MasterDuke: maybe flattenropes will help? 14:40
MasterDuke: yes, I meant precalculate at compile time
jnthn nine: I saw you did docs for it also, and posted ecosystem stats suggesting the impact was relatively low, which were two of the things I'd requested. :) 14:41
yoleaux2 12:26Z <dogbert17> jnthn: I have now created the two 'spectest fails with small nursery' issues that were discussed yesterday, issues 449 and 450
jnthn dogbert17: Thanks!
nine jnthn: actually the second rebase will contain a fix for an issue uncovered by smoking the ecosystem :) 14:43
jnthn Ah, so even lower :)
nine Here it comes...
dalek kudo/lexical_module_load: c8d3a74 | niner++ | / (5 files):
Make importing globals from loaded modules lexical

Right now if A depends on C:auth<foo> and B depends on C:auth<bar> you cannot use A and B in the same program. Fix this by having not only exported symbols be lexical but also the globals contained in a module.
So only A will even have a C that's bound to C:auth<foo>. This means that you have to "use" modules in every scope that accesses those names, which is a good thing to do anyway.
Definitely 6.d material though as it will break existing code.
kudo/lexical_module_load: 35d1cd2 | niner++ | src/Perl6/World.nqp:
a class of the same name was declared.
kudo/lexical_module_load: 0694033 | niner++ | src/Perl6/ModuleLoader.nqp:
Fix: class Foo { use Foo::Bar; my Foo $foo; } not finding Foo

The lexically imported "Foo" package stub containing "Bar" shadowed the
  "Foo" class we're currently declaring. Fix by considering all scopes
when looking for existing symbols, not just the one we're importing into.
14:44
kudo/lexical_module_load: d3a7c37 | niner++ | src/Perl6/World.nqp:
Fix our scoped nested package swallowed by lexically scoped parent

In "use Foo; class Foo::Bar { }" Foo::Bar would be created as child of the lexically imported Foo class and was thus missing from the globals. Previous fixes only handled the case when Foo was a stub package, not when it was a full class. Remove the special case and fix the follow up bug that we now got a duplicate symbol when trying to lexically override classes in the RESTRICTED setting. There's no need to upgrade the main package to a global if we only want to create a lexically scoped child anyway.
nine jnthn: I've also submitted a couple of PRs to affected modules.
kudo/lexical_module_load: 6fdc548 | niner++ | src/Perl6/ModuleLoader.nqp:
Fix imported nested enum colliding with symbol from outer scope

We also search outer scopes for declared packages, in case we import a sub- package. But when we actually want to lexically overwrite the symbol from the outer scope, we would wrongfully detect a collision. Fix by allowing for overwriting the symbol from the outer lexical scope after detecting that we cannot just merge packages. Reproducible by having A.pm: enum A::B <Date>; perl6 -I. -e 'use A'
jnthn nine: OK, sounds good. 14:47
nine: I note there's "Definitely 6.d material" in the commit message of one of those :-) 14:48
nine Seems like one cannot rebase this branch often enough...
jnthn Was gonna say, is that still your position on it... ;)
nine *lol 14:55
The new test case broke on nom, because two different lexical scopes in the test files both loaded modules declaring A::B. Which works just fine on lexical_module_load 14:56
Good thing I tested it on nom before pushing to roast
dalek ast: a3223a0 | niner++ | / (2 files):
Another test case for merging globals

Date is in the outer lexical scope (the setting) and should be overwritten by the enum value. Might lead to a merge failure on a broken implementation.
15:01
ast/lexical_module_load: c4ad620 | niner++ | / (4 files):
Fixup tests for lexical module loading

We now need to explicitly use modules if we want to use their symbols and can no longer rely on them being loaded by one of our dependencies.
15:02
ast/lexical_module_load: 93785f9 | niner++ | / (2 files):
Test that globals of loaded modules are imported lexically
nine Oh boy... JsonC's tests try to read panda's projects.json from the repository!? 15:11
timotimo hah
"quick, where can we find some json data??"
nine That's just wrong on so many levels... 15:12
github.com/salortiz/JsonC/blob/mas...asic.t#L63
Module::Does is probably just a broken idea in a lexical module loading world 15:14
pmurias nine: at least the test skips if it's not present :/ 15:18
nine And... "if" overrides Perl6::World::do_pragma_or_load_module. OMG FROGGS, I guess it's just fair to have you update the module after the merge :) 15:19
Ok, there's 3 modules probably failing due to the same require-related issue. Once I've fixed that I'll repeat the smoke test. 15:22
timotimo :D 15:24
pmurias nine: re old discussion on modules depending on versions of rakudo instead of the spec, shouldn't modules that override Perl6::World, use MONKEY-GUTS depend on rakudo versions? 15:31
nine pmurias: I guess, "such modules should not even exist" is not a valid answer on this one? 15:33
pmurias: regardless, I'm not sure how much help it would be anyway. Such modules can be broken any time by even minor changes to rakudo.
jnthn I don't think "should not exist" is really right; such modules existing tells us where we're missing proper ways to do things. :) 15:36
Well, I guess that means in the long run they shouldn't exist... :P
But yeah, we'll have to reserve the right to break such things. 15:37
Otherwise we'll not be able to change anything in the compiler ever. :)
pmurias nine: re how much help it would be, works in current rakudo and the one version before is valid info :) 15:38
dalek kudo/nom: 3d4825a | (Zoffix Znet)++ | docs/ChangeLog:
Add to ChangeLog all changes to date

Documents changes for commits: 014d4cf 01775b7 0428b79 085145f 08589d3 0a874fb 0ee6bc0 15f51a5 172898e 1b840f1 219f527 2e1b82c 2f72fa0 331c2e2 33f7456 345f6a7 35183f3 39261e7 3c4ac3c 3dd2916 3e93ddd 4663d43 471cea2 47ffdea 4a59ab4 4a711bc 4e76827 4f4737d 4fd6e94 5476d60 573ed59 5baa064 61a18c0 64343d7 6bb8823 6cd2144 6d726f8 6ea6563 6f6e6db 74eb6b9 7532297 77e9d4b 79090b2 7c5ea31 7f26e8b 843a6be 8774f24 8cb3e1b 8d04bec 939d273 947422b 965fa4d a2ede36 a8ba26b a9654c0 ab3a59c ababb24 ae614f9 b2ac4e4 b597b7c b6de5e8 b9e2ffa bbbb2b6 bc13bb5 bd42363 bfe89a5 c027e6a c04b8b5 c1a3a3c c38f1ad c797d3f cb9df2b d704820 e0a415f e0c0ae5 e2587cd e4d78c6 e9487d6 ecc202e ee14067 f1263ab f20b8b6 f544e4c f928a20
16:05
babydrop NeuralAnomaly: status
NeuralAnomaly babydrop, [✔] Next release will be in 5 days and 13 hours. Since last release, there are 48 new still-open tickets (0 unreviewed and 0 blockers) and 0 unreviewed commits. See perl6.fail/release/stats for details
babydrop 🎺🎺🎺🎺🎺🎺 REMINDER: The next Rakudo release will happen next Saturday (Dec. 17). Please check your changes have been logged in the ChangeLog correctly. 16:07
babydrop still doesn't get why Unicode version of trumpet is rendered backwards...
FROGGS nine: sure... can you ping me after the merge? 17:59
samcv u: 🎺 18:05
unicodable6 samcv, U+1F3BA TRUMPET [So] (🎺)
samcv babydrop, blame the people who created the ''standard'' and everybody who repeated it afterward. doesn't seem to specify backward. that is weird...
all the other instruments face top right not top left 18:06
timotimo ``standard'' 18:15
[Coke] surely that's just a font choice. :)
yoleaux2 10 Dec 2016 14:45Z <tbrowder> [Coke]: I'll be off the normal land-locked internet grid for Advent editing for a few hours while traveling. I just made some minor changes to the ending words and format. I will be monitoring IRC as well as my iPhone and cell carrier can handle it.
babydrop Well, that's how unicode.org/charts/PDF/U1F300.pdf renders it 18:18
And any font or drawing of it that I've seen
It's pretty shocking no one ever said "You know what... maybe people will want to use it as if trumpeting a message and it pointing left and down is kinda stupid, let's make it point up and right?"
Maybe someone is conducting en.wikipedia.org/wiki/Milgram_experiment 18:19
haha at least someone rebelled: i.imgur.com/CRSQwcA.png 18:21
If anyone feels like bikeshedding .uninames/.uniprops taking a list of things: github.com/rakudo/rakudo/pull/945 18:51
comment
samcv The shapes of the reference glyphs used in these code charts are not prescriptive. Considerable variation is to be 18:54
expected in actual fonts. The particular fonts used in these charts were provided to the Unicode Consortium by a number
of different font designers, who own the rights to the fonts
MasterDuke pmurias: i thought jnthn got rid of flattenropes? 19:12
samcv =]] 19:14
dalek rakudo/nom: f55ff82 | samcv++ | src/core/ (2 files):
rakudo/nom: Implement `uniprops` and allow both `uninames` and `uniprops`
rakudo/nom:
rakudo/nom: to take a List. S15(DRAFT) says that uninames and uniprops
rakudo/nom: only take strings, but I think that it reasonable to expect
samcv sweet. uniprops now implemented 19:15
babydrop \o/
samcv time to write some tests 19:16
babydrop samcv++
lucasb samcv++ 19:21
why move the subs from Str.pm to Cool.pm?
ah, nevermind 19:22
now I read the commit message :)
nine New smoke test: 11 modules broken, 1 module fixed by lexical_module_load and 3 PRs open. 19:26
MasterDuke timotimo: did you see my question about boyer-moore? 19:30
nine FROGGS: sure
timotimo oh, i did not
but your other question, flattenropes is now deprecated and instead we have indexingoptimized (oslt) which is basically flattenropes but doesn't mutate the underlying string
MasterDuke so locally i have a src/strings/ops.c where i dropped in the wikipedia implementation of boyer-moore and call it from MVM_string_index when the haystack and needle are both MVM_STRING_GRAPHEME_8 19:34
just passing haystack->body.storage.blob_8 in directly
samcv in roast, skips can overlap right? 19:35
if it doesn't work yet for multiple backends
timotimo that sounds correct-ish, does it work?
MasterDuke timotimo: yeah, but it's no faster for the tests i've been able to run from the command line 19:36
timotimo interesting
samcv how do I use fudge btw
MasterDuke i'm finding it difficult to create strings that are MVM_STRING_GRAPHEME_8 though 19:37
samcv not sure what 'fudge rakudo test.t' does it just. no error
jnthn MasterDuke: That's just about unused so far.
MasterDuke right now it seems i can create them with native str variables where i don't apply any ops to them 19:38
e.g., my str $a = "abc"; but if i then do an 'x', or '~', they change
samcv uhm is there a way for whole files to be fudged? because uniprop is NYI on JVM, but there's no skip, uniprop for jvm in that file 19:39
only skip for niecza
psch samcv: take a look at rakudo/r/spectest.data 19:40
nine Oh it seems like lexical_module_load does indeed fix a global merging bug that breaks Test::Builder
MasterDuke i haven't tried with MVM_STRING_GRAPHEME_32 yet, not sure if it'll work without changes 19:41
timotimo MasterDuke: it won't, you need to turn the linear array into something like just a sorted list of index/value pairs
samcv: i recommend you try "make t/spec/S12/blahblah.t"
samcv there aren't any makefiles in roast though? 19:43
you mean in rakudo?
timotimo right, that's why it has "t/spec/" in front :)
so yes, in rakudo
samcv well i have a t/spec in my roast from. running one of the things trying to get tests to run :P
oh will try 19:45
babydrop samcv: the S15-unicode-information/uniprop.t is fudged to be a moarvm-only test in t/spectest.data
samcv got it
timotimo hm, i had forgotten that we have per-backend directives in spectest.data 19:46
samcv do i want to look at spectest.data in rakudo or roast? 19:48
babydrop samcv: rakudo it's in t/
samcv ok that's what i thought
babydrop Do we do something with exceptions on when they're thrown in Actions? I'm trying to pass -1 as :pos() to X::Str::Numeric but when I dump it inside its `message`, I get 7 :/ 19:49
samcv ok now i see why jvm isn't fidged in that file 19:50
[Coke] prove -v -e t/fudgeandrun path/to/spec/test.t 19:53
babydrop ugh, apparently it's getting it somewhere from cursor... ./perl6 -e ' :3<a11>' gives 13 and ./perl6 -e ':3<a11>' gives 7 :/ 19:55
[Coke] babydrop: docs.perl6.org still putting things in the wrong place here. Chrome, OS X. 19:57
(search dropdown showing up in upper LHS)
aaaaaaaand now it's working. weird.
babydrop searches for "stop messing with the args I give you" in $*W.throw 19:58
[Coke]: try pressing CTRL+F5
[Coke] we shouldn't ever have to do that, though. :| 20:00
but yah, that's probably what did it.
babydrop Ah, here's what messing with it :( github.com/rakudo/rakudo/blob/nom/....nqp#L4183 20:05
m: "a".uniprop('sc') 20:10
camelia ( no output )
babydrop m: "a".uniprop('Script')
camelia ( no output )
babydrop well, I'm going with setting %opt<pos> only if it doesn't already exists.... :/ 20:15
dalek ast: 297f17f | samcv++ | S15-unicode-information/uniprop.t:
Add tests for uniprops and add a fudged test for a MoarVM bug (#193)

  * Add tests for uniprops and add a fudged test for a MoarVM bug
  github.com/MoarVM/MoarVM/issues/448
  * `todo` that test instead of making it `skip`
20:24
MasterDuke timotimo: this has the diff for my boyer-moore experiment. any ideas why it isn't faster? gist.github.com/MasterDuke17/51dba...e7c4bbf29a 20:36
timotimo the overhead of everything else is probably a whole lot more than what it takes to search through the string? 20:40
MasterDuke i guess. i wanted to test with some large strings, but they're annoying to create 20:41
timotimo right 20:42
usually we'd write a perl6 script that generates another perl6 script for that :P
MasterDuke like pmurias suggested, i guess it would be possible to precompute the tables at compile time for known strings
but that's above my pay grade 20:43
timotimo we wouldn't want to make every string one pointer heavier for this case, i expect
also, we're not using every string as needles, i wouldn't think
dalek kudo/nom: bf90835 | (Zoffix Znet)++ | t/spectest.data:
List `moar` as one of possible test markers
rakudo/nom: a8ff3b9 | (Zoffix Znet)++ | src/ (4 files):
rakudo/nom: Remove X::Syntax::Number::InvalidCharacter
MasterDuke i assumed just if it's seen in an index call
babydrop ... stupid robot 20:44
Review for the above removal: github.com/rakudo/rakudo/commit/a8...4e3edb3d82
dalek ast: b482c7c | (Zoffix Znet)++ | S (2 files):
Fix tests to avoid use of X::Syntax::Number::InvalidCharacter

The exception was removed[^1]. All of these tests were added in the last 27 days and are not part of 6.c
  [1] github.com/rakudo/rakudo/commit/a8...4e3edb3d82
20:46
samcv nice ok... i am working on getting my pull for uniprop returning bool for bool properties and resolving unicode canon shortnames to full names github.com/rakudo/rakudo/pull/944 20:52
in the PR it is 60% slower.. but i have optimized it down to basically only <10% slower 20:53
babydrop it also has merge conflicts now
MasterDuke anyone interested in looking at some AST? this is my attempt at getting -n to generate 'while ($_ := get()).DEFINITE { $code }' instead of 'for lines() { $code }', but it isn't working and i'm not quite sure why. gist.github.com/MasterDuke17/6e09e...2a0348ef7b
samcv yeah i'm redoing it
babydrop No idea if it's good to merge or not. I don't know those areas. 20:54
samcv and optimizing it so it's practically not slower than before. i think it's important to have unicode canon names reply with the correct result
i mean the main problem is in moarvm github.com/MoarVM/MoarVM/issues/448 and apparently it was found before a few years ago 20:55
and the design docs say that short canonical unicode names work just like fullnames do, unless people just want the bug to stay there. it really confused me until i figured out what was happening 20:56
babydrop m: dd while $++ < 3{ 42 } 20:57
camelia rakudo-moar a8ff3b: OUTPUT«Type Int does not support associative indexing.␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
babydrop m: dd while $++ < 3 { 42 }
camelia rakudo-moar a8ff3b: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unexpected block in infix position (missing statement control word before the expression?)␤at <tmp>:1␤------> dd while $++ < 3⏏ { 42 }␤ expecting any of:␤ infix␤ infix sto…»
babydrop m: dd (while $++ < 3 { 42 })
camelia rakudo-moar a8ff3b: OUTPUT«(42, 42, 42).Seq␤»
samcv may even be able to make it even faster than it was before hopefully... that would be cool :) 20:58
babydrop MasterDuke: no idea, but guessing the result of that `while` is null?
psch sounds reasonable 20:59
samcv well it can do all (0..0x1FFFF) in 10.1 seconds on my old x220 and reply the correct result for shortnames too, vs 9.5 seconds before
psch MasterDuke: maybe try op<p6for> instead op<while>
MasterDuke babydrop: ./perl6-m -e 'while ($_ := get()).DEFINITE { .say }' VERSION 21:00
^^^ that works, i.e., prints the contents of VERSION 21:01
psch: ok, i'll give that a try
psch m: (while ($_ .= get()).DEFINITE { .say }).sink
camelia rakudo-moar a8ff3b: OUTPUT«No such method 'get' for invocant of type 'Any'␤ in block <unit> at <tmp> line 1␤␤»
psch m: (while ($_ .= $*IN.get()).DEFINITE { .say }).sink
camelia rakudo-moar a8ff3b: OUTPUT«No such method 'CALL-ME' for invocant of type 'IO::Handle'␤ in block <unit> at <tmp> line 1␤␤»
psch m: (while ($_ := $*IN.get()).DEFINITE { .say }).sink
camelia rakudo-moar a8ff3b: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
psch oh, wait
dalek kudo/nom: 0c75e5d | (Zoffix Znet)++ | src/core/Str.pm:
Use cheaper comparison
21:02
psch m: use nqp; (nqp::while(($_ := $*IN.get()).DEFINITE, { .say })).sink
camelia ( no output )
psch uhm, yeah
not sure how to reasonably use that there and whether that actually gains any insight :) 21:03
MasterDuke psch: it's building now with p6for, but if you look at the AST for my manual version (the while in -e without -n) i'm pretty sure it uses an op<while> 21:04
just finished building, now it says True, but not the file contents 21:05
psch MasterDuke: it does use a while in your p6-level code, but it also doesn't sink that node
MasterDuke: i mean, it doesn't WANT-wrap it 21:06
MasterDuke gist.github.com/MasterDuke17/6e09e...change-L31
psch it *does* sink it...
MasterDuke: that's not your manual "(the while in -e without -n)" version 21:07
MasterDuke ah, right
psch MasterDuke: so, yes, that Want node is the reason you get the sink-on-null-object complaint
MasterDuke: as for p6for not printing the file but only true, i'm not sure about that. p6for translates to a map call, which maybe means you've got the invocation not DWYM 21:08
MasterDuke ah, don't think you can use for/map with get() 21:09
i tried one or two things at the normal p6 level, but couldn't get it working 21:10
if i take out the Want node i don't get any errors, but it also doesn't print anything 21:12
psch what's the ast for that patch? 21:17
s/for/with/ # probably 21:20
MasterDuke psch: gist updated 21:25
psch ah, but that should go back to :op<while> i think? 21:26
MasterDuke i'll give that a shot
psch: no output 21:33
seems to be reading the file (it takes a long time with a large file, but a '.say' doesn't print anything 21:34
psch curious 21:40
i don't have any more ideas right now actually
MasterDuke psch: thanks for looking at it. and let me know if inspiration strikes! 21:42
samcv sweet uniprop is now 15% faster 22:26
plus implemented my fixes and changes :) github.com/rakudo/rakudo/pull/944
always nice when things get faster :) 22:27
lizmat commented 22:47
samcv: ^^^
samcv ok cool, i will do that
babydrop MasterDuke++ the new exception filename format does make things easier. 22:48
samcv and is it okay to include the text of the unicode file in the sourcecode? so people don't have to download it if they want to see it
it's not that long
lizmat MasterDuke++ # agree with babydrop 22:49
lizmat is tired and gets some shuteye
babydrop night 22:50
MasterDuke babydrop, lizmat: thanks. it was a self-serving inspiration, but glad others find it useful
(still need to fix it on the JVM...) 22:51
babydrop Is it possible to undo effect of nqp::getattr() making nqp::attrinited() return true? 23:20
timotimo i don't think we have an op for that, but it should be possible to make 23:21
what's your use case?
babydrop Oh, never mind, it wouldn't work for me anyway >< 23:22
mmm 23:23
m: use MONKEY; my $b = Bag.new(<a b c>); say nqp::attrinited(nqp::decont($b), Bag, '$!WHICH') 23:26
camelia rakudo-moar 0c75e5: OUTPUT«0␤»
babydrop m: use MONKEY; my $b = Bag.new(<a b c>).clone; say nqp::attrinited(nqp::decont($b), Bag, '$!WHICH')
camelia rakudo-moar 0c75e5: OUTPUT«1␤»
babydrop timotimo: ^ that's the usecase. .clone makes the attr appear to be attrinited
m: dd (Bag.new but "x").WHICH
camelia rakudo-moar 0c75e5: OUTPUT«Any␤»
babydrop That causes this
m: [bag() but "house"].combinations.grep: { [⊎] $^stuff-we-want } 23:27
camelia rakudo-moar 0c75e5: OUTPUT«Cannot unbox a type object (Any) to a str.␤ in block <unit> at <tmp> line 1␤␤»
babydrop And the reason for this bug
So I'm trying to figure out how to .clone without that effect
timotimo oh, that's not so good 23:29
but i guess we can not assign stuff over when we clone if it isn't inited before?
babydrop tries something
m: use MONKEY; for (Bag.new(<a b c>)).^attributes.flat { next unless .name eq '$!WHICH'; say nqp::objprimspec(.type) } 23:31
camelia rakudo-moar 0c75e5: OUTPUT«0␤»
babydrop hm, maybe I'm wrong about the cause. Since the cloning is wrapped in objprimspec thing
oh wait, that's an unless not an if 23:33
babydrop isn't wasted :}
What does nqp::objprimspec do? 23:37
timotimo gives you the primitive spec of an object 23:42
whether it's an obj, int, num, or str
i.e. native or object
babydrop Thanks.