buggable ???????????? It's time for the monthly Accidental /win Lottery ???????????? We have 12 ballots submitted by 8 users! DRUM ROLL PLEASE!... 00:00
And the winning number is 14! Congratulations to nine! You win a can of WD40!
Geth rakudo: skids++ created pull request #1148:
Special-case FailGoal to adhere to S05 (Fix RT#130528)
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130528
japhb Can someone with power over buggable update and restart it please? 00:17
MasterDuke hm, i just tried profiling one of the end stages of a `make install` (./perl6-m --profile tools/build/install-core-dist.pl /home/dan/Source/perl6/install/share/perl6), but would get a backtrace or segfault 00:41
gist.github.com/MasterDuke17/3b0b6...66f1144eb0 00:46
travis-ci Rakudo build errored. lizmat 'Merge pull request #1145 from MasterDuke17/simplify_ignoremark_and_ignorecase_in_INTERPOLATE 01:05
travis-ci.org/rakudo/rakudo/builds/270457466 github.com/rakudo/rakudo/compare/8...7f5407ef31
buggable [travis build above] ? All failures are due to timeout (1), missing build log (0), GitHub connectivity (0), or failed make test (0).
Geth roast: skids++ created pull request #300:
Add tests for RT#130451
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130451
Geth roast: d56d08d9c4 | skids++ | S02-types/array-shapes.t
Add tests for RT#130451
roast: 6b151a174a | skids++ (committed using GitHub Web editor) | S02-types/array-shapes.t
Merge pull request #300 from skids/rt130451

Add tests for RT#130451
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130451
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130451
MasterDuke TimToady: hm, would that also mean what i'm trying to do here isn't possible? irclog.perlgeek.de/perl6-dev/2017-...i_15098626 01:53
oops, wrong channel 01:54
AlexDaniel can I have admin access on perl6/doc repo so that I can manage the webhook for the upcoming SQUASHathon? 02:03
I can of course bother somebody to set it up (and then resend stuff if something happens, and also remove it after the event, …), but it'd be easier if I can do it myself 02:04
Geth roast: skids++ created pull request #301:
Stop skipping tests that have been working since 2015.10
roast: 46046f8f2a | skids++ | S06-operator-overloading/prefix.t
Stop skipping tests that have been working since 2015.10
roast: b854dfd358 | skids++ (committed using GitHub Web editor) | S06-operator-overloading/prefix.t
Merge pull request #301 from skids/prefixrts

Stop skipping tests that have been working since 2015.10
MasterDuke skids++ bunch of rakudo and roast PRs recently
skids someone else will have to 'resolve' 124974, I get no option to reply/close in the RT UI on that one. 02:48
MasterDuke i have the resolve option, i'll resolve it now 02:50
done 02:51
samcv working on my monthly grant update, almost done 04:14
MasterDuke, looks like MVM_string_equal is the 5th most cpu usage of a mvm function 04:31
2.8% but let me see i think i can speed up that function by at least 50%
MasterDuke when doing what? 04:32
samcv compiling the setting
MasterDuke oh, nice!
samcv hmm it may already be fast hmm. i remember it being slower than my revised unicode one though
the unicmp that is
not sure if you read/heard about how i sped that up 04:33
MasterDuke i usually read that stuff, but i don't remember the details
samcv ok it doesn't seem to in my previous grant status update, hmm i may have done it since then. it was in my YAPC-EU presentation cry.nu/YAPC-EU-2017/MoarVM-Internals/#/ here are the sslides if you're niteresting 04:34
but i made a ring buffer that i used a grapheme iterator, and when i found a differing one i refered that ring buffer (the previous 3 graphemes) to the function. so you can unicmp a string that's 1000000's of graphemes long and it doesn't have to get the collation data for all but the last 3 before where it differs 04:35
pretty cool
MasterDuke good deal. i haven't read those yet, but i now have a tab opened for tomorrow 04:36
samcv cool
MasterDuke i'm off to sleep, later...
travis-ci Rakudo build failed. lizmat 'Merge pull request #1147 from MasterDuke17/use_eqat_instead_of_index_in_INTERPOLATE 04:43
travis-ci.org/rakudo/rakudo/builds/270566641 github.com/rakudo/rakudo/compare/e...35728b71ce
buggable [travis build above] ? All failures are due to timeout (0), missing build log (0), GitHub connectivity (1), or failed make test (0).
Geth nqp: 0ead16794b | (Samantha McVey)++ | tools/find-undocumented-ops.p6
Add script to find undocumented NQP ops
samcv oops forgot i hadn't pushed this! 04:47
Geth nqp: d93277beeb | (Samantha McVey)++ | docs/ops.markdown
Regenerate table of contents for oplist doc

Also make a few changes for consistency. This fixes a lot of links which did not work. Generated with `markdown-toc`
[Tux] This is Rakudo version 2017.08-25-g7d1ece805 built on MoarVM version 2017.08.1-32-gcd41322e 06:23
csv-ip5xs 1.322 - 1.368
test 10.147
test-t 3.523 - 3.538
csv-parser 12.261
AlexDaniel Zoffix: hm, not quite sure what to do with the timezone thingy. Currently I've set the bot to use Saturday × UTC-12..UTC+14, but that turns it into a two day squashathon… I mean, sure, that's *very inclusive*, but it does not sound like something we want 06:53
or maybe that's OK? Maybe somebody wants to start on Friday evening and stop on Sunday morning… :-) 06:55
Geth rakudo/nom: 51709e01c0 | (Elizabeth Mattijsen)++ | src/core/Instant.pm
Fix for RT #132006

  AlexDaniel++ for spotting
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=132006
AlexDaniel I guess if people don't want to start early they simply don't have to, and given the current activity most people won't even notice the point when UTC+14 squashathon starts 06:57
Geth rakudo/nom: ed4f6cc998 | skids++ | src/Perl6/Grammar.nqp
Special-case FailGoal to adhere to S05 (Fix RT#130528)

  (...also, clean up whitespace debris produced during parsing)
   The general-case behavior of the rx ~ operator is correctly
   implemented, but it results in an internal variable name
   leaking, which contradicts an example in S05.
   This is an ugly fix, but doing it "right" would impact
   compile-time hot paths. This solution confines the mess
   entirely to the error handling path.
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130528
rakudo/nom: 909688953e | lizmat++ (committed using GitHub Web editor) | src/Perl6/Grammar.nqp
Merge pull request #1148 from skids/rt130528

Special-case FailGoal to adhere to S05 (Fix RT#130528)
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130528
Zoffix AlexDaniel: why not something we want? People don't have to stay around for the whole thing... I was actually thinking of squashatonning on EST Friday, so I could have the 3-day weekend entirely free :) 07:06
AlexDaniel ehh timezones
Zoffix: alright then, the bot will be up in an hour or two
Zoffix \o/ 07:07
AlexDaniel Zoffix: ah, can you make me an admin on perl6/doc so that I can manage the webhook?
moritz AlexDaniel: done 07:10
AlexDaniel yay \o/
moritz: thanks
Zoffix .tell japhb update and restart buggable? But there's not been any new updates to it? To send multi-line responses, ATM you need to do the Plugin role: github.com/zoffixznet/huggable/blo....pm6#L1-L2 and then use $.irc to send stuff github.com/zoffixznet/huggable/blo....pm6#L1-L2 07:25
yoleaux Zoffix: I'll pass your message to japhb.
Zoffix buggable: speed 20:4 07:41
buggable Zoffix, ????????? dates: 2017-08-18–2017-09-01
Zoffix, ????????? range: 3.471s–4.592s
Zoffix, ????????? ??? ? speed: 25% faster
Zoffix, ????????????????????
Zoffix .tell japhb nm; saw the update in your fork and pulled it in and restarted buggable
yoleaux Zoffix: I'll pass your message to japhb.
Zoffix AlexDaniel: or maybe I'll wait for Saturday :) I kinda messed up my sleeping pattern. Woke up at 3am and I'm guessing I'll be looking forward to going to bed when I get back from work ^_^ 07:51
AlexDaniel Zoffix: I feel ya 07:52
squashable6: status 08:21
squashable6 AlexDaniel, Next SQUASHathon in ?1 hour (2017-09-02 UTC-12?UTC+14)
travis-ci Rakudo build passed. lizmat 'Merge pull request #1148 from skids/rt130528 08:23
travis-ci.org/rakudo/rakudo/builds/270716120 github.com/rakudo/rakudo/compare/5...9688953eab
samcv Hot off the presses! Unicode grant status update 4! cry.nu/perl6/grant-status-update-4/ tons of exciting things 08:45
Zoffix, i'm hoping i made some of that faster? what test is that running? 08:47
buggable, release
NeuralAnomaly, status 08:48
NeuralAnomaly samcv, Use releasable6 bot instead. e.g. try: releasable6: status
samcv releasable6, status
releasable6 samcv, Next release in 15 days and ?10 hours. No blockers. Changelog for this release was not started yet
samcv, Details: gist.github.com/55e7995b0946858688...dec4c40bac
samcv plenty of time
so many great things!
Skarsnik damn I love the API I wrote to register lib in NC x) 10:24
Zoffix samcv: it's just reporting Tux's data 10:26
huggable: csv
huggable Zoffix, github.com/Tux/CSV (see `bench csv` for how to run bench)
Zoffix huggable: bench csv
huggable Zoffix, export PATH=`pwd`/install/bin:$PATH; cd CSV; for i in $(seq 1 10000); do echo 'hello,","," ",world,"!"'; done > /tmp/hello.csv; time perl6 -Ilib -MText::CSV test-t.pl </tmp/hello.csv
Skarsnik I will be able to write gist.github.com/Skarsnik/8687bba80...83e859c195 in all my libxml binding file x) 10:34
Zoffix Skarsnik: awesome \o/ 10:43
AlexDaniel if squashable6 gets annoying, just tell it to shut up and it will 11:05
nine Skarsnik: what does that do? 11:15
Skarsnik this PR github.com/rakudo/rakudo/pull/716 11:18
I am making mergable if one day someoine want to merge it x)
nine Skarsnik: I wonder, if we should rethink the whole NativeCall interface and make that available via use NativeCall :api<2>; 11:22
Skarsnik well it work along side the existing code
nine yes
Thanks to lexical module loading :) 11:23
This would be one of the prime use cases for that :)
Skarsnik but yeah NC/Test does not have a well defined version managment 11:24
a NC v2 for me will force the use of type called like c-int32 to avoid confusion with rakudo native type x) 11:25
nine what confusion?
Skarsnik the fact that int32 is VM native type and both a C 'native' type 11:26
nine But they are meant to be the same? 11:27
Skarsnik I mean it lead to confusion some time. int is native but not a good C native type for NC 11:28
Zoffix, hm where is the 6.d idea repo? 11:29
nine Skarsnik: I still kinda like the old idea of a way to avoid repetition like native-library 'foo' { sub foo() is native { * }; sub bar() is native { * }; } 11:34
Skarsnik well it will still work 11:35
I wonder if we could add stuff to list routine associated with a lib 11:36
Not sure what the use could be
can we get property of the block a routine is in ? 11:38
nine Well this is Perl 6. I guess there is a way to implement this :)
Skarsnik I have to admit that look like a neat syntax : native-lib 'foo' { all my def} 11:39
Zoffix huggable: 6.d 11:40
huggable Zoffix, Proposals for 6.d language: github.com/perl6/6.d-prep/blob/mas...EATURES.md
Zoffix Skarsnik: ^
Skarsnik not sure if possible to avoid the is native even in block like this
nine, some of my thought on NC github.com/perl6/6.d-prep/blob/mas...iveCall.md 11:42
[Coke] RT #132003 - this should probably be RFC not NYI (if NYI, should have a pointer to where we've said it's going to happen) 11:48
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=132003
yoleaux 31 Aug 2017 02:10Z <AlexDaniel> [Coke]: A *tiny* update on the Malformed UTF-8 issue. There's hope! rt.perl.org/Ticket/Display.html?id...xn-1486102
Skarsnik could be neat if we could write grammar for binary string 11:51
[Coke] AlexDaniel, thanks. 11:52
Zoffix I see some mentions of the speculations as reference for marking that ticket NYI: rt.perl.org/Public/Bug/Display.htm...xn-1486259 12:01
m: say "?u" ~~ m:bytes / .**2 /; 12:02
camelia 5===SORRY!5=== Error while compiling <tmp>?Adverb bytes not allowed on m?at <tmp>:1?------> 3say "?u" ~~ m:bytes / .**2 /7?5;?
nine I'm not sure grammars are the right tool for binary data. 12:03
Skarsnik hm 12:04
for like a dissambler it could be usefull?
nine Text formats where grammars shine are all about tokenization and deciding after each token what may come next. I don't know of any binary format that works this way.
Ok, maybe a disassembler is a good example :) 12:05
But what I more often see is some well defined format with data structures that may have some header word that tells us what structure it is. Also lot's of offsets in the byte stream (think image file header with the offset of the first data chunk) 12:06
Skarsnik not even sure what needed to make a keyword 'stuff' {} work. A trait on a block?
nine Parsing TCP headers is about "is this flag in byte 23 set?"
Really many binary formats can be better described by NativeCall's CStruct. Except that the latter implies some alignment. 12:08
Skarsnik m: multi sub trait_mod:<is>(Block $s, :$foo) { say 'foo'}; foo {}; 12:09
camelia 5===SORRY!5=== Error while compiling <tmp>?Undeclared routine:? foo used at line 1??
Skarsnik m: multi sub trait_mod:<is>(Block $s, :$foo) { say 'foo'}; {} is foo; 12:13
camelia 5===SORRY!5=== Error while compiling <tmp>?Strange text after block (missing semicolon or comma?)?at <tmp>:1?------> 3d:<is>(Block $s, :$foo) { say 'foo'}; {}7?5 is foo;? expecting any of:? infix? infix stopper? …
Zoffix m: class foo {}; sub infix:<is> (&s, foo) {say "foo"}; {;} is foo 12:14
camelia foo?
Zoffix {} is a Hash, not a Block, although even were you to fix that, that code won't work. 12:15
Skarsnik hm was there a named block syntax?
Zoffix m: my &foo = {say "foo"}; foo
camelia foo?
Zoffix (I only know of that one)
Skarsnik like to use with a goto 12:16
*should buy a perl 6 book*
Zoffix We don't got goto yet
Though we do have labels already
m: FOO: loop { loop { say "hi"; last FOO if $++ > 2 } }; say "outta here" 12:17
camelia hi?hi?hi?hi?outta here?
MasterDuke is it just me, or does this list of arguments ( github.com/rakudo/rakudo/blob/nom/...052-L10061 ) look wrong, considering this is the method signature ( github.com/rakudo/rakudo/blob/nom/...#L193-L201 )? 13:19
nine MasterDuke: assuming the QAST::SVal.new( :value('INTERPOLATE') ) is used to find the method, it looks fine to me? 13:23
Zoffix MasterDuke: yeah, especially considering the same QAST a few lines below doesn't have the extra int arg
MasterDuke Zoffix: yeah incorrect, or yeah agree with nine?
Zoffix extra int before the monkey stuff
MasterDuke: it looks wrong to me too 13:24
MasterDuke yep, that's what stuck out to me
Zoffix gah, git blame on that page killed my browser =( 13:25
MasterDuke heh, it takes a couple seconds on the command line 13:26
most of those lines are from 2013 or 2015
essentially an initial commit to add interpolate to P5 regexes, and then a single commit to add ignoremark support (which i think was done off-by-one) 13:27
Skarsnik git still cnfuse me o no end
git checkout -b switch branch?
MasterDuke that creates a branch and switches to it
nine -b is for a new branch
Zoffix: the last int is optional 13:28
Skarsnik duh
how it let me create a branch that exist
fuck this
MasterDuke nine: yeah, but the order of the first few seems wrong 13:29
the non-optional ones
Zoffix MasterDuke: well, now I'm unsure. is $<codeblock>.ast, the invocant or passed as \val?
Skarsnik best git command : rm -rf
Zoffix nine: assuming `int $monkey` gets value from QAST::IVal.new( :value(monkey_see_no_eval($/)) ) the code MasterDuke linked to has 4 values before the monkey line, while the same code block below has only 3 values. That makes me think at least one of them is wrong 13:31
Zoffix sees neither QAST::Regex nor QAST::NodeList in github.com/perl6/nqp/blob/master/d...t.markdown :( 13:33
Zoffix &
MasterDuke can also compare with P6 regex stuff around line 9848
which seem to match the 3 args before monkey, not the 4 13:34
Skarsnik AlexDaniel, added you a source port for github.com/rakudo/rakudo/pull/1137 x) 13:39
dunno if I want to work on async now 13:41
Geth roast: skids++ created pull request #302:
Tests for matters surrounding RT#130528
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130528
Geth roast: 03c04c711c | skids++ | S32-exceptions/misc.t
Tests for matters surrounding RT#130528
roast: 2cef80a326 | skids++ (committed using GitHub Web editor) | S32-exceptions/misc.t
Merge pull request #302 from skids/rt130528

Tests for matters surrounding RT#130528
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130528
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130528
nine Zoffix: yes, that does look fishy, indeed. 14:32
Geth rakudo: MasterDuke17++ created pull request #1149:
Make INTERPOLATE's parameters non-optional
Skarsnik hm running efence on rakudo perl 6 is not that helpful x) 15:30
crashing on a malloc is not fun to debug 15:31
timotimo crashing on a malloc? that doesn't make much sense unless the internal structures malloc uses have gotten busted 15:42
like a free list entry pointing at an incorrect location? 15:43
Skarsnik generally it's a bug somewhere else. from what I remember when I work with this 15:44
it crash on that : github.com/MoarVM/MoarVM/blob/mast...ay.c#L1155 (runing a perl6 -e '') 15:45
the malloc size is normal 15:46
I don't remeber if efence is thread safe actually
MasterDuke Skarsnik: MVM_SPESH_DISABLE=1 should make it not use any threads at startup (i think) 15:49
timotimo aye, and if you have something multithreaded, you may be able to just my $*SCHEDULER = CurrentThreadScheduler.new(); 15:55
Skarsnik hoo
it run out of page to create
timotimo ah, ok, memory exhaustion, then? 15:56
Skarsnik just went above the max memory pages 15:57
not memory avalaible 15:58
damn again
timotimo efence wastes memory left, right and center 15:59
after all, it allocates like a whole page left and right of every allocation, or something like that? 16:00
Skarsnik yes
timotimo there's a few things i'd like to reduce the amount of individual allocations for in the future
Skarsnik echo 16553500 > /proc/sys/vm/max_map_count :) 16:01
timotimo like p6opaque's many description pieces
Skarsnik like 500 time the default
timotimo oh wow
Skarsnik ok better
does not crash right away
[Inferior 1 (process 21870) exited normally] 16:03
Zoffix MasterDuke: have you considered sending the CLA and getting commit bit to rakudo? 16:05
huggable: CLA
huggable Zoffix, www.perlfoundation.org/contributor_..._agreement print it out, sign it, scan it in (resize your scan to 250KB or less). Email to trademark -at- perlfoundation.org
Skarsnik EF_ALLOW_MALLOC_0=1 LD_PRELOAD=/usr/lib/libefence.so.0 ./install/bin/perl6-gdb-m -I ../../benchmark/exemel/lib/ -I ../../benchmark/perl6-gumbo/lib/ ../../benchmark/crashgumbo.p6 16:06
Skarsnik goes for a 1 break
I wonder if I should run spec test like this 16:12
japhb Zoffix: Sorry for the confusion re: buggable. I'd forgotten that I was pushing to a fork. Anyway, hope you like the change. 16:37
yoleaux 07:25Z <Zoffix> japhb: update and restart buggable? But there's not been any new updates to it? To send multi-line responses, ATM you need to do the Plugin role: github.com/zoffixznet/huggable/blo....pm6#L1-L2 and then use $.irc to send stuff github.com/zoffixznet/huggable/blo....pm6#L1-L2
07:41Z <Zoffix> japhb: nm; saw the update in your fork and pulled it in and restarted buggable
Zoffix Yeah, it 16:38
Yeah, it's good. japhb++
Skarsnik__ hm 17:04
ElectricFence Exiting: mmap() failed: [New Thread 0x7fff70f0d700 (LWP 22235)]
Geth doc: fb2d3fc024 | (Zoffix Znet)++ | 2 files
Improve object clonning docs

  - Document clone behaviour of %. and @. attributes
   (Closes #1458)
  - Shorten wording
  - Move custom clone examples to Mu.clone docs
  - Mention private attrs get cloned too
  - Remove "magical"; we don't have any magic
  - Remove incorrect and somewhat rambly paragraph about
   Mu.clone being a submethod… it isn't
Zoffix oops; wrong chan -_-
Geth roast: skids++ created pull request #303:
Fix incorrect/skipped test for RT#124848 (RT#69192)
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124848
Link: rt.perl.org/rt3/Public/Bug/Display...l?id=69192
Geth roast: e4a2c0b589 | skids++ | S12-methods/multi.t
Fix incorrect/skipped test for RT#124848 (RT#69192)

The results of this test are correct for a runtime
   mixin where roles were added one at a time... which
   is one of the reasons why "does (Role1, Role2, Role3)"
   exists. So use it. What probably happened in #124848
   was the wrong fix was applied to the test after
   "does" lost the associativity it was not supposed to have.
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124848
Link: rt.perl.org/rt3/Public/Bug/Display...l?id=69192
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124848
roast: 0cf960cf29 | skids++ (committed using GitHub Web editor) | S12-methods/multi.t
Merge pull request #303 from skids/rt124848

Fix incorrect/skipped test for RT#124848 (RT#69192)
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124848
Link: rt.perl.org/rt3/Public/Bug/Display...l?id=69192
Skarsnik should github.com/MoarVM/dyncall/blob/1da...elf.c#L132 check for a failure and die? 17:44
lizmat . 17:49
Skarsnik AlexDaniel, did you try your rakudo crash with latest rakudo? 17:52
AlexDaniel Skarsnik: which crash exactly?
Skarsnik *gumbo
I ran it with efence and it's still alive for now (but it's very slow) 17:53
AlexDaniel Skarsnik: well, I'll try right now, but IIRC it was still broken after 2017.08
Skarsnik I wonder if it cradh with one of the first revision of the module (no Gumpo::Parser class) 18:08
haaa a crash finally 18:39
maybe it's gumbo fault. hm 18:46
damn I can't watch the value of a MVMint64 in gdb 19:05
github.com/MoarVM/MoarVM/blob/mast...all.c#L691 I dont get this comment x) 19:10
AlexDaniel Skarsnik: yep, just tried it again and got MoarVM panic 19:12
Skarsnik cptr = *((void **)(storage + repr_data->struct_offsets[i])); that crash on this. and I am not sure this is safe 19:16
www.securecoding.cert.org/confluen...to+pointer 19:31
AlexDaniel, can you try replacing the line 754 in nqp/MoarVM/src/core/nativecall.c with cptr = *((void **)((uintptr_t) storage + (uintptr_t) repr_data->struct_offsets[i])); 19:35
it does not crash anymore for me 19:36
but I am getting tired/strained on typing with one hand :(
AlexDaniel Skarsnik: er, maybe, I'm currently hacking on docs 19:51
so possibly tomorrow or later
Skarsnik I tried on a rakudo-2016.10 19:52
AlexDaniel Skarsnik: I've linked this discussion so that it's not lost rt.perl.org/Ticket/Display.html?id...xn-1486588 19:53
Skarsnik this look very likely it's the cause. if this + manage to generate a signed that goesback to -xxx it goes boom when trying to do a ptr with it 19:57
MasterDuke what's an example of something prohibited in regex interpolation unless `use MONKEY` is on? 20:39
samcv MasterDuke, how much speed increase did you get from changing things from index* to eqat* in INTERPOLATE? 21:09
oh and previously you also changed it from a while loop and ordbaseat/other things into the proper ops 21:13
MasterDuke samcv: i didn't measure it directly, but didn't really notice any speedup 21:19
the index*->eqat* changes would probably slow it down, but index* was wrong 21:21
samcv wait why would eqat be slower than index 21:22
MasterDuke checks at every position
samcv isn't that what index does? 21:23
.o( eventually i want to have knuth morris pratt on ignoremark and ignore case as well. that will be sweet )
for index* that is
MasterDuke but there's the overhead of the INTERPOLATE each time
instead of just once (for index) 21:24
samcv well you changed it from index to eqat in the exact same location so that should be faster 21:25
maybe i'm missing something 21:27
MasterDuke i'll explain in a couple min
samcv kk 21:28
MasterDuke ok. so INTERPOLATE is called for each position in the haystack until there's a match 21:38
samcv just noticed a point where a user could overflow the stack. doesn't appear to crash it though
MasterDuke this used to be done via the loop+ordbaseat, is now done via eqat 21:39
i accidentally used index
samcv ah ok
MasterDuke which would be faster (since it does the whole walk each position in C, instead of via successive INTERPOLATE calls) 21:40
but is wrong, since the needle could change at each INTERPOLATE call
(in some situations)
samcv oh wait nvm wasn't triggering it properly 21:41
with how i changed getting the property values, i allocate a string onto the stack. just realized if some malicious user requested a property value string that was larger than the stack 21:43
then you'd get a SIGSEGV. so gonna put bounds on it
MasterDuke heh, yeah, that shouldn't be allowed 21:46
samcv like it is super unlikely anyone would do it. but safety is good
anywhere you're allocating onto the stack or into memory with user input
oh MasterDuke i thought you might like this article llewellynfalco.blogspot.com/2016/02...gn-in.html 22:06
on how to get clairity in conditionals and consistency. i've adopted its suggestions and it's made the conditionals i write clearer and more consistent 22:07
and faster to read and understand quickly
interestingly the bottom function is 1.5x faster than the top one, testing it only for numbers under 1000 gist.github.com/77c241e6d25c035213...30c6011a01 22:26
i'm curious how that compiles
or numbers under 100 even 22:27