Check your feather email | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com
Set by TreyHarris on 9 October 2006.
00:10 vel joined, mako132_ joined 00:18 nekokak joined 00:24 weinig|bbl is now known as weinig 01:14 lollan joined 01:25 markstos joined 01:45 lisppaste3 joined 02:04 christopher joined
svnbot6 r14311 | malon++ | [Spec/update, smokeserv/refresh-smoked-synopses.pl] 02:07
r14311 | malon++ | * Properly handle the specs that need to be updated from the Pugs repository
r14311 | malon++ | and not from the svn.perl.org spec repository.
r14311 | malon++ | Lanny++ for noticing weirdness with S29.
02:15 yes joined 02:16 Yappo joined 02:23 avarab is now known as avar 02:26 kanru joined
clkao audreyt: where's your vim.rc these days? 02:30
audreyt havn't changed much 02:33
lambdabot audreyt: You have 2 new messages. '/msg lambdabot @messages' to read them.
audreyt @messages 02:34
lambdabot TimToady said 3d 3h 51m 50s ago: my pugs-prof still segfaults even with a non-threaded perl :(
Limbic_Region said 3d 3h 5m 7s ago: test 12 of ext/Config-Tiny/t/basic.t is failing though the output is correct. My guess is difference of \n versus \r\n
christopher lambdabot-- (surely you've read messages in the past three days) 02:36
clkao audreyt: where do i find it ? 02:38
02:40 justatheory joined 02:41 idiotmax joined
MacVince audreyt: you use vim? 02:46
audreyt MacVince: yes 02:47
clkao: perlcabal.org/~audreyt/tmp/.vimrc
MacVince I would've figured you for an Emacs girl...
audreyt I prefer MiniBufExplorer over the new Vim tab 02:48
nah, I kept meaning to learn emacs but the learning curve is uhm, spiraly...
02:48 justatheory joined
audreyt cf. static.flickr.com/54/127144611_8b8a8d1ca3.jpg 02:49
lambdabot tinyurl.com/leel7
MacVince audreyt: you saw the graphic? :)
That's the one
audreyt also I wonder whatever happened to the Grand Plan to unify elisp into scheme 02:50
MacVince audreyt: if it's any help, you're most likely way smarter than me, and I was able to figure out Emacs (after 4 years of solid vim usage). If you ever have the time to give it a try, myself, the people on #emacs and emacswiki.org are very friendly and delighted to help. Except xahlee
audreyt scheme is far more attractive than lisp to me for some reason :)
cool, thanks for the offer :) 02:51
MacVince Well scheme is much more elegant than elisp. Not sure what happened to the effort though, nobody seems to mention it. Emacs 22 is using elisp, and Emacs 23 will too.
02:51 etzel left 02:52 lollan joined
clkao audreyt: is there method completion? 02:57
audreyt for perl5?
I use ftplugin/perl/tags.vim 02:58
search.cpan.org/dist/Perl-Tags/ 02:59
lambdabot Title: osfameron / Perl-Tags - search.cpan.org
MacVince clkao: depends on the completion you want. Vim has Ctrl-P and Ctrl-N that completes based on words in the current and other buffers 03:00
clkao cool
03:04 Aankh|Clone joined
svnbot6 r14312 | audreyt++ | * Pugs.Types.Array: Diagnosed the likely cause of segfaulting 03:10
r14312 | audreyt++ | array access to be "shift" and "pop", which were returning
r14312 | audreyt++ | thunks that may have affected GC. Now we carefully `seq`
r14312 | audreyt++ | the post-shift array elements, as well as avoiding returning
r14312 | audreyt++ | (possibly-lazy) monadic thunks.
MacVince audreyt: so tell me, there's going to be a release of Pugs soon? That would be 6.28, right? 03:28
03:34 etzel joined 03:35 weinig joined, etzel left 03:38 SubStack joined 03:40 mako132_ joined
audreyt MacVince: no, that would be 6.2.13, because perl5 embedding and non-parrot regex engine and huge perf increase warrants a new release before we destabilize them all with metaobjects :) 03:40
and yes, expect it in a couple days.
MacVince Cool 03:41
Hopefully, this will quiet (at least for some time) the people yelling that Perl 6 is going nowhere.
audreyt maybe it's going nowhere, but it's going nowhere very fast, and faster by the day :) 03:44
one just needs to tokenize "nowhere" on idx 3 instead of idx 2... 03:46
MacVince ;)
If I recall, one of the graphics you made was a Perl 6 development curve, and we're pretty much into the "Hey, what was the big deal" phase 03:47
From my point of view, at least.
audreyt wait until people really put it into production...
but yeah, 6.2.13 should help a lot on that regard.
03:55 Aankhen`` joined 04:01 Eidolos joined 04:12 kanru_ joined
GeJ audreyt: hello 04:17
04:18 kanru_ joined
GeJ is this preflight already? 04:19
audreyt GeJ: "soft" preflight
still need to fix a couple win32 bugs
and changelog
but otherwise yeah, tests should generaly pass
GeJ hum, gonna have a look at it on FreeBSD. hopefully I'll prep a diff for clsung to commit after the freeze 04:20
audreyt woot! 04:22
GeJ beside perfs, is there functional changes between having a ghc 6.4 and a 6.6?
audreyt also a GHC 6.6 port on fbsd will roc
well, perfs differs huge :)
also 6.6's threading is more reliable
and also does SMP
but otherwise, no, no functonal changes
still, will prefer to depend on ghc6.6 04:23
GeJ well, at least I'll try on a 6.4.2. My Haskell-fu (or lack thereof) won't allow me to get a 6.6 on my box
audreyt actually it's just: grab two tarballs from haskell.org/ghc/download_ghc_66.html ; extract both; cd ghc-6.6; sh configure ; make ; sudo make install 04:24
lambdabot Title: GHC: Download version 6.6
MacVince Does the compilation still take like 2 days? 04:25
audreyt on macintel osx here it talks about 2 hours
*takes 04:26
MacVince Hmm...
GeJ audreyt: isn't there a bootstrap issue? in the ports you need to grab some ghc-${PORTVERSION}-i386-unknown-freebsd6-boot${EXTRACT_SUFX} 04:27
audreyt feather's GHC upgraded to 6.6.
GeJ: sure but ify ou already have a /usr/local/bin/ghc
say 6.4.x
then it uses that
GeJ sweet
audreyt so it can also reuse the same -boot
from 6.4. no changes needed 04:28
oh also 6.6 is quite a bit faster at _compiling_ ugs :)
*pugs
which is not surprising for a bootstrapping compiler...
GeJ just read c's minutes yesterday. Was quite impressed with TimToady's comment on perf. 04:29
audreyt it surprised me too. typically it's just a 2x~5x gain 04:31
60x is not typical :)
04:52 mdiep joined 05:16 BooK joined 06:29 iblechbot joined
audreyt wow, CrossOver for MacIntel worked seamlessly for GHC, StrawBerry Perl, and Pugs. 06:44
I no longer have to boot into win32 for releng now :)
06:48 marmic joined
Patterner yay 06:51
audreyt hm, $job's use of pugs requires crypt() 06:55
I'll just use embperl5 for that
audreyt writes a "opPerl5" bridge that allows importing arbitrary perl5 ops as pugs ops 06:56
integral audreyt++ 07:00
clkao ooo 07:01
audreyt the perl5 vm is attrractive for things like that... 07:02
op2 "crypt" = \x y -> opPerl5 "crypt" [x, y] 07:05
yay for free ops :)
audreyt is rapidly progressing toward "what's the bug deal" on writing $job scripts in pugs... 07:06
er, "big deal". freudian slip.
gaal @puggle Value a => [Val] -> Eval [a] 07:10
lambdabot Unknown command, try @list
masak audreyt: you used to blog about such things after you implemented them. I think that was a great habit
it made the new features so much more concretized
audreyt I agree. but jobblogging is um, time-wise not very practical 07:11
will resume and do more blogging next week on once I'm abroad..
gaal audreyt: does mapM fromVal just work there? 07:12
audreyt gaal: yes 07:13
gaal not sure I see why 07:14
audreyt let prms = map (\i -> "$_[" ++ show i ++ "]") [0 .. (length args - 1)]
subSV <- liftIO $ evalPerl5 ("sub { " ++ sub ++ "(" ++ (concat $ intersperse ", " prms) ++ ") }") envSV (enumCxt cxtItemAny)
gaal because the resulting values don't have the smae time
audreyt argsSV <- mapM fromVal args
gaal type
audreyt runInvokePerl5 subSV nullSV argsSV
that's the entire implementation
sure, but runInvokePerl5 took care of that
VStr becomes a SvPV then becomes a VStr
coercion is handled seamlessly
masak audreyt: understandable. I figured the explanation was something like that
audreyt goes back meetng $deadline... 07:15
gaal wouldn't @_[0.. #hs<length args - 1>] or even just @_ work there too? 07:18
(hm, well @_[0] raises a pesky warning)
audreyt gaal: no, try that on crypt 07:19
$ perl -e 'crypt(@_[0,1])'
Not enough arguments for crypt at -e line 1, at end of line
been there :)
gaal whoa. 07:20
audreyt some random lines from $job: 07:21
for =$=DATA -> $_ is copy { .=split: /\s+/; .[3] .= crypt: 'XX'; say "INSERT INTO users (name, description, branches, level, password) VALUES ($_<1 2 0 3>.join(','));";
}
the .=split: and $_<1 2 0 3> works pretty well tgether :)
audreyt also found plenty of use of s[...] .= meth;
Abigail shouldn't worry about perl6's golfability... 07:23
gaal heh
don't you have five columns and four values? 07:25
audreyt yes, since fixed ;)
gaal hopes ' isn't in the char set produced by crypt
audreyt also it's [<1 2 0 3>]
but otherwise it works pretty well 07:26
gaal but who uses placeholders in golf
07:26 zakharyas joined
gaal names can have 's 07:26
or ,s even
audreyt and to answer your question, crypt can't
and those are always chinese names 07:27
:)
gaal nothing like knowing your problem domain :)
svnbot6 r14313 | audreyt++ | * Implement crypt($, $) via Perl5 embedding. 07:29
r14313 | audreyt++ | * Introduce opPerl5 into Pugs.Prim, which should make plag^Wadapting Perl5's ops
r14313 | audreyt++ | into Pugs land trivial.
audreyt task for interested party: scoure S29 and perlfunc and see what ops we can appropriate/annex this way... 07:30
masak wonders what happened to Perlix... most web resources about it seem unavailable 07:39
www.foo.be/docs/tpj/issues/vol5_2/t...-0009.html
lambdabot Title: Perlix, The Perl Operating System - The Perl Journal, Summer 2000, tinyurl.com/y75hs6
masak heh -- "when the C compiler's written in C you can recompile it and upgrade it, but since Perl isn't (yet) written in Perl, you have to upgrade it on a computer that has C available." 07:40
audreyt starts to wonder if eval('...', :lang<perl5>) is too long to type 07:42
07:43 elmex joined
audreyt what I'd like is ideally 07:44
sub foo { use v5; ...some perl5 code ... } 07:45
masak cool 07:54
audreyt oh well. writing a perl5 .pm nearby and use perl5:Helper here is cleaner 07:55
08:11 kanru_ is now known as kanru 08:12 zakharyas joined
audreyt ?eval 1+1 08:21
08:21 evalbot_r14306 is now known as evalbot_r14313
evalbot_r14313 2ā¤ 08:21
08:22 evalbot_r14313 joined
audreyt wow, an evalbot refresh now takes mere seconds on feather 08:23
it used to take 3miin per iteration
audreyt praises GHC 6.6
?eval 1+1
evalbot_r14313 2
audreyt ?eval 1+1 08:24
evalbot_r14313 2
audreyt response speed increased as well
svnbot6 r14314 | audreyt++ | * Makefile.PL: Remove the force_run clause because dmake.exe 08:32
r14314 | audreyt++ | that came with strawberry alpha2 doesn't like that.
r14314 | audreyt++ | (version_h is force regenerated by build_pugs.pl anyway.)
masak ?eval 'kmlf jine ghd cacb"; tr[abcdefghijklmn][.!6CegGHilLnov]; .say 08:34
evalbot_r14313 Error: ā¤Unexpected end of inputā¤expecting "\\", variable name or "'"
masak ?eval "kmlf jine ghd cacb"; tr[abcdefghijklmn][.!6CegGHilLnov]; .say 08:35
evalbot_r14313 OUTPUT[ā¤] Bool::True
masak ?eval "kmlf jine ghd cacb"; tr[abcdefghijklmn][.!6CegGHilLnov]; $_
evalbot_r14313 \""
masak funny. that works in pugs -e
ah:
?eval $_ = "kmlf jine ghd cacb"; tr[abcdefghijklmn][.!6CegGHilLnov]; $_
evalbot_r14313 \"Long live GHC 6.6!"
masak :)
why is it a stringref, though? and not just a string 08:36
audreyt because it's VAR($_)
and $_ is mutable
?eval $_ = "kmlf jine ghd cacb"; tr[abcdefghijklmn][.!6CegGHilLnov]; ~$_
evalbot_r14313 "Long live GHC 6.6!"
08:41 andara joined
masak so... \ here is an abstraction layer between the immutability of string objects and the mutability of $_? 08:41
audreyt it's just a way of outputting... 08:46
it's not very intuitive. 08:47
08:47 buetow joined
kane-xs it's wonderful to see that even the most random crap evaluates to ghc praise! 08:48
audreyt evidently perl6 is perl ;) 08:51
09:09 chris2 joined 09:22 ruoso joined 09:41 jferrero joined
svnbot6 r14315 | audreyt++ | * Pugs.Prim: lift "fork" from Perl5. 09:48
10:01 iblechbot joined 10:12 amv joined
gaal I have a friend in Minsk... 10:44
andara who has a friend in Pinsk ... 10:45
Patterner but none in Omsk..? 10:54
gaal and plenty in opPerl5molinsk 11:04
audreyt gaal: tuitcount for chglog? I'm moving to win32 and jsfix now 11:05
gaal audreyt: not today, sorry :(
11:06 TimToady joined
gaal any other volunteers? 11:06
audreyt any chance in the next 72 hours?
(my plane takes of after that)
gaal maybe tomorrow
audreyt okie
gaal I'm surprised fork just works. does the perl 5 fork op not do special signal / fh stuff that we maybe need to do ourselves? 11:08
11:11 fglock joined
svnbot6 r14316 | fglock++ | v6 - compile-time split of <...> 11:11
audreyt not on unix, no 11:17
dinner, bbl... 11:25
11:26 markstos joined
svnbot6 r14317 | audreyt++ | * Unify "if" and "unless" into the new (Syn "cond") node, which 11:26
r14317 | audreyt++ | allows for pointy clauses in conditionals:
r14317 | audreyt++ | if f -> $x {
r14317 | audreyt++ | ...
r14317 | audreyt++ | }
r14317 | audreyt++ | elsif g -> $y {
r14317 | audreyt++ | ...
r14317 | audreyt++ | }
r14317 | audreyt++ | else -> $z {
r14317 | audreyt++ | ...
r14317 | audreyt++ | }
r14317 | audreyt++ | * Bump CompUnit version; please rm blib6/lib/*.yml before remaking.
masak audreyt++ # cool generalization
11:29 frankg joined
svnbot6 r14318 | fglock++ | Pugs-Compiler-Rule - added TODO test for prior-prior 11:41
11:54 xinming joined 12:03 iblechbot joined 12:16 fridim joined
fridim hi 12:16
12:17 Limbic_Region joined 12:20 frankg joined 12:30 Grrrr joined
fridim In spec.pugscode.org, the formats apocalypse at dev.perl.org/perl6/doc/design/apo/A07.html gives a 404 error. 12:36
lambdabot tinyurl.com/vxdg4
GeJ fridim: have a look at dev.perl.org/perl6/doc/apocalypse.html 12:43
lambdabot Title: Perl6 Apocalypses - perl6
GeJ but the Apocalypses are here historic reason mostly. Better, up-to-date information can be found on the Synopses section 12:44
13:01 kanru joined 13:12 nothingmuch joined 13:19 justatheory joined 13:22 cjeris joined 13:25 baest joined 13:27 lanny joined
xinming hmm, 13:27
xinming feels sorry if there are many empty commits into repository... (Forgot to use -l option. >_< ) 13:28
lanny @tell audreyt I hope in the code for $job you posted concerning crypt that the 'XX' salt was just a placeholder for random 2 char string in proper alphabet. If it really is single salt for all passwords it's *much* easier to build attack dictionaries against. 13:29
lambdabot Consider it noted.
13:37 cjeris left
svnbot6 r14319 | yiyihu++ | r14446@HomePc: xinming | 2006-10-13 21:20:43 +0000 13:39
r14319 | yiyihu++ | Change (my T $x, my T $y, my T 4z) to (my T $x, my T $y, my T $z)
13:41 cjeris joined 13:51 nothingmuch_ joined
svnbot6 r14320 | lanny++ | * crypt.t - some (lame) tests of recently implemented crypt 13:52
13:53 elmex joined 13:57 cdpruden joined 14:00 hexmode joined 14:03 ron__ joined 14:09 vel joined
xinming hmm, If I want to write a test which is 'my int $x = undef', where should I put the test? 14:14
gaal undef.t? what does it actually test? 14:15
xinming assign undef to machine integer must die...
[particle] that sounds like a native int test, not an undef test 14:16
avar Die they must die, the pandas must die!
xinming people must die... :-P
Well, I just read synopsis. And I don't know if the test has been written 14:17
[particle] i suppose C<my int $x = NaN;> might work... 14:18
xinming [particle]: hmm, I don't think so, as It is machine representation of an integer... 14:19
[particle]: my Int $x = NaN; should work
from Synopsis 2.
gaal some machine might conceivably have a native NaN representation for native ints... 14:20
xinming IMHO, It's just overflow.
gaal *shrug* it's platform dependent. 14:21
14:30 markstos joined 14:38 [particle] joined
svnbot6 r14321 | gaal++ | * Primitive golf and cleanups 14:40
14:59 lumi joined 15:03 jferrero joined 15:07 frederico joined 15:19 lanny joined 15:20 szabgab joined
gaal cute and interesting language: www.flapjax-lang.org/tutorial/ 15:35
lambdabot Title: Flapjax Tutorial
15:36 turrepurre joined
lanny @tell audreyt On feather if I run /usr/bin/pugs in ~/pugs I get 'Consider removing blib6/lib/Prelude.pm.yml' (until I do so). Should /usr/bin/pugs be discovering ./blib6 without being told to? 15:44
lambdabot Consider it noted.
gaal lanny: it's a special case, yes 15:45
pasteling "lanny" at 128.107.248.220 pasted "/usr/bin/pugs discovers ./blib6" (10 lines, 617B) at sial.org/pbot/20407
lanny gaal: Ah. Documented anywhere? 15:46
(Not that I looked for docs first. :(
nothingmuch_ gaal: th frtime article is more interesting 15:47
gaal I don't think so. Precompilation is not really specced at all, though there's a technical note in docs/ somewhere about how we want it to work
frtime?
nothingmuch_ is sort of planning POE + mg based impl
15:47 nothingmuch_ is now known as nothingmuch
nothingmuch it's FRP in scheme 15:47
gaal frp? 15:48
nothingmuch functional reactive programming
lanny Functional Role Playing?
nothingmuch the thing driving flapjax
gaal url?
nothingmuch citeseer.ist.psu.edu/cooper04frtime.html
lambdabot tinyurl.com/y5tq2y
gaal thank you
nothingmuch moose moose
[particle] nm: you looking at an 0.01 release of class::workflow anytime soon?
nothingmuch [particle]: the code is in production, so it's "stable 15:49
0.01 is not there yet because of missing components
that i have 50% written
maybe i'll do that this weekend
[particle] i'd like to be able to install direct from cpan
but access to a repo would be fine too 15:50
i hate downloading tarballs
nothingmuch cpan install N/NU/NUFFIN/Class-Worfklow-0.01_03.tar.gz
s/cpan/cpan>' 15:51
you can do that in the shell
that said
nothingmuch.woobling.org/Class-Workflow/
lambdabot Title: Index of /Class-Workflow, tinyurl.com/y3bwju
svnbot6 r14322 | lanny++ | * Functions.pod - for sub pick put optional named before *@values. 15:56
r14322 | lanny++ | * pick.t - add some pick tests (all :todo<feature> sadly)
lanny @tell audreyt gaal++ on answering my pugs and ./blib6 question. 15:58
lambdabot Consider it noted.
16:00 andara joined 16:01 lollan joined
TimToady @tell audreyt for .=split(/\s+/) you oughta be able to say .=comb 16:03
lambdabot Consider it noted.
PerlJam comb? 16:04
combine?
PerlJam has never combed data to his knowledge 16:05
lanny PerlJam: comb through a string and extract the good stuff
PerlJam sure, I can see that usage. It's just a tad esoteric. 16:06
lanny Consider the namer. :)
PerlJam indeed. My experience within the perl community has taught me new meanings for everyday words and new words for everyday things :) 16:07
lanny The gory naming details: colabti.de/irclogger/irclogger_log/...sel=34#l66 16:09
lambdabot Title: #perl6 2006-09-24,Sun, tinyurl.com/y25amo
lanny I find that just sitting in #perl6 is an education all in itself too. 16:10
In S29 I'm guessing 'our Str method method chomp ( Str $string: ) is export' is a typo for 'Our Str multi method ...'? I'll fix until someone describes an exciting new declarator I've missed. 16:12
TimToady lanny: named don't actually have to be declared before slurpy. 16:13
yes, at the moment the : is not allowed in a non-method
but we might allow it for an inside-out export.
fridim "when it is ready". Is there another answer or should I tell myself to be patient ?
TimToady That is, a multi that also wants to install the corresonding method. 16:14
lanny I know. I tested that. But it seemed better to have the modification of behavior up front in case of something like: pick(4, <some really long list type here>, :repl)
TimToady but it's a lot of semantic weight for a small punctuation.
lanny Someone could put it upfront anyway but it's just sort of a reminder of style
16:14 Psyche^ joined
TimToady oh, were you just changing the call? 16:14
or the decl?
16:15 andara left
lanny I was just going to s/method method/multi method/ since I think it's a typo 16:15
TimToady that's fine
16:15 [particle] joined 16:26 Psyche^ is now known as Patterner 16:32 buetow joined
audreyt lanny: re the salt: the 1st argument to crypt was the username ;) 16:38
svnbot6 r14323 | fglock++ | v6/emitter(2) - remove all Perl5*.pm "native" modules
audreyt so, already insecure to the extreme, dictionary attack not going to matter
lanny aha. 16:39
audreyt TimToady: did the segfault go away for you?
fglock audreyt: would you take a look in sial.org/pbot/20346 - pure-p5 binding & typecheck 16:42
lambdabot Title: Paste #20346 from "fglock" at 200.17.89.80
fglock audreyt: I'm fixing <prior> 16:43
TimToady audreyt: currently recompiling for smoke 16:44
still coredumped last night's run
did you fix anything there in the last 12 hours? 16:45
audreyt yes
r15204 (orig r14312): audreyt | 2006-10-13 11:07:32 +0800
TimToady k will take 30-40 min
audreyt hm, that was 13 hours ago
TimToady my smoke of 14312 had 9 errors, mostly set-infinite 16:46
audreyt hm, then it won't help 16:47
can you hand-hack third-party/HsJudy/Judy/IntMap.hs
line 94
was
addForeignPtrFinalizer finalize' fp
make it
-- addForeignPtrFinalizer finalize' fp
TimToady k
audreyt and then recompile? I'm 99% sure it will make the segfaulting go away (you can run prove6 for 5~10 processes simultaneously on the same set-infinite test) 16:48
of course, it also means massive memory leak.
TimToady I'm not sure which is worse... 16:49
Limbic_Region audreyt - you aren't going to like me 16:50
my pugs is once again showing the wrong version
audreyt oy...
Limbic_Region I am svn uping now but it was showing 14307 (which was definately not right) 16:51
interestingly enough - the only reason I noticed it was because pugs kept whining that I needed to delete blib6/lib/Prelude.pm.yml
16:52 mdiep joined
TimToady all tests successful on 8 simultaneous, for both si and sirecursive 16:56
does this mean my program is going back up to 10 hours?
:)
audreyt no, not really :) 16:57
TimToady is this a general memory leak on hash usage?
audreyt on array usage
svnbot6 r14324 | audreyt++ | * build_pugs.pl and version_h.pl: Now that the Makefile.PL
r14324 | audreyt++ | no longer force_fun the regeneration of Pugs.Version, let
r14324 | audreyt++ | build_pugs.pl take care of it. Prompted by Limbic_Region++.
audreyt namely, unreferenced arrays don't get freed
TimToady including 7meg files processed with eval :yaml? 16:58
audreyt the segfault was because "unreferenced array" was then referenced for some random reason
TimToady sounds like it needs weak refs...
audreyt it's exactly because weakrefs is dereferenced...
16:59 MacVince joined
audreyt but instead of coming back Nothing, we really wants a value out of it, so it segfaults 16:59
TimToady shouldn't dereffing a missing weakref just throw a normal exception?
audreyt right. but in this case it's a real hold-this-for-GC ref somehow not considered as such
and got inadvertantly weakened
and so the Judy pointer gets freed 17:00
and then the deref brings it back to life
and GHC tries to run a finalizer on it, seeing it's no longer referenced but in the heap
of course there's no finalizer for it at that point
so it segfaults. not attempting to run the finalizer at all made the GC behave correctly, magically 17:01
still not sure if it's Judy's bug, FFI's bug, cmarcelo's-use-of-FFI's bug, or GHC RTs's bug
I guess we can go back to nonsparse arrays, which were known to work :)
TimToady seems like non-sparse is the common case. 17:02
are non-sparse more efficient?
I have no problem with declaring sparse explicitly in P6
audreyt well judy's attraction was that it made sparse arrays almost as efficient as packed arrays 17:03
thru lots of crafty magic
lanny What's the matcher for "any length non-whitespace that contains an 'a'"? I'm trying to write a comb test: is("a ab bc ad ba".comb(/???/), <a ab ad ba>).
TimToady s/a/u/
lanny Hmm. Might be asking too much of comb. grep { /a/ } "a ab bc ad ba".comb; would do it 17:05
TimToady /\S*a\S*/ surely
17:05 amnesiac joined
audreyt ok. let me check in nonsparse arrays and we'll see if performance/segfault differs much 17:06
lanny No. That would match any 'a' between whitespace. I'm looking for any "word" that contains an 'a'
Oh wait. Nope. 17:07
Got my \s and \S backwards. Thanks!
TimToady or /\S+: <?{ $() ~~ /a/ }> 17:09
lanny I haven't read S05 yet so I'll just go with that first one. :)
TimToady but I doubt the latter will work yet. 17:10
given <$rx> doesn't even work yet...
the comb implementation would be a lot easier if it did...
smoking the custom build. 17:12
shower &
datapoint: the custom pugs doesn't slow my work program 17:14
17:24 theorbtwo joined
fglock audreyt: ping? I fixed <prior> to avoid recursion, but this is leaky, as each new <prior> stores the last one in a closure 17:25
audreyt nod. that may be fine 17:30
fglock audreyt: nod to me? 17:31
audreyt yeah
17:32 wilx joined
fglock audreyt: done :) 17:35
svnbot6 r14325 | fglock++ | * Pugs-Compiler-Rule - each time <prior> is set to a new rule, 17:36
r14325 | fglock++ | it stores the previous rule in a closure
Limbic_Region audreyt - is the newline ambivelance in Test.pm supposed to be working yet? 17:39
audreyt no not yet, working on segfault still 17:40
Limbic_Region ok, running smoke now 17:41
17:43 [particle] joined 17:46 prism joined 17:49 justatheory joined
TimToady heh, 99.99% okay 17:54
svnbot6 r14326 | fglock++ | * Pugs-Compiler-Rule - CPAN version 0.20
18:02 weinig is now known as weinig|bbl 18:06 elmex joined
audreyt ok, packed arrrays implemented. (as an additional benefit it's transactional again) 18:07
18:11 wilx joined
TimToady will smoke 14327ish after I get to work 18:12
svnbot6 r14327 | audreyt++ | * Experimental checkin to replace sparse (Judy) arrays with
r14327 | audreyt++ | packed (Data.Array) arrays. May or may not significantly 18:13
r14327 | audreyt++ | affect performance and memory usage. May or may not fix
r14327 | audreyt++ | the segfault problem... We'll see :-)
TimToady my one failure is in set's overload.t because prefix:<~> went away
audreyt good, that agrees with my smoke result 18:14
TimToady any idea why it was fragging evalbot?
audreyt sure, "method foo is prefix" was also construed as an in-scope sub
and shadows multisub *~
so ~$match also uses Set's .stringify
and boom.
TimToady is export?
audreyt yeah, is export
TimToady cool. 18:15
audreyt the correct fix is to not look at methods when doing sub dispatch
TimToady nod
possible?
audreyt sure, very much so
TimToady k, won't sweat it then
audreyt tomorrow morning perhaps :)
TimToady I'm sure L~R is feeling more pain right now.
audreyt well, segfault was also affecting him in a more dramatic way 18:16
that at least should be fixed r14327
TimToady was thinking of the eqv thing
audreyt I'll soon sleep and then resume hacking/relenging
TimToady off to $job for me...
audreyt k. ciao! & 18:17
TimToady pitter patter pitter patter &
svnbot6 r14328 | lanny++ | * Functions.pod -- s/method method/multi method/ 18:19
r14328 | lanny++ | * t/builtins/**.t -- many smartlink fixes. added a few tests.
fglock audreyt: ping me when you have some time to discuss the v6.pm backend? 18:20
18:20 weinig joined
svnbot6 r14329 | lanny++ | * comb.t -- tests for comb. 18:20
pasteling "Limbic_Region" at 129.33.119.12 pasted "Trying to convert the following to Java" (39 lines, 820B) at sial.org/pbot/20410
Limbic_Region oops - sorry about the nopaste 18:22
disregard
stevan feels sorry for Limbic_Region ,.. thats a few thousand lines of Java ;) 18:27
TimToady hopefully it was generated by 4 lines of Perl 6...
audreyt fglock: that may have to wait until I'm in the U.S. 18:30
stevan TimToady: do you have a secret project you are not telling us about :)
audreyt or, until I'm in Brazil :)
stevan audreyt: when are you coming to the US?
oh,.. OOPSLA i forgot :) 18:31
Limbic_Region stevan - that's just not true. I have kludged together a working example in about 50 lines of Java 18:32
stevan Limbic_Region: complete with the file reading loops?
fglock audreyt: ok - btw I'll be in Sao Paulo in nov 1 until 6 18:34
stevan I suppose too if you use the HashMap and other java.util.collections goodies it wouldnt be *that* bad
audreyt oh, cool
we can hack our brains out then :)
fglock :)
stevan audreyt: will be you stopping in Boston when you are here?
obra fully intends to hack audrey's brains out before she goes to Sao Paulo 18:35
audreyt stevan: not likely, sorry
stevan audreyt: oh well :(
obra stevan: fly to pdx and come hack declarative templates
stevan declarative templates? 18:36
obra in short, use code to generate sane semantic markup. it gets you all sorts of cool things like multiple render paths, proper inheritance, testing, the possibility to gen things that aren't html 18:37
stevan obra: very cool 18:38
I couldnt make pdx, but maybe sometime when you are hacking in boston
18:38 Pomin joined 18:43 fglock left 18:46 [particle] joined
audreyt excellent. r14327 made pugs 2x slower 18:46
Limbic_Region stevan - yes
18:46 buetow joined
audreyt switching to Data.Seq from Data.Array now 18:47
18:51 buetow joined
Limbic_Region stevan - fwiw, I used a HashSet instead of a HashMap since I don't care about values - just if a member is present or not 18:52
I used Scanner for file filtering 18:53
etc
svnbot6 r14330 | audreyt++ | * Pugs.Types.Array: Packed arrays using Data.Array made 18:54
r14330 | audreyt++ | smoke time 2x slower than previously, which is unacceptable
r14330 | audreyt++ | -- this changes it to use Data.Seq in the vain hope that
r14330 | audreyt++ | it'd be faster.
Limbic_Region does vain == futile there? 18:58
oh, and audreyt really should be sleeping
TimToady obviously we need "use fast" and "use correct" pragmas... :) 19:03
Limbic_Region heh - what we really need is a "use fast_except_when_broken" pragma 19:04
19:05 fglock joined
TimToady use faster_till_GC_gets_involved :) 19:08
audreyt more bench/smoke info welcome on r14331 19:12
svnbot6 r14331 | audreyt++ | * Pugs.Types.Array: Repair splice(). I think the new
r14331 | audreyt++ | Seq-based arrays are still slower, but will wait
r14331 | audreyt++ | until tomorrow morning to do a proper bench...
audreyt but I think Judy is still an obvious win; maybe we'll just let it leak strategically somehow...
anyway, sleep &
19:12 gugod joined 19:15 frankg joined
TimToady smoking r14331... 19:17
19:18 buetow joined
Limbic_Region too 19:19
my smoke times have been getting progressively longer btw 19:20
19:22 [particle] joined
svnbot6 r14332 | fglock++ | v6/emitter(2) - implemented .[] 19:26
19:34 beppu joined
Limbic_Region wow, I am still in ext/ 19:46
how about you TimToady
svnbot6 r14333 | fglock++ | v6/emitter(2) - added 'Data Structures for Pure-Perl Scalars' to HACKING
19:50 awwaiid joined
PerlJam not to bikeshed or anything but "comb" still bothers me. What about C<part> or C<cull> instead? (Though C<cull> has the unfortunate connotation of placing value judgement upon the data) 19:59
20:17 larsen joined 20:34 [particle] joined
svnbot6 r14334 | fglock++ | v6/emitter(2) - HACKING update 20:35
20:39 fglock left 20:42 Limbic_Region joined 20:55 lanny joined
lanny PerlJam: I think what you are looking for is tok() or tokenize() since that's the action of pulling out non-whitespace in compilers. (Is there a language that whitespace is anything but structural outside of strings?) 20:57
But even that isn't correct. "a ab abc bc bcd da".comb(\S*a\S*) is a very odd tokinization of the input. 20:59
TimToady Limbic_Region: my r14331 was *faster* than the sparse array version. 21:00
lanny ?eval "a ab abc bc bcd da".comb(m:Perl5/\S*a\S*/)
21:00 evalbot_r14313 is now known as evalbot_r14334
evalbot_r14334 ("a", "ab", "abc", "da") 21:00
lanny Ok. @family calls.
TimToady PerlJam: believe me, I looked at all those names, and many others. I literally spent hours with the thesaurus. 21:03
the second runner-up is "splat"
PerlJam heh
TimToady taking splat as the opposite of split...
PerlJam Well, perhaps if I look at it long enough, comb won't verb as "combine" in my head anymore. 21:07
sift wouldn't work?
:) 21:08
TimToady has connotations that you're sifting out what you don't want.
also not lumpy enough
PerlJam sieve? 21:10
TimToady you just lost the spelling challenged. :)
PerlJam Well, I'll let my subconscious work on it a bit and maybe I'll come up with a better alternative and cogent argument to support it. 21:11
(or maybe I'll come to accept comb)
TimToady think of beachcombing 21:12
PerlJam pick, gather, collect, grab, ... 21:13
TimToady yeah, seen 'em all multiple times
jabbot TimToady: I havn't seen 'em, TimToady
TimToady that's cuz yer blind, jabbot.
but don't let me stop you. :) 21:14
PerlJam If comb bothered me just a little bit more I'd be at the point of making up a term :)
Hmm. maybe non-english languages have a good term 21:15
TimToady the thing I like about "comb" is that it concentrates on the ongoing process (gather/take) of searching for objects. 21:16
PerlJam prise maybe? (sure, that'll just illict "huh?" from everyone ;-)
er, "elicit" even 21:17
TimToady prise means to pry something singular off of something else.
elicit is trying to draw something singular forth
combing is looking for a bunch of similar things. 21:18
most of the harvesting/gleaning words fall into mass noun problems.
PerlJam reap ? 21:19
TimToady that too
you reap stuff, not objects
theorbtwo chunk? 21:22
PerlJam oh no, theorbtwo has been drawn into the vortex!
demerphq gin
PerlJam gin is like cull in a way 21:23
demerphq a "gin" is a something that seperates the good stuff from the bad stuff.
TimToady @tell audreyt r14331 actually seems to be a hair faster than the sparse Judy 21:24
lambdabot Consider it noted.
Limbic_Region TimToady - it was slower on my work machine but I am trying my home machine - it may have been a memory issue
theorbtwo As in a cotton gin. It's rather obscure, most people will probably think of the drink.
demerphq oh neat perl6 uses judy arrays?
TimToady chunk implies you're getting back everything you put in, rather than extracting bits.
theorbtwo I'm not sure that's a problem, though.
PerlJam demerphq: judy strings even IIRC
Limbic_Region TimToady - does r14331 segfault less ?
demerphq neat. 21:25
TimToady demerphq: it was.
r14331 doesn't segfault on set-infinite
theorbtwo .find is too general?
demerphq it was neat?
TimToady to2, yes
it was neat but coredumping
Limbic_Region well, pugs uses Judy 21:26
PerlJam L~R: pugs is the only perl6 we have ;-)
theorbtwo .thresh?
TimToady only for hashes now.
Limbic_Region just which data types Judy provides seems to change depending on need for speed and need for correctness
theorbtwo to separate seed from (a harvested plant) mechanically
21:26 wilx joined
demerphq do they live up to their hype? 21:26
Limbic_Region audreyt was sufficiently impressed 21:27
TimToady dunno yet. they're not bad. don't know if they scale quite as well as P5 hashes though.
could well be architecture dependent 21:28
PerlJam maybe the fact that "comb" is bothersome is a good thing. At least people won't easily forget it ;)
TimToady and the fact is, it's just syntactic sugar for ~~ m:g// 21:30
PerlJam I'd probably just use the less sugary form as that's the idiom I've always used in p5.
TimToady it just happens to default to m:g/\S+/ 21:31
and it's there primarily to kill split(' ')
PerlJam It's actually more likely that I'll use whichever thing occurs to me first :-) 21:32
Though I'll have to start thinking in more idiomatic perl6 21:33
TimToady well, part of the reason for picking comb is that it *isn't* already heavily overloaded in computing culture, and being a word it's easy to look up. 21:37
and as you may have noticed, I'm not adverse to starting new idioms in computing. :)
PerlJam Well, I'm developing a small affinity for "comb" Maybe it won't bother me so much tomorrow. 21:40
21:41 beppu joined
PerlJam I'm still coming to grips with the s/foo/ = blah() thing too. 21:41
it jars my brain. It doesn't seem to fit in the syntax. 21:42
Maybe it won't bother me so much tomorrow
:-)
21:49 polettix joined
Limbic_Region @tell audreyt I agree with TimToady WRT speed of non sparse arrays 22:06
lambdabot Consider it noted.
22:17 [particle] joined
Eidolos ?eval my @memo = (0, 1); sub fib { $memo[$_[0]] //= fib($_[0]-1) + fib($_[0]-2) } fib(0) 22:19
evalbot_r14334 Error: Undeclared variable: "$memo"
Eidolos Ah right
?eval my @memo = (0, 1); sub fib (Int $N) { @memo[$N] //= fib($N-1) + fib($N-2) } fib(0) 22:20
evalbot_r14334 \0
Eidolos ?eval my @memo = (0, 1); sub fib (Int $N) { @memo[$N] //= fib($N-1) + fib($N-2) } fib(10)
evalbot_r14334 \55
wolverian I think there's a more elegant way to do that, given lazy lists 22:26
Eidolos nods. 22:27
wolverian I am, however, slightly confused about how to code it, given the difference between functions and arrays in perl6 :) (vrt. say, haskell)
s,vrt.,compared to, 22:29
(I think that was finnish, not english :)
Eidolos "vs" would've worked fine :)
wolverian I knew I forgot something :)
thanks!
22:29 lollan joined 22:38 weinig is now known as weinig_, weinig_ is now known as weinig
TimToady ?eval sub fib (Int $N) { (state @s = 0,1)[$N] //= fib($N-1) + fib($N-2) } fib(10) 22:39
evalbot_r14334 \55
Eidolos Cool. 22:40
TimToady DRY
Eidolos hides
lumi Pretty 22:41
TimToady ?eval sub fib (Int $N) { (state @s = 0,1)[$N] //= fib($N-1) + fib($N-2) } fib(1000)
evalbot_r14334 (no output) 22:42
TimToady heh
?eval sub fib (Int $N) { (state @s = 0,1)[$N] //= fib($N-1) + fib($N-2) } fib(100)
evalbot_r14334 (no output)
Eidolos Odd.
TimToady ?eval sub fib (Int $N) { (state @s = 0,1)[$N] //= fib($N-1) + fib($N-2) } fib(10)
evalbot_r14334 \55 22:43
TimToady what a wimpy language...
wolverian can you write that without the explicit state, or without the function? :)
TimToady well, the state is easy, if we had "is cached" implemented.. 22:44
Eidolos Ah, that would explain it, then.
?eval ($n, $a, $b) = (1000, 0, 1); ($a, $b) = ($b, $a + $b) while $n-- > 0; $a 22:45
evalbot_r14334 Error: Undeclared variable: "$n"
Eidolos ?eval my ($n, $a, $b) = (1000, 0, 1); ($a, $b) = ($b, $a + $b) while $n-- > 0; $a
evalbot_r14334 \43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875
22:59 snowstalker joined
TimToady ?eval [+] [\+] 1 xx 10 23:03
evalbot_r14334 55
wolverian TimToady, I love you.
I mean... whoa, look at the APL :)
TimToady ?eval [\+] [\+] 1 xx 10 23:04
evalbot_r14334 (1, 3, 6, 10, 15, 21, 28, 36, 45, 55)
[particle] that's gotta make it to the mailing list... 23:05
at this point, 'fib' can be a macro expanding to [+] [\+] 1 xx
wolverian hrm, at least if it worked correctly
TimToady well, there is that... 23:06
interesting coincidence, anyway... 23:07
wolverian what is it actually doing? I don't get it :) 23:09
TimToady it's really just doing triangular numbers. 23:10
it's just curious that the 10th triangular number happens to be the same as fib(10)
wolverian oh, so it is. 23:11
yup.
Limbic_Region ?seen stevan 23:21
lambdabot stevan is in #perl6. I last heard stevan speak 4h 42m 32s ago.
Limbic_Region stevan ping
@tell stevan that Perl code you think would take hundreds of lines in Java - see sial.org/pbot/20416 23:22
lambdabot Consider it noted.
stevan Limbic_Region: very nice 23:23
lambdabot stevan: You have 1 new message. '/msg lambdabot @messages' to read it.
Limbic_Region stevan - that's my first Java program (ever) 23:24
stevan :)
Limbic_Region that's why I can't believe it is that good
I have tried and tried to get a Java person to write their own version (without seeing mine) 23:25
to no avail
*shrug* - I am afraid I am not taking advantages of the languages strengths
and just doing literal translations of my perl
oh well
stevan Limbic_Region: looks like good Java to me 23:29
stevan is not a Java programmer,.. but I have played one before :)
Limbic_Region: the "strength" of Java is that *everything* is an object 23:30
and you are using several of the new sexy features (generics, better for loops, etc)
Limbic_Region stevan - I am trying to optimize for runtime performance so since there are more ways than one to do what I want, I am not sure I chose the best 23:32
I went for simplicity 23:33
wolverian stevan, everything is an object, except primitives.
stevan wolverian: very true :)
Limbic_Region wolverian - except that in recent Java's there are autoboxing objects for every primitive 23:34
wolverian didn't java5 add autoboxing, though?
Limbic_Region Int for int
wolverian ah. thanks
it did :)
stevan autoboxing is usually expensive though
Limbic_Region took a Java class last week and am trying to put it to good use
stevan so fi you are optimizing for performance,.. ...
23:37 cjeris left 23:38 mako132_ joined
Limbic_Region grrr - ran out of heap 23:43
either of you know what some sane settings are and how to set them?
TimToady in Java or pugs? 23:46
I know with pugs you can set stack with +RTS -K100M -RTS, but setting the heap is IIRC -M instead of -K 23:48
Limbic_Region Java - sorry, misusing the channel 23:49
stevan Limbic_Region: if you are looking for Java work, you are gonna need to increase the LoC ;) 23:50
23:52 avar joined
stevan Limbic_Region: you might want to try not using StringBuffer as much 23:53
IIRC the String class is immutable, so the JVM would likely be a little more heap efficient with it 23:54
but that is just a guess
and use vanilla arrays if you can get away with it too
Limbic_Region no, String is immutable 23:56
StringBuffer is mutable
oh wait
that's what you said
if I used String, I would end up calling a lot more object constructors 23:57
23:58 Aankhen`` joined
stevan Limbic_Region: its all a trade off,.. the String will likely be more space efficient being immutable, but more objects will eat up heap space too 23:59
although maybe the GC might make space if you are not storing all o them