pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
00:04 AzureStone left 00:08 AzureStone joined 00:26 luqui joined 00:42 pbuetow_ left 00:59 alester joined 01:10 meppl left 01:12 meppl joined 01:15 alester left 01:16 [particle]1 joined 01:32 [particle] left 01:41 alester joined 01:43 Limbic_Region left 01:49 frobnitz left 01:55 bacek joined 01:56 justatheory left 02:02 Khisanth left 02:03 Khisanth joined 02:21 dduncan left 02:22 agentzh joined 03:07 elmex_ joined 03:14 alester left 03:22 elmex left 03:23 elmex_ is now known as elmex 03:42 kanru left 03:47 eternaleye joined 04:06 sri_work joined 04:08 thorat joined 04:36 [particle] joined 04:37 Jamzio left 04:47 eternaleye left 04:52 xinming joined 04:54 [particle]1 left 05:05 xinming_ left 05:28 alester joined 05:44 xinming_ joined 05:46 thorat left 05:50 alester left 05:52 xinming__ joined 05:56 Psyche^ joined 05:57 xinming left 06:04 xinming_ left 06:08 Patterner left, Psyche^ is now known as Patterner 06:29 luqui left
speckbot r14569 | larry++ | \d123 is now \c123 to avoid confusion with \d character class 06:33
06:38 fridim__ joined 06:39 fridim_ left 06:43 fridim__ is now known as fridim_, idemal joined 07:04 les joined 07:28 eternaleye joined 07:33 a-jing joined, a-jing left 07:34 a-jing joined, a-jing left, ludan joined
ludan hi 07:37
07:38 ludan left, ludan joined 07:42 fridim_ left 07:45 Jedai left, alester joined 08:00 pmurias joined
pugs_svn r21547 | lwall++ | [STD] fix heredocs, improve $0 reporting 08:02
r21547 | lwall++ | [quoting.t] update to use \c instead of \d
r21548 | lwall++ | [STD] new \c code failed to parse itself 08:14
bacek TimToady: but also because he is the first Slashdot interview guest ever to send his answers preformatted in squeaky-clean HTML. :) 08:20
pmurias bacek: he = ? 08:23
bacek pmurias: interviews.slashdot.org/article.pl?...mp;tid=145
lambdabot Title: Slashdot | Larry Wall On Perl, Religion, and..., tinyurl.com/1bua
bacek kinda old interview :)
pmurias & 08:27
08:38 fridim_ joined 08:43 alester left 08:55 meppl left 09:01 bacek left 09:04 xinming joined 09:14 fridim_ left, fridim_ joined 09:17 xinming__ left 09:18 eternaleye left 09:20 Psyche^ joined 09:27 Patterner left, Psyche^ is now known as Patterner 09:34 wknight8111 joined 09:36 iblechbot joined 09:44 ludan is now known as ludanolo, ludanolo is now known as ludan 09:49 pbuetow joined 09:53 masak joined 09:57 hanekomu joined 09:59 wknight8111 left 10:17 meppl joined 10:18 chris2 joined 10:24 fridim_ left 10:45 Chillance joined, Chillance left, Chillance joined 10:46 apeiron_ joined 10:53 apeiron left 11:02 Chillance left, Chillance joined 11:24 ruoso joined
pmurias ruoso: hi 11:25
ruoso hi pmichaud
lambdabot ruoso: You have 1 new message. '/msg lambdabot @messages' to read it.
ruoso hi pmurias
pmurias, I actually took Attribute to write because you seemed to be interested in writing Code ;) 11:26
pmurias i'm considering writing a slime replacement 11:27
ruoso cool
pmurias should i sketch something on the wiki? 11:28
ruoso that's a good start, yes...
it would be cool if we could make it with llvm directly 11:29
since llvm seem to be the cool guy now ;)
pmurias, but remember one very important aspect of your implementation, that it should not recurse in the C stack... 11:30
pmurias i'm thinking of something very simple that it should be translated to llvm easily 11:31
11:31 hanekomu left
pmurias what opcodes do we need call,conditional branch,unconditional branch? 11:32
ruoso pmurias, we need a lot more, actually 11:33
to support gather/take
pmurias gather/take are normal functions 11:34
take just store the continuation
* stores
ruoso which means that you need operators to support continuation.... 11:36
11:36 a-jing joined
pmurias do we do CPS now? 11:36
11:37 a-jing left
pmurias * if we do CPS the continuation is passed as the first argument 11:38
ruoso yes...
we do...
in SLIME this is done explicitly calling the interpreter "continuation" method and then a "goto" call in the end of the sm0p block. 11:39
pmurias it can be just stored as the first argument 11:41
s/stored/passed/ 11:42
rakudo_svn r29751 | jonathan++ | [rakudo] Make sleep return the value it was given, which for now fakes the number of seconds slept. More importantly, it avoids a Null PMC Access exception. We can improve this once sub-second time support is in place through the time() call. Patch from Carl M?\195?\164sak
..<cmasak at gmail.com> (masak++).
ruoso but we can't just add it to the normal capture...
pmurias how should the slime replacement be called? 11:43
ruoso please, feel free to name it as you want to... 11:44
pmurias any suggestions ;)
ruoso how will it look like? 11:47
pmurias soup& 11:53
i think it will be register based
i'm filling in the wiki page now 11:54
pugs_svn r21549 | ruoso++ | [smop] lowlevel code implementation in place. It is a callback for a C function. 12:01
pmurias ruoso: got something sketched on the wiki 12:08
any comments? 12:09
rakudo_svn r29752 | jonathan++ | [rakudo] Make multi f() {} parse and work the same as multi sub f() {}. Resolves RT#57122. 12:13
pmurias ruoso: added a example of what $*OUT.print("hello world") would translate to (in perl6 syntax) 12:26
ruoso pmurias, right.. but how will the interpreter itself work? 12:52
are you planning something bytecode-like?
or optree-like?
pmurias bytecode like definitly 12:54
are there any advantages to an optree?
ruoso I don't know, really... 12:57
pmurias i looked at the interpreter api, is skiping a node a valid use case of the api? 12:59
$run_loop.next;$run_loop.next;$run_loop.eval ?
ruoso yes 13:00
I mean...
of the API,
pmurias what is this needed for?
ruoso but it would probably cause major breakage if used like that...
pmurias, the importance is to define a way to interoperate different interpreter implementations 13:01
without C-level recursion
pmurias i meant the separation of next and eval
ruoso hmm...
one could argue that eval could make this step by itself 13:02
then "next" would be a no-op
pmurias yes 13:03
the interpreter might want to do as many steps as it can withought returning to the runloop 13:04
ruoso pmurias, as long as it doesn't recurse without returning... 13:05
pmurias the runloop could be even reduced to while $interpreter !=== false {} 13:06
s/be even/even be/ 13:07
ruoso it's somehting like that, yes... 13:08
ruoso home & (starting to build his new house)
ruoso later & 13:09
13:09 ruoso left 13:12 Limbic_Region joined 13:26 pmurias left 13:28 sri_work_ joined 13:43 sri_work left
rakudo_svn r29754 | jonathan++ | [rakudo] Give a reasonable error message when trying to inherit from a non-existent class (we need something better eventually, but this beats odd exceptions and assertion failures). 13:48
14:05 fridim_ joined 14:24 hanekomu joined
zamanfou is now away: In the rain my tears are forever lost. 14:43
14:47 alester joined
rakudo_svn r29756 | jonathan++ | [rakudo] Make multi sub foo { } work (the case where you have a multi, but no signature, which means it's a parameterless variant). 14:52
14:55 jferrero joined 15:11 alester left 15:18 timbunce joined 15:19 _timbunce joined 15:23 ludan left 15:25 iblechbot left 15:27 Moropo joined
Moropo "Despite eye-popping profits and operating results, oil companies can't get any love from fickle stock markets." 15:28
15:30 ruoso joined 15:34 Moropo was kicked by TimToady (TimToady)) 15:37 _timbunce left, timbunce left 15:56 alester joined 16:00 ludanolo joined 16:01 eternaleye joined 16:08 timbunce joined, alester left 16:10 kanru joined 16:11 ludanolo left 16:17 meteorjay left 16:18 meteorjay joined 16:22 iblechbot joined 16:26 ludan joined 16:33 chris2 left 16:42 meteorjay left 16:44 ludan left
pugs_svn r21550 | fglock++ | [v6.pm] array fixes; more tests 16:46
rakudo_svn r29758 | pmichaud++ | [rakudo]: spectest-progress.csv update, 110 files, 1885 passing tests 16:50
16:51 ludan joined 16:59 Limbic_Region left
rakudo_svn r29760 | pmichaud++ | [rakudo]: Update sleep() to return actual time slept. Sorta. 16:59
r29762 | jonathan++ | [rakudo] First cut at getting class attributes (declared my $.x) to work. Does a little refactoring so we can do this without code duplication. Also has a workaround for :outer not being allowed to point at :init :load blocks; we can pull that out once pdd25cx is merged and 17:06
..PCT updated. Todo is make the accessor sensitive to the presence or lack or 'is rw' and make sure type constraints get applied.
17:08 alester joined 17:19 alester left 17:22 pmurias joined
pmurias what's the state of the wiki in Perl6 prize? 17:32
17:34 timbunce left, timbunce joined 17:36 mncharity joined 17:37 timbunce left 17:41 meteorjay joined 17:43 ludan left
pmurias mncharity: hi 17:43
17:44 ludan joined 17:45 PZt left
rakudo_svn r29764 | jonathan++ | [rakudo] If you don't specify a type constraint that is a proto-object, we shouldn't default an attribute to containing Object proto-object. 17:45
17:46 apple-gunkies left
pmurias mncharity: would it be ok to merge elfX into elf_g? 17:47
rakudo_svn r29765 | pmichaud++ | [rakudo]: Throw an appropriate exception for unescaped $'s in strings. 17:49
r29765 | pmichaud++ | * Resolves RT #57118 (masak++)
mncharity hi pmurias 17:51
re elfX, looking...
so, what is elfX? README blank... 17:52
pmurias the branch i created not to break stuff 17:53
you told be too when i attempted to turn the evil operator (=~) into ~~ 17:55
18:06 meppl left 18:09 meppl joined
mncharity pmurias: re ok to merge, no. I'll scavange the nice improvements like .^! and improved Primitive sigs. The smop backend should stay separate, as elfish/on_sbcl is. An elfish/on_smop sounds good. Looks like there are already two?!? Feel free to mutate/merge those. The backstory is 18:12
zamanfou is now away: In the rain my tears are forever lost. 18:14
mncharity instead of the pugs model of 'all backends get forked from the pugs haskell source', the elf model is elf is just a p6 service. Eg, if one wrote a p5 smop backend, one wouldn't add it to the perl5 core code, one would add it to cpan. Same here. 18:15
pugs_svn r21551 | pmichaud++ | S29-str/index.t: update skip message to be more accurate 18:17
18:18 chris2 joined
pmurias the elfish/on_smop are obsolete, as they don't work while my smop backend does 18:23
i could move EmitSM0P.pm to ../on_smop, but it has to stay integrated because it allows to have a dual p5/smop executable 18:26
mncharity re move EmitSM0P.pm to ../on_smop, great. :) re stay integrated, on_smop like on_sbcl, is of course free to have dependencies on elf internals. And tweak those internals as needed. Just as CPAN modules do (well, perlguts tweaks are rare, but...). elf doesn't change however. Anymore than the perl program changes each time a new CPAN module is created, even an XS one. 18:34
pmurias why do you want the backends seprated from the main compiler? 18:36
pmichaud pugs: class A {}; say A.new; 18:39
p6eval pugs: OUTPUT[<obj:A>ā¤]
pmurias the problem with moving EmitSM0P.pm out, is that it needs to be compiled in into elfX, as our broken compilation models dosn't support loading in plugins at runtime 18:40
having a seperate executable with smop is inconvinient as it forces compiling twice 18:41
18:42 masak left
mncharity re "backends seprated", _everything_ is eventually going to be separate. the criteria for inclusion in elf is "this is code is absolutely needed to provide p6 service to people". as that changes, the set of things included will change. smop isn't there yet. (unless... you said works... does elf-on-smop bootstrap already?!?) 18:43
pmurias no smop is too limited 18:44
mncharity re support/inconvenient.. what exactly are you trying to do?
re too limited, ah, ok 18:45
pmurias elfX uses a -C sm0p option to change $*compiler1 to EmitSM0P
mncharity And creating an Elf.pm saying 'use EmitWhatever;' and elf_f -x -I../.../elf_f_src -o elfY Elf creates an elfY which changes $*compiler1 to EmitWhatever, no? 18:48
pmurias if you change elf_f you have to recompile both elf_f and elfY 18:50
which is a waste of CPU time
mncharity though that recompiles the entire elf (what you said). elf_f EmitWhatever.pm ...usualargs... sets $*compiler1 to EmitWhatever, recompiling EmitWhatever but not the rest of the elf.
pmurias using a ugly bug 18:51
mncharity ugly bug?
the emitter0/emitter1 architecture was created for exactly this use case. 18:52
mncharity tries to remember what a.^!b expands too... a.HOW!b ? 18:54
pmurias but it relies on elf not keeping the namespaces of the currently compiled code and the compiler
mncharity I don't understand. Explain? 18:55
pmurias mncharity: $a.^!b call method ^!b on $a which is intercepted by the representation object of $a
$*compiler1 in the compiled code and the $*compiler1 in the code we compile are different things 18:57
if i compile something like 'BEGIN {$*ERR = $*OUT};$a =~ /.*/' it dosn't make the compiler print the error message that =~ was used to STDOUT 19:00
the perl6 compiler could be as well implemented in python or pir or haskell 19:01
TimToady: the namespaces of the compiler and the code being compiled are seperate? 19:02
mncharity perl -we 'BEGIN{select(STDERR)} print "on err\n";'>/dev/null
$*compiler1 is part of the _p6_ api exported by the compiler/runtime. 19:03
the elf compiler is present at runtime as a non-spec prelude extension. an implicit 'use Elf'.] 19:06
when you compile a new version of elf, you compile in the default $*compilers. but the $*compiler1, used by, eg, eval(), at runtime, can be overridden at runtime. 19:07
err, no, I got that backwards. 19:08
$*compiler0 is the 'compatible with current runtime' compiler used by the runtime for eval(). $*compiler1 is used by the elf command-line compiler to serve 'compile to a file, with arbitrary runtime' requests. like elf -x -o foo Foo.pm. 19:10
pmurias i could just implement runtime code loading 19:12
mncharity I don't understand. Explain?
pmurias i could just add a -C SM0P which would look for a SM0P in @INC and use it as $compiler1.emitter 19:14
pugs_svn r21552 | lwall++ | [STD] || now catches panics from its left side 19:16
19:16 coumbes joined
pmurias mncharity: have you considered using gimme5's regex implementation instead of rx_on_re 19:17
mncharity elf_f SMOP.pm looks for SMOP.pm in @INC and if SMOP ends in $*compiler1.emitter = whatever, uses it. -C would be different how?
19:17 jferrero left
pmurias you wouldn't have to add $*compiler1.emitter ;) 19:19
mncharity :) 19:20
pmurias add it could do precompilation 19:21
mncharity the $*compilers api is provided by the current Compiler class. it's not a commitment made by elf, or its CommandLi 19:22
19:22 alester joined
mncharity ne class. 19:22
19:24 ludan left
mncharity precompilation, or more specifically, independent compilation, while needed in the long term, is vastly more complicated than the current whole-program-compilation+eval. and given how fast elf is, even running on top of p5, not really needed near term. 19:24
(running on top of CL should be blazing... but that's not existent yet) 19:25
pmurias if you know how the CL backend should look like i learn some CL and help with it 19:29
rakudo_svn r29769 | pmichaud++ | [rakudo]: Switch sleep to be a listop instead of named unary (masak++)
r29769 | pmichaud++ | * Partially solves RT #57924; but uses a hard-coded constant value
r29769 | pmichaud++ | to represent "forever" until Parrot provides a way to do it.
pmurias but i don't hope i could come up with a sane CL backend design by just looking up stuff from the standard/manual when i need it 19:33
19:36 alester left 19:40 eternaleye left 19:45 eternaleye joined
mncharity sorry, phone call. and have to run off. 19:46
re CL, my hope is very little ends up in CL. and that may be a bit hard to write without a CL background. but it will need lots of p6 prelude, eg, for basic classes. 19:47
I don't know if rakudo supports p6 prelude yet. my fuzzy recollection is the estimate was a couple weeks, a month or so ago. 19:48
and I'll try to get on_sbcl closer to something which is easier to work on, esp without knowing cl. 19:50
bbl... tomorrow? 19:51
pmurias so i can merge elfX if i move out EmitSM0P to ../on_sm0p
mncharity thanks pmurias
pmurias mncharity: ok
mncharity oh, right, a commit. one sec. re merge elfX, no, but moving EmitSMOP to on_sm*p would be good. 19:52
pmurias it's EmitSM0P as it emits sm0p which is the slime DSL 19:53
re "a comit" i don't understand 19:54
pugs_svn r21553 | putter++ | [elf_g] Import improvements from elfX. pmurias++
mncharity r21553.
pmurias you didn't choose to use the $*compiler refactor? 19:55
mncharity I think we've discussed most of the changes not merged... the extra $arg to callbacks can be passed in the emitter object itself, and so don't need to be args.
re $*compiler, no. just now discussed, no? did I miss something? 19:56
sorry, I really need to run. will backlog. 19:57
19:57 mncharity left 20:01 apple-gunkies joined 20:11 Auzon left 20:12 chris2 left 20:40 hanekomu left
pugs_svn r21554 | jnthn++ | [spectest] Add some tests for various bits of the multi sub syntax. 20:42
r21555 | jnthn++ | [spectest] Very basic tests for class attributes. 20:49
rakudo_svn r29771 | jonathan++ | [rakudo] Fix for when you have multiple multis without signatures (but different names) in a program; before, all but the first one got mis-generated. 20:50
20:53 ludan joined
rakudo_svn r29773 | jonathan++ | [rakudo] Add some tests for stuff I fixed/implemented today to spectest_regression. 20:58
21:08 Chillance left 21:11 pmurias left 21:18 alester joined 21:24 jiing left 21:32 mtrimpe joined 21:36 iblechbot left, Auzon joined 21:59 jferrero joined 22:04 alester left 22:08 Limbic_Region joined 22:15 Alias_ joined 22:28 Alias_ left 22:41 donaldh joined 22:42 donaldh left 23:07 Alias_ joined 23:09 Alias__ joined, Alias_ left 23:11 ludan left 23:14 fridim_ left 23:19 hercynium joined
pugs_svn r21556 | lwall++ | [Cursor] some speedups 23:22
23:31 Alias__ left 23:33 Schwern joined 23:36 eternaleye left
pugs_svn r21557 | leto++ | No longer skip test related to branch cut of complex numbers. 23:52