Parrot 3.9.0 "Archaeopteryx" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 19 October 2011.
00:47 nbrown joined
dalek umage/soh-cah-toa/featherspec: a651aec | soh_cah_toa++ | src/lib/Plumage/FeatherSpec.nqp:
Added $!error, $!is_valid, and %!metadata attributes to Plumage::FeatherSpec. Also added parse() and validate() methods for parsing featherspec files and checking for all required fields.
01:31
umage/soh-cah-toa/featherspec: 7fb3cf6 | soh_cah_toa++ | t/featherspec/0 (2 files):
Corrected output messages in featherspec tests so that they include a period at the end.
umage/soh-cah-toa/featherspec: 8776f1a | soh_cah_toa++ | src/lib/Plumage/Command.nqp:
Cleaned up POD in src/lib/Plumage/Commands.nqp to use the new =item2 tag for nested lists.
umage/soh-cah-toa/featherspec: 1ef3abd | soh_cah_toa++ | TODO:
Added task to TODO list regarding elimination of duplication in src/plumage.nqp and src/plumage-admin.nqp.
umage/soh-cah-toa/featherspec: e9127b2 | soh_cah_toa++ | src/lib/Plumage/FeatherSpec.nqp:
Removed '[ERROR]' string from error messages in Plumage::FeatherSpec since output_error() already appends it.
umage/soh-cah-toa/featherspec: 7889696 | soh_cah_toa++ | src/plumage-admin.nqp:
Created command_pack() for 'pack' command. Also created output_error() for writing error messages to stderr instead of just using say().
01:47 schmooster joined
dalek umage/soh-cah-toa/featherspec: 55d0037 | soh_cah_toa++ | src/plumage-admin.nqp:
Added check to make sure files passed to 'pack' are always named FEATHER.spec.
03:20
03:30 AzureSto_ joined
dalek rrot/kid51/testsets2: 684e5b7 | jkeenan++ | t/fullharness:
Add an --in-testing CLO to speed up development by using a shorter set of targets.
03:51
rrot/kid51/testsets2: b86b0c6 | jkeenan++ | t/fullharness:
t/fullharness now will create an archive, but its contents are not yet correct.
rrot/kid51/testsets2: 3bca5c7 | jkeenan++ | / (2 files):
During development, run a shorter set of tests when '--in-testing' is used on command line.
rrot/kid51/testsets2: 3dc3e29 | jkeenan++ | t/fullharness:
Provide a label for 'usual' targets as well as alternative runcore targets.
rrot/kid51/testsets2: df5d49d | jkeenan++ | t/fullharness:
Use provisional versions of TAP modules. First instance of a smolder report of 'make fulltest': smolder.parrot.org/app/projects/rep...ils/24016.
04:19 benabik_ joined
dalek rrot: 465da9c | soh_cah_toa++ | runtime/parrot/library/Archive/ (2 files):
Fixed perldoc in Archive;Tar and Archive;Zip.
04:20
06:57 fperrad joined 07:45 preflex joined 08:29 mj41 joined, mj41_nb joined 08:47 nbrown joined 11:27 JimmyZ joined 11:38 Psyche^ joined 11:42 mj41 joined, mj41_nb joined 12:13 whiteknight joined
whiteknight good morning, #parrot 12:14
tadzik good morning whiteknight 12:15
whiteknight hello tadzik 12:16
12:17 zpmorgan joined
tadzik whiteknight: how are things? 12:25
dalek rrot/whiteknight/tt_1910: 85d5e0c | Whiteknight++ | t/src/e (2 files):
fix t/src/extend.t and t/src/embed.t
whiteknight things are going pretty well, thanks. It's always better when the weekend rolls around
tadzik does Parrot support catching signals? 12:32
whiteknight it may have at one point. I don't know what the current state is 12:36
it certainly isn't tested, that I am aware of
what kinds of signals do you want to catch? Once the green threads stuff gets merged, I think it will become easier 12:37
dalek rrot/whiteknight/tt_1910: 6b14772 | Whiteknight++ | / (2 files):
tell t/src/checkdepend.t to shut up
12:38
tadzik things like SIGTERM and so
I wrote github.com/tadzik/MuEvent today, and signals look like a useful addition
whiteknight the hard part is being able to catch signals in a cross-platform way 12:40
and things very quickly become problematic on windows if we're not careful
tadzik aw, yeah 12:42
whiteknight tadzik: what's the branch I should be using now for Rakudo? nom? 13:06
tadzik whiteknight: yes. It's the default too 13:07
whiteknight okay, awesome
I'm testing the whiteknight/tt_1910 branch against Rakudo/nom now. If that passes I'm going to merge it 13:11
most of what it does is remove and rename a lot of C functions, so if Rakudo builds it should be functionally equivalent 13:12
tadzik and I don't think Rakudo quite uses that subsystem 13:29
13:55 mj41_nb joined, mj41 joined 14:03 logie joined
dalek nxed: 28aac61 | NotFound++ | winxedst1.winxed:
constant propgation in builtin escape
14:06
14:14 SHODAN joined 14:58 NotFound joined 15:28 soh_cah_toa joined 15:42 preflex_ joined
soh_cah_toa how come you can use the 'print' opcode with a different filehandle but not 'say'? 15:48
furthermore, FileHandle has a print() method but not say()
that seems...dumb
not to mention, really inconvenient 15:50
15:52 dd070 joined
whiteknight say is just a convenience wrapper over print 15:53
print is the opcode, say is just convenience
Rosella provides a sayf routine to combine sprintf+say. It would be trivial to write a method to enable say for any handle 15:54
soh_cah_toa so it's not an opcode?
and if it's just a wrapper, why should it behave differently?
i.e. print can use any filehandle but not say 15:55
15:57 c9s joined, mj41_nb joined, mj41 joined 16:00 schmooster joined
dalek kudo/nom: f3849a6 | tadzik++ | / (3 files):
Fix Sub documentation when using 'our sub'

Reset $*DECLARATOR_DOCS as late as possible, when we're sure it was used, so it's not accidentally cleaned if we backtrack too much.
16:06
rrot/whiteknight/tt_1910: 9bf1239 | jkeenan++ | t/src/extend.t:
[codingstd] No trailing whitespace.
16:08
rrot/whiteknight/tt_1910: d9d9961 | jkeenan++ | src/ (2 files):
[codingstd] No cuddled elses.
soh_cah_toa eh, it's an easy fix. i can add an say(invar PMC, int INT/NUM/STR/PMC) opcode 16:09
dalek rrot/whiteknight/tt_1910: 765a92d | jkeenan++ | src/pmc/hash.pmc:
[codingstd] Break line to meet linelength standard.
16:11
rrot/whiteknight/tt_1910: 0ae0570 | jkeenan++ | src/hash.c:
[codingstd] No space before closing paren.
16:12 kid51 joined 16:20 benabik joined
NotFound soh_cah_toa: what will be its purpose? 16:20
soh_cah_toa NotFound: to print a string w/ a trailing newline to a FileHandle pmc 16:26
for some reason, it doesn't already do that :\\
NotFound soh_cah_toa: how many times you expect to generate that code from HLLs?
soh_cah_toa well, i need it right now for plumage 16:27
if it's common enough that 'print' needs it, i'd say then 'say' deserves it as well
NotFound soh_cah_toa: say is just a convenience for hand written pir, the current idea is to avoid providing more easiness for hand written pir. 16:28
soh_cah_toa well, what's the benefit of one io op (print) having it but not the other (say) which is nearly identical? 16:29
NotFound soh_cah_toa: avoiding repeated nearly identical code, for example. 16:30
soh_cah_toa if 'say' is supposed to be just a 'print' w/ a trailing newline, it should follow that whatever you can do w/ 'print', you can do w/ 'say'
dalek rrot/whiteknight/tt_1910: 5e08879 | jkeenan++ | src/packfile/api.c:
[codingstd] c_function_docs failure fixed by adjusting signature.
16:32
soh_cah_toa i mean, the only difference should be the trailing newline
16:32 benabik joined
NotFound soh_cah_toa: we can live without it. We've been living without it for years. Please don't add it without a consensus. 16:33
kid51 msg whiteknight re tt_1910 branch: In addition to g++ failures reported on parrot-dev, you will have to fix PBC_COMPAT to get one remaining codingstd test to pass
aloha OK. I'll deliver the message.
soh_cah_toa whatever 16:34
16:34 dd070 left
dalek rrot/kid51/testsets2: 0ea08da | jkeenan++ | / (6 files):
Add lib/TAP/Harness/Archive/MultipleHarnesses.pm and

These packages permit creation of an archive of TAP output from several different subharnesses run under the control of a master harness. The subharnesses can run the same sets of tests multiple times under different environmental conditions. Results are labelled with a combination of a label for the test harness and the name of the test file itself. (The packages are not yet correctly documented.) Since these packages are ultimately destined for CPAN, exempt them from Parrot's codingstd tests.
Add 'make smolder_fulltest' and revise 'make fulltest' targets. Update MANIFEST.
16:34
umage/soh-cah-toa/featherspec: 0a1e468 | soh_cah_toa++ | src/plumage-admin.nqp:
Relocated output_error() so that all subroutines are in alphabetical order.
16:39
umage/soh-cah-toa/featherspec: 0e7e3d1 | soh_cah_toa++ | src/plumage-admin.nqp:
Fixed regex used to check featherspec filename so that featherspecs in other directories can be used.
umage/soh-cah-toa/featherspec: 7da5bbb | soh_cah_toa++ | src/plumage-admin.nqp:
Modified output_error() to use 'getstderr' opcode instead to use one less instruction.
16:48 benabik joined 17:07 contingencyplan joined 17:29 NotFound joined 17:42 bluescreen joined
soh_cah_toa in nci function signatures, what symbol is used for char *? is it 'c' for char? 17:46
for that matter, what symbol is used for any type of pointer?
NotFound soh_cah_toa: for pointer to C strings, the way now is to use 'p' 17:55
17:55 jsut_ joined
soh_cah_toa NotFound: just for char* or any pointer? 17:56
NotFound soh_cah_toa: any pointer, except passing directly PMCs
soh_cah_toa so if i have a function foo(char *a, int b, int *c), the nci call would look like: 17:58
func = dlfunc lib, 'foo', 'pip'
NotFound Yes. 17:59
soh_cah_toa and then: func('foo bar baz', 0, 1)
NotFound soh_cah_toa: no, is a bit more complicated. For int pointers you probably need to setup a Struct. For the string, my prefered way is to use a ByteBuffer 18:01
You can also use the nci helper library and specify 't'
soh_cah_toa what do you mean 'Struct'? i don't see a Struct pmc :\\ 18:02
NotFound Let me find an example up to date...
soh_cah_toa sure
plobsing soh_cah_toa: is that int* by chance a pass-by-reference?
soh_cah_toa not sure, i'm trying to use libzip b/c Archive;Zip is very "incomplete" 18:03
plobsing pass-by-ref is a common pattern and is supported by parrot's nci separate from normal pointers. 18:04
NotFound Some people wil say that there are no such thing as "normal" pointers in C ;) 18:05
soh_cah_toa agh, i don't think i can do this anyway b/c the zip_open() function returns a 'struct zip' and i'm not sure how nci would handle that :\\ 18:06
NotFound soh_cah_toa: you need to setup a StructView
plobsing soh_cah_toa: a struct or a struct*?
soh_cah_toa plobsing: agh, a struct* 18:07
plobsing so you can treat it like a pointer
soh_cah_toa which i still don't know how to do :P
bleh, native call libraries are always so...yucky 18:08
NotFound soh_cah_toa: that depends. If you need to use its members, you need a StructView. If it's used as opaque data, you just pass it around
soh_cah_toa what do you mean 'pass it around', what pmc type is it? 18:09
NotFound Currently is still an UnmanagedStruct, I think 18:10
soh_cah_toa ok
NotFound But you shouldn't care, the main point is that you can pass it directly to a 'p' parameter.
soh_cah_toa alright, we'll see... 18:11
ok, so struct* = UnmanagedStruct and struct = StructView? 18:16
NotFound soh_cah_toa: no, you use StructView to acces the content of a struct contained in a UnmanagedStruct or some other pointer-like PMC. 18:18
soh_cah_toa alright, so what about struct* then? 18:19
ew, it's called UnManagedStruct? so ugly 18:23
18:24 mj41 joined, mj41_nb joined 18:25 bubaflub joined
soh_cah_toa looks like the ugly looking UnManagedStruct is working for struct* so far 18:30
this is going to smoothly. nothing is every this easy so something has got to break soon ;)
NotFound soh_cah_toa: unmanaged struct is deprecated, you shouldn't use it directly. 18:31
18:31 ligne joined
soh_cah_toa and there it is 18:31
NotFound: then what am i supposed to use?
NotFound soh_cah_toa: for what purpose? Creating a struct from parrot? Reading its members? 18:33
dalek kudo/nom: 424d2dd | moritz++ | src/core/ (2 files):
better .gist for Method and Submethod
18:34
soh_cah_toa i don't think i need to access struct members 18:35
NotFound Note that I said 'directly'. If you just get it from a nci call and pass it to others nci calls, fine.
soh_cah_toa yeah, that 18:36
NotFound In that case, being a unmanaged struct is an implementation detail that will be changed.
soh_cah_toa alright
NotFound But the change will not affect that usage. 18:37
soh_cah_toa ok, good
NotFound You just treat is as an opaque type, same as in equivalen C usage.
soh_cah_toa yeah
NotFound Just a little problem: you had the responsability to free its content, if the library used says so. 18:39
soh_cah_toa yeah, w/ zip_close() 18:40
NotFound There is no way right now to set a function in the unmanaged struct to do it at collection time, its future replacement will probably have it. 18:41
soh_cah_toa ok 18:42
wow, it actually worked w/ very little resistance 18:45
nci++
if only zavolaj were this easy ;)
dukeleto waives from the mentor summit 18:53
plobsing soh_cah_toa: zavolaj solves a different, and arguably much harder problem. 19:04
soh_cah_toa yeah, i know
i just kept running into wall after wall when i tried using it w/ my Digest::SHA256 module (still haven't got it to cooperate) 19:06
19:07 mj41_nb joined, mj41 joined 19:50 alester joined 20:07 Khisanth joined 20:23 logie joined 21:23 bluescreen joined 21:48 logie joined 22:41 mj41_nb joined, mj41 joined
dalek kudo/nom: b3e3008 | tadzik++ | lib/Pod/To/Text.pm:
[Pod::To::Text] Make object stringification in declarator2text less implementation-dependent
23:13
kudo/nom: 5b16dbe | tadzik++ | / (2 files):
Partially fix WHY bugs for two subs in a row
kudo/nom: 7895d52 | tadzik++ | / (3 files):
Store declarator docs in Matches rather than Strings

This way we can distinguish the same documentation for two different objects. Yet another workaround for routine_def eating declarator comment from routine_def after it.
rrot/kid51/testsets2: 2a64b0c | jkeenan++ | lib/TAP/Harness/ (2 files):
Write module documentation in POD format.

_get_all_tap_files() is not needed in lib/TAP/Harness/Archive/MultipleHarnesses.pm, as it is inherited; remove it.
23:48